Инструменты пользователя

Инструменты сайта


cp:edu-school

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
cp:edu-school [2022/07/02 19:53]
iadenisov
cp:edu-school [2022/07/02 20:03] (текущий)
iadenisov [Литература]
Строка 215: Строка 215:
 Текст документа может быть оформлен весьма разнообразно. Допускается использование разных шрифтовых оформлений — гарнитура, размер, наклон, жирность, цвет. Это дает значительные эргономические преимущества. Например, можно выбрать атрибуты шрифта в соответствии с возрастом и индивидуальными пожеланиями учащихся. Полезно каким-либо образом выделять временные фрагменты текста и комментарии. Возможности разнообразить текст программы этим не ограничиваются. Благодаря встраиваемым объектам документ может становиться активным и интерактивным. Блэкбокс содержит набор стандартных объектов и позволяет создавать новые. Примеры стандартных объектов: Текст документа может быть оформлен весьма разнообразно. Допускается использование разных шрифтовых оформлений — гарнитура, размер, наклон, жирность, цвет. Это дает значительные эргономические преимущества. Например, можно выбрать атрибуты шрифта в соответствии с возрастом и индивидуальными пожеланиями учащихся. Полезно каким-либо образом выделять временные фрагменты текста и комментарии. Возможности разнообразить текст программы этим не ограничиваются. Благодаря встраиваемым объектам документ может становиться активным и интерактивным. Блэкбокс содержит набор стандартных объектов и позволяет создавать новые. Примеры стандартных объектов:
  
-— открывающий коммандер, при щелчке левой кнопкой мыши вызывает выполнение указанной после него экспортированной процедуры; если процедура ожидает входных данных, их следует указать после имени процедуры и завершить закрывающим коммандером; +{{:cp:commander.gif|}} — коммандер, при щелчке левой кнопкой мыши вызывает выполнение указанной после него экспортированной процедуры; если процедура ожидает входных данных, их следует указать после имени процедуры;
- +
-— закрывающий коммандер;+
  
 — командная кнопка, обычно используется на диалоговой форме (см. раздел “Диалог”) для запуска экспортированных процедур; — командная кнопка, обычно используется на диалоговой форме (см. раздел “Диалог”) для запуска экспортированных процедур;
Строка 238: Строка 236:
  
 — действующая мишень. — действующая мишень.
-Структура папок Блэкбокса+ 
 + 
 +===== Структура папок Блэкбокса =====
  
 По соглашению, принятому в Блэкбоксе, полное имя модуля состоит из двух частей: первая часть означает имя подсистемы (папки), в которой расположен модуль, вторая часть означает собственно имя модуля. В приведенном выше модуле имя подсистемы — Мои, а имя модуля — Пример. По соглашению, принятому в Блэкбоксе, полное имя модуля состоит из двух частей: первая часть означает имя подсистемы (папки), в которой расположен модуль, вторая часть означает собственно имя модуля. В приведенном выше модуле имя подсистемы — Мои, а имя модуля — Пример.
Строка 250: Строка 250:
 Каждая папка подсистемы может содержать следующие вложенные папки (см. таблицу). Каждая папка подсистемы может содержать следующие вложенные папки (см. таблицу).
  
