В их основе лежит логическое исчисление, созданное еще в 50–е годы XIX столетия английским математиком Джорджем Булем. Согласно разработанным им правилам, каждому из высказываний приписывают одно из двух возможных значений: «истинно» или «ложно». Кроме того, имеются три связки: «И», «ИЛИ» и «НЕ». Их достаточно, чтобы строить описания нашего мира, скажем, такого типа: «Сегодня я пойду играть в футбол, ЕСЛИ по телевизору не будут показывать мультиков И будет подходящая погода».
Аналогично обстоит дело со связкой «ИЛИ» для высказываний, например, такого рода: «В нашей команде будет хороший вратарь, ЕСЛИ придут играть Витя ИЛИ Вова». Конечно, на футбольное поле могут прийти и оба, и связка «ИЛИ» принимает во внимание и такую возможность. И наконец, проиллюстрируем возможности связки «НЕ»: «Мы, конечно, начнем играть сразу, ЕСЛИ поле НЕ будет занято другими командами».
Все эти высказывания можно без особого труда реализовать с помощью электронных схем. Для этого договоримся интерпретировать истинное высказывание как положение «включено» или «1» и соответственно ложное высказывание будет интерпретироваться как «выключено» или «О».
В таком случае высказывание «И» соответствует двум ключам, соединенным последовательно. На приведенной схеме лампочка загорится, ЕСЛИ будет включен ключ А, и ключ В.
Связка «ИЛИ» соответствует параллельному включению тех же ключей. Здесь лампочка загорится лишь в том случае, если включен или ключ А, или ключ В, или оба вместе.
Наконец, связку «НЕ» можно реализовать, создав контакт для ключа таким образом, что его нормальное положение будет при замкнутой цепи и горящей лампочке. И как только на схему будет подан сигнал, аналогичный тому, который в предыдущих случаях приводит к замыканию цепи, в данном случае цепь будет размыкаться.
Используя подобные схемы, программистам удается заставить ЭВМ вести вычисления и даже рассуждения, опираясь на формальную логику, вполне привычную нам с вами. Как все это реализовалось на практике, мы с вами сейчас и поговорим.
Как поджарить яичницу?
«Ну и вопрос, – скажете вы. – Это же все знают. Надо взять яйца, поставить сковородку на огонь, положить на нее масла... И вообще, какое отношение имеет яичница к теме нашего разговора?»
Сама яичница, может быть, и никакого. А вот процесс ее приготовления – самое непосредственное. Взгляните на схему. Видите, столь простая кулинарная операция при полном перечислении возможных вариантов представляет собой довольно длинное и разветвленное описание последовательности действий. То есть, говоря профессиональным языком, перед вами блок–схема программы приготовления яичницы. Именно такая программа понадобилась бы, если бы вы поручили эту операцию некому роботу–повару под управлением ЭВМ.
Электронная же вычислительная машина, о которой мы ведем речь в этой книге, согласно широко распространенному определению представляет
«Универсальное» означает, что машина способна решать широкий круг задач в зависимости от конкретной необходимости. Понятие «программируемое» как раз подсказывает нам путь к осуществлению такой универсальности – нужно всякий раз подсказывать машине, что именно она будет делать. То есть составить для нее программу действий.
В принципе все мы умеем программировать как свою, так и чужую работу. Понаблюдайте, к примеру, хотя бы за работой шофера, меняющего пробитое колесо. Быть может, сам того не осознавая, он осуществляет свои действия по строго разработанной, последовательной программе. Если вы возьметесь записать действия шофера в качестве инструкции для другого, неопытного водителя, то у вас получится примерно следующее:
1. Поставьте машину на ручной тормоз.
2. Достаньте из багажника домкрат, гаечный ключ.
3. Снимите колпак с пробитого колеса.
4. Ослабьте болты крепления.
5. Поднимите машину на домкрате.
6. Выверните болты, крепящие колесо.
7. Снимите колесо.
8. Достаньте «запаску».
9. Поставьте запасное колесо на место пробитого.
10. Заверните болты.
11. Опустите домкрат.
12. Затяните болты до отказа.
13. Наденьте колпак.
14. Положите домкрат, пробитое колесо и гаечный ключ в багажник.
15. Все, багажник захлопнут, можно ехать дальше.
Собственно говоря, примерно такие же программы составляют и программисты. Только работают по ним не люди, а машины. Чтобы составить такую программу, нужны всего–навсего два качества: во–первых, программист должен cебе хорошо представлять суть описываемого процесса и, во–вторых, быть предельно внимательным, чтобы не пропустить какой–либо частности, не перепутать последовательность операций.
Василий Кузьмич Фетисов , Евгений Ильич Ильин , Ирина Анатольевна Михайлова , Константин Никандрович Фарутин , Михаил Евграфович Салтыков-Щедрин , Софья Борисовна Радзиевская
Приключения / Публицистика / Детская литература / Детская образовательная литература / Природа и животные / Книги Для Детей