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

В алгоритмах команды записываются друг за дру-гом в определенном порядке. Выполняются они не обязательно в записанной последовательности. Могут существовать внутренние отсылки к различным командам.

Вообще, выполнение команд по алгоритму чем-то напоминает настольные игры, в которых участники по очереди бросают кубики и ходят по полям. Причем на полях могут быть комментарии в стиле: «Вернитесь на 2 клетки назад» или «Пройдите на 5 клеток вперед» (рис. 1).

Рис. 1. Настольная игра ()

Более сложной моделью выполнения алгоритма является известная игра «Монополия» или «Менеджер» (рис. 2).

Рис. 2. Игра «Монополия» ()

Существенное отличие этой игры от простого выполнения алгоритма состоит в том, что конечной целью участников является не прохождение пути, а накопление денег при помощи определенных действий.

В зави-симости от порядка выполнения команд можно выде-лить три типа алгоритмов:

Линейные алгоритмы;

Алгоритмы с ветвлениями;

Алгоритмы с повторениями.

«Монополия»

«Монополия» относится к одной из самых популярных настольных игр. Ее правила достаточно просты и понятны каждому, кто хоть раз в нее играл (рис. 4).

Рис. 4. Игра «Монополия» ()

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

Согласно официальным источникам - компании Parker Brothers, с 1935 года и по сей день выпускающей «Монополию», - легендарная настольная игра появилась на свет следующим образом. В 1934 году безработный инженер Чарльз Дарроу (рис. 5) предложил вышеуказанной конторе выпустить придуманную им игру о торговле недвижимостью.

Рис. 5. Чарльз Дарроу ()

Обнаружив в настольной игре 52 дизайнерские ошибки, братья Паркеры отказали изобретателю. Тот с чисто американской предприимчивостью отправился в типографию, заказал 5 тысяч экземпляров игры и довольно быстро их распродал. Осознав, что прибыль утекает прямо у них из-под носа, Parker Brothers спешно приобрели права на «Монополию», и уже в следующем году она стала самой продаваемой настольной игрой в США, а Дарроу - живым воплощением американской мечты.

Однако вместе с тем известны и более ранние игры, поразительно напоминающие «Монополию». Выходит, Дарроу просто оказался первым, кто подсуетился и получил патент на «народную» забаву? И да, и нет. Расследования последних лет проливают свет на тайну происхождения «Монополии».

Во второй половине позапрошлого века в Соединенных Штатах жил и работал политэкономист Генри Джордж. Он предлагал заменить все поборы одним-единственным налогом - на землю. Проникшись его идеями, в январе 1904 года Мэги получает патент на настольную игру The Landlord’s Game, которая и правилами, и внешним видом напоминает нынешнюю «Монополию». Считается, что «Игра владельца земли» обладала двумя вариантами правил: сыграв партию по действующим законам налогообложения, игроки переходили к модели, предложенной Джорджем, - и якобы убеждались в ее необходимых преимуществах. Таким образом, игра была не развлечением, но инструментом идеологической борьбы.

До массового производства дело не дошло, зато The Landlord’s Game постепенно распространилась по Северной Америке в кустарных копиях. Всплеск интереса к настольной игре пришелся на годы Великой депрессии: тысячи безработных были рады вообразить себя денежными мешками хотя бы за игровым столом. Появление предприимчивого человека вроде Чарльза Дарроу стало делом нескольких месяцев - и он появился, на многие десятилетия присвоив славу единоличного изобретателя «Монополии».

Нашлись, конечно, и те, кто счел должным урвать кусок у правообладателей. Нелицензионные «Монополии» наводнили Китай. И в нашей стране выпускались и выпускаются стройные ряды клонов - «Маклер», «Кооператив», «Менеджер» (рис. 6)...

Рис. 6. Игра «Менеджер» ()

В свете недавнего переосмысления роли Дэрроу в создании «Монополии» и истечения действия авторских прав засудить такие компании не получится. Даже если предположить, что никакой Элизабет Мэги на свете не было, правила «Монополии» давно перешли в общественное достояние. Впрочем, часть патента Hasbro все еще держит при себе: дизайн фишек, графическое оформление, последовательность клеток на игровом поле.

Алгоритм, в котором команды выполняются в по-рядке их записи, то есть последовательно друг за дру-гом, называется линейным .