-Code +Code Папка с исполняемыми кодовыми файлами. Расширение имен у таких файлов: ocf | 
- Папка с исполняемыми кодовыми файлами. Расширение имен у таких файлов: ocf +Docu Папка с полностью документированными интерфейсами и другими документами. Например, для модуля Integers там есть файл System\Docu\Integers.odc. Для модуля, который используется только внутренне (для служебных целей Блэкбокса), его файл документации не поставляется. Часто есть общие файлы документации, которые не относятся к отдельному модулю подсистемы. Такие файлы содержат один или более дефисов в их именах, например, Docu\CP-Lang_rus. Типичными файлами являются: Sys-Map (обзор гиперссылок на другие документы этой подсистемы); User-Man (руководство пользователя); Dev-Man (руководство разработчика) | 
-Docu   +Mod Папка с исходными модулями. Например, для модуля МоиПример там есть файл Мои\Mod\Пример.odc | 
- +Rsrc Папка с ресурсными документами подсистемы: диалоговые формы, меню, тексты для локализации. Например, для модуля СборникКалькулятор там есть файл Сборник\Rsrc\Калькулятор.odc. Может быть ноль, один или более ресурсных файлов для одного документа. Если есть несколько файлов, второй получает суффикс “1”, третий — суффикс “2” и так далее. Например, Сборник\Rsrc\Калькулятор.odc, Сборник\Rsrc\Калькулятор1.odc, Сборник\Rsrc\Калькулятор2.odc и т.д. Часто есть добавочные файлы, которые не относятся к отдельному модулю подсистемы. Типичными файлами являются: Strings.odc (строковые ресурсы для локализации этой подсистемы; не путать с одноименным модулем для работы со строками); Menus.odc (меню этой подсистемы) | 
-Папка с полностью документированными интерфейсами и другими документами. Например, для модуля Integers там есть файл System\Docu\Integers.odc. Для модуля, который используется только внутренне (для служебных целей Блэкбокса), его файл документации не поставляется. Часто есть общие файлы документации, которые не относятся к отдельному модулю подсистемы. Такие файлы содержат один или более дефисов в их именах, например, Docu\CP-Lang_rus. Типичными файлами являются: Sys-Map (обзор гиперссылок на другие документы этой подсистемы); User-Man (руководство пользователя); Dev-Man (руководство разработчика) +Sym Папка с символьными файлами. Расширение имен у таких файлов: osf. Например, для модуля СборникКалькулятор там есть файл Сборник\Sym\ Калькулятор.osf. Для модуля, который используется только внутренне, его символьный файл не поставляется |
-Mod  Папка с исходными модулями. Например, для модуля МоиПример там есть файл Мои\Mod\Пример.odc +
-Rsrc   +
- +
-Папка с ресурсными документами подсистемы: диалоговые формы, меню, тексты для локализации. Например, для модуля СборникКалькулятор там есть файл Сборник\Rsrc\Калькулятор.odc. Может быть ноль, один или более ресурсных файлов для одного документа. Если есть несколько файлов, второй получает суффикс “1”, третий — суффикс “2” и так далее. Например, Сборник\Rsrc\Калькулятор.odc, Сборник\Rsrc\Калькулятор1.odc, Сборник\Rsrc\Калькулятор2.odc и т.д. Часто есть добавочные файлы, которые не относятся к отдельному модулю подсистемы. Типичными файлами являются: Strings.odc (строковые ресурсы для локализации этой подсистемы; не путать с одноименным модулем для работы со строками); Menus.odc (меню этой подсистемы) +
-Sym   +
- +
-Папка с символьными файлами. Расширение имен у таких файлов: osf. Например, для модуля СборникКалькулятор там есть файл Сборник\Sym\ Калькулятор.osf. Для модуля, который используется только внутренне, его символьный файл не поставляется+
  
 Пользователям настоятельно рекомендуется сохранять свои модули в собственной подсистеме, не смешивать их со стандартными модулями среды. Например, будем работать в подсистеме Школа. Пользователям настоятельно рекомендуется сохранять свои модули в собственной подсистеме, не смешивать их со стандартными модулями среды. Например, будем работать в подсистеме Школа.
 В этом случае нам потребуется создать папку Школа, внутри которой расположить указанные (пустые) папки. В таком случае модуль с именем Привет будет иметь полное имя ШколаПривет и будет располагаться в файле Школа\Mod\Привет.odc. В этом случае нам потребуется создать папку Школа, внутри которой расположить указанные (пустые) папки. В таком случае модуль с именем Привет будет иметь полное имя ШколаПривет и будет располагаться в файле Школа\Mod\Привет.odc.
-Сетевая работа+ 
 +===== Сетевая работа =====
  
 При использовании Блэкбокса в компьютерном классе можно выполнить серверную установку. При использовании Блэкбокса в компьютерном классе можно выполнить серверную установку.
Строка 285: Строка 279:
  
 В простейшем случае достаточно просто распаковать архив Блэкбокса на диск и можно сразу начинать им пользоваться. В простейшем случае достаточно просто распаковать архив Блэкбокса на диск и можно сразу начинать им пользоваться.
-Гибкость+ 
 +===== Гибкость =====
  
 Продолжим разговор об эргономических преимуществах Блэкбокса. Еще одной отличительной чертой является его гибкость. Среду легко настроить так, чтобы было удобно работать разным категориям пользователей. Например, для программистов, делающих самые первые шаги в программировании, может быть полезной справка об основных типах и конструкциях, которая появляется в отдельном окне при запуске либо вызывается специальной кнопкой. Благодаря компактности языка КП такая справка легко поместится в одно окно и даже без прокрутки. Составить справку сможет любой учитель либо поручит учащимся. Например, можно создать ее в начале курса и далее пополнять по мере изучения материала. Мы бы предложили такое содержание справки: Продолжим разговор об эргономических преимуществах Блэкбокса. Еще одной отличительной чертой является его гибкость. Среду легко настроить так, чтобы было удобно работать разным категориям пользователей. Например, для программистов, делающих самые первые шаги в программировании, может быть полезной справка об основных типах и конструкциях, которая появляется в отдельном окне при запуске либо вызывается специальной кнопкой. Благодаря компактности языка КП такая справка легко поместится в одно окно и даже без прокрутки. Составить справку сможет любой учитель либо поручит учащимся. Например, можно создать ее в начале курса и далее пополнять по мере изучения материала. Мы бы предложили такое содержание справки:
  
 +<code>
 i        INTEGER 4 байта -2147483648 .. i        INTEGER 4 байта -2147483648 ..
                                         +2147483647                                         +2147483647
Строка 311: Строка 307:
  
 IMPORT L := StdLog, In, Math, Dialog, Strings, Integers; IMPORT L := StdLog, In, Math, Dialog, Strings, Integers;
 +</code>
  
 В первом абзаце приведены сокращения для быстрого набора. Для программирования “черепашки” приведенный список сокращений существенно дополнен. Подстановка вместо сокращений полных конструкций выполняется по нажатию клавиши • модулем Edit подсистемы Info21sys. Этот модуль легко поддается модификации даже учащимися. В первом абзаце приведены сокращения для быстрого набора. Для программирования “черепашки” приведенный список сокращений существенно дополнен. Подстановка вместо сокращений полных конструкций выполняется по нажатию клавиши • модулем Edit подсистемы Info21sys. Этот модуль легко поддается модификации даже учащимися.
Строка 319: Строка 316:
 В Блэкбоксе имеются достаточно богатые средства для работы со строками. Строки в КП описываются как символьные массивы: В Блэкбоксе имеются достаточно богатые средства для работы со строками. Строки в КП описываются как символьные массивы:
  
-VAR строка: ARRAY 50 OF CHAR; +<code>VAR строка: ARRAY 50 OF CHAR; 
-VAR str: ARRAY 30 OF CHAR;+VAR str: ARRAY 30 OF CHAR;</code>
  
 Цепочки или отдельные символы можно заносить в массив разными способами: чтением из входного потока, чтением из файла, переносом из другого массива, кодированием или непосредственным присваиванием. Детальный разбор особенностей работы со строками заслуживает отдельного разговора. Здесь мы ограничимся упоминанием лишь самых основных. Цепочки или отдельные символы можно заносить в массив разными способами: чтением из входного потока, чтением из файла, переносом из другого массива, кодированием или непосредственным присваиванием. Детальный разбор особенностей работы со строками заслуживает отдельного разговора. Здесь мы ограничимся упоминанием лишь самых основных.
Строка 326: Строка 323:
 Строка как цепочка символов должна быть задана либо в одинарных апострофах ‘’, либо в двойных кавычках “”. Например: Строка как цепочка символов должна быть задана либо в одинарных апострофах ‘’, либо в двойных кавычках “”. Например:
  
-In.Open; In.String(str); L.String(str);+<code>In.Open; In.String(str); L.String(str);
 строка := "это пример строки"; строка := "это пример строки";
 str := 'Здравствуй, world!'; str := 'Здравствуй, world!';
 str := str+' — '+строка; str := str+' — '+строка;
-L.String(str);+L.String(str);</code>
  
 Текущую длину цепочки символов в массиве можно определить через процедуру LEN(str$), указав сразу после имени знак доллара. Конец символьной цепочки в массиве отмечается специальным нулевым кодом, который в программе записывается 0X. Длину (размер) символьного массива выдает та же процедура, если знак доллара отсутствует: Текущую длину цепочки символов в массиве можно определить через процедуру LEN(str$), указав сразу после имени знак доллара. Конец символьной цепочки в массиве отмечается специальным нулевым кодом, который в программе записывается 0X. Длину (размер) символьного массива выдает та же процедура, если знак доллара отсутствует:
Строка 338: Строка 335:
 К элементам символьного массива можно обращаться обычным образом: К элементам символьного массива можно обращаться обычным образом:
  
-FOR i := 0 TO LEN(str) – 1 DO+<code>FOR i := 0 TO LEN(str) – 1 DO
     L.Char(str[i])      L.Char(str[i]) 
 END; END;
 строка[4] := "П";  строка[4] := "П"; 
 k := ORD(str[13]);  k := ORD(str[13]); 
-str[10] := CHR(50); +str[10] := CHR(50); </code>
  
 Процедуры модуля Strings позволяют находить, извлекать и заменять подстроки в строках, преобразовывать целые и вещественные в строки и обратно как с форматированием, так и без него. Например: Процедуры модуля Strings позволяют находить, извлекать и заменять подстроки в строках, преобразовывать целые и вещественные в строки и обратно как с форматированием, так и без него. Например:
Строка 354: Строка 351:
  
 ----3.142E-3 ----3.142E-3
-ООП+ 
 +===== ООП ===== 
  
 Компонентный Паскаль поддерживает полноценное объектно-ориентированное программирование. Покажем это на примере графического объекта Круг, имеющего такие свойства, как координаты центра, радиус и цвет заливки. Поведение объекта (его методы) описывается процедурами подсчета периметра и площади круга, а также отрисовки круга в отдельном графическом окне. Используем графические средства модуля Info21sysTPGraphics Ф.В. Ткачева. Компонентный Паскаль поддерживает полноценное объектно-ориентированное программирование. Покажем это на примере графического объекта Круг, имеющего такие свойства, как координаты центра, радиус и цвет заливки. Поведение объекта (его методы) описывается процедурами подсчета периметра и площади круга, а также отрисовки круга в отдельном графическом окне. Используем графические средства модуля Info21sysTPGraphics Ф.В. Ткачева.
  
-MODULE МоиМетод;+<code>MODULE МоиМетод;
  IMPORT L := StdLog, Math,  IMPORT L := StdLog, Math,
   Gr := Info21sysTPGraphics;   Gr := Info21sysTPGraphics;
Строка 423: Строка 422:
 END Делать; END Делать;
  
-END МоиМетод.+END МоиМетод.</code>
  
-МоиМетод.Делать+{{:cp:commander.gif|}}МоиМетод.Делать
  
 Рис. 2. Результат работы процедуры МоиМетод.Делать Рис. 2. Результат работы процедуры МоиМетод.Делать
Строка 434: Строка 433:
  
 периметр 2-го круга = 314.1592653589793 периметр 2-го круга = 314.1592653589793
-“Длинная” арифметика+ 
 +===== “Длинная” арифметика =====
  
 Встречаются задачи, в которых требуется выполнять стандартные арифметические операции над очень большими — “длинными” целыми числами. Такие числа не помещаются ни в один целый тип, предусмотренный в языке и поддерживаемый системой команд процессора. Приходится искать обходные пути. Специально для этого в Блэкбоксе предусмотрен модуль Integers, который позволяет работать с целыми числами произвольной разрядности (длины). Встречаются задачи, в которых требуется выполнять стандартные арифметические операции над очень большими — “длинными” целыми числами. Такие числа не помещаются ни в один целый тип, предусмотренный в языке и поддерживаемый системой команд процессора. Приходится искать обходные пути. Специально для этого в Блэкбоксе предусмотрен модуль Integers, который позволяет работать с целыми числами произвольной разрядности (длины).
Строка 441: Строка 441:
  
 Что касается присваивания и параметров процедур, то переменные типа Integers.Integer могут быть использованы тем же образом, что и переменные числовых типов, встроенных в язык. Конечно, чтобы выполнять операции над такими переменными, необходимо вызывать специальные процедуры модуля Integers. Обычные операции +, –, *, DIV, MOD и т.п. использоваться не могут. То же самое касается и сравнений. Что касается присваивания и параметров процедур, то переменные типа Integers.Integer могут быть использованы тем же образом, что и переменные числовых типов, встроенных в язык. Конечно, чтобы выполнять операции над такими переменными, необходимо вызывать специальные процедуры модуля Integers. Обычные операции +, –, *, DIV, MOD и т.п. использоваться не могут. То же самое касается и сравнений.
-Диалог+ 
 +===== Диалог =====
  
 Диалоговые средства Блэкбокса очень просты в использовании и достаточно богаты по ассортименту. Для взаимодействия с программой в диалоге необходимо подключить специальный модуль Dialog, изменить операторы ввода-вывода на диалоговые, создать полностью автоматически или вручную диалоговую форму. Диалоговые средства Блэкбокса очень просты в использовании и достаточно богаты по ассортименту. Для взаимодействия с программой в диалоге необходимо подключить специальный модуль Dialog, изменить операторы ввода-вывода на диалоговые, создать полностью автоматически или вручную диалоговую форму.
Строка 449: Строка 450:
 Многое станет ясно из примера программы-калькулятора. Многое станет ясно из примера программы-калькулятора.
  
-MODULE МоиКалькулятор;+ 
 +<code>MODULE МоиКалькулятор;
  IMPORT Dialog;  IMPORT Dialog;
  
Строка 466: Строка 468:
 (* для экономии места некоторые процедуры не приведены *) (* для экономии места некоторые процедуры не приведены *)
  
-BEGIN x := 0; y := 0; +BEGIN 
-END МоиКалькулятор.+  x := 0; y := 0; 
 +END МоиКалькулятор.</code>
  
 После компиляции приведенного модуля возможно автоматическое построение диалоговой формы. Для этого необходимо в меню “Диалоги” выбрать пункт “Новая форма…”. В поле ввода появившегося окна нужно ввести имя модуля: После компиляции приведенного модуля возможно автоматическое построение диалоговой формы. Для этого необходимо в меню “Диалоги” выбрать пункт “Новая форма…”. В поле ввода появившегося окна нужно ввести имя модуля:
Строка 494: Строка 497:
 оригинал https://inf.1sept.ru/article.php?ID=200800100 оригинал https://inf.1sept.ru/article.php?ID=200800100
  
-А. С. Ильин,+А. С. Ильин,\\
 технический директор “Amadeus IT Solutions”, г. Томск ; технический директор “Amadeus IT Solutions”, г. Томск ;
-А. И. Попков,+ 
 +А. И. Попков,\\
 директор по образовательным проектам ГК  директор по образовательным проектам ГК 
cp/edu-school.1656780838.txt.gz · Последнее изменение: 2022/07/02 19:53 — iadenisov