Логические функции

Развитие ребёнка и логические функции

Битно Л.Г. д.т.н., лауреат Гос. премии

Много лет, занимаясь разработкой сложных машин уровня роботов, мне приходилось работать с большим количеством  конструкторов. При этом, каждый молодой специалист после ВУЗа, как бы хорошо он там не занимался, должен был пройти определённый этап подготовки, прежде чем он мог генерировать свои собственные технические решения. Молодых специалистов, обладающих хорошей памятью и знаниями, нужно было готовить к такому виду деятельности. Я пришёл к выводу, что анализ даётся людям проще, чем синтез, либо синтезу внимания уделяют  меньше.

Есть три базовых логических элемента И, ИЛИ и НЕ. Ничего сложного эти элементы не представляют, и мы знакомим малышей 4-5 лет с этими функциями на понятийном уровне:

Если тебя назвали «И», сказали, что главный предмет у тебя карандаш и дали в обе руки по карандашу, один из них, ты должен передать дальше. Если у тебя  карандаш только в одной руке, или вообще нет ни одного карандаша, то ты ничего не передаёшь.

Если тебя назвали «ИЛИ», то ты передаёшь один карандаш всегда, как только он появился в любой твоих рук, или в обеих руках будет по карандашу.

Если тебя назвали «НЕ» (т.е. делай всё наоборот), то ты передаёшь карандаш, если тебе его не дали и, наоборот, не передаёшь его, если в твоей руке карандаш. Если кто-то спросит, где взять карандаш, чтобы его передать, если тебе его никто не передавал, будем считать, что он лежал у вас в кармане.

Дети легко запоминают указанные выше условия и действия. Нас же интересует в большей степени абстрактное представление перечисленных выше функций.

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

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

ИЛИ: ; И:; НЕ:

Рис.1

Детей 8-10 лет, некоторые из которых в этом возрасте уже хорошо играют в шахматы, научить перейти от конкретных действий к абстрактным представлениям, задача не слишком сложная, и я не стану даже изучать возможные приёмы, подходящие для этой цели.

Следующая задача - анализ некоторого функционального устройства, которое для детей будем назвать «вычислительной машиной». Учитель рисует вычислительную машину, по примерам Рис 2, 3, 4  или можно дать свой вариант, указывает сигналы на входах, которые он задаёт произвольным образом (на каждом входе должен стоять либо крестик, либо прямоугольник) и ученик должен указать состояние на выходе этой вычислительной машины. Поскольку у ученика есть подсказки, ему не составляет большого труда указать состояния на элементах внутри «вычислительной машины» и на  её выходе.

Для примера возьмём вычислительную машину на Рис 4 и зададим состояние её входов: 1 -  , 2 – Х,  3 -  , 4 – Х. Подставим против всех элементов крестики или прямоугольники в соответствии с заданием и функциям, изображённым на Рис. 1. Получим Рис.5 без каких-либо затруднений.

Продолжим анализ выбранной вычислительной машины и зададим вопрос: будет ли формироваться на выходе этой вычислительной машины квадратик П, при других сочетаниях сигналов на её входах? В результате проверки увидим, что состояния входов: П,Х,П,П; П,Х,П,Х; П,Х,Х,П;  Х,П,П,Х; П,Х,Х,П; :Х,Х,П,П; Х,П,П,Х; П,Х,Х,П дадут также квадратик П на выходе.

Зададим вопрос, можно ли спроектировать такую вычислительную машину, чтобы только одно сочетание сигналов на входе (1 - П , 2 – Х, 3 - П , 4 – Х) давало квадратик П на выходе, а при всех других вариантах сигналов на входах этой вычислительной машины, на выходе формировался Х? – Можно – такая вычислительная машина изображена на  Рис.6.

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

Задача, когда по известным  входным и выходным сигналам требуется сформировать внутреннюю структуру вычислительной машины значительно сложнее задачи анализа состояний при заданной структуре, и кому-то может показаться слишком сложной, хотя, мне кажется, она не сложнее, чем научить ребёнка играть в шахматы. Зато эффект от такого умения налицо – мы научим ребёнка генерировать собственные идеи и решения.

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

Предложить ребёнку одну или более простейших структур вычислительных машин без указания функциональных элементов и задать состояние входов и выходов. Элементы вычислительной машины, имеющие один вход и один выход – это «НЕ». Остальные, либо «И», либо «ИЛИ». Задача решается простым подбором элементов с последующим анализом состояний вычислительной машины. Например, предлагаются три вычислительные машины (Рис 7, 8, 9), состояния входов:   1 - П , 2 – Х, 3 - П и выхода OutX.

Следующее задание, аналогичное предыдущему, но вычислительная машина должна удовлетворять двум или более различным вариантам состояния входов и выходов, например: для состояния входов:  1 - П , 2 – Х, 3 - П выход должен соответствовать  OutX, а для  состояния входов:   1 - Х , 2 – Х, 3 - П выход должен соответствовать  Out –П. 

Очередное усложнение задания – переход к вычислительной машине, имеющей 4 входа и более, например Рис. 10, 11.

И, наконец, осуществляем переход к задачам, не имеющим готовой внутренней структуры. Например, требуется спроектировать вычислительную машину (Рис 12), которая для состояния входов, 1 - Х , 2 – Х, 3 - П формирует на выходе  OutX, а для  состояния входов:   1 - П , 2 – П, 3 - Х формирует на выходе  Out –Х.  Задача не настолько сложная, насколько «страшная», поскольку от тебя требуется принятие решения. А к этому сегодня слабо подготовлены даже учителя.

P.S.  Я дал прочитать статью некоторым учителям. Мне сказали, что в учебнике по информатике для начальной школы логические элементы даются проще, чем у меня.  Я делаю вывод, что цель статьи они не совсем поняли. Попытаюсь пояснить.

  1. Я предлагаю научить детей синтезу логических функций, используя базовые логические элементы. Речь идёт не о массовом обучении детей, а только о тех, кто осознанно (родителями в большей степени, чем детьми) идёт по предлагаемому пути, который я рисую в виде ступенек. При этом реализация поставленных целей может осуществляться любыми эффективными способами и настоящая статья не является разработкой таких способов.

  1. Структура вычислительной машины имеет абстрактное представление, поэтому придётся научить детей формализованному представлению логических элементов, используя для этого все известные приёмы.