Выбрать главу

Рис. 58. Образцы стрелок, выходящих из «ромбиков» логических условий.

6. Начало и конец. Каждая программа начинается полукругом, диаметр которого обращён вниз, и кончается полукругом, диаметр которого обращён вверх. Пока использовались лишь полукруги со словами НАЧАЛО и КОНЕЦ (рис. 59). В дальнейшем, когда появится входная и выходная информация, они будут помещаться именно в эти полукруги.

Рис. 59. Вся программа располагается между этими полукругами.

7. Подпрограммы. Пока подпрограммы никак не использовались. В дальнейшем предполагается использовать их следующим образом:

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

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

Рис. 60. Так будет выглядеть «подпрограмма № 1». Что конкретно она делает, записано в специальной тетради.

Форма элемента, задающего такую вот процедуру-подпрограмму, должна подчеркнуть, что это целая программа, имеющая начало и конец (полукруги) и выполняющая не просто одно действие, а много действий (большой квадрат). Вообще следует обратить внимание на относительные размеры элементов блок-схем. Правильные пропорции между ними необходимо соблюдать для того, чтобы выкладываемые на столе блок-схемы не оказывались «кособокими».

8. Счётчики. В будущем предполагается расширить язык за счёт введения счётчиков. Стёпа предложил организовать счётчик в виде сосуда, в который кладутся шарики. Вопрос об обозначении счётчика на блок-схеме пока не решён. От операторов типа, „"i = 1“ я твёрдо решил отказаться. Сначала у меня была идея обозначить счётчик треугольником с буквой; в блок-схеме приход к треугольнику с буквой А означает: «положить один шарик в баночку с надписью, „А“». Стёпа сказал, что лучше сделать не треугольник, а фигурку, напоминающую по форме тот сосуд, куда кладут шарики. Мысль хорошая, но все баночки и скляночки, оказавшиеся в доступности, имеют цилиндрическую форму, что приводит опять к прямоугольнику. Сейчас я склоняюсь к третьему варианту: на обыкновенном квадрате 3 см X 3 см нарисовать баночку с надписью „А“, шарик и стрелку, показывающую, куда этот шарик класть. Если потребуются операции вычитания из счётчика единицы (извлечение шарика из баночки), то её легко изобразить точно так же (раньше я думал переворачивать треугольник вверх ногами). Оба варианта, и старый и новый, показаны на рис. 61.

Рис. 61. Возможные формы счётчиков.

Введение счётчиков также требует введения новых логических условий: „А = 4“, „А > Б“ и т. д. Только предварительно надо познакомить ребят со значками =, >, < и проч. Никакой другой арифметики (даже сложения) в языке не предполагается.

* * *

Теперь можно, наконец, вернуться к рассказу о занятии, который я прервал на полуслове.

Сначала, когда я поставил на стол коробку со всеми карточками и стрелочками, дети совершенно затопили меня вопросами, так что я едва успевал вставить слово. Всё же постепенно мне удалось объяснить им следующее.

Сначала я объяснил им, что робот — это механический человек; он может делать разные действия, но, в отличие от человека, у него нет своего ума; поэтому он делает только то, что ему велят, и ничего больше; зато он идеально послушный.

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

После этого я объяснил им, что у робота нет глаз (так как механические глаза сделать вообще-то можно, но очень трудно), поэтому он может только протянуть руку и пощупать, нет ли стены рядом с ним. Мы взяли ромбики с условиями и стали для разных положений робота проверять, верно или нет изображённое в ромбике условие. Дима очень к месту подсказал, что условие «стена справа» выполняется и тогда, когда стена с другой стороны, но и робот (стрелка) повёрнут в противоположную сторону по сравнению с ромбиком (рис. 62). Забавно: это означает, что инвариантную (относительно поворотов) структуру понятий «левое» и «правое» он уже усвоил, но пока не может запомнить, что с какой стороны.