Тарифы Услуги Сим-карты

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

>> Типы алгоритмов

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

Линейные алгоритмы;
алгоритмы с ветвлениями;
алгоритмы с повторениями.

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

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

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

1) выкопать в земле ямку;
2) опустить в ямку саженец;
3) засыпать ямку с саженцем землей;
4) полить саженец водой.

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

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

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

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

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

Примеры:

ЕСЛИ хочешь бытьздоров , ТО закаляйся, ИНАЧЕ валяйся весь день на диване;
ЕСЛИ низко ласточки летают, ТО будет дождь, ИНАЧЕ дождя не будет;
ЕСЛИ уроки выучены, ТО иди гулять, ИНАЧЕ учи уроки.

В некоторых случаях <действия 2> могут отсутствовать;

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

Пример :

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

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

Изобразим в виде блок-схемы последовательность действий ученика 6 класса Мухина Васи, которую он представляет себе так: "Если Павлик дома, будем решать задачи по математике. В противном случае следует позвонить Марине и вместе готовить доклад по биологии. Если же Марины нет дома, то надо сесть за сочинение."

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

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

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

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

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

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

Рассмотрим пример из математики.

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

2, 3, 5, 7 - простые числа; 4, 6, 8 - нет. В III веке до нашей эры греческий математик Эратосфен предложил следующий алгоритм для нахождения всех простых чисел, меньших заданного числа n:

1) выписать все натуральные числа от 1 до n;
2) вычеркнуть 1;
3) подчеркнуть наименьшее из неотмеченных чисел;
4) вычеркнуть все числа, кратные подчеркнутому на предыдущем шаге;
5) если в списке имеются неотмеченные числа, то перейти к шагу 3, в противном случае все подчеркнутые числа - простые.

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

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

Напомним, что число 1 не относят ни к составным (имеющим более двух делителей), ни к простым числам.

Самое главное

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

> линейные алгоритмы;
> алгоритмы с ветвлениями;
> алгоритмы с повторениями.

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

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

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

Вопросы и задания

1. Какие алгоритмы называют линейными?
2. Приведите пример линейного алгоритма,
3. Исполнитель «Вычислитель» умеет выполнять только две команды: умножать на 2 и прибавлять Придумайте для него наиболее короткий план получения из О числа 50.
4. Какая форма организации действий называется ветвлением?
5. Какие условия должна была выполнить героиня скази «Гуси-лебеди»?
6. Приведите пример алгоритма, содержащего ветвление»
7. Прочитайте отрывок из стихотворения Дж. Родари «Чем пахнут ремесла?»:

У каждого дела запах особый:
В булочной пахнет тестом и сдобой.
Мимо столярной идешь мастерской -
Стружкою пахнет и свежей доской.
Пахнет маляр скипидаром и краской.
Пахнет стекольщик оконной замазкой.
Куртка шофера пахнет бензином,
Блуза рабочего - маслом машинным.

Перефразируйте
о профессиях с помощью слов «ЕСЛИ... ТО»/

8. Вспомните, герои каких русских народных сказок совершают выбор, определяющий их судьбу.
9. Из 9 монет одинакового достоинства одна фальшивая (более легкая). За сколько взвешиваний на чашечных весах без гирь вы можете ее определить?
10. Какая форма организации действий называется повторением?
11. Приведите пример алгоритма, содержащего повторение.
12. В каких известных вам литературных произведениях имеет место циклическая форма организации действий?
13. Где окажется исполнитель, выполнивший 16 раз подряд следующую группу команд?

пройти 10 метров вперед

повернуть на 90° по часовой стрелке

14. Какую группу действий и сколько раз следует повторить при решении следующей задачи?

Сорок солдат подошли к реке, по которой на лодке катаются двое мальчиков. Как солдатам переправиться на другой берег, если лодка вмещает только одного солдата либо двух мальчиков, а солдата и мальчика уже не вмещает?

15. Вспомните задачу о Вычислителе, умеющем только умножать на 2 и прибавлять 1. Разрабатывать для него рациональные алгоритмы будет значительно проще, если воспользоваться следующей блок-схемой:

Используя эту блок-схему, разработайте рациональные алгоритмы получения из числа 0 чисел 1024 и 500.

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

Содержание урока конспект урока и опорный каркас презентация урока интерактивные технологии акселеративные методы обучения Практика тесты, тестирование онлайн задачи и упражнения домашние задания практикумы и тренинги вопросы для дискуссий в классе Иллюстрации видео- и аудиоматериалы фотографии, картинки графики, таблицы, схемы комиксы, притчи, поговорки, кроссворды, анекдоты, приколы, цитаты Дополнения рефераты шпаргалки фишки для любознательных статьи (МАН) литература основная и дополнительная словарь терминов Совершенствование учебников и уроков исправление ошибок в учебнике замена устаревших знаний новыми Только для учителей календарные планы учебные программы методические рекомендации

ПОНЯТИЕ АЛГОРИТМА. СВОЙСТВА АЛГОРИТМА. ВИДЫ АЛГОРИТМОВ. СПОСОБЫ ОПИСАНИЯ АЛГОРИТМОВ

Алгоритмом называется точное и понятное предписаниe исполнителю совершить последовательность действий, направленных на решение поставленной задачи. Слово «алгоритм» происходит от имени математика Аль Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмом понимали только правила выполнения четырех арифметических действий над числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные. Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результатные.

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

  1. детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;
  2. результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;
  3. массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;
  4. дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений.

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

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

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

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

  • линейный;
  • ветвящийся;
  • циклический.

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

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

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

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

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

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

Ветвление 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).

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

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

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

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

· словесная (записи на естественном языке);

· графическая (изображения из графических символов);

· псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);

· программная (тексты на языках программирования).

Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.

Алгоритм может быть следующим:

· задать два числа;

· если числа равны, то взять любое из них в качестве ответа и остановиться, в

противном случае продолжить выполнение алгоритма;

· определить большее из чисел;

· заменить большее из чисел разностью большего и меньшего из чисел;

· повторить алгоритм с шага 2.

Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи.

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

· такие описания строго не формализуемы;

· страдают многословностью записей;

· допускают неоднозначность толкования отдельных предписаний.

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

Такое графическое представление называется схемой алгоритма или блок-схемой.

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

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

1)Блок начало-конец

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

2) Блок действия

Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c


3) Логический блок

Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >, <, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов).

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

Типы алгоритмов

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

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

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