Каковы основные типы алгоритмических структур кратко

Обновлено: 05.07.2024

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

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

Разветвленная структура предусматривает выбор одной из двух или более последовательностей операторов в зависимости от некоторого условия. Основной вариант реализации в программе — с помощью условного оператора:

Пример:

При положительном x переменная y получит значение квадратного корня из x, в другом случае — значение 0.

Если нужно выбирать более чем из 2 вариантов, используют вложенные условные операторы, например:

При выполнении этого фрагмента программы x сначала сравнивается с нулем, если условие в первом условном операторе не выполнено, то затем сравнивается с -10. В зависимости от результата проверки выбирается одно из трех возможных действий. В общем случае, количество условных операторов оказывается на 1 меньше числа возможных вариантов.

Второй вариант реализации ветвления — оператор множественного выбора:

Пример:

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

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

Циклы с условием

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

Пример:

Такая запись обозначает: пока значение переменной a превосходит 10, из него следует извлекать квадратный корень. Предположим, что до начала цикла переменная имела значение 10000. Поскольку 10000 > 10, из него будет извлечен корень; переменная получит значение 100. С этим значением вновь проверяется условие повторения. 100 больше 10, поэтому квадратный корень извлекается еще раз; переменная получает значение 10. Опять проверяется условие, но на этот раз 10 не больше 10, значит цикл будет завершен, и компьютер перейдет к исполнению следующего оператора.

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

Пример:

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

Цикл с параметром

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

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

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

Пример 1:

При выполнении этого фрагмента программы переменная i примет поочередно все значения от 1 до 20, при каждом из них на экран на отдельной строке (writeln) будет выводиться само это значение и его куб. В результате получится таблица кубов первых двадцати натуральных чисел. Чтобы значения выводились ровными колонками, в процедуре вывода указан формат (на значение переменной i отведено 3 позиции, для куба — 5).

Пример 2:

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

Алгоритмы бывают:

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

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

Циклический алгоритм содержит один или несколько циклов.

Цикл – часть алгоритма, которая выполняется много раз.

Способы описания алгоритма:

Словесный ( письменно или устно);

Графический (стрелками, рисунками, блок – схемами);

Программный.

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

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

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

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

1.Полная форма ветвления:

Если (условие), то

иначе

Пример: “Если дорога отремонтирована, то поехать дальше, иначе – поехать в объезд”.

2. Неполная форма ветвления:

Если (условие), то

Пример: “Если ласточки низко летают, то быть дождю”.

Циклические алгоритмические структуры бывают 2 типов:

1. Циклы со счетчиком

2. Циклы с условием

а) с предусловием (с проверкой в начале)

б) с постусловием (с проверкой в конце)

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

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

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

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

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


Пример 3. Имеется два натуральных числа x и y. Вычислить и вывести на экран монитора значение функции . Составить алгоритм решения задачи на естественном языке и в виде блок-схемы.

1) алгоритм на естественном языке:

4. Вывести на экран монитора значение z

2) в виде блок-схемы:


3) на языке программирования Visual Basic (приложение 1)

2. Алгоритмическая структура “ветвление”.

В алгоритмической структуре “ветвление” та или иная серия команд выполняется в зависимости от истинности условия.


3. Алгоритмическая структура “выбор”

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


Пример 4. Пусть задано число х. Вычислить и вывести на экран монитора значение функции . Составить алгоритм решения задачи на естественном языке и в виде блок-схемы.

1) алгоритм на естественном языке:

1) алгоритм на естественном языке:

4. Вывести на экран монитора значение z

2) в виде блок-схемы:


3) на языке программирования Visual Basic (приложение 1)

2. Алгоритмическая структура “ветвление”.

В алгоритмической структуре “ветвление” та или иная серия команд выполняется в зависимости от истинности условия.


3. Алгоритмическая структура “выбор”

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


Пример 4. Пусть задано число х. Вычислить и вывести на экран монитора значение функции . Составить алгоритм решения задачи на естественном языке и в виде блок-схемы.

1) алгоритм на естественном языке:

3. x присвоить a

5. Вывести на экран монитора значения x и y

6. x присвоить x+h

7. Если x≤b , то идти к 4

2) в виде блок-схемы:


3) на языке программирования Visual Basic (приложение 3)

Пример 6. Вычислить и вывести на экран сумму k первых слагаемых, не превышающих по значению число 10 ( i- целое натуральное число). Составить алгоритм решения задачи на естественном языке и в виде блок-схемы.


Конспект по информатике "Алгоритмические конструкции" для самостоятельного изучения и подготовки к контрольным работам, экзаменам и ГИА.

Алгоритмические конструкции

Код ОГЭ: 1.3.2. Алгоритмические конструкции

Различают три основных вида алгоритмов (базовые алгоритмические конструкции, или структуры): линейные, с разветвлениями и с циклами.

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

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

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

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

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

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

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

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

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

Линейные алгоритмические конструкции

В блок–схемах линейные алгоритмы представляют с помощью последовательности функциональных блоков:


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

