[В следующий раз надо попробовать ввести логические значки и значки для значений признаков и оценивать высказывания по сложности.]
В довершение сказанного я, не выдержав, раньше времени вмешался и стал делать утверждения о пустых множествах. Например, когда не было ни одной красной фигуры, я сказал:
— Все красные фигурки — без дырок. Это вызвало бурные дебаты. Когда-то, когда мы занимались «мальчиками и девочками в очках и без очков», мне показалось, что ребята поняли смысл условных утверждений. Конечно, я в тот момент просто зарвался. Но по крайней мере тогда они мне дружно покивали — а сейчас устроили мне твёрдую оппозицию и так и не согласились с моими объяснениями. Одним словом, они молодцы. А я? Всё задание превратилось в сплошную неразбериху.
Задание 2.
Немного программирования — с одним Димой
Я стараюсь не заниматься с Димой отдельно теми задачами, которые мы проходим на кружке, чтобы не создавать несправедливого перевеса в его пользу, он и без того слегка опережает остальных. Но на этот раз он до такой степени пристал ко мне с просьбой «поиграть в робота», что мне просто некуда было деваться. Задачу он поставил себе сам, показав просто начальное и конечное положения (рис. 78).
Рис. 78.
В качестве первой попытки Дима повторил программу, которую мы обсуждали на стр. 91–92 (без последнего поворота). Однако испробовав её (сам), убрал полукруг «конец» и стал добавлять к решению вторую часть. Итоговая программа показана на рис. 79.
Рис. 79.
Фактически ей предшествовало довольно много попыток. В основном все ошибки были той или иной модификацией следующей ошибки. Если надо было произвести какое-нибудь действие, например, «шаг», причём в блок-схеме уже имелся квадратик с оператором «шаг», Дима начинал тянуть стрелку прямо к нему. При этом он не понимал, что после прихода в этот блок ему придётся не только сделать шаг, но и последовать по всей цепочке стрелок, выходящей из этого блока. Я попытался объяснить это ему в явной форме, но в следующий раз он вёл стрелку к блоку проверки условия или к блоку поворота. Ситуация очень трудная: ведь этому приёму я сам их научил, когда советовал вместо пяти операторов подряд «шаг» устроить цикл и возвращаться пять раз к одному и тому же блоку. Выходит, что иногда так можно делать, а иногда — нет, но как провести границу между этими двумя ситуациями, я не знаю. Второй тип ошибки состоял в том, что Дима пытался вывести две стрелки из исполняемого оператора (а не из проверки условия). Я пытался объяснить ему, что такая программа не имеет смысла, так как не ясно, по какой стрелке идти, но он, видимо, потеряв надежду справиться с задачей, только ныл:
— Ну, па-ап! Ну всё-таки давай та-ак!
— Ну а по какой стрелке ему идти?
— Вот по этой.
— А когда он дойдёт до угла?
— Тогда по другой.
— А как же он об этом узнает?
— Я ему скажу…
— А ты сам как узнаешь?
— Увижу, когда будет стенка впереди.
— Так почему бы тебе не сделать проверку, есть стена или нет?
— Но ведь ты же видел, что я делал туда (к первому ромбику) стрелку, и ничего не получалось!
Тут я не выдержал и подсказал ему сделать ещё один ромбик. После этого он справился с задачей.
Сам я попросить новые карточки не решался: мне казалось, что ограниченное количество карточек является одним из ограничений языка. Не зря же папа всегда советовал провести стрелку к уже выложенной карточке «шаг», а не класть новую карточку. —
Кроме того, о чём сказано выше, моя помощь состояла в следующем: во-первых, я вырезал по его просьбе недостающие элементы; во-вторых, я помогал в отладке (т. е. следил за чёткостью исполнения программы); в-третьих, отказывался исполнять синтаксически неверные программы (например, с отсутствующим оператором «конец»).