Урок 1. Мир алгоритмов и программ

Ты куда пошел? – Куда глаза глядят.

А куда они глядят? – Туда, куда я пошел.

Чудеса житейской логики

С утра до вечера мы разрабатываем и исполняем программы. Но большинство об этом не догадывается, а об алгоритмическом мышлении ничего не слышали. А в школе курс информатики превратили в курсы начинающих пользователей компьютера. И вместо обучения думать, школьников учат нажимать кнопки. Может быть поэтому и программы наши неудачные и исполнители мы никудышные. Значит, нужно учиться!

Мы живём в мире алгоритмов и программ

Алгоритм – совокупность правил, чётко и однозначно определяющих процесс реализации заданной цели. Способов описания алгоритма много – устная речь, письмо, картинки, блок-схема и сочетания этих средств.

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

Алгоритмы и программы не обязательно связаны с ЭВМ. Изобразим в виде блок-схем алгоритмы поведения в простых жизненных ситуациях

Светофор – или как надо понимать сигналы светофора:

Цель – движение. Строго по правилам дорожного движения алгоритм разрешает двигаться только на зеленый свет, а на жёлтый и красный свет, однозначно, ждать. Только так!



Совещание – или как выдать задание всем подчинённым:



Введём обозначения:

– количество подчинённых

– N, порядковый номер (имя) очередного подчинённого – i (1<=i<=N),

– номер возражения i-того подчиненного – j (]<=2, где 2 – предельный уровень Вашего терпения, т. е. больше двух возражений от одного подчиненного вы не терпите.

Для формирования очередных номеров подчинённых и учета количества их возражений в блок-схему введены две особых операции – «счётчики»: i = i+1 и j = j+1. Это означает, что к предыдущему значению данного реквизита добавляется 1.

Алгоритм поведения разбойника с большой дороги

Этот цикл жизни разбойника будет повторяться до тех пор, пока что-нибудь или кто-нибудь не изменит алгоритм его поведения. Но это будет другая история.

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

СЧВ – счетчик вставаний. У разбойника правило – умываться только при 4-м вставании. Поэтому при каждом вставании он кладет в специальную лунку камешек (СЧВ=СЧВ+1) и пересчитывает их общее количество. Если в лунке больше 3-х камешков (СЧВ > 3), разбойник вынимает из лунки все камешки (делает СЧВ=0) и идет умываться, иначе идет есть.

В свободное от работы время к услугам разбойника имеется меню развлечений (девочки, песни, драка). Если его очередь грабить, надо идти грабить!



Наш разбойник будет дисциплинированно стоять на большой дороге в любую погоду и время суток до появления клиентов. А как только они появятся, он обязательно начнет операцию ограбления.

Алгоритм предполагает, что стрельба может быть только после начала операции ограбления. В реальной жизни ситуация будет не такой однозначной. Но это будет совсем другой алгоритм.

Структура алгоритм

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