Главная страница проекта ИНФОРМАТИКА-21

Наука Школе

Главная страничка занятий с 5-классниками   Предыдущее занятие   Следующее занятие

28 апреля 2008. Девятое занятие

До занятия

После дуракаваляльного занятия две недели назад и с учетом прекрасной погоды ожидалось, что эксперимент дошел до логического конца, и 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-классниками   Предыдущее занятие   Следующее занятие

Главная страница проекта ИНФОРМАТИКА-21

Наука Школе