3 типа алгоритма. Алгоритмы

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

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

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

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

Пример

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

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

Решение:

y= x , если х  0

- x , если х<0

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

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

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

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

Если х>0, то

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Цель: Ознакомить студентов с основами алгоритмизации.

Учебные вопросы:

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

2. Основные типы алгоритмов. Блок-схемы типовых алгоритмов.

Изучив данную тему, студент должен:

Знать:

· свойства алгоритма;

· блоки для построения схем;

· основные типы алгоритмов;

Уметь :

· строить алгоритмы по условию задачи;

Понятие алгоритма

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

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

Алгоритм это последовательность арифметических, логических и прочих операций, необходимых для выполнения на ЭВМ.

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

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

Алгоритм может быть представлен различными способами, в частности:

1) словесно (вербальное описание);

2) таблично;

3) в виде блок-схемы;

4) на алгоритмическом языке.

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

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

Предпочтительнее до записи на алгоритмическом языке представить алгоритм в виде блок-схемы. Для построения алгоритма в виде блок-схемы необходимо знать назначении каждого из блоков. В таблице 13. приводятся типы блоков и их назначение.

Таблица 13

Назначение блока

Комментарий

{блоку соответствует оператор}

Начало или конец

блок-схемы

Ввод или вывод данных

ввода / вывода

Процесс (в частности вычислительный)

присваивания

Модификатор цикла

5.2. Основные типы алгоритмов

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

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

Линейный алгоритм является наиболее простым. В нём предполагается последовательное выполнение операций. В этом алгоритме не предусмотрены проверки условий или повторений.

Пример: Вычислить функцию z= (х-у)/x +y2 .

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

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

Рис.8. Линейный алгоритм

Назначение блоков в схеме на рис.8:

· Блок 1 в схеме служит в качестве логического начала.

· Блок 3 представляет арифметическое действие.

· Блок 4 выводит результат.

· Блок 5 в схеме служит в качестве логического завершения схемы.

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

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

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

Пример: При выполнении условия x >0 вычисляется функция: z = ln x + y , иначе, а именно, когда х=0 или x <0 , вычисляется функция: z = x + y 2 .

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

Решение: На рис.9 представлен разветвляющийся алгоритм, где в зависимости от условия выполнится одна из веток. В блок-схеме появился новый блок 3, который проверяет условие задачи. Остальные блоки знакомы из линейного алгоритма.

https://pandia.ru/text/78/136/images/image008_57.gif" width="300" height="360 src=">

Рис.9. Алгоритм ветвления

Пример: Найти максимальное значение из трёх различных целых чисел, введенных с клавиатуры. Составить блок-схему решения задачи.

Решение: Данный алгоритм предполагает проверку условия. Для этого выбирается любая из трёх переменных и сравнивается с другими двумя. Если она больше, то поиск максимального числа окончен. Если условие не выполняется, то сравниваются две оставшиеся переменные. Одна из них будет максимальной. Блок-схема к этой задаче представлена на рис 10.

https://pandia.ru/text/78/136/images/image010_48.gif" width="492" height="456 src=">

Рис. 10. Блок-схема поиска максимума

Циклические алгоритмы

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

Из циклических алгоритмов выделяют два типа:

1) с заданным количеством циклов или со счётчиком циклов;

2) количество циклов неизвестно.

Пример: В цикле вычислить значение функции z=x*y при условии, что одна из переменных x меняется в каждом цикле на единицу, а другая переменная у не меняется и может быть любым целым числом. В результате выполнения цикла при начальном значении переменной х=1 можно получить таблицу умножения. Количество циклов может быть любым. Составить блок-схему решения задачи.

Решение: В примере количество циклов задаётся. Соответственно выбирается алгоритм циклов первого типа. Алгоритм этой задачи приводится на рис. 11.

Во втором блоке вводятся количество циклов n и любые целые числа х , y .

В блок-схеме появился новый блок 3, в котором переменная i считает количество циклов, после каждого цикла увеличиваясь на единицу, пока счётчик не будет равен i=n . При i=n будет выполнен последний цикл.

В третьем блоке указывается диапазон изменения счётчика цикла (от i =1 до i=n ).

В четвёртом блоке изменяются значения переменных: z , x .

В пятом блоке выводится результат. Четвёртый и пятый блоки повторяются в каждом цикле.

Рис.11 . Циклический алгоритм со счётчиком циклов

Этот тип циклических алгоритмов предпочтителен, если дано количеством циклов.

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

Пример: Вычислить у=у- x пока y > x , если y =30 , x =4. Подсчитать количество выполненных циклов, конечное значение переменной у . В цикле вывести значение переменной у , количество выполненных циклов. Составить блок-схему решения задачи.

Решение: В примере количество циклов неизвестно. Соответственно выбирается алгоритм циклов второго типа. Алгоритм этой задачи приводится на рис. 12.

Условие проверяется на входе в цикл. В теле цикла выполняется два блока:

