Файл: Основные структуры алгоритмов: сравнительный анализ и примеры их использованияа.pdf
Добавлен: 24.04.2023
Просмотров: 301
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1 Алгоритм. Общие понятия
1.3 Основные характеристики алгоритмов
1.4. Способы описания алгоритмов
1.4.1. Словесный способ описания алгоритмов
1.4.2. Графический способ описания алгоритмов
1.4.2.1 Графические способы описания алгоритмов работы информационных систем (промышленных систем)
1.4.4. Программный способ представления
При выполнении этого оператора серия, включающая одну или несколько команд, повторяется несколько раз подряд до тех пор, пока условие соблюдается. Как только условие нарушается, выполнение серии прекращается. Если условие изначально неверно, то серия не выполняется.
Алгоритм, в состав которого входит итерационный цикл, называется итерационным алгоритмом. Итерационные алгоритмы используются при реализации итерационных численных методов.
Возможны случаи, когда внутри тела цикла необходимо повторить некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (количество вложенных друг в друга циклов) может быть различной.
При использовании такой структуры для экономии машинного времени
необходимо выносить из внутреннего цикла во внешний все операторы, которые не зависят от параметра внутреннего цикла вложенных циклов для.
Существует два типа алгоритмов циклической структуры: цикл с предусловием и цикл с постусловием. [1]
Эти циклы взаимозаменяемы и обладают некоторыми отличиями:
• в цикле с предусловием условие проверяется до тела цикла, в цикле с постусловием – после тела цикла;
• в цикле с постусловием тело цикла выполняется хотя бы один раз, в цикле с предусловием тело цикла может не выполниться ни разу;
• в цикле с предусловием проверяется условие продолжения цикла, в цикле с постусловием – условие выхода из цикла.
2.1 Операторы управления
Операторы управления вычислительным процессом позволяют выполнять ветвление, циклическое повторение одного или нескольких операторов, передачу управления в нужное место кода программы. Под вычислительным процессом понимают процесс выполнения операторов программы.
Все операторы языка могут быть условно разделены на следующие категории:
• условные операторы, к которым относятся оператор условия if и оператор выбора switch;
• операторы цикла (for, while, do while);
• операторы перехода (break, continue, return, goto);
•другие операторы (оператор "выражение", пустой оператор).
Оператор условия if(если) выбирает в программе из группы альтернатив возможное продолжение вычислительного процесса. Выбор выполняется, исходя из значения заданного логического выражения.
Оператор if имеет следующую общую форму записи: if (логическое выражение) оператор A; [else(иначе) оператор B;].
Иногда алгоритм задачи содержит ряд альтернативных решений, причем некоторую переменную надо проверять отдельно для каждого постоянного целого значения, которое она может принимать. В зависимости от результатов этой проверки должны выполняться различные действия. Оператор switch производит сопоставление значения с множеством констант. Структура switch, состоящая из ряда меток case и необязательной метки default(умолчание), имеет следующий вид:
switch (выражение выбора)
{
case значение 1:
оператор 1;
break;
Оператор break применяется для выхода из оператора switch и вызывает передачу управления на первый оператор после структуры switch. Константы в вариантах case должны быть различными, и если проверяемое значение не совпадает ни с одной из констант, выбирается вариант default. После каждой метки case может быть предусмотрено одно или несколько действий, при этом в последнем случае операторы не нужно заключать в скобки.
Оператор while(пока) позволяет осуществлять циклическое выполнение рабочих операторов, пока логическое условие остается истинным. Рабочие операторы, записанные в структуре оператора while, составляют его тело, которое может быть отдельным или составным оператором.
Оператор for повторяет блок рабочих операторов указанное число раз и имеет следующую структуру:
for(имя переменной = начальное значение; конечное значение; приращение) оператор, где
• имя переменной - имя управляющей переменной, используемой как счетчик цикла;
• начальное значение - начальное значение управляющей переменной;
• конечное значение - конечное значение управляющей переменной;
• приращение - шаг изменения значения управляющей переменной;
• оператор - один или несколько рабочих операторов, образующих тело цикла.
Операторы break и continue изменяют поток управления. Когда оператор break выполняется в структурах while, for, do/while или switch, происходит немедленный выход из структуры. Программа продолжает выполнение с первого оператора после структуры. Обычное назначение оператора break - досрочно прерывать цикл или пропустить оставшуюся часть структуры switch.
Из данной главы мы узнали о структурах алгоритма. Линейный алгоритм самый простой в описании. Разветвляющийся содержит условие для выполнения. Циклический выполняет многократное повторение одного и того же действия. Кратко изучили, какие операторы управления используются в написании алгоритмов на машинном языке.
Глава 3 Примеры использования алгоритмов
Приведем несколько примеров линейного, разветвляющегося и циклического алгоритмов. Опишем их на алгоритмическом языке и в виде блок-схем.
Пример 1. (Линейный)
Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса.
ввод r
P:= 2*π*r;
S:= π*r²;
V:= (4/3)*π*r²;
Ввод r
вывод P, S, V
P:= 2πr
Блок-схема 1
Вывод P, S, V
V:= (4/3)πr²
S:= πr²
Пример 2.(Линейный)
Вычислить периметр и площадь прямоугольного треугольника по двум катетам.
ввод a, b
c:= ;
Ввод a, b
P:= a+b+c;
S:= (a*b)/2;
c:=
вывод P, S
Блок-схема 2
Вывод P, S
S:= (a*b)/2
P:= a+b+c
Пример 3.(Разветвляющийся)
Определить, имеется ли среди заданных целых чисел a, b , c хотя бы одно четное.
ввод a, b , c
если a mod 2 = 0
Ввод a, b, c
то вывод «есть четное число»
иначе если b mod 2 = 0
a mod 2 = 0
то вывод «есть четное число»
да
иначе если c mod 2 = 0
нет
то вывод «есть четное число»
да
b mod 2 = 0
иначе вывод «четных чисел нет»
нет
c mod 2 = 0
Блок-схема 3
нет
да
Вывод «есть четное число»
Вывод «четных чисел нет»
Пример 4.(Разветвляющийся)
Из трех заданных чисел x, y, z выберите те, которые принадлежат отрезку [a;b].
Ввод a, b, x , y, z
Если a<=x<=b
Ввод a, b, x, y, z
То вывод x;
Если a<=y<=b
да
a<=x<=b
То вывод y;
Вывод x
Если a<=z<=b
нет
a<=y<=b
То вывод z;
да
Конец.
Вывод y
нет
нет
да
Блок-схема 4
Вывод z
a<=z<=b
Пример 5.(Циклический)
Вычислить значение функции z=x*y при условии, что одна из переменных x меняется в каждом цикле на 1, а y не меняется и может быть любым целым числом.
Ввод x, y, n
Нц
Ввод x, y, n
Пока i:=1; n
z:=x*y;
i:= 1; n
x:=x+1;
вывод z
z:=x*y
кц
x:=x+1
конец
Вывод z
Блок-схема 5
Пример 6.(Циклический)
Посчитать сумму всех положительных и произведение отрицательных элементов массива A[n].
Ввод n
Нц
n
i:=1 до n
i:=1 до n
ввод A[i]
кц
A[i]
s1:=0;
s2:=1;
i:=1 до n
нц
i:=1 до n
нет
да
A[i]>0
если A[i]>0 то
s1:= s1+A[i]
s1:=s1+A[i]
s2:=s2*A[i]
иначе s2:= s2*A[i]
кц
Вывод s1, s2
вывод s1, s2
конец
Блок-схема 6
Заключение
Подведем итоги по проделанной работе.
Алгоритм – это точное описание последовательность действий, которое необходимо сделать для получения определенного результата.
Существует 5 основных свойств алгоритма:
- Определенность;
- Массовость;
- Результативность;
- Понятность;
- Дискретность.
Алгоритм имеет временные и объемные характеристики. Временные определяют длительность решения и временные сложности, а объемные определяют информационные сложности.
Существует 4 способа описания алгоритма:
- Словесный;
- Графический;
- Псевдокоды;
- Программный.
Словесный способ не самый популярный способ описания из-за его многословности и отсутствия наглядности, и он может быть написан только на естественном языке.
Графический способ – наглядный способ. Такой способ еще называют блок-схемой. К графическому описанию так же относятся диаграммы, схемы блокировки, структурные схемы, графы последовательного выполнения программы.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Псевдокод занимает промежуточное место между естественным и формальным языками.
Программный способ используется для написания алгоритма на машинном языке.
Алгоритм имеет 3 базовые структуры: линейная, разветвляющаяся, циклическая.
Линейной структура алгоритма является, если она образована последовательностью простых операторов.
Разветвляющейся структура алгоритма является, если содержит хотя бы одно условие, в результате проверки которого ПК обеспечивает переход на один из двух возможных шагов.
Циклической структура алгоритма является, если в ней есть многократное повторение одного и того же действия.
Библиография
1. Основы алгоритмизации и программирования: учебное пособие / Г. Р. Кадырова. – Ульяновск: УлГТУ, 2014. – 95 с..
- Основы алгоритмизации и программирования. Курс лекций.
- Белов П.М. Основы алгоритмизации в информационных системах: Учебн. Пособие.- Спб.: СЗТУ, 2003. – 85с..
- ГОСТ 19.701-90 (ИСО 5807 – 85) «Единая система программной документации».
- Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та - КАИ, 2013, 153 с.
Приложения
Таблица
|
Название символа |
Обозначение |
Пояснение |
|
1 |
2 |
3 |
|
Процесс |
Вычислительное действие или последовательность вычислительных действий |
|
|
Решение |
Проверка условий |
|
|
Модификация |
Начало цикла |
|
|
Предопределенный процесс |
Вычисления по подпрограмме, стандартной подпрограмме |
|
|
Документ |
Вывод, печать результатов на бумаге |
|
|
Ввод-вывод |
Ввод – вывод данных в общем виде |
|
|
Соединитель |
Разрыв линий потока |
|
|
Пуск, останов |
Начало, конец, останов, вход и выход в подпрограммах |
|
|
Комментарий |
Пояснения, содержание подпрограмм, формулы |