Программа- исполнитель ROBOT для терминального класса КУВТ-86. 1. О программах - исполнителях Важной частью программного обеспечения, необходимого для пре- подавания курса "Основы информатики и вычислительной техники" яв- ляется программа- исполнитель. Это учебная программа, обеспечива- ющая знакомство учащихся с основными конструкциями алгоритмов и позволяющая учащимся выработать в режиме диалога с ЭВМ основные навыки составления алгоритмов и программ. Как правило такого рода программы содержат в себе определенный игровой сюжет. Это сюжет состоит в том, что учащемуся предлага- ется самому создать и ввестси в ЭВМ в виде программы алгроритм по- ведения некоторого управляемого объекта ( черпашка-робот, муравей, карандаш- чертилка и т.д.). При этом данный объект может двигаться на экране дисплея персональной ЭВМ и совершать там определенного рода действия ( рисование следа, печать букв и цифр, перемещение рисунков и т.д. ). Любая такая программа имеет язык команд, который с одной стороны, достаточно близок к одному из языков программирования( Паскаль, Бэйсик, АДА ) а, с другой стороны, был достаточно прост чтобы изу- чение этого языка было посильно учащимся. Таким путем удается раз- делить между собой методическую задачу обучения основам алгоритми- зации и методическую задачу обучения одному из этих конкретных языков программирования. Раздельно эти задачи решаются значительно легче и эффективнее. Первым примером такого рода программы- исполнителя, получившим ши- рокую известность стала программа реализующая язык ЛОГО. Примера- ми таких программ является также программы "Робот" и "Чертежник", встроенные в Е-практикум для классов КУВТ-86, "УК-НЦ", "Корвет", "Ямаха", производства Мехмата МГУ. Такими примерами являются так- же программа "Муравей", встроенная в систему "Школьница" для ЭВМ "Агат" и программа "робот", встроенная в систему "Рига". Общепризнанно, что наличие в программном обеспечении терминаль- ного класса качественной программы- исполнителя намного облегчает учителю преподавание курса информатики. К сожалению, до сих пор ощущается острая нехватка качественных учебных программ для оте- чественных терминальных классов. Существующие программы- исполни- тели весьма увязвимы для критики как технической так и методичес- кой. Все эти обстоаятельства побудили автора статьи приложить усилия к созданию программы-исполнителя для терминального класса КУВТ-86, которая бы соответствовала потребностям учебного процесса и соб- ственным его представлениям о том каким следует быть таким прог- раммам. В результате проделанной работы была создана программа- исполни- тель ROBOT. Программа была написана на ассемблере БК-0010 и тран- слирована в коды БК-0010. Поэтому программа пригодна для всех ти- пов и модификаций классов КУВТ-86. Данная статья посвящена описанию программы исполнителя ROBOT и методическим рекомендациям по ее применению. Эта статья является фактическим продолжением статей [1] и [2]. 2. Основные положения программы- исполнителя ROBOT. Программа- исполнитель ROBOT предназначена для выработки у уча- щихся элементарных навыков составления алгоритмов и работы с ними. Порядок работы с программой выбран с таким расчетом, чтобы макси- мально облегчить учащимся и учителю работу с ней, т.е. программа оборудована интерфейсом, дружественным пользователям . Переменных и параметров в языке программы- исполнитеря ROBOT нет, т.к. по мнению автора статьи введение этих понятий сразу же на этапе первоначального изучения простейших понятий алгоритмизации преждевременно и методически не оправдано. Основные положения программы- исполнитея ROBOT таковы. Робот- это управляемое устройство, которое может выполнять составленную для него прогамму. Аналогичными устройствами являются, например, исполнительный орган станка с числовым программным упрвлением ( сверло, резец и т.д. ), робот- разведчик, доставленный на другую планету или опущенный в глубины океана. Робот может передвигаться по прямоугольному полю, которое состо- ит из клеток и имеет размеры 30 клеток по горизонтали и 20 клеток по вертикали. В каждой из этих клеток может содержаться любой сим- вол, имеющийся на клавиатуре БК-0010. Изначальное содержимое кле- ток таково- все клетки, расположенные вдоль границы поля заполнены звездочками, а все остальные клетки заполнены пробелами. Изначаль- ное положение робта - самая верхняя и левая из заполненных пробе- лами клеток. Направления движения робота и их ориентация те же, что и на ге- ографической карте- сверху север, снизу юг, слева запад, справа восток. Исполняя команды управляющго им алгоритма, робот может двигаться по клеткам поля. Выход робота за пределы поля не допускается. Счи- тается, что это приводит к аварии робота. Находясь в любой клетке, робот может нарисовать в ней любой символ, имеющийся на клавиатуре БК-0010. Кроме того, находясь в любой клетке, робот может прочесть в ней, а также в соседних с ней клетках, содержащийся там символ и в зависимости от него предпринять те или иные действия, напри- мер, заменить его на другой. Программы, написанные на языке программы- исполнителя ROBOT везде в дальнейшем будут называтся алгоритмами. Процесс выполнения этих программ встроенным в программу- исполнитель ROBOT интерпретатором будет называться исполнением алгоритмов. Это не должно создать терминологической путаницы, т.к. основным назначением и целью этих программ является отработка навыков создания работы с алгоритмами, которые они реализуют. В памяти программы- исполнителя ROBOT может находится несколько алгоритмов одновременно. Как правило одни из них вызывают другие в качестве вспомогательного. Алгоритм для этого исполнителя состоит из строк. В каждой из этих строк может быть записана не более чем одна команда. Каждая команда состоит из групп служебных слов. Группы служебных слов на- бирается путем нажатия одной - единственной клавиши, называемой ключевой клавишей. Как правило, это клавиша с буквой, с которой начинается первое или основное из служебных слов этой группы. При нажатии ключевых клавиш регистры, установленные на БК-0010 ( заг- лавный, строчный, русский, латинский ) не имеют никакого значения. Попытка набрать в команде служебное слово, которого там, согласно правилам языка, не может быть приведет к автоматическому уничтоже- нию команды, которую делается попытка набрать, и необходимости на- бирать ее заново. По этой причине создать алгоритм, содержащий синтаксические ошибки невозможно, что методически весьма ценно. После завершения набора очередной команды курсор автоматически перемещается в первую колонку следующей строки. В процессе работы с программой с программой- исполнителем ROBOT, в любой момент, когда курсор установлен в первой колонке, можно получить на экран подсказку- список всех служебных слов, нажав клавишу ИНД СУ. Буквы, соответствующие ключевым клавишам, будут выделены в этом списке ярко белым цветом ( на цветных мониторах этот цвет выглядит как красный). Этот список называется кадром по- мощи или хелп- кадром. Ознакомившись с кадром помощи, можно вер- нутся к продолжению работы с программой, нажав любую клавишу. Если с помощью ключевых клавиш уже набран некоторый текст, алго- ритма то по первой его колонке можно свободно перемещать курсор, используя для этого клавиши "стрелка вверх" и "стрелка вниз". Если к БК-0010 подключен манипулятор "джойстик", то его можно использо- вать вместо этих "стрелочных" клавиш. Если курсор стоит в первой колонке любой строки текста алгоритма, то нажатие на любую ключевую клавишу приведет к автоматическому вставлению в текст новой строки и занесению туда соответствующей этой клавише группы служебных слов. Если будет нажата клавиша, ко- торая не является ключевой, то никаких действий выполнено не будет. Будет лишь выдан звуковой сигнал как сообщение об ошибке. Если курсор стоит в первой колонке текста какого- либо алгоритма, то, нажатие на клвишу ВС приведет к удалению команды, которая сто- ит в этой строке. Если эта команда занимает более чем одну строку ( см. ниже ) то будут удалены все эти строки со всем их содержимым. 3. Начало работы с программой-исполнителем ROBOT. Программа ROBOT обычным порядком пересылается в БК-0010 по сети связи класса. Существует вариант этой программы ( под именем ROBOTL), загружаемый с кассетного магнитофона и использующий его для ввода- вывода ( см. ниже ). После запуска на экране появится заставка программы, на которой написано имя программы и указание на то, что в ходе дальнейшей ра- боты пользователь может в любой момент получить на экран полный список команд и ключевых слов программы с их краткой аннотацией, нажав клавишу ИНД СУ. В верхней части заставки помещен фирменный знак разработчика- АЛТ. После ознакомления с заставкой следует начать работу с программой, нажав любую клавишу клавиатуры БК-0010. После этого на экране поя- вится заготовка будущей программы, которая имееи вид: алг ( 1 ) дано ( 2 ) надо ( 3 ) нач кон <конец текста> Курсор будет установлен сразу после служебного слова "алг". Это означает приглашение ввести имя будущего алгоритма. Для того чтобы набрать это имя достаточно ввести любую последовательность букв ( как русских или латинских ) и цифр и нажать клавишу ВВОД. Мож- но не вводя ничего просто нажать клавишу ВВОД и тогда имя будуще- го алгоритма будет пустым. После ввода имени алгоритма установится в певую колонку строки ( 2 ), т.е перед служебным словом "дано". Эта строка предназначена для аналогичной записи туда текстоваго комментария, характерезую- щего начального положения робота ( см. ниже ). Для того чтобы набрать этот комментарий следует нажать клавишу "стрелка вправо", что приведет к установке курсора сразу после служебного слова "дано" . После этого следует набирать коммента- рий. Он может имет, например, следующий вид: РОБОТ В ЛЕВОМ ВЕРХНЕМ УГЛУ ПОЛЯ Этот комментарий может быть и пустым, если его не набирать и пере- местить курсор в другую строку. После ввода этого комментария курсор аналогичным образом устано- вится в строку ( 3 ). Эта строка предназначена для аналогичной за- писи туда текстового комментария, характерезующего требуемое ко- нечное положение робота ( см.ниже ). Например, он может иметь вид: РОБОТ В ПРАВОМ НИЖНЕИ УГЛУ ПОЛЯ Аналогично этот комментарий может быть и пустым. При исполнениее алгоритмов ( см. ниже ) содержимое строк ( 2 ) ( 3 ) не анализируется и нигде не используется. Поэтому оно может быть произвольным. Однако из методических соображений рекоменду- ется либо использовать эти строки по назначению, либо оставлять пустыми ( особенно если остро стоит вопрос о экономии времени на занятиях ). 4. Язык команд исполнителя ROBOT. Самой простой командой программы- исполнилеля ROBOT является ко- манда "Сигнал". Синтаксис ее прост: Сигнал и ее ключевой клавишей ( см. выше )является, естественно клавиша "С" . При ее исполнении робот просто выдает звуковой сигнал - гу- док. Важной командой является команда " рисуй ".." . Синтаксис ее ана- логично прост: Рисуй ".." По нажатию ключевой клавиши "Р" появится служебное слово "Рисуй ".." и курсор установится между кавычек. После этого следу- ет нажать на клавишу содержащую символ( т.е букву, цифру или знак), который предполагается нарисовать в текущей клетке. Этот символ появится в этом месте и курсор переместится в первую колонку сле- дующей строки. При выполнении этой команды робот нарисует содержа- щийся в этой команде символ в той клетке, где он в данный момент находится. Основной командой программы- исполнилеля ROBOT является команда "Шаг на" . Синтаксис ее ( т.е. правило ее написания ) таков : Север Юг Шаг на Запад Восток Данная запись означает, что данная команда состоит из двух служеб- ных слов - первым из них может быть "Шаг на", а вторым одно из че- тырех служебных слов: "север", "юг", "запад" или "восток". Выделе- ние букв красным цветом означает что соответствующие им клавиши являются ключевыми, ( см. выше ) Это значит, что для того чтобы набрать на экране команду вида "шаг на юг" достаточно последова- тельно нажать клавишу "Ш"( что приведет к появлению на экране слу- жебного слова "Шаг на" ) и клавишу "Ю" ( что приведет к появлению служебного слова "Юг" ). Ниже будет применяться аналогичная форма представления синтаксиса ( т.е. правил записи ) команд. При этом пояснения, что красным цветом выделены буквы соответствующие ключевым клавишам, уже де- латься не будут. При выпополнении команды "Шаг на" робот перемещается в соседнюю клетку в указанном в команде направлении. Содержимое клетки не имеет никакого значения. Попытка с помощью этой команды вывести робота за пределы поля приведет к выдаче сообщения об ошибке и прекращении выполнения алгоритма ( см. выше ). Приведем небольшой пример. Выполнение программой- исполнителем ROBOT нижеследующего алгоритма приведет к тому, что робот подаст сигнал, сместится четыре раза на восток ( т.е. вправо ), оставляя за собой след в виде слова РОБОТ, а затем снова подаст звуковой сигнал. алг ЗАПИСЬ НА ЭКРАНЕ СЛОВА "РОБОТ" дано РОБОТ В ИСХОДНОМ ПОЛОЖЕНИИ надо НАПИСАТЬ НА ЭКРАНЕ СЛОВО "РОБОТ" нач сигнал рисуй"Р" шаг на восток рисуй"О" шаг на восток рисуй"Б" шаг на восток рисуй"О" шаг на восток рисуй"Т" сигнал кон Результаты исполнения алгоритма ЗАПИСЬ НА ЭКРАНЕ СЛОВА "РОБОТ". Начальное состояие поля Конечное состояние поля с е в е р с е в е р ****************************** ****************************** *$ * *РОБОТ$ * * * * * з* *в з* *в а* *о а* *о п* *с п* *с а* *т а* *т д* *о д* *о * *к * *к * * * * * * * * ****************************** ****************************** ю г ю г Простейшая форма команды повторения в языке команд программы- исполнителя ROBOT - это команда "Выполнить ... раз" . В этой команде, как и во всех аналогичных командах программы- исполни- теля ROBOT, служебное слово нц ( начало цикла ) для экономии строк алгоритма записывается в той же строке, что и сама команда. На ключевые клавиши это не влияет. Команда "Выполнить ... раз " имеет следующий синтаксис: нц Выполнить ... раз ( 5 ) нц . кц Ключевой клавишей этой команд является клавиша "В". После нажатия на эту клавишу на экране автоматически появляется группа служеб- ных слов ( 5 ) и курсор устанавливается на место многоточия. Пос- ле этого следует набрать число повторений цикла. Оно может быть только фиксированным целым числом от 0 до 99. Если это число сос- тоит из одной цифры, то вместо второй следует нажать на клавишу ВВОД. После ввода числа повторений курсор установится в первую колонку строки, следующей после служедного слова "нц" . После этого следует вводить команды, которые будут стоять внутри данно- го цикла, т.е. между служебными словами "нц" и "кц". Все эти ко- манды будут вставляться в автоматически сдвинутыми на одну пози- цию вправо, а в освободившуюся позицию вставляется точка. Этим подчеркивается то, что они являются вложенными в команду повторе- ния. При выполнении данной команды быдет произведено повторение ука- занное в команде число раз всех вложенных в нее команд. Например, выполнение фрагмента алгоритма вида: нц выполнить 10 раз .рисуй "*" .шаг на восток кц приведет к тому, что робот сместится на 10 клеток на восток, ос- тавляя за собой след из звездочек. Другая форма команды повторения - это команда "пока ..." . Син- таксис ее таков: Севере Юге Западе Не На Востоке нц Пока Под ногами "..." . кц Эта запись означает, что для того чтобы набрать эту команду сле- дует нажать на клавишу "П", что приведет к автоматическому появ- лению на экране группы служебных слов "пока", "нц" и "кц". После этого курсор установится на одну колонку правее слова "пока". После этого следует нажать либо на ключевую клавишу "Н", что при- ведет к автоматической вставке служебного слова "на", или же на- жать на ключевую клавишу "П", что приведет к автоматической вставке служебного слова "под ногами". Если вставлялось служеб- ное слово "на", то после этого следует нажать на одну из ключе- вых клавиш "С","Ю","З","В",что приведет к автоматическому встав- лению служебных слов "севере", "юге", "западе" и "востоке" соот- ветственно. После этог курсор сместится на одну позицию правее от последнего из введенных служебных слов. Далее следует нажать ключевую клавишу "Н", что приведет к автоматическому вставлению служебгого слова "Не", или любую другую клавишу, что приведет к тому, что это слово вставлено не будет. После этого курсор сме- стится вправо и установится между кавычек. После этого следет ввести символ, наличие или отсутсвие которого должно проверяться в текущей клетке. После этого курсор переместится в первую колонку следующей стро- ки и можно приступать к вводу команд, которые должны стоять внут- ри цикла, т.е. между этой командой и служебным словом "кц" . Принцип работы команды "пока .." очень прост - робот проверяет записанное в этой команде условие и, если оно справедливо, вы- няет команды, входящие в соответствующий этой команде цикл. По- том снова проверяется это же условие и повторяются аналогичные действия и т.д. Если же указанное в команде условие оказалось не справедливо, цикл не выполняется и выполнение прогаммы продолжа- ется с команды, следующей за циклом. Это может привести к тому, что этот цикл вообще не будет выполняться ни разу. Например, выполнение нижестедующего алгоритма алг СЛЕД ВДОЛЬ ВЕРХНЕЙ СТРОКИ дано РОБОТ В ИСХОДНОМ ПОЛОЖЕНИИ надо ОСТАВИТЬ СЛЕД ВДОЛЬ ВЕРХНЕЙ СТРОКИ ПОЛЯ нач нц пока под ногами не "*" .рисуй "0" .шаг на восток кц приведет к тому, что робот будет двигаться на восток, оставляя за собой след из нулей, до тех пор, пока не прйдет в клетку поля, где содержится звездочка, что и произойдет на границе поля. Результаты исполнения алгоритма СЛЕД ВДОЛЬ ВЕРХНЕЙ СТРОКИ". Начальное состояие поля Конечное состояние поля с е в е р с е в е р ****************************** ****************************** *$ * *0000000000000000000000000000$ * * * * з* *в з* *в а* *о а* *о п* *с п* *с а* *т а* *т д* *о д* *о * *к * *к * * * * * * * * ****************************** ****************************** ю г ю г Команда ветвления в исполнителе ROBOT имеет вид - это команда "если ..." . Она имеет следующий синтаксис: Севере Юге Западе Не На Востоке Если Под ногами "..." то . иначе . все Порядок ее набора на экране совершенно аналогичен набору команды "пока ..." с той лишь разницей, что первой нажимается ключевая клавиша "Е" . После набора команды "если ..." курсор переместится на следующую за ней строку. После этого следует вставить команды, которые пред- полагается разместиь между служебными словами "то" и "иначе" и, если нужно, команды, котрые предполагается разместить между слу- жебными словами "иначе" и "все" ( этих команд может и не быть). Принцип выполнения этой команды прост - робот проверяет справед- ливость записанного в этой команде условия и если оно справедли- во, то выполняет команды, стоящие между служебными словами "то" и "иначе". В противном случае выполняются команды, стоящие между служебными словами "иначе" и "все". Если их таманет, то в этом случае не делается ничего. Приведем пример совместного использования команд повторения и ветвления. Нижеследующий фрагмент алгоритма обеспечивает обход роботом всего поля, начиная со своего исходного положения ( левый верхний угол поля) и замену во всех клетках символа "0" ( где он есть ) на символ "1" . Для ясности сопроводим каждую команду ком- ментарием. Коментарии каждой команды -+---------------------------- | нц выполнить 20 раз | Цикл по пербору строк поля. .нц выполнить 30 раз | Цикл по движению по строке. ..если под ногами "0" то | Проверка нет ли символа 0. ...рисуй "1" | Если есть, то замена его 1. ..иначе | Если нет, то не делать ..все | ничего, но в ..шаг на восток | любом случае шаг на восток. .кц | Конец цикла по строке. .шаг на юг | Сдвиг на следующую строку. .нц выполнить 30 раз | Цикл по возврату робота в ..шаг на запад | левый край текущей строки. .кц | Конец этого цикла. кц | Конец цикла перебирающего | строки поля. Чтобы этот фрагмент алгоритма работал, нужно чтобы по полю были каким-то образом расставлены нули. Это можно сделать другим прог- раммным фрагментом или используя имеющуюся в программе- исполните- ле возможности редактирвания поля, по которому движется робот ( см. ниже ). Несколько особой является команда вызова вспомогательного алго- ритма "Исполнить". Для набора ее на экране следует нажать ключевую клавишу "И" . В ответ на это курсор сметится на несколько позиций вправо в соответствии с вложенностью данной строки в конструкции "если " и циклы. После этого следует набрать имя вспомогателного алгоритма, который следует вызвать. Таким образом, эта команда не имеет служебного слова ( точнее ее служебное слово состоит из пус- той последовательности символов) хоть и имеет ключевую клавишу. Допускается рекурсивный вызов вспомогательных алгоритмов, т.е. вызов алгоритмом самого себя ( непосредственно или через другой вспомогательный алгоритм ). Предельно допустимая глубина рекурсии- 300 вызовов. В случае если это ограничение будет нарушено, выпол- нение алгоритма будет прекращено и выдано диагностическое сообще- ние "Переполнение стека". Команда "алг ...." используется для вставки заготовки будущего вспомогательного алгоритма. Эту команду можно вставить только до или после уже набранного алгоритма ( алгоритмов ). Поэтому, прежде чем нажимать эту ключевую клавишу следует установить курсор либо в строку где уже стоит служебное слово "алг" , либо в строку, где стоит сообщение "< конец текста > ". После нажатия этой ключевой клавиши перед строкой, в которой стоит курсор будут вставлена группа служебных слов, аналогичная ( 1 ) и курсор установится пос- ле служебного слова "алг .." . После этого следует набрать имя данного вспомогательного алгоритма и нажать клавишу ВВОД. По этому имени этот алгоритм потом может быть вызван командой "исполнить". Содержимое строк "дано" и "надо" имеет тот же смысл, что в основ- ном алгоритме и заполняются аналогичным образом ( см. выше ). В вспомогательном алгоритме допускаются те же команды, что и в основном алгоритме. Допускается также вызов из него других вспомо- гательных алгоритмов и даже основного, т.е. рекурсия ( см. выше ). В памяти программы может одновременно хранится несколько алгорит- мов как основных, так и вспомогательных. Вспомогательные алгоритмы могут записыватся как до, так и после основного. Любую из набранных на экране БК-0010 команд можно откорректи- ровать. Для этого следует устаномить курсор в первую колонку той строки, где стоит эта команда и нажать клавишу "стрелка вправо" или же, ( что тоже самое ) сдвинуть вправо ручку джойстика. Кур- сор установится в то же положение, которое возникает после нажа- тия первой ключевой клавиши корректируемой команды. После этого, используя обычные ключевые клавиши, можно изменить содержимое команды, например изменить условие в команде "пока.." или число повторений цикла в команде "выполнить..." . Приведем пример алгоритма использующего вспомогательный. С помо- щью этого алгоритма робот рисует узор состоящий из пяти квадратов, расположенных вдоль диагонали поля. При этом каждый из этих квад- ратов имеет размер три на три клетки и заполнен звездочками. Для ясности будем аналогично комментировать его команды. Коментарии каждой команды +------------------------ алг ТРИ КВАДРАТА ПО ДИАГОНАЛИ | Заголвок основного алгоритма. дано РОБОТ В ИСХОДНОМ ПОЛОЖЕНИИ | Комментарии. надо РОБОТ НАРИСОВАЛ ТРИ КВАДРАТА | Комментарии. нач | нц выполнить 3 раз | Цикл по рисованию квадратов . квадрат | Вызов алгоритма КВАДРАТ. кц | Конец этого цикла. кон | | алг КВАДРАТ | Заголоваок алгоритма КВАДРАТ дано РОБОТ ПОСРЕДИ ПОЛЯ | Комментарии. надо НАРИСОВАТЬ КВАДРАТ 3*3 | Комментарии. нц выполнить 3 раз | Цикл по строкам квадрата. .нц выполнить 3 раз | Цикл по рисованию строки ..рисуй "*" | Рисование в клетке звезды ..шаг на восток | и шаг на восток. .кц | Конец цикла рисования строки. .шаг на юг | Сдвиг на другую строку. .нц выполнить 3 раз | Цикл по возвращению робота в ..шаг на запад | начало строки квадрата. .кц | Конец этого цикла. кц | Конец основного цикла. шаг на восток | Выход в исходную позицию для шаг на юг | рисования нового квадрата. кон | Конец алгоритма КВАДРАТ. Результаты исполнения алгоритма ТРИ КВАДРАТА ПО ДИАГОНАЛИ. Начальное состояие поля Конечное состояние поля с е в е р с е в е р ****************************** ****************************** *$ * **** * * * **** * з* *в з**** *в а* *о а* *** *о п* *с п* *** *с а* *т а* *** *т д* *о д* *** *о * *к * *** *к * * * *** * * * * $ * ****************************** ****************************** ю г ю г 5. Исполнение алгоритмов. После того, как алгоритм создан, он может быть исполнен. Исполне- ние алгоритма программой- исполнителем ROBOT всегда начинается с той строки, в которой в данный момент стоит курсор. Поэтому, преж- дечем переходить к исполнению алгоритма, следует установить курсор в строку, в которой стоит служебное слово "алг ..." того алгорит- ма, который предполагается исполнить. Почти всега такой строкой является самая первая строка имеющегося в памяти программы- испол- нителя ROBOT текста алгоримов. На эту строку курсор может быть ус- тановлен автоматически, если нажать клавишу СБР ( на пленочной клавиатуре это клавиша СБР/РП ). Очень важно, чтобы учащиеся это помнили, т.к. иначе возможны недоразумения из за того, что у них алгоритм начнет выполняться не с той строки. В программе- исполнителе ROBOT предусмотрены три режима исполне- ния алгоритмов: пошаговый, медленный, и быстрый. При любом режиме исполнения на экране появляется изображение поля и робота на нем. Робот изображается в виде белого прямоугольника, подобного курсору. На экране БК-0010 можно наглядно видеть процесс исполнения алгоритма роботом. По завершению исполнения алгоритма внизу под изображением поля появится сообщение: "Нажмите любую клавишу". Если в ответ на это нажать на какую-либо из клавишь кла- виатуры БК-0010, то на экране опять появится текст алгоритма, ко- торый только что исполнялся. Его можно изменить, откорректировать, исправить в нем недоработки, если они там есть, и запустить на выполнение вновь. Для того, чтобы исполнить алгоритм в пошаговом режиме следует на- жать на клавишу ШАГ. При этом будет выполнена лишь одна команда исполняемого алгоритма и она будет высвечена в строке, находящейся снизу под изображением поля. Повторное нажатии на клавишу ШАГ при- ведет к выполнению следующей команды алгоритма и аналогичному ее высвечиванию и т.д. Так можно по шагам исполнить весь алгоритм. Такой способ исполнения алгоритмов является самым медленным. Он рекомендуется при самом первом знакомстве учащихся с алгоритмами и при поиске ошибок в сложных алгоритмах. Для того, чтобы исполнить алгоритм в режиме медленного исполнения следует нажать на клавишу КТ. На БК-0010 с пленочной клавиатурой это синяя клавиша в верхней части клавитуры, на которой ничего не написано. Медленное исполнение алгоритма эквивалентно его пошаго- вому исполнению, при котором клавиша ШАГ неперывно нажимается со скоростью примерно один раз в секунду, т.е. учащиеся освобождаются от необходимости делать это. Режим медленного исполнения хорош тем, что при таком темпе исполнения легче и удобнее следить за процессом движения робота по полю. Этот режим рекомендуется ис- пользовать при отладке алгоритмов. Для того чтобы исполнить алгоритм в быстром режиме следует нажать на клавишу ПОВТ. При этом алгоритм начнет исполняться со скоростью примерно 30 строк в секунду. В строке внизу под полем ничего выс- вечиватся не будет. Этот режим рекомендуется использовать при ра- боте с большими алгоритмами и при исполнении уже отлаженных алго- римов. При любом режиме исполнения алгоритма оно может быть в любой мо- мент прервано, путем нажатия на любую клавишу клавиатуры БК-0010 ( кроме клавиши ШАГ при пошаговом режиме ). 6. Редактирование поля. Поле по которому движется робот может быть отредактированно, т.е. изменено срествами самой программы- исполнителя ROBOT. При этом может быть изменено изначальное содержимое любых клеток поля а также исходное положение робота на поле. Для того чтобы перейти в режим редактирования поля следует нажать на клавишу БЛОК РЕД. В ответ на это на экране появится изображение поля и изначальное положение робота на нем. После этого можно, ис- пользуя клавиши "стрелка вправо", "стрелка влево", "стрелка вниз" и "стрелка вверх" или эквивалентные этим клавишам движения ручки джойстика, свободно перемещать робота по полю. В любую из этих клеток в которой установился робот, можно вписать любой символ, имеющийся на клавиатуре БК-0010, нажав на соответствующую клавишу. Если соданное заполнение клеток поля по каким-то причинам совер- шенно не устраивает пользователя, то можно его полностью очистить, нажав на клавишу СБР ( на пленочной клавиатуре это клавиша СБР/РП ) и начать его строить заново. Так можно создать для робота некоторый лабиринт и поставить уча- щимся задачу создать алгоритм, связанный с прохождением робота через этот лабиринт или с поиском там какого либо предмета. После того как клетки поля заполнены желаемым образом следует ус- тановить робота в ту клетку, которая станет теперь клеткой его исходного положения ( чаще всего это будет клетка в левом верхнем углу поля ) и выйти из режима редактирования поля. Для этого выхо- да следует нажать клавишу ВВОД. Отредактированное поле можно пов- торно редактировать. 7. Команды ввода - вывода. Возможности программы- исполнителя ROBOT позволяют записывать на созданные тексты алгоритмов и отредактированные поля на диск тер- минального класса или на магнитофон в виде файлов и хранить их там продолжительное время . В случае надобности их можно вновь считать в программу- исполнитель ROBOT для нового использования. Для записи на диск ( или магнитофон для программы ROBOTL ) тек- стов отредактированных полей или текстов алгоритмов используется команда "запись...". Синтаксис ее таков: Текста Запись Имя ? < имя файла > Поля Для того чтобы набрать эту команду на экране следует нажать клю- чевую клавишу "З". После этого на экране снизу освободится строка и там появится служебное слово "Запись" . После этого следует на- жать либо на ключевую клавишу "Т", если следует произвести запись текста алгортма, либо на ключевую клавишу "П", если следует про- извести запись поля. В первом случае на экране появятся служебное слова "Текста" , а во втором случае служебное слово "Поля". В лю- бом случае после последнего служебного слова появится запрос: "Имя ? " . В ответ на это следует ввести имя файла в виде кото- рого этот алгоритм или поле должен быть записан на диск ( магни- тофон ). Это имя должно состоять из от одной до шести латинских букв и десятичных цифр. Расширитель имени файла можно не указы- вать. Программа- исполнитель ROBOT записвает на диск тексты алго- ритмов в виде файлов с расширителем .ROB , а поля в виде файла с расширителем .POL . После набора имени нужно нажать на клави- шу ВВОД. После этого автоматически произойдет указанная в команде запись. При этом на ДВК должна работать программа связи NET.SAV или универсальная программа связи VDISK.SAV, пригодная для всех типов классов. Если запись производится на магнитофон, то он дол- жен быть включен на запись. Для чтения с диска ( или магнитофона для программы ROBOTL ) ра- нее записанных туда полей или текстов алгоритмов и используется команда "чтение...". Синтаксис ее таков: Текста Чтение Имя ? < имя файла > Поля Для того чтобы набрать эту команду на экране, следует нажать клю- чевую клавишу "Ч". Во всем остальном работа этой команды совершен- но аналогична команде "запись..". С той лишь разницей, что вместо записи происходит чтение и набирать следует имен тех файлов, кото- рые присутствуют на диске ( ленте ). При чтении с диска имя анало- гично можно не набирать расширитель имени файла, т.к. он подразу- мевается по умолчанию ( см. выше ). Описанные возможности программы- исполнителя ROBOT позволяют да- вать учащимся задания связанные с работой с ранее составленными алгоритмами или полями а также доработкой их. Записанный на диск текст алгоритма можно распечатать на принте- ре. Для этого следует воспользоватся программой CONLST.SAV ( см. [1] ). Ее следует запустить, как обычную программу на ДВК. На экране ДВК появится список возможных преобразований файлов, кото- рые эта программа может выполнить. Следует выбрать преобразование вида ROB ---> LST, введя стоящий в этой строке номер. После этого на экране появится запрос "Входной файл ? ". В ответ на это сле- дует ввести имя файла, который записан программой ROBOT и который предполагается распечатать на принтере. Расширитель .ROB можно не набирать. После этого появится запрос "Выходной файл ?". Если в ответ на это включить принтер и ввести имя LP: ,то начнется распе- чатка на нем текста алгоритма, содержащегося во входгом файле. Если в ответ на последний запрос нажать клавишу ВК, то на диск будет записан файл с тем же именем что и входной но с расширите- лелем .LST . Если вместо нажатия клавиши ВК ввести имя файла и лишь потом нажать ВК, то этот файл будет записан под введенным именем. В этом файле будет содержаться в формате обычных текстовых файлов ДВК текст алгоритмов, записанных во входном файле. Этот файл можно распечатывать обычной командой PRINT или с помощью из- вестной программы постраничной печати PAGER.SAV . На принтере можно распечатать также и отредактированное поле или нарисованный на экране БК-0010 узор, получившийся в результате вы- полнения какого- либо алгоритма. Для этого используется программа PRGRF.SAV . Эта программа позволяет в любой момент распечатать на принтере копию экрана любой из БК-0010 в классе КУВТ-86. Эта прог- рамма разработана Войцеховичем О.О. С известными программами SBKD.SAV и SBKR.SAV она совпадает лишь по своему назначению. Для того чтобы распечатать на принтере копию экрана БК-0010, сле- дует запустиь на ДВК программу PRGRF.SAV . После этого на экране появится запрос: Введите номер БК > ( 6 ). В ответ на это следует ввести номер БК-0010, соержимое экрана ко- торой предполагается распечатать на принтере, и нажать клавишу ВК. На ДВК появится сообщение " БК в режиме передачи" и произойдет пересылка содержимого видеопамяти БК-0010 в память ДВК. После это- го появится запрос Введте имя файла > ( 7 ). Если в ответ на это нажать клавишу ВК, то начнется распечатка на принтере содержимого экрана находящегося в памяти ДВК содержимого экрана БК-0010. Если же в ответ на запрос ( 7 ) вввести имя файла, то это содержимое будет записано на диск в виде файла с этим име- нем. Ранее записанные таким образом на диск файл можно распеча- тать на принтере с промощью этой же программы PRGRF.SAV, если в ответ на запрос ( 6 ) ответить нажатием клавиши ВК, а в ответ на появившийся затем запрос ( 7 ) ввести имя этого файла. Для завершения работы с программой PRGRF.SAV ответить нажатием клавиши <ВК> на оба запроса ( 6 ) и ( 7 ). 8. Рекомендации по методике. Программу- исполнитель ROBOT рекомендуется использовать как сред- ство, на котором призводится первоначальноге обучение учащихся ос- новам алгоритмического мышления и прививаются первые навыки актив- ной творческой работы с персональной ЭВМ. Практика эксплуатации этой программы в терминальных классах Алтайского края показала, ее пригодность для этих целей. С использованием этой программы про- водились также успешные эксперименты по обучению младших школьни- ков ( 4 - 7 класс ) основам алгоритмизации. Использованию в учебном процессе программы- исполнителя ROBOT должно предшествовать первоначальное знакомство учащихся с тер- минальным классом ( инструктаж, работа с простейшей игровой прог- раммой ) и ознакомление учащихся с клавиатурой ЭВМ ( работа с программой "клавиатурный тренажер" ). Если эта программа используется в учебном процессе, то тематичес- кое планирование учебного материала представляется автору статьи следующим образом. Тема 1. Линейные алгоритмы ( 3 часа ). Понятие об роботе -исполни- теле. Понятие об алгоритмах. Форма записи алгоритмов. Ко- манды "шаг...", "рисуй...", "сигнал...".Составление прос- тейших алгоритмов, использующих лишь эти команды, связан- ных с рисованием на экране заданных учителем букв, цифр и надписей. Домашние задания на составление таких алгорит- мов. Ввод этих алгоритмов в ЭВМ. Исполнение их в пошаговом и медленном режимах. Постепенное наращивание объемов и сложности составляемых алгоритмов. Подвод учащихся к логи- ческой необходимости команды цикла. Самостоятельная работа по теме. Тема 2. Алгоритмы с циклами по числу повторений ( 3 часа ). Коман- да повторения "выполнить..." . Форма записи. Составление простейших алгоритмов, использующих эту команду, связанных с движениями робота по экрану и рисованием на экране за- данных учителем фигур, рисунков и орнаментов. Ввод их в ЭВМ и исполнение их в медленном и быстром режиме. Самосто- ятельная работа по теме. Тема 3. Алгоритмы с циклами по условию выполнения ( 2 часа ). Ко- манда повторения "пока..." . Редактирование поля робота. Составление алгоритмов, связанных с поиском на поле неко- торого символа или их сочетания. Составление алгоритмов, использующих вложенные циклы. Ввод и исполнение этих ал- горитмов. Самостоятельная работа по теме. Тема 4. Команды ввода- вывода ( 3 часа ). Порядок использования таких команд. Считывание с диска ранее составленных алго- ритмов, исполнение их, доработка их. Выполнение зачетно- го задания. Запись лучших работ на диск и распечатка на их принтере. Контрольная работа по теме "Алгоритмы для исполнителя ROBOT" ( 1 час. ). Таким образом, программу- исполнитель ROBOT рекомендуется ис- пользовать в течение 12 часов учебного времени, что составляет почти половину учебного времени, отводимого расписанием на пред- мет ОИВТ в 10 классе ( бывшем девятом ). Эти затраты времени себя оправдают. Занятия частично или полностью проводятся в форме работы уча- щихся за терминалами. Задания для самостоятельных работы реко- мендуется заранее подготовить с помощью редактора текстов ( см. [ 1 ] ) и раздать учащимся в начале занятия. Среди учащихся сразу же выделятся несколько человек, которые очень легко и быстро усвоят все команды программы- исполнителя ROBOT, опережая в этом остальную чатсь своего класса. Таким уча- щимся следует позволить работать с программой самостоятельно. За- дание для них может быть связано с построением сложного рисунка или алгоритмом прохождения робота через сложный лабирит. По окон- чанию работы результаты их работы записываются на диск, а в начале следующего урока вновь считываются оттуда для них. Практика показывает, что самое сложное для учащихся- это научить- ся видеть за неподвижными строками алгоритма, тот процесс, который будет происходить при выполнении этого алгоритма. Выработка такого видения - это переход от статического мышления к динамическому. Если учитель смог научить этому учащихся, то по убеждению автора статьи, этот учитель не менее чем наполовину выполнил свою задачу по обучению учащихся основам алгоритмизации и алгоритмического мышления. Разработчики программы будут весьма благодарны за любые рекомен- дации по улучшению как самой программы, так и методики ее исполь- зования в учебном процессе. Разработчики желают успеха всем настоящим и будущим пользовате- лям программы.