Рис. 3. Лампочка ()

Например, линейным является следующий алго-ритм замены перегоревшей лампочки (рис. 3):

1. выключить выключатель света;

2. выкрутить перегоревшую лампочку;

3. вкрутить новую лампочку;

4. включить выключатель, чтобы проверить, что лампочка горит.

С помощью блок-схемы данный алгоритм можно изобразить так:

(блок-схему (рис. 7.) см. в конце конспекта)

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

Логику принятия решения можно описать так:

ЕСЛИ <условие>, ТО <действия 1>,

ИНАЧЕ <действия 2>

ЕСЛИ будут деньги, ТО купи хлеба, ИНАЧЕ не покупай.

ЕСЛИ будешь сегодня в центре, ТО набери меня, ИНАЧЕ не набирай.

ЕСЛИ уроки выучены, ТО иди гулять, ИНАЧЕ учи уроки.

В некоторых случаях <действия 2> могут отсут-ствовать. Это может быть связано как с его очевидностью (как, например, в первом примере - понятно, что если у тебя нет денег, то хлеба ты купить просто не сможешь), так и с отсутствием необходимости в нем.

ЕСЛИ <условие>, ТО <действия 1>

ЕСЛИ назвался груздем, ТО полезай в кузов.

ЕСЛИ хочешь быть здоров, ТО закаляйся.

Форма организации действий, при которой в зави-симости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последо-вательность действий, называется ветвлением .

Изобразим в виде блок-схемы последовательность действий ученика 6 класса, забывшего ключи от квартиры, которую он представляет себе так: «Если мама дома, то я приду и сяду делать домашнее задание. Если мамы дома нет, то я пойду поиграть с друзьями в футбол, пока не придет мама. Если друзей на улице не будет, то покатаюсь на качелях до тех пор, пока не придет мама».

(блок-схему (рис. 8.) см. в конце конспекта)

Необходимые и достаточные условия

Мы уже обсуждали с вами, что существуют необходимые и достаточные условия.

Примером необходимого условия может служить такое:

Чтобы стать врачом, необходимо получить медицинское образование.

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

Примером достаточного условия может стать такое:

Для того чтобы стало прохладнее, достаточно включить кондиционер.

Это условие является достаточным: если включить кондиционер, то действительно станет прохладнее. Однако это условие не является необходимым, ведь для достижения той де цели можно включить вентилятор, открыть окно и т. п.

Конечно же, существуют необходимые и достаточные условия одновременно (такие условия называются равносильными ). Например:

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

Действительно, если весна закончилась, то наступает лето, а если весна не закончилась, то лето наступить не может. То есть условия окончания весны и начала лета являются равносильными.

Понятия необходимого, достаточного и равносильного условий очень важны в таком разделе математики, как математическая логика. К тому же, они очень часто встречаются при доказательстве различных теорем.

На практике часто встречаются задачи, в которых одно или несколько действий бывает необходимо по-вторить несколько раз, пока соблюдается некоторое за-ранее установленное условие.

Например, если вам необходимо перебрать ящик с яблоками, чтобы отделить гнилые от спелых, то нам необходимо повторять следующие действия:

1. Взять яблоко.

2. Посмотреть, не гнилое ли оно.

3. Если гнилое - выбросить, если нет - переложить в другой ящик.

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

Форма организации действий, при которой выпол-нение одной и той же последовательности действий по-вторяется, пока выполняется некоторое заранее уста-новленное условие, называется циклом (повторением) .

Ситуация, при которой выполнение цикла никогда не заканчивается, называется зацикливанием .

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

Рассмотрим алгоритм работы будильника на телефоне, который должен зазвонить в 8:00 утра, а затем звонить через каждые 10 минут, до тех пор пока его не выключат.

В этом случае его блок-схема выглядит так: (блок-схему (рис. 9.) см. в конце конспекта)

На этом уроке мы обсудили три типа алгоритмов - линейные алгоритмы, алгоритмы с ветвлениями и алгоритмы с повторениями.

На следующем уроке мы на практике обсудим составление алгоритмов.

Решето Эратосфена

Вспомним определение простого натурального числа.

Натуральное число называют простым, если оно имеет только два делителя: единицу и само это число. Остальные числа называются составными . При этом число 1 не является ни простым, ни составным.