Команда 1
Команда 2
Команда 3

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

Пример 1. Определить значение целой переменной n после выполнения следующего алгоритма:
m := 3
n := 4
m := 6 + m*n
n := n + m/3

Решение. Первые две команды присваивания определяют начальные значения переменных. Для выполнения третьей команды сначала надо вычислить правую часть выражения: 6 + 3 х 4 = 18. Это значение будет присвоено переменной m. Для выполнения последней команды также сначала вычисляется правая часть выражения: 4 + 18/3 = 10. Результат будет присвоен переменной п.

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

Пример 2. Вычислить значение выражения x 2 – 3 × х – 10, используя только операции сложения и умножения.

Для решения задачи в той последовательности, что определяет само выражение, потребуется 2 операции умножения, 2 вычитания и 3 переменных (х, y, z). Однако можно вычислить то же выражение как (х — 2) × х – 10. Такой алгоритм расчета потребует 1 умножение, 2 вычитания и 2 переменных (х, у).


Решение.

Алгоритмические конструкции ветвления

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

Существует две реализации структуры ветвления: полная и неполная (краткая). Обе формы ветвления являются замкнутыми: каждая из них имеет один вход и один выход.


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

Краткая форма ветвления предполагает, что в случае истинности условия будет выполнена команда 1, а иначе — никакие действия не выполняются.

если 2/х ≠ 0
то y := 2/x
всё


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

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

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



and (логическое И),
or (логическое ИЛИ),
xor (исключающее ИЛИ),
not (отрицание).

Например, чтобы задать условие принадлежности числовой величины Z промежутку (10;20), следует записать составное условие Z > 10 and Z Циклические конструкции

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

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


Пример 6. Записать на алгоритмическом языке алгоритм получения остатка от деления целого числа а на целое число b с помощью вычитания.


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



Решение.

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


Имя параметра цикла (счетчика) указывают в заголовке после служебного слова для. Затем с помощью служебных слов от и до задают начальное и конечное значение этого параметра.

Цикл со счетчиком всегда выполняется i1 – i2 + 1 раз.

Пример 8. Записать алгоритм вычисления факториала числа N.


Решение. Факториал числа вычисляется по формуле N! = 1 × 2 × … × N. Следовательно, для расчета факториала надо организовать цикл со счетчиком, в котором перемножить последовательные целые числа от 2 до N. Значение 1!, равное 1, можно присвоить результирующей переменной до цикла.

Таблицы и массивы

■ Массив — конечный набор пронумерованных однотипных данных, имеющий имя.

Величины, которые входят в массив, называются его элементами. Количество элементов массива называется его размерностью.

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

Имя массива (таблицы) относится ко всему набору данных. Элементы массива различают по порядковому номеру, который называется индексом. Для обращения к элементу его индекс указывают в квадратных скобках сразу вслед за именем массива. Например, если массив имеет имя D, то третий его элемент обозначается D[3]. Такие имена называются индексированными именами. Индексы могут быть не только константами, но и переменными или целочисленными выражениями: D[j], D[k+1].

Различают одномерные и многомерные массивы.

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

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


Одномерная таблица, содержащая расстояния от Солнца до планет Солнечной системы (в астрономических единицах), может выглядеть как табличная строка:

Названия планет в этой таблице отсутствуют (иначе они бы образовали вторую строку). Чтобы узнать расстояние от Солнца до Марса, надо обратиться к четвертому элементу этой таблицы. Если, например, в программе такой массив расстояний от Солнца был поименован как Dist, то для обращения к 4–му элементу массива надо указать Dist[4].


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

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

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

Общий вид описания таблицы:
тип элементов таб имя таблицы [наименьший индекс : наибольший индекс]

Например, для описания таблицы расстояний от Солнца необходимо учесть, что в ней содержатся нецелые числа, следовательно, тип данных таблицы — вещественный, и количество элементов равно 9:
вещ таб Dist[1:9]

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


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

Зачастую ввод данных в массив или задачи их обработки связаны с перебором элементов массива. Для этих целей обычно используют циклы с параметром (со счетчиком). В теле цикла индекс массива обозначают переменной, и эта же переменная выступает в роли параметра (счетчика) цикла. Для параметра в заголовке цикла указывают перечень значений индекса массива. Например, если необходимо обработать все 20 значений массива Т, то следует записать цикл нц для i от 1 до 20 … кц и в теле цикла задать обработку для элемента T[i].

Пример 10. По данным о территории некоторых стран Европы (см. первую строку примера многомерной таблицы) рассчитать суммарную площадь этих стран.

Решение. В алгоритме необходимо предусмотреть ввод вещественных данных в таблицу (например, Terr) из 9 элементов. Для будущего суммарного результата необходимо отвести переменную (например, S), первоначально присвоить этой переменной нулевое значение. Затем организовать цикл с параметром, изменяющимся от 1 до 9 (количество элементов в таблице) и поочередно сложить предыдущее значение S с очередным элементом таблицы Terr[i]. Завершить алгоритм выводом результата.

Читайте также: