Наука — Школе |
Главная страничка занятий с 5-классниками Предыдущее занятие Следующее занятие
До занятия
После дуракаваляльного занятия две недели назад и с учетом прекрасной погоды ожидалось, что эксперимент дошел до логического конца, и info21 попросил Ольгу Александровну подумать, о чем можно доложить на Байтиковской конференции ИТО-Троицк-2008 в конце июня (http://www.bytic.ru), об чем она и принялась размышлять:
Занятие
Но фигуранты бодро явились, правда, в сильно неполном составе (Тима не вернулся из вояжа с родителями, а Лизаветы в школе сегодня не было). Самое удивительное (для info21), что все вполне смирно открыли свои программки и приготовились работать их дальше.
На самом деле info21 еще раньше заходил в класс и
подредактировал им программки на новую Черепашку (вставил их тексты в новую
оболочку из трех строк -- MODULE и т.д. -- см.
картинку в предыдущем занятии
-- а также навставлял префикс "Ч."
перед всеми командами).
В общем, притворились, что на новой черепашке работали с самого начала:
девочки открыли свои программы (Марина домик, Женя звезду) и
принялись их доделывать почти как ни в чем не бывало:
Но все равно пришлось пару новых моментов освоить (явно компилировать
нажатием Ctrl+K и нажимать Ctrl
при клике по коммандеру, если нужно вызвать новую версию программы).
Мелочь и совсем не трудно, но время и внимание отняло -- хотя и не целое
занятие.
Вывод: ясно видно, насколько мешают подобные переходы с переобучением: всё это можно было спокойно с самого начала выучить, пока программы были из двух строчек -- и больше об этом не вспоминать. Вспомнилось выступление Светланы Николаевны Коваль, методиста из Новосибирска, на Томском совещании летом прошлого года: в качестве главного привлекательного свойства Блэкбокса она назвала тот факт, что в рамках одной системы можно провести детей без переучивания практически сквозь всю программу по программированию от самого начала до объектно-ориентированных сложностей.
Вывод-2: реальной нужды для прибамбасов в старой Черепашке (сложносочиненных из умозрительных соображений) не видно.
Вывод-3: новая Черепашка не падает.
Влад выступил в своем репертуаре и учинил "атаку варваров":
Но в этом безумстве была система -- проглядывают повторяющиеся звездчатые структуры:
Это дало повод немножко организовать сей хаос (по крайней мере в программе) с помощью процедур: посмотрев картинки из Гладиатора (который он видел), Влад признал, что порядок бьет бардак. Правда, при первом признаке звонка он быстренько выключился и утек, не дав info21 возможности понять, чего же он в итоге достиг.
Саша, впервые появившийся на прошлом занятии, довольно бодро принялся писать циклы:
правда, маленькими буквами, и успел довольно много наколотить (конечно, не нажимая Ctrl+K, а это надо делать почаще), пока info21 не показал ему трюк с f, F5.
Но идея ввести цикл показалась интересной, и ради любопытства была реализована у Жени и Марины -- тем более, что Анатолий Иванович Попков давно об этом говорил.
Сразу могу сказать, что, похоже, понять простые процедуры без параметров деткам чуть проще, чем цикл. ("Детки" -- любимое словцо Анатолия Ивановича.)
У Марины всё было просто (еще раз: f, F5 -- и разворачивается скелет цикла):
FOR i := 1 TO 9 DO
Дощечка; (* инструкции перехода *)
END;
Понадобилось, конечно, объявить i: INTEGER; после
VAR в разделе объявлений процедуры.
(Ключевое слово INTEGER
не надо набивать целиком, достаточно напечатать
одну букву i и нажать
кнопочку-помощницу F5).
И цикл сразу сработал:
После чего Марина вернулась к своей старой нерешенной проблеме: как рисовать доски слева от дома, если процедурка Дощечка была приспособлена ходить по часовой стрелке, начиная с левого края. Угадать, куда встать черепашке перед каждой дощечкой, не так легко. Марина получила подсказку: попытаться сделать вторую процедуру Дощечка2 для дощечек слева, чтобы дощечки вырисовывались не слева направо, а справа налево. Этой пищи для размышлений Марине хватит и на следующее занятие.
У Жени всё получилось чуть похитрее. Старую звезду мы с самого начала чуть поправили, введя для интереса строчку, вычисляющую угол:
угол := 7 * 360 DIV 11;
с дальнейшей идеей поиграть с числами 7 и 11 на предмет красоты получающихся
звезд.
(DIV -- целочисленное деление с отбрасыванием
остатка. Дробь (/) в
Компонентном Паскале и вообще в Оберонах дает вещественный результат, т.е.
REAL, и его присвоить целой переменной просто так
не получится.)
Сначала у Жени вышло так:
В этот момент можно было ввести цикл, но Женя успела, во-первых, почти
замкнуть звезду (там остался один шаг) -- но звезда замкнулась только почти
(очевидно, из-за ошибок округления).
Во-вторых, весь блок почти замкнутой звезды Женя повторила раз семь, так что
звезда нарисовалась интересно -- "размазалась":
После чего и подошел info21 с идеей вставить циклы -- но здесь их можно вставить сразу два: внутренний для звезды, и внешний для управления толщиной:
FOR i := 1 TO 7 DO
FOR j := 1 TO 11 DO
Ч.Идти(
шаг ); Ч.Повернуть(
угол );
END
END;
Разумеется, i и j нужно объявить после VAR как i, j: INTEGER;
Полная процедура выглядит так:
PROCEDURE Пример*;
VAR угол, шаг, i, j: INTEGER;
BEGIN
Ч.Очистить;
угол := 7 * 360 DIV 11;
шаг := 100;
FOR i := 1 TO 13 DO
FOR j := 1 TO
11 DO
Ч.Идти( шаг ); Ч.Повернуть( угол );
END;
END;
END Пример;
После этого оказалось очень легко управлять толщиной звезды, меняя одно число -- что, конечно, оставляет у новичка ощущение маленького чуда:
На этом энтузиазме девочки сильно задержались в классе после звонка, чтобы поиграть с числами и узорами. Женя остановилась на конфигурации из двух колец, внешнего желтого и внутреннего черного -- узор "подсолнух":
Чтобы получить второе кольцо, достаточно продублировать ту же пару циклов,
изменив значение шага и указав цвет (процедура Ч.ВыбратьЦвет, указана в
справке, которая автоматически у нас открывается).
Но вот правильно вставить одно кольцо в другое оказалось довольно трудно,
нужно поэкспериментировать -- это задание переходит на следующее занятие.
Похоже, что такие игры с программой -- неплохое ненавязчивое упражнение на редактирование текстов. Помним, что команды редактирования в Блэкбоксе -- такие же, как и в других программах: Ctrl+C, Ctrl+V, двойные клики и т.д., так что эта побочная польза далеко идет.
Женя пыталась команды перехода ко второму кольцу вставить внутри тела внутренного цикла. Непонятно, насколько ей понятен смысл цикла, и почему команды вставляются не так, как она порывалась вставить. Видимо, то же можно сказать и про Марину. Хотя слушали обе честно-внимательно. Видимо, выяснение до конца этих вещей -- как раз работа на оставшиеся до лета пару занятий.
Выводы
Еще посмотрим хотя бы
одно занятие, как работается с такой минимальной черепашкой.
Потом уж выкатим ее на публику.
Во всяком случае переход на черепашку-без-выкрутасов прошел успешно на 100%.
Кстати, из Белоруссии пришла посылочка для младших программеров. Видимо, появится на сайте одновременно с этим уроком; см. новости.
Главная страничка занятий с 5-классниками Предыдущее занятие Следующее занятие
Наука — Школе |