Примеры простых чисел: 2, 3, 5, 7.

Примеры составных чисел: 4, 6, 8.

В III веке до нашей эры греческий математик Эратос-фен предложил следующий алгоритм для нахождения всех простых чисел, меньших заданного числа п:

1. выписать все натуральные числа от 1 до n ;

2. вычеркнуть 1;

3. подчеркнуть наименьшее из неотмеченных чисел;

4. вычеркнуть все числа, кратные подчеркнутому на предыдущем шаге числу;

5. если в списке имеются неотмеченные числа, то пе-рейти к шагу 3, в противном случае все подчеркну-тые числа - простые.

Это циклический алгоритм. При его выполнении повторение шагов 3-5 происходит, пока в исходном списке остаются неотмеченные числа.

Рассмотрим результат этого алгоритма. Выпишем все простые числа от 1 до 25.

Выпишем числа от 1 до 25.

Вычеркнем 1. Теперь подчеркнем двойку. Вычеркнем все четные числа.

Так как не все числа отмечены, то подчеркиваем 3. Теперь вычеркиваем все числа, которые делятся на 3.

Так как не все числа отмечены, то подчеркиваем 5. Теперь вычеркиваем число 25.

Так как не все числа отмечены, то подчеркиваем 7.

Вычеркнуть ничего нельзя, но не все числа отмечены, поэтому подчеркиваем 11.

Вычеркнуть ничего нельзя, но не все числа отмечены, поэтому подчеркиваем 13. Снова нельзя ничего вычеркнуть - подчеркиваем 17, затем 19 и 23.

Теперь все числа отмечены.

Получаем простые числа: 2, 3, 5, 7, 11, 13, 17, 19, 23.

Рис. 7. Блок-схема для смены лампочки

Рис. 8. Блок-схема действий шестиклассника


Рис. 9. Блок-схема работы будильника


Список литературы

1. Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса. - М.: БИНОМ. Лаборатория знаний, 2012.

2. Босова Л.Л. Информатика: Рабочая тетрадь для 6 класса. - М.: БИНОМ. Лаборатория знаний, 2010.

3. Босова Л.Л., Босова А.Ю. Уроки информатики в 5-6 классах: Методическое пособие. - М.: БИНОМ. Лаборатория знаний, 2010.

1. Интернет портал «Наша сеть» ()

2. Интернет портал «Гипермаркет знаний» ()

3. Интернет портал «kaz.docdat.com» ()

Домашнее задание

1. §3.4 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса).

2. Стр. 81 задание 2, 6 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса).

3. Стр. 82 задание 9, 11, 13, 14 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса).

4. * Стр. 83 задание 15 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса).

Основными свойствами алгоритма являются:

1.

2.

3.

4.

·линейный;

·ветвящийся;

· циклический.

Линейным

Ветвящимся

циклическим

Структура программы на Паскале.

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

PROGRAM имя программы;
(английскими буквами, одно слово. Хотите глубже? То необходимо воспользоваться правилами написания идентификаторов)

USES подключаемые библиотеки (модули);
(дополнительные возможности, их можно подключать к программе в этой строке)

LABEL список меток;
(из одного места программы «прыгать» в другое)



CONST раздел описания констант;
(постоянные величины, их нельзя изменять)

TYPE описание типов переменных; (тайп)

VAR определение глобальных переменных;
(описание всех переменных величин, которые в программе могут изменяться)

ОПРЕДЕЛЕНИЕ ПРОЦЕДУР;

ОПРЕДЕЛЕНИЕ ФУНКЦИЙ;

основной блок программы

Почти после каждой строчки ставится знак "; ". Этот знак говорит о том, что строка закончена. Знак "; " не ставится после служебного слова BEGIN и последнего END. (который означает конец программы), после которого ставиться точка.

3.Условный оператор, оператор выбора. Логические операции в Паскале, таблицы истинности, основные законы алгебры логики.
Условные операторы

IF [логическое выражение] Then [оператор 1]; Else [оператор 2];

Оператор IF работает следующим образом: вначале проверяется результат логического выражения. Если результат Истина(TRUE), то выполняется [оператор_1], следующий за служебным словом Then, а [оператор_2] пропускается. Если результат Ложь(FALSE), то [оператор_1] пропускается, а [оператор_2] исполняется.

FOR [параметр_цикла] := [н_з_п_ц] To [к_з_п_ц] Do [оператор];

FOR, To, Do – служебные слова. [параметр_цикла] – параметр цикла. [н_з_п_ц] – начальное значение параметра цикла. [к_з_п_ц] – конечное значение параметра цикла. [оператор] – произвольный оператор.

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

WHILE [условие] Do [оператор];

WHILE, Do – служебные слова. [условие] – выражение логического типа. [оператор] – обыкновенный оператор.

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



REPEAT [тело_цикла]; UNTIL [условие];

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

Логическая операция И (AND)

Логическая операция И выполняется с двумя битами, назовем их a и b. Результат выполнения логической операции И будет равен 1, если a и b равны 1, а во всех остальных (других) случаях, результат будет равен 0. Смотрим таблицу истинности логической операции and.

a b a & b

Типы данных.

Порядковые:

Целые; Логические; Символьные; Перечисляемые; Интервальные;

Вещественные:

Структуированные:

Массивы; Строки; Множества; Записи; Файлы;

Указатели

6.Массивы. Определение, описание, размещение в памяти и использование.
Массив-это структурированный тип данных состоящий из фиксированных чисел элементов имеющий один и тот же тип.

Свойство:

все элементы массива имеют один и тот же тип;

массив имеет одно имя для всех элементов;

доступ к конкретному элементу массива осуществляется по индексу (индексам).

7.Процедуры и функции. Заголовок и тело процедур и функций, классификация параметров. Вызов процедур и функций, особенности их использования.

Подпрограмма это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная именем. "Вызов" подпрограммы, т.е. выполнение действий, заданных в подпрограмме в виде операторв, может быть произведен в некоторой точке программы посредством указания имени этой подпрограммы. Кроме задания последовательности действий, любая подпрограмма может содержать описание некоторой совокупности локальных объектов - констант, типов, переменных и т.д. Эти объекты предназначены для организации действий внутри подпрограммы и имеют смысл (т.е. доступны или видимы) только внутри данной подпрограммы

Механизм подпрограмм в языке Турбо Паскаль реализован в виде процедур и функций. Они имеют почти одинаковую структуру, один и тот же смысл, но различаются назначением и способом вызова.

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

Функции служат, прежде всего, для определения алгоритма вычисления некоторого значения (простого типа). В соответствии с этим вызов функции является одним из допустимых операндов выражения, обозначая в нем то значение, которое вычисляет ("возвращает") функция.

PROCEDURE ИмяПроцедуры (СписокФормальныхПараметров);
LABEL
Перечисление меток внутри тела процедуры
CONST
Описание локальных констант
TYPE
Описание локальных типов
VAR
Описание локальных переменных
BEGIN
Тело процедуры
END .

Понятие алгоритма. Свойства, способы описания. Типы алгоритмов.

Алгоритмом называется точное и понятное предписаниe исполнителю совершить последовательность действий, направленных на решение поставленной задачи.

Основными свойствами алгоритма являются:

1. детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;

2. результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;

3. массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;

4. дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений.

При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:

·линейный;

·ветвящийся;

· циклический.

Линейным называется такой вычислительный процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов.

Ветвящимся называется такой вычислительный процесс, в котором выбор направления обработки информации зависит от исходных или промежуточных данных (от результатов проверки выполнения какого-либо логического условия).

Циклом называется многократно повторяемый участок вычислений. Вычислительный процесс, содержащий один или несколько циклов, называется циклическим . По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений.

В информатике план действий называют алгоритмом .
Алгоритм состоит из отдельных шаговкоманд . Ни одну из них нельзя пропустить, чаще всего никакие команды нельзя поменять местами.
Исполнитель – человек, животное или машина, способные понимать и выполнять некоторые команды.
Среда исполнителя – предметы, которые окружают исполнителя и с которыми он работает.
Список Команд Исполнителя (СКИ) – набор команд, понятных исполнителю. Исполнитель может выполнить только те команды, которые входят в его СКИ.

Для решения большинства задач недостаточно отдать одну команду исполнителю, надо составить для него алгоритм – план действий, состоящий из команд, которые ему понятны (входят в его СКИ).
Алгоритм – точно определенный план действий исполнителя, направленный на решение какой-то задачи. В алгоритм можно включать только те команды, которые есть в СКИ.

Какие бывают алгоритмы

Линейный алгоритм
В линейном алгоритме команды выполняются последовательно, одна за другой. Примером линейного алгоритма может служить алгоритм заварки чая.

Разветвляющийся алгоритм

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

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

Способы записи алгоритмов

Выделяют три наиболее распространенные на практике способа записи алгоритмов:

  • словесный (запись на естественном языке);
  • графический (запись с использованием графических символов);
  • программный (тексты на языках программирования).

Словесный способ записи алгоритмов

Словесный способ – способ записи алгоритма на естественном языке . Данный способ очень удобен, если нужно приближенно описать суть алгоритма. Однако при словесном описании не всегда удается ясно и точно выразить логику действий.

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

где S – площадь прямоугольника; а, b – длины его сторон.

Очевидно, что a, b должны быть заданы заранее, иначе задачу решить невозможно.

Словестный способ записи алгоритма выглядит так:

  • Начало алгоритма.
  • Задать численное значение стороны a.
  • Задать численное значение стороны b.
  • Вычислить площадь S прямоугольника по формуле S=a*b.
  • Вывести результат вычислений.
  • Конец алгоритма.

Графический способ описания алгоритмов

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

Каждому действию алгоритма соответствует геометрическая фигура (блочный символ). Перечень наиболее часто употребляемых символов приведен в таблице ниже.

Так как в линейном алгоритме команды выполняются последовательно, то блок-схема будет иметь вид:

Так как в разветвляющемся алгоритме порядок следования команд может быть разный в зависимости от того, какова окружающая обстановка, то блок-схема примет вид:

В циклическом алгоритме некоторые действия повторяются несколько раз и для него блок-схема примет вид:

Программный способ записи алгоритмов

Для того, чтобы алгоритм был понятен роботу, компьютеру или другой машине, недостаточно только написать команды, надо еще и оформить алгоритм в таком виде, в котором его понимает машина (написать программу), т.е. записать его с использованием команд из СКИ, соблюдая правила оформления.

Правила оформления программы:

  1. любой алгоритм имеет название;
  2. алгоритм начинается с открывающей фигурной скобки “{“ и заканчивается закрывающей фигурной скобкой “}”; команды, расположенные между этими скобками, называются телом алгоритма;
  3. в алгоритм могут входить только те команды, которые есть в СКИ исполнителя;
  4. каждая команда заканчивается знаком “;”, который обозначает конец команды;
  5. для того, чтобы нам было легче разбираться в программах, используют комментарии - текстовые пояснения, которые начинаются знаками “/*” и заканчиваются знаками “*/”; исполнитель не обращает внимания на комментарии в алгоритме.

Практические задания:

  1. Составить блок-схему для нахождения периметра квадрата.
  2. Составить блок схему для заваривания чая.
  3. Составить блок-схему для перехода перекрестка со светофором.

Использован материал из книг:

  1. "Современные информационные технологии", авторы преподаватели центра "Турбо"
  2. "Алгоритмы и исполнители", автор Поляков К.

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

  • Следование . Предполагает последовательное выполнение команд сверху вниз. Если алгоритм состоит только из структур следования, то он является линейным.
  • Ветвление . Выполнение программы идет по одной из двух, нескольких или множества ветвей. Выбор ветви зависит от условия на входе ветвления и поступивших сюда данных.
  • Цикл . Предполагает возможность многократного повторения определенных действий. Количество повторений зависит от условия цикла.
  • Функция (подпрограмма) . Команды, отделенные от основной программы, выполняются лишь в случае их вызова из основной программы (из любого ее места). Одна и та же функция может вызываться из основной программы сколь угодно раз.

Описание различных алгоритмических структур на языке блок-схем

Ветвление if
Это самый простой тип ветвления. Если результат вычисления выражения-условия возвращает true (правда), то выполнение алгоритма идет по ветке «Да», в которую включены дополнительные выражения-действия. Если условие возвращает false (ложь), то выполнение алгоритма идет по ветке «нет», т.е продолжает выполняться основная ветка программы.