1) у=у-х; i = i +1 ;

2) вывод значений переменных i , y .

Цикл выполняется до тех пор, пока выполняется условие y>x . При условии равенства этих переменных у=х или y цикл заканчивается.

Алгоритм, представленный на рис.12, называется циклический алгоритм с предусловием , так как условие проверяется в начале цикла или на входе в цикл.> x на входе в цикл. Если условие выполняется, то переход к блоку 4, иначе на блок 6.

В четвёртом блоке вычисляется значение переменной у i = i +1 .

В пятом блоке выводится результат:

· значение переменной у ,

i .

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

Решение: В этом случае проверяется условие на выход из цикла: y<=x . При этом условии цикл не выполняется. Условие в блок-схеме следует перенести в конец цикла, после вывода на печать. Цикл выполняется до тех пор, пока выполняется условие y>x .

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

Во втором блоке вводятся y =30 , x =4 .

В третьем блоке вычисляется значение переменной у , подсчитывается количество выполненных циклов i = i +1 .

В четвёртом блоке выводится результат:

· значение переменной у ,

· количество выполненных циклов i .

В пятом блоке проверяется условие y <= x на выход из цикла. Если условие выполняется, то переход к блоку 6, иначе на блок 3 и цикл повторяется.

Рис.13 . Алгоритм цикла с постусловием

Контрольные вопросы

1. Понятие алгоритма.

2. Виды алгоритмов.

3. Основные алгоритмические структуры.

4. Основные блоки графического алгоритма.

5. Линейная алгоритмическая структура. Пример.

6. Ветвление. Пример.

7. Циклические алгоритмические структуры. Пример.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Цель урока: повышение интереса к изучению предмета; воспитание навыка быстрого мышления; развитие творческой активности учащихся; развитие познавательных интересов.
Задачи урока: 1. Образовательные:
- Закрепить с учащимися понятия алгоритма, исполнителя, системы команд исполнителя, способы представления алгоритмов.
- Познакомить учащихся с типами алгоритмов: линейным, разветвляющимся, циклическим.
- Научить представлению алгоритмов в виде блок-схем.
2. Развивающие:
- Активизировать познавательную активность учащихся через мультимедийные средства обучения.
- Развивать образное, критическое, дивергентное мышление.
3. Воспитательные:
- Повышение мотивации учащихся на уроке.
- Достижение сознательного уровня усвоения материала учащимися.
- Формирование чувства коллективизма и здорового соперничества.
- Формирование алгоритмического мышления.
Требования к знаниям и умениям: - Знать типы алгоритмов.
- Знать понятия: линейный, разветвляющийся, циклический алгоритмы.
- Уметь применять полученные знания при выполнении практических заданий.
Тип урока: комбинированный.
Технология: формирование коммуникативной компетенции.
Методы: - частично-поисковый, практический;
- информационный (словесный);
- наглядно-иллюстративный.
Оборудование: Флипчарт по теме (приложение 1), компьютеры, ресурс

Технологическая карта ученика (приложение 2), разноуровневые карточки (приложение 3), локальная сеть NetOp.

Ход урока

I.Организационный момент.
1. Приветствие ребят. Здравствуйте, ребята! Садитесь! Какое у вас настроение? Если хорошее - улыбнитесь всем! Если нет - посмотрите друг на друга и улыбнитесь! Начнем урок! Я представила вам алгоритм в словесной форме. Посмотрите на доску. Этот же алгоритм изображен графически. Сегодня на уроке мы научимся с вами представлять типы алгоритмов с помощью блок - схем (страница флипчарта 1).
Эпиграфом к нашему уроку будут слова знаменитого французского ученого Гюстава Гийома “Дорогу осилит идущий, а информатику мыслящий”.
2. Объявление целей урока.
II. Актуализация знаний учащихся

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

1. Проверка домашнего задания.
Проверить кроссворды, решенные учениками дома.

Ответы:
1. 1. графический
2. конечность
3. информация
4. исполнитель
5. алгоритм
6. программный
7. план
8. компьютер
9. инструмент
10. рисунок
11. шаг


Вариант 1. «Посадка саженца».

Вариант 2. Эпизод из сказки «Гуси-лебеди».

6. Домашнее задание.
1. Выучить конспект.
2. Нарисовать на А4 формате пример циклического алгоритма и блок - схему к сказке «Колобок».

7. Вопросы. 1. Какие типы алгоритмов различают?
2. Какие типы алгоритмов изображены на рисунках.

Приложение № 3

Разноуровневые карточки
1. Выполните задание № 1,2,3 по ресурсу
Заполнить таблицу двумя примерами на каждый тип алгоритма.
Составьте алгоритм в программе Paint, используя команды перемещения и копирования.
Вариант 1.(страница флипчарта 25).
«Посадка саженца».
Вариант 2.(страница флипчарта 26).
Эпизод из сказки «Гуси-лебеди».


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: