hodza/BlackBox.Shkola.2014 huggingface dataset:
i21edu/Docu/ru/Вывод.odc

Модуль i21eduВывод

Это модуль для печати в Рабочий журнал. 
Он предназначен для учебных русскоязычных программ, например:
	i21eduВыводПример0  основные примеры;
	i21eduВыводПример1  печать таблички с использованием табуляций.

В программе это модуль нужно подключить (импортировать). Для этого в списке инструкции ПОДКЛЮЧИТЬ/IMPORT должно присутствовать
	Вывод := i21eduВывод
(см. примеры). Тогда в программе можно использовать следующие команды (их можно копировать в свою программу прямо из левой колонки, нужно только правильно заменять аргументы в скобках):

	Вывод.НовСтрока;	перевод на новую строку
	Вывод.Цел( а );	печать целого числа
	Вывод.Цепочка( ц );	печать цепочки литер
(явную цепочку ставить в кавычках, например, "привет!")
	Вывод.Таб;	вставка символа табуляции (показать/спрятать символы табуляции в программе: Ctrl+H)
	Вывод.Логич( л );	печать логического значения л (в виде ДА или НЕТ)
	Вывод.Вещ( в );	печать вещественного значения
	Вывод.Литера( л );	печать отдельной литеры

Сокращённое имя в списке подключения/импорта можно указать любое, например, 
	Ы := i21eduВывод. 
Тогда всюду в программе нужно использовать именно Ы; например, команда перевода на новую строку будет выглядеть как Ы.НовСтрока.
Если в списке указать просто полное имя
	i21eduВывод
то тогда всюду в программе придётся указывать именно его вместо сокращённого имени.

Быструю подсказку об интерфейсе модуля (названия и типы параметров всех процедур, которые модуль предоставляет) можно получить, выделив (например двойным кликом) в любом документе (например в Рабочем журнале) имя модуля и нажав Ctrl+D. Появится отдельное окошко примерно с таким содержимым:

DEFINITION i21eduВывод;

	PROCEDURE Вещ (x: REAL);
	PROCEDURE Литера (ch: CHAR);
	PROCEDURE Логич (x: BOOLEAN);
	PROCEDURE НовСтрока;
	PROCEDURE Таб;
	PROCEDURE Цел (i: LONGINT);
	PROCEDURE Цепочка (IN str: ARRAY OF CHAR);

END i21eduВывод.


Данный модуль сделан на основе англоязычного прототипа StdLog, но слегка упрощён.
Примеры, соответствующие упомянутым выше, но полностью на английском:
	i21eduStdLogПример0
	i21eduStdLogПример1


Таблица соответствий процедур в модулях i21eduВывод и StdLog:
Модули:	i21eduВывод	StdLog
	Вещ	Real
	Литера	Char
	Логич	Bool
	НовСтрока	Ln
	Таб	Tab
	Цел	Int
	Цепочка	String
i21edu/Docu/ru/КомандыЧерепашки.odc

Команды черепашки
В списке IMPORT/ПОДКЛЮЧИТЬ должно присутствовать  Ч := i21eduЧерепашка.
	Ч.Идти( 100 );
	на какое расстояние идти (в пикселях)
	Ч.Повернуть( 90 );
	на какой угол повернуть (в градусах против часовой стрелки, как в математике; отрицательное число  по часовой стрелке)
	Ч.ПоднятьПеро;
	Ч.ОпуститьПеро;
	Ч.РисоватьКрасным;
	Ч.РисоватьСиним;
	Ч.РисоватьЧерным;
	Ч.РисоватьЗеленым;
	Ч.РисоватьЖелтым;


info21@inr.ac.ru, 2009-10-19; 
последние исправления 2010-10-14
i21edu/Docu/ru/Обслуга.odc

i21eduОбслуга

DEFINITION i21eduОбслуга;

	PROCEDURE ОткрытьКопию (заготовка, подсказки: ARRAY OF CHAR);
	PROCEDURE СделатьКласс;

END i21eduОбслуга.

В помощь учителю.

PROCEDURE ОткрытьКопию (заготовка, подсказки: ARRAY OF CHAR)
Открывает в новом окне новую копию заранее приготовленного документа заготовка, к которому в конце добавлено содержимое документа подсказки. 
Если в качестве второго параметра поставлена пустая цепочка литер (''), то подсказки к заготовке не подцепляются.

Пример (можно кликнуть по черному коммандеру):
"i21eduОбслуга.ОткрытьКопию('0-en','подсказки')"

Обычно такие команды вставляются в меню. 
Например, в каком-то меню могут присутствовать команды вроде этой:

MENU "какое-то меню"
...
	"Новая программа"	""	"i21eduОбслуга.ОткрытьКопию('5класс-ru','подсказки-ч')	""
...
END

Параметры могут содержать имя подпапки, в которой можно собрать какие-то заготовки, например: 'гум-колледж/9кл-01'. 

Полезно помнить, что открыть документ на чтение можно так:
"StdCmds.OpenBrowser('i21edu/Заготовки/Пример списка задач.odc','Пример списка задач')"


PROCEDURE СделатьКласс
Средство быстрого обустройства компьютерного класса.

Подробные инструкции см. в документе
Организациякомпьютерногокласса
i21edu/Docu/ru/ОбслугаЧерепашки.odc

i21eduОбслугаЧерепашки

DEFINITION i21eduОбслугаЧерепашки;

	PROCEDURE НачатьРаботу (заготовка, подсказки: ARRAY OF CHAR);
	PROCEDURE ОткрытьКоманды;

END i21eduОбслугаЧерепашки.

Процедуры учителя для организации работы в классе.
Открыть исходник: двойной клик по имени модуля и Ctrl+0.

PROCEDURE НачатьРаботу (заготовка, подсказки: ARRAY OF CHAR);
Открывает и расставляет определенным образом следующие окна:
1. Рабочий журнал
2. Команды черепашки (откуда можно копировать команды)
3. Новый черепаший рисунок.
4. Копию документа заготовка из папки i21edu/Заготовки/, в конец которого скопировано содержимое документа подсказки.
Пример:
"i21eduОбслугаЧерепашки.НачатьРаботу('ч-0-ru','')"


PROCEDURE ОткрытьКоманды
Открывает документ-шпаргалку по командам черепашки в определённой позиции на экране.
Если документ уже открыт, то соответствующее окно выводится вперёд.

i21eduОбслугаЧерепашки.ОткрытьКоманды
i21edu/Docu/ru/ТочкиЛинии.odc

i21eduТочкиЛинии

DEFINITION i21eduТочкиЛинии;

	TYPE
		Точка = RECORD 
			x, y: INTEGER
		END;

	PROCEDURE Линия (p0, p1: Точка);
	PROCEDURE Обновить;
	PROCEDURE Открыть;
	PROCEDURE Очистить;

END i21eduТочкиЛинии.

Простая мини-среда для знакомства с записями.
см. ТочкиЛинии: пример

Дополнительные команды, которые можно использовать 
прямо в виде такого списка коммандеров в каком-нибудь окошке:

i21eduТочкиЛинии.Обновить;
i21eduТочкиЛинии.Открыть;
i21eduТочкиЛинии.Очистить;
i21edu/Docu/ru/Черепашка.odc

i21eduЧерепашка

DEFINITION i21eduЧерепашка;

	VAR
		пероОпущено-: ЛОГИЧ;

	PROCEDURE Идти (расстояние: ЦЕЛОЕ);
	PROCEDURE Новый;
	PROCEDURE ОпуститьПеро;
	PROCEDURE Открыть;
	PROCEDURE Очистить;
	PROCEDURE Повернуть (угол: ЦЕЛОЕ);
	PROCEDURE ПоднятьПеро;
	PROCEDURE РисоватьЖелтым;
	PROCEDURE РисоватьЗеленым;
	PROCEDURE РисоватьКрасным;
	PROCEDURE РисоватьСиним;
	PROCEDURE РисоватьСюда;
	PROCEDURE РисоватьЧерным;

END i21eduЧерепашка.


Рисующая черепашка. Для начального обучения программированию.
См. документ Полная справка по черепашке.

Черепашка рисует в особом окошке.
У нее есть состояние: положение на рисунке, угол поворота, цвет чернил, поднято перо или нет.

Рисунок можно сохранить обычным образом в файл и снова открыть: черепашка вспомнит своё положение и угол поворота на момент сохранения.

Можно иметь несколько окошек, в каждом будет жить своя отдельная черепашка.
Однако в каждый данный момент активной (то есть выполняет команды) является только одна. 
Чтобы сделать черепашку активной (если их на экране больше одной), достаточно дважды кликнуть с нажатой клавишей Ctrl по соответствующему окошку. 
См. также команду РисоватьСюда. 

VAR  пероОпущено-: ЛОГИЧ;
Смысл сообщается именем переменной.

PROCEDURE Новый;
Открывается новый чистый рисунок.
Исходное состояние новой черепашки: черепашка в центре рисунка, смотрит вправо, перо опущено, чернила черные.

PROCEDURE Идти (расстояние: ЦЕЛОЕ);
Черепашка идет по прямой на указанное число пикселей в том направлении, куда она в данный момент смотрит. Если перо опущено, то чертится линия, цвет которой определяется выбранными чернилами.

PROCEDURE ОпуститьПеро;
Черепашка опускает перо. Если перо уже опущено, то ничего не происходит.

PROCEDURE Открыть;
Открыть тот же рисунок, если по ошибке окно с рисунком было закрыто.

PROCEDURE Очистить;
Очистить активный рисунок.
Также двойной клик по рисунку.

PROCEDURE Повернуть (угол: ЦЕЛОЕ);
Черепашка поворачивается на указанное число градусов.
Положительный угол  против часовой стрелки (математическое направление).

PROCEDURE ПоднятьПеро;
Черепашка поднимает перо. Если перо уже поднято, то ничего не происходит.

PROCEDURE РисоватьЖелтым;
PROCEDURE РисоватьЗеленым;
PROCEDURE РисоватьКрасным;
PROCEDURE РисоватьСиним;
PROCEDURE РисоватьЧерным;
Черепашка берет для дальнейшего рисования чернила соответствующего цвета.

PROCEDURE РисоватьСюда;
Команда предназначена для выполнения из меню, чтобы сделать активной черепашку в переднем окне.


Для проекта Информатика-21: Ф.В.Ткачев, 2009-10-16; модификации: 2011-12-04.
i21edu/Docu.Знакомство/Загрузка и перезагрузка модулей.odc

   
 

Ниже даются некоторые технические сведения, нужные    ,       .
О стоящей за этим идеологии см. документ Опроцедурахимодулях.

Когдапроисходитзагрузкамодулявоперативнуюпамять
Чтопроисходитпризагрузкемодуля
Каквыгрузитьстаруюизагрузитьновуюверсиюразрабатываемогомодуля
Какпроверить,какиемодулизагружены


      
   /        (    ):
       ,   ,   ,     .          . (,      , ..         .)
    ,      ,            . ,   Простейшаяпрограмма   Log.  Log   ,   кой я Program0    Log.   Log  -  ,         Log.   . 
       ,          (. ).

    
   (  )         ,   .
          внешних связей (компоновка  linking), ..       объектов из   (   ), а также соответствующих дескрипторов типов и т.п.                   й компоновки.
,         (  между словом BEGIN/НАЧАЛО и словом END/КОНЕЦ, закрывающим модуль).       ,       ,     .
          ,       (. ).

        
   ,    ,     ,    (..     ; .  ).
1	С,                            Ctrl.
2	              ( ;  ,          ),           -> .
3	        ->    (Ctrl+Shift+K),          .
4	,   ,      ,    (   ,       , ,  ),           ->    .

 ,   
   ->           ,    ,      .      (        ):



            ( ,     ).    ,     ( ,     -"",         ..).            .            ,   .
   ,      .  ,     ,      .   ,    ,      '    ...' В оой ситуации, когда нужно выгрузить группу модулей, такие модули принадлежат одной подсистеме, и их имена начинаются одинаково (ср. на картинке группу модулей с именами на Dev). Группу таких модулей обычно можно    : 
        (   ),      раммирование ->    . 
      ,      .      ,  -     , х они ,       .
      ' '     ,    (  )  ,    .    (Ctrl+A),    раммирование ->    ,       .
          ,  .
i21edu/Docu.Знакомство/Закрыть окошко документа.odc

Чтобы закрыть окошко документа: 
	нажать Ctrl+W 
	или Ctrl+F4 
	или кликнуть по крестику в верхнем правом углу окошка документа (не перепутать с самым крайним крестиком, закрывающим весь Блэкбокс!).
	
В качестве упражнения закроем это окошко.
i21edu/Docu.Знакомство/Использование неанглийских ключевых слов.odc

Использование в учебных программах ключевых слов на родном языке (например, на русском)

В учебных сборках Блэкбокса от Информатики-21 предусмотрена возможность компилировать программы с  ключевыми словами на родном языке (например, на русском; см. замечания в документе Онеанглийскихключевыхсловах). 
Это обеспечивается средствами модулей i21sysCompiler и i21sysVocabulary.

Из коробки учебные сборки настроены на работу как с английскими, так и с русскоязычными ключевыми словами, причем правильно компилироваться будут и программы даже со смесью тех и других.

Ниже перечислены основные возможности, подробности см. в документации:

1. Компиляция программ с ключевыми словами на родном языке производится следующим образом: 
 за кадром исходная программа дублируется с переводом ключевых слов на английский в соответствии со специальным словариком, 
 компилируется получившаяся программа,
 маркеры ошибок вставляются обратно в исходную программу в правильные позиции с учётом разницы в длине ключевых слов.

2. Словарик содержит разные падежные формы, поэтому, например, ЦЕЛАЯ, ЦЕЛЫЕ и ЦЕЛЫХ одинаково правильно переводятся в INTEGER.

3. Предусмотрена команда перевода ключевых слов на английский без компиляции. Тогда переведённая программа открывается в отдельном окне как новый документ.

4. Процедура, которая раскрывает синтаксические конструкции языка при нажатии F5 (модуль i21sysEdit), будет работать правильно для родного языка без переделок.

5. Удобно иметь имена стандартных процедур (ввод-вывод и т.п.) на том же языке, на котором используются ключевые слова. Для этого достаточно написать соответствующие модули-фасады, содержащие процедуры с нужными именами и просто перенаправляющие вызовы к соответствующим англоязычным процедурам. Пример  модули i21eduВвод и i21eduВывод  русскоязычные фасады для i21sysIn и StdLog.

6. Можно одновременно иметь несколько словариков и менять их в процессе работы, например, настроив нужным образом меню Блэкбокса. 
Чтобы обеспечить активизацию нужного словарика при запуске Блэкбокса, достаточно, например, вставить соответствующую команду в стандартный блэкбоксовский модуль Config (искать в папках Mod/ или System/Mod/). 

7. Содержимое словарика можно менять, не выходя из Блэкбокса.

________________
info21@inr.ac.ru
2010-10-14, последние правки 2012-11-04
i21edu/Docu.Знакомство/Как организована документация в Блэкбоксе.odc

Как организована документация в Блэкбоксе

   
   
   
     
 

   
 данный  (2010-10)    а практически вся документация Блэкбокса, но не все переводы еще отредактированы. В первую очередь отредактированы наиболее нужные документы, включая три важнейших:
     .           .   (  30 .),      ,   <>  .  
Отличия Компонентного Паскаля от Паскаля. Документ краткий, но точный.
Краткая история Паскаля.

Все переводы включены во все комплекты Блэкбокса от проекта Информатика-21.
Они содержатся в подпапках ru в штатных папках документации Docu. 

   
Чаще всего  просто уточнять детали ов ,    . ,  StdLog      ,          (INTEGER, REAL  ..), однако можно забыть точное название той или иной конкретной процедуры. Тогда д       (,  Р )   , делить  (, ойным ом   )   Ctrl+D ( :  ->  ;   Info -> Client Interface).  в ответ ё ,     покажет        .
В этом документе будут п   : 
	 ,     (инструкция IMPORT); 
	  ( CONST);
	  ( VAR);          (      );
	       .
          (  -   )       ().
            .

   
      (  ),        (,   )   ,   (,    )      ->  (для документации на русском языке) или Info -> Documentation (для документации на английском). 
            проводника;    работают  (.  StdLinks),      .
          Documentation Conventions ( F1   ).

     
 F1    (  проводника)   ,     переводы ей и, ой с  ей. Там же (вверху слева) дана ссылка на английский вариант документации.

    -    . ,     StdLog     ,           Docu/ru,    ,    ,     . Кнопка Search ищет в англоязычной документации.

 
Ссылки на п  школьного  можно найти через документ Справкадляучителя
В частности, можно посмотреть модули в папках Mod в подсистемах i21прим, i21edu, i21sys.
   (F1)      (Компонентное ПО ...).
    от производителя находится   Obx (.    BlackBox\Obx\Mod\).
Наконец, в комплект входят полные исходники самого .
i21edu/Docu.Знакомство/Как создать и хранить программу.odc

Как создать и хранить программу

Простейшие варианты

Создание
Модуль всегда можно бесхитростно набрать с нуля в новом документе (Ctrl+N).
		Основные команды правки текстов  стандартные).
Но обычно в учебном контексте заготовка программы (модуля) создаётся командой меню (1-Школьное, Новая программа или 2-Черепашка, Начать работу или кликом по ссылке в списке задач). 
		Подробней о заготовках модулей и списках задач см. здесь.
Лучше всего сразу же сохранить начатый модуль в файл (см. ниже) и потом уже начинать добавлять что-то в заготовку.
В самом начале можно даже не менять имя модуля, а только задавать разные имена файлам.

Хранение
Обычно в учебном контексте Блэкбокс вызывается в собственной рабочей папке школьника с помощью файла-пускача (файл с расширением .vbs; см. Организациякомпьютерногокласса).
Тогда проще всего для начала сохранять исходники модулей прямо в рабочей папке (через меню: 1-Школьное, Сохранить или Ctrl+S).
Лучше, чтобы имена файлов совпадали с именами модулей, но поначалу можно имя модуля (стоит после MODULE/МОДУЛЬ) оставлять как в заготовке.
Если Блэкбокс запускался прямо в основной папке (двойным кликом по BlackBox.exe), то лучше сохранять файлы в свою собственную отдельную папку, названную по имени или инициалам.
	Иногда в подобных случаях Блэкбокс может сообщать о создании папок (***\Code и ***\Sym)  нужно просто отвечать ОК/Ладно.

Открывание
Во-вервых, есть команда меню 1-Школьное, Открыть или Файлы, Открыть (Ctrl+O).
Во-вторых, Блэкбокс в школьных сборках запоминает все открытые окна при завершении работы через меню (1-Школьное, Закончить работу). 
Тогда, если урок закончился, а работа с модулем еще нет, то модуль нужно сохранить (Ctrl+S), но окно не закрывать и выйти из Блэкбоксе командой меню 1-Школьное, Закончить работу. Тогда при следующем запуске в этой рабочей папке Блэкбокс откроет это окно с той же программой в том же месте экрана.
Даже если работа с модулем закончена, но решаются задачи на ту же тему, бывает полезно заглянуть в него снова  или даже скопировать оттуда какой-то фрагмент. Тогда лучше, сохранив его, не закрывать совсем, а только свернуть окно. При следующем запуске Блэкбокса свернутое окно снова появится внизу. Открывается свернутое окно двойным кликом.

Если при выходе из Блэкбокса какой-то модуль не был сохранен, то Блэкбокс попросит подтверждения, чтобы сохранить модуль. Нужно ответить OK/Ладно.
Если новый модуль вообще еще не сохранялся в файл, то Блэкбокс откроет диалог для сохранения файла. Нужно задать имя и нажать OK.
В профильных старших классах может иметь смысл организовывать модули, используя механизм подсистем Блэкбокса. Подробней об этом см. документ Организация файлов в Блэкбоксе.
i21edu/Docu.Знакомство/Ключевые слова из прописных букв.odc

    

 Обероне/        и.     (а заодно сэкономить на наборе программы),  сборках Блэкбокса от проекта Информатика-21   :   F5   , : 
 Влево от курсора ищется максимальная цепочка литер из маленьких букв и цифр (чаще всего поиск заканчивается на пробеле) и все маленькие буквы в ней превращаются в . : then   THEN,  a1bc --> A1BC.
         IF, WHILE, PROCEDURE ...  ..,     скелета      . 
    (  ,    ;     ):
  
    
     BEGIN  END    ()  ,               PROCEDURE, BEGIN  END     ,     VAR.
 ,      ,      - .

 Это средство работает как с латинскими, так и с русскими буквами.
 На самом деле F5 пытается угадать нужную конструкцию по первым буквам. Например, скелет процедуры раскрывается уже по одной p. Если угадалось не то, отменить Ctrl+Z, добавить ещё букв, и снова попытать F5.
Лишний ум у F5 можно отключить, нажимая Shift+F5.

Подробнее см. документы
	ОбF5вшкольнойверсии
	ОбиспользованииклавишиF5дляпечатиключевыхслов
i21edu/Docu.Знакомство/Некоторые заповеди.odc

Некоторые заповеди грамотного программирования



 2-4     ,      step-wise refinement (.    Comm. ACM, Vol. 14, No. 4, April 1971;   : http://www.acm.org/classics/dec95/).

 1      .     ,   (interface-driven design),       (design by contract).        (=сигнатур)  (  ) вместе с -  -ями            .  /сигнатур   -  -       .

  2-4        ,    (      .3,     .4)     . 
  5      .2-4:  ,       .2-4 (         ).      ,    /     ,    .         в 1984 г.      -2,      . 

 5 ,  ,      ,    ,  ,   (   ),     (.  : Как компилятор сообщает об ошибках).
         (..  . ., , 1978, . 274).      гибкие  (Extreme Programming  ..)    просто более эффективным          . 
Применение ов     ой ы        правильного .     ,              ,    .
i21edu/Docu.Знакомство/Организация работы дома.odc

Организация работы юного программера дома

Предполагаем, что в компьютерном классе у юного программера есть рабочая папка с файлом-пускачом (текстовый файл с расширением .vbs), настроенным на вызов Блэкбокса в компьютерном классе.
 ,    ( ).

Хочется носить эту папку на флэшке домой и там решать задачи, а потом приносить ее обратно и продолжать работу в классе.

Самый простой способ: запускать Блэкбокс дома прямо с флэшки.
Для этого нужна будет флэшка, в которой свободно мегабайт 50 (пятьдесят).

В классе:
Скопировать на флэшку свою рабочую папку.
Туда же скопировать всю главную папку Блэкбокса.

Дома: 
(эту процедуру можно порепетировать в классе)
Открыть на флэшке главную папку Блэкбокса и дважды кликнуть по BlackBox.exe  запустится Блэкбокс. 
В нём выполнить команду меню Справка -> Создать файл-пускач.
Закрыть Блэкбокс.
Открыть на флэшке рабочую папку  теперь на экране должны быть рядом открыты обе папки: главная и рабочая.
В главной папке Блэкбокса найти файл-пускач, переименовать его так, чтобы было ясно, что это пускач для дома. Затем мышкой перетащить его в рабочую папку.
Теперь в рабочей папке должно быть по меньшей мере два пускача: один школьный, другой новый, домашний.
Попробовать дважды кликнуть по домашнему пускачу в рабочей папке. Если Блэкбокс запустился, попробовать открыть какую-нибудь свою задачу.
Если всё открылось нормально,  значит, всё в порядке.
Если что-то не вышло, попытаться выполнить всю процедуру еще раз  или попросить кого-нибудь помочь.
Эту процедуру нужно выполнить только один раз.

Вариант:
Дома можно скопировать главную папку куда-нибудь на жесткий диск и выполнить всю процедуру, считая главной папкой Блэкбокса ту, что получилась на жестком диске, а не на флэшке.

________________
info21@inr.ac.ru
последние изменения: 2010-10-23
i21edu/Docu.Знакомство/Происхождение слова Log.odc

Происхождение слова Log

Первое значение английского слова log  бревно, полено. Когда-то во времена географических открытий и кругосветных путешествий моряки измеряли скорость своих парусников, бросая за борт полено потолще, к которому была привязана веревка с узлами на равных расстояниях. Засекали время и давали веревке свободно выходить вслед за поленом. Через определенное время смотрели, сколько узлов вышло с веревкой. С тех пор моряки меряют скорость в узлах. А бортовой журнал, куда капитан записывал скорость, время и т.д., стал называться log-book (в буквальном переводе книга полена). Или сокращённо просто log. 

Постепенно это название стало использоваться всюду, где ведутся регулярные рабочие записи.