Ветвление if-else
Если выражение-условие возвращает true (правда), то выполнение алгоритма идет по ветке «Да», если условие не выполняется (false), то выполнение идет по ветке «Нет». При любом результате выражения-условия нельзя вернуться в основную ветку программы, минуя дополнительные действия.

Ветвление if-elif-else
Количество условий может быть различно. Если выполняется первое, то после выполнения действий, программа переходит к основной ветке, не проверяя дальнейшие условия. Если первое условие возвращает ложь, то проверяется второе условие. Если второе условие возвращает правду, то выполняются действия, включенные в вторую ветку конструкции. Последнее условие проверяется лишь в том случае, если ни одно до него не дало в результате true. Данную алгоритмическую конструкцию (if – elif – else) не следует путать с алгоритмической конструкцией «Выбор».

Цикл while
Пока условие выполняется (результат логического выражения дает true), будут выполняться действия тела цикла. После очередного выполнения вложенных действий условие снова проверяется. Для того чтобы выполнение алгоритма не зациклилось, в теле цикла (помимо прочих действий) должно быть выражение, в результате выполнения которого будет изменяться переменная, используемая в условии. Тело цикла может ни разу не выполнится, если условие с самого начала давало false.

Цикл do
В этом цикле первый раз условие проверяется лишь после выполнения действий тела цикла. Если условие возвращает true, то выражения-действия повторяются снова. Каким бы ни было условие, тело данного цикла хотя бы раз, но выполнится.

Цикл for
Данный цикл также называют циклом «Для» (for). В его заголовке указывается три параметра: начальное значение переменной (от), конечно значение (до) и ее изменение с помощью арифметической операции на каждом «обороте» цикла (шаг).

Известны три типа алгоритмов – линейные, разветвляющиеся, циклические.

Линейный тип алгоритмов

Алгоритмы, в которых команды выполняются друг за другом, независимо от каких-либо условий, называются алгоритмами линейного типа.

Например, алгоритм вычисления по самым простейшим формулам, не имеющих ограничений на значения входящих в них переменных.

Пример

Постановка задачи : вычислить площадь круга, если известен радиус.

Дано: R– радиус круга.

Найти: S– площадь круга.

Решение: S=3,14R 2

Словесная форма записи алгоритма

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

    Прочесть значение R.

    Умножить значение Rна 3,14.

    Умножить результат второго действия на значение R.

    Записать полученный результат как значение S.

На языке блок-схем – рис. 8

Разветвляющийся тип алгоритмов

Решение задач не всегда можно представить в виде линейного алгоритма.

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

При графическом способе ветвление организуется с помощью логического элемента (ромб), имеющего один вход и два выхода. Назначение логического элемента – проверка заданного условия. В зависимости от выполнения (истинности) или невыполнения (ложности) проверяемого условия возможен выход соответственно на ветвь «Да» или «Нет».

Пример

Постановка задачи : вычислить
.

Дано : х – значение аргумента.

Найти : у – значение функции.

Решение:

y= x , если х  0

- x , если х<0

Блок-схема - см. рис. 9.

Словесное представление

На псевдокоде :

Прочесть значение х

Если х>0, то

Конец ветвления

Записать значение у

Выделяют полную и неполную условную конструкцию .

Циклический тип алгоритмов

При составлении алгоритмов решения достаточно большого круга задач нередко возникает потребность в неоднократном повторении одних и тех же команд.

Алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов), называется алгоритмов циклического типа .

Однако, «неоднократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма (так называемое зацикливание), является нарушением требования его результативности.

При разработке алгоритма циклической структуры выделяют следующие понятия:

    параметр цикла – величина, с изменением которой связано многократное выполнение цикла;

    начальное и конечное значение параметра цикла ;

    шаг цикла – это значение, на которое изменяется параметр цикла при каждом повторении.

Циклический алгоритм состоит из подготовки цикла, тела цикла, условия продолжения цикла .

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

В тело цикла входят: многократно повторяющиеся действия для вычисления искомых величин; подготовка следующего значения параметра цикла, подготовка других значений, необходимых для повторного выполнения действий в теле цикла.

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

Рассмотрим графическое представление циклического блока алгоритма (см. рис. 10).

Циклы могут быть с предусловием (когда условие проверяется перед началом тела цикла) и спостусловием (когда условие проверяется после первого прохождения тела цикла).

Цикл с постусловием

Цикл с предусловием