Урок 1. Мир алгоритмов и программ
Ты куда пошел? – Куда глаза глядят.
А куда они глядят? – Туда, куда я пошел.
Чудеса житейской логики

С утра до вечера мы разрабатываем и исполняем программы. Но большинство об этом не догадывается, а об алгоритмическом мышлении ничего не слышали. А в школе курс информатики превратили в курсы начинающих пользователей компьютера. И вместо обучения думать, школьников учат нажимать кнопки. Может быть поэтому и программы наши неудачные и исполнители мы никудышные. Значит, нужно учиться!
Мы живём в мире алгоритмов и программ
Алгоритм – совокупность правил, чётко и однозначно определяющих процесс реализации заданной цели. Способов описания алгоритма много – устная речь, письмо, картинки, блок-схема и сочетания этих средств.
Программа – описание алгоритма на языке и в терминах системы, реализующей алгоритм. Такой системой может быть человек (хорошая инструкция, чётко сформулированное задание – это программы действий), дрессировка – самое настоящее программирование, машина, способная хранить и исполнять введённую в неё программу.
Алгоритмы и программы не обязательно связаны с ЭВМ. Изобразим в виде блок-схем алгоритмы поведения в простых жизненных ситуациях
Светофор – или как надо понимать сигналы светофора:
Цель – движение. Строго по правилам дорожного движения алгоритм разрешает двигаться только на зеленый свет, а на жёлтый и красный свет, однозначно, ждать. Только так!

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

Введём обозначения:
– количество подчинённых
– N, порядковый номер (имя) очередного подчинённого – i (1<=i<=N),
– номер возражения i-того подчиненного – j (]<=2, где 2 – предельный уровень Вашего терпения, т. е. больше двух возражений от одного подчиненного вы не терпите.
Для формирования очередных номеров подчинённых и учета количества их возражений в блок-схему введены две особых операции – «счётчики»: i = i+1 и j = j+1. Это означает, что к предыдущему значению данного реквизита добавляется 1.
Алгоритм поведения разбойника с большой дороги
Этот цикл жизни разбойника будет повторяться до тех пор, пока что-нибудь или кто-нибудь не изменит алгоритм его поведения. Но это будет другая история.
Рабочий день у разбойников, как известно, начинается с наступлением темноты. В светлое время суток им надо вести себя тихо и лучше всего спать.
СЧВ – счетчик вставаний. У разбойника правило – умываться только при 4-м вставании. Поэтому при каждом вставании он кладет в специальную лунку камешек (СЧВ=СЧВ+1) и пересчитывает их общее количество. Если в лунке больше 3-х камешков (СЧВ > 3), разбойник вынимает из лунки все камешки (делает СЧВ=0) и идет умываться, иначе идет есть.
В свободное от работы время к услугам разбойника имеется меню развлечений (девочки, песни, драка). Если его очередь грабить, надо идти грабить!

Наш разбойник будет дисциплинированно стоять на большой дороге в любую погоду и время суток до появления клиентов. А как только они появятся, он обязательно начнет операцию ограбления.
Алгоритм предполагает, что стрельба может быть только после начала операции ограбления. В реальной жизни ситуация будет не такой однозначной. Но это будет совсем другой алгоритм.
Структура алгоритм
Даже из беглого взгляда на эту блок-схему видно, что она состоит всего из двух видов операций: работа – прямоугольник и выбор – ромбик. Меню развлечений (девочки, песни, драка) – это всего лишь компактная форма записи выбора из множества вариантов. Кроме того, в блок-схеме много стрелок, определяющих последовательность операций. Для описания алгоритма используются всего три алгоритмических конструкции: следование, развилка и цикл. Даже очень сложная программа, в том числе та, которая играет в шахматы, состоит из арифметических и логических операций, образующих сложную систему всего из трёх простых структур: следование, развилка и цикл.
Следование – последовательность операций, в которой завершение предыдущей операции однозначно обозначает переход к последующей (Ложиться спать – Спать – Проснуться; Идти грабить – Стоять на большой дороге).
Развилка – алгоритмическая структура, в которой исполнение или неисполнение определённого условия предыдущей операции определяет последующую операцию (уже темно? СЧВ >3? Моя очередь грабить? Появились клиенты? Стреляют?).
Цикл – алгоритмическая структура, обеспечивающая многократное повторение определённой совокупности операций (в блок-схеме: цикл всего поведения, цикл вставаний без умываний, цикл процесса ограбления и др.).
Кроме того, данная блок-схема включает в себя очень распространённую форму организации цикла – «счётчик» и особую форму выбора из множества вариантов – «меню»
Счётчик – циклическое накопление определяемого по заданной формуле числа. Например, СЧВ = СЧВ + 1. означает, что при каждом вставании в СЧВ добавляется 1. После выполнения своей функции счётчик очищается (обнуляется), т. е. в СЧВ записывается 0.
Меню – способ организации развилки с множеством вариантов перехода.
В обычной жизни мы постоянно пользуемся этими структурами. Просто не знаем их названий. Но это не меняет сути дела. А если скажите, что всё это слишком примитивно, что реальная жизнь значительно сложнее, будете правы. Алгоритм – это модель определенного процесса. А любая модель отражает лишь некоторые стороны моделируемого объекта. Значит, чем лучше автор алгоритма знает объект моделирования, тем лучше будет алгоритм. Кроме того, алгоритм разрабатывается для реализации в конкретной системе. Значит, его автор должен знать эту систему, например, самого себя. Алгоритм, описанный на языке и в терминах реализующей его системы, это уже программа. Значит, автор алгоритма – это и есть настоящий программист. А тот, кто описывает готовый алгоритм в командах ЭВМ или на человеческом языке – это кодировщик. Умение программировать – это дар божий! А как быть тем, кому этого дара досталось меньше или не досталось совсем? Учиться!
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.