Бородатый заявил: "Лично я вижу в этом перст судьбы - шли по лесу и встретили программиста. Мне кажется, вы обречены." — "Вам действительно так нужен программист?" — спросил я. "Нам позарез нужен программист". (А.Стругацкий, Б.Стругацкий "Понедельник начинается в субботу") Глава 1 В которой обсуждается, что такое программа и что означает программировать, намечается путь от алгоритма до программы и выясняется, что общение с исполнителем алгоритма на человеческом языке может привести к неожиданным и нежелательным последствиям. Программист, программа, программируемый, запрограммированный... Все эти слова вам давно известны, но хорошо ли вы понимаете их смысл? Попробуйте объяснить самому себе, что такое программа. Итак, программа — это... Что-то не складывается в определении? Возникли сомнения и неясности? Это не удивительно, ведь вопрос совсем непростой, но нам необходимо в нем разобраться прежде всего. Приступая к изучению языка программирования Logo, на котором мы уже в скором времени начнем писать разнообразные программы, надо ясно представлять, чем же нам предстоит заниматься. Для начала наметим маршрут: ![]() ![]()
В прошлом году мы с вами говорили об алгоритмах и исполнителях. Алгоритм — это предписание, набор точных инструкций (команд), записанных в строгом порядке и направленных на решение поставленной задачи. Того, кто (или То, что) выполняет алгоритм, мы назвали исполнителем алгоритма. Команды, которые может выполнить конкретный исполнитель, образуют систему команд исполнителя (СКИ) . Вспомним примеры алгоритмов и Исполнителей. В дом привезли новый шкаф... То есть, шкафа как такового еще нет, на полу разложены створки, полки, шурупы и прочие детали будущего вместилища одежды и белья. Вы с отцом, следуя подробной инструкции, приступаете к сборке. Здесь инструкция выступает в роли алгоритма, а вы с отцом — его исполнителей. На уроках математики вы выполняете разные вычисления — умножаете и делите столбиком, складываете простые дроби. В этих случаях вы являетесь исполнителями соответствующих алгоритмов. Но исполнителем может быть не только человек. Разнообразные устройства, в том числе и компьютер, также могут выполнять заданные им алгоритмы. Например, "Луноход" — самоходный автоматический аппарат, доставленный на Луну в 1970 году, выполнял сложнейшие алгоритмы, перемещаясь по лунной поверхности и собирая необходимую людям информацию. Прмышленные роботы заменяют людей на производстве, в быту на помощь хозяйкам также приходят устройства, способные действовать по заданным алгоритмам.
— Вы не знаете, как пройти в библиотеку? — Знаю. И ушел... В отличие от устройств, человек является неформальным исполнителем алгоритма. Что это означает? Во-первых, человек не выполняет алгоритм бездумно и формально, соображения здравого смысла часто берут верх, какими бы строгими ни были инструкции. Если ему скажут, идите прямо до второго перекрестка и никуда не сворачивайте, то вряд ли он станет наступать на встречных прохожих и опрокидывать попадающиеся на пути предметы. Во-вторых, человек, даже если он еще мал, обладает определенным жизненным опытом и чем больше этот опыт, тем менее подробным может быть алгоритм. Взрослому человеку достаточно сказать, свари кофе, не объясняя до мельчайших подробностей, как это следует делать. В-третьих, неформальному исполнителю, как правило, известна конечная цель и он к ней стремится, порою уточняя и дополняя алгоритм. Представим себе, что в алгоритме "Доберись до библиотеки" есть такая конечная инструкция: — На всех перекрестках поворачивай направо, пока не увидишь здание библиотеки. Вряд ли, увидев вдали здание библиотеки, исполнитель-человек остановится, как вкопанный. Формальный исполнитель не обладает ни жизненным опытом, ни здравым смыслом, он не стремится к конечному результату и все инструкции алгоритма выполняет буквально, так, как они записаны в алгоритме. Поэтому такого исполнителя мы будем называть бездумным исполнителем или БИ. И если случится так, что наш БИ будет вести себя неразумно, выполнять что-то, не отвечающее нашим намерениям, то винить все-таки придется нам самих себя и искать неточности и ошибки в алгоритме, ведь БИ повинуется не нашим намерениям, а нашим инструкциям.
Исполнитель сможет выполнить алгоритм, если он ему известен, если алгоритм ему сообщили. Для людей важнейшим способом общения является язык. Попадая в чужую страну и не зная национального языка, человек оказывается совершенно беспомощным. На выручку может придти язык жестов, мимика, письмо с помощью рисунков (пиктографическое письмо), но все это только частично улучшает ситуацию. Естественный язык (русский, английский, французский, ...) — основа основ полноценного общения людей. Естественные языки образны и многозначны. Если заглянуть в толковый словарь русского языка, то можно узнать, например, что существует более 20 значений слова "идти". Вот только несколько примеров: Человек идет по дороге; идет дождь; время идет; ей идет это платье; опята пойдут позже, в сентябре; давай, сходим завтра на рыбалку? — идет! В естественном языке совершенно разные понятия могут обозначаться одним и тем же словом. Как правило, человек из контекста (общего смысла текста), порою даже не задумываясь, из всего множества значений слова выделяет именно то, которое имел в виду отправитель сообщения. Но представьте себя на месте формального исполнителя, не вникающего в смысл всего сообщения. Как в этом случае вы будете понимать словосочетания: кислая мина; ранний побег; ели везде; знакомая среда? Те, кто пользовался когда-нибудь электронными переводчиками, знает, какие неожиданные и далекие от смысла оригинала можно получить переводы. Так, например, наш формальный переводчик перевел с английского языка текст, рассказывающий о... Попробуйте сами догадаться, о чем идет речь. Деревянные сделки сегодня — это умирала-вырезка от сосновых фанеры, затем опустился в жидкие химикалии, которые производят легко зажженный, погашаемый совет. Теряетесь в догадках? А речь идет о простой деревянной спичке, но как было объяснить переводчику, что из всех значений слова "match" надо было выбрать не "сделка", а "спичка", из значений слова "tip" — "кончик", а не "совет", что "die" означает не только "умереть", но и "штамповать", не говоря уже о сложностях грамматических конструкций? Для формального исполнителя язык общения не может быть многозначным, для таких исполнителей разрабатывают и используют специальные искусственные языки, где отдельные слова и выражения не допускают различных толкований. ^ Программирование — это процесс перевода алгоритма на язык конкретного исполнителя. Так как разные исполнители владеют разными языками, а один и тот же алгоритм могут выполнять разные исполнители, то на основе одного алгоритма могут быть написаны разные программы. Мы с вами будем изучать язык программирования Logo, но вы, наверное, знаете, что существует много других языков программирования для управления компьютером - Pascal (Паскаль), C++, Basic (Бейсик), Java и другие. Чтобы научиться писать программы на том или другом языке, нужно изучить алфавит, словарь и грамматические правила, по которым строятся предложения в этом языке, при этом не допускаются никакие отклонения от правил написания слов и предложений, иначе исполнитель просто откажется выполнять ваши инструкции и не станет недоумевать и переживать за ошибки, как это делает приятель Мишки из стихотворения А.Шибаева:
^
Исполнитель реализует не намерения программиста, а инструкции программы. "Неправильное" поведение исполнителя или отказ выполнить инструкцию свидетельствуют об ошибках в алгоритме или программе. |
![]() | Утверждаю ректор уо барановичский Понятие алгоритма, основные свойства алгоритма, способы его записи. Условные обозначения в схемах алгоритмов | ![]() | Документы 1. /Что такое хорошо и что такое плохо.doc |
![]() | Документы 1. /Что такое хорошо и что такое плохо.doc | ![]() | Перечень вопросов выносимых на гос экзамены на 4 курсе по специальности Что называется кровотечением? Причины кровотечения. Что такое гемостаз, кровопотеря? |
![]() | Показ навыка что такое навык? Приготовьте оценочную форму чтобы удостовериться, что все ученики достигли ранее оговоренных целей | ![]() | Содержание Введение стр. 3 Глава І договорно-правовая основа образования североатлантического альянса Я думаю, что все со мной согласятся, что на сегодня это одна из главных проблем всего человечества, я подчеркиваю что всего «человечества»,... |
![]() | Тест на честность намерений Перефразируя высказывание Аристотеля, можно утверждать, что если власть не служит народу, то она не может быть прекрасной, потому... | ![]() | Были в газете несколько хороших материалов Езерской Э. А. «Советская, 14», А. Н. Коврей «Пепел и алмаз», что невольно рука сама потянулась к перу Да и время у нас, ветеранов, пенсионеров такое: потихоньку, незаметно уходим из жизни. Поэтому иногда хотелось бы чем-то поделиться,... |
![]() | Урок по теме: Имя числительное. 10 класс. Цели урока Удивить, -влю, -ишь; -вленный (-ен, -ена); сов., кого (что). Привести в удивление, в недоумение. У. неожиданным ответом.// несов.... | ![]() | Януш Корчак право ребенка на уважение Неловко и с трудом влезает ребенок на стул, в коляску, на лестницу; не может достать дверную ручку, посмотреть в окно, что-либо снять... |