- •Введение
- •2. Основные понятия теории алгоритмов
- •Свойства алгоритмов
- •Виды алгоритмов
- •Методы изображения алгоритмов
- •Жизненный цикл (этапы создания) программного обеспечения
- •Приложение
- •Реализация разветвляющихся алгоритмов в mathcad
- •Порядок выполнения лабораторной работы «Разработка алгоритмов для структурного программирования и их реализация. Часть 1: ветвление» Пример 1.
- •Пример 2
- •Порядок выполнения лабораторной работы «Разработка алгоритмов для структурного программирования и их реализация. Часть 2: выбор»
- •Порядок выполнения лабораторной работы «Разработка алгоритмов для структурного программирования и их реализация. Алгоритмы организации циклической обработки. Часть 1: счетный цикл»
- •Порядок выполнения лабораторной работы «Разработка алгоритмов для структурного программирования и их реализация. Алгоритмы организации циклической обработки. Часть 2: цикл-пока»
- •Приложение (варианты заданий)
- •Приложение (варианты заданий)
- •Порядок выполнения лабораторной работы «Структурные типы данных. Часть 1: массивы»
Виды алгоритмов
Виды алгоритмов как логико-математических средств:
механические – или детерминированные, жесткие, задают определенные действия в единственной и достоверной последовательности, обеспечивая однозначный и требуемый результат;
гибкие – дают последовательность нахождения решения задачи несколькими путями или способами, или это такие алгоритмы, в которых достижение результата однозначно не определено;
линейные – набор действий, выполняемых во времени последовательно, друг за другом;
разветвляющиеся – алгоритмы, содержащие хотя бы одно условие, в результате проверки которого программа переходит к одному из двух возможных шагов;
циклические – алгоритмы, предусматривающие многократное повторение одного и того же действия, но над новыми данными;
подчиненные (вспомогательные) – алгоритмы, ранее разработанные и целиком использованные при алгоритмизации задачи (обычно на их основе создаются подпрограммы).
Процессы вычислений циклической структуры в свою очередь можно разделить на три группы:
циклические процессы, для которых количество повторений известно – счетные циклы или циклы с заданным количеством повторений;
циклические процессы, завершающиеся по достижении или нарушении некоторых условий - итерационные циклы;
циклические процессы, из которых возможны два варианта выхода: по завершении процесса и досрочный выход по какому-либо дополнительному условию – поисковые циклы.
Методы изображения алгоритмов
На практике распространены формы представления алгоритмов:
словесная в виде последовательности записей на естественном языке;
графическая в виде совокупности графических знаков;
псевдокоды – полуформализованное описание алгоритма на условном языке, включающем в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.;
программная – текст на языке программирования.
Запись алгоритмов на естественном языке (словесная форма) не получила широкого распространения, из-за отсутствия наглядности; ввиду возможности неоднозначного толкования записей, и их многословности. Пример словесной формы алгоритма:
Определить форматы переменных А, С и В.
Ввести значения А и В с клавиатуры.
Сравнить А и В.
Если А больше В, то переменной С присвоить значение А.
Если В больше А, то переменной С присвоить значение В.
Если А равно В, переменной С присвоить значение 0.
Вывести на экран значения А, В и С.
Конец.
Запись алгоритма в виде совокупности графических знаков называется блок-схемой, и получила широкое распространение в научной и учебной литературе. На изображение схем алгоритмов существует ГОСТ 19.701-90. Знаки (блоки) соединены линиями информационного потока (стрелками); каждый знак имеет определенный смысл (см. табл. 1) и соответствует одному шагу (действию) алгоритма. Внутри блока дается описание соответствующего действия. Для простоты чтения схем желательно, чтобы линия входила в блок сверху, а выходила снизу, или шла слева направо. Блоки должны быть одного масштаба. В случае, когда схема алгоритма не умещается на листе, используются соединители. В Microsoft Word для выполнения алгоритмов используется панель инструментов «Рисование – Автофигуры – Блок-схема».
Выполнение алгоритма в виде блок-схемы перед программированием существенно облегчает процесс создания и отладки программы, определения форматов и перечня переменных, поиск ошибок, редактирование алгоритма в будущем.
Таблица 1.
Знаки для изображения схем алгоритмов
Обозначение (графическое изображение) |
Название |
Назначение |
Наименование автофигуры в Word |
|
Терминатор |
Начало или завершение программы или подпрограммы |
Знак завершения |
|
Процесс |
Обработка данных (вычисления, пересылки т.п.) |
Процесс |
|
Решение |
Ветвления, выбор, итерационные и поисковые циклы |
Решение |
|
Данные |
Операции ввода-вывода |
Данные |
|
Подготовка |
Счетные циклы |
Подготовка |
|
Документ |
Вывод на бумагу |
Документ |
|
Архив |
Данные, хранящиеся в архиве или взятые из архива |
- |
|
Документ |
Документ, подготовленный вручную |
- |
|
Файл |
Файл или база данных
|
Магнитный диск |
|
Предопреде-ленный процесс |
Вызов подпрограмм (процедур) |
Типовой процесс |
|
Источник или приемник данных |
Указание источника или приемника данных |
- |
|
Монитор |
Вывод информации на экран |
Дисплей |
|
Соединитель |
Маркировка разрывов линий |
Узел |
|
Соединитель |
Маркировка разрывов линий |
Ссылка на другую страницу |
|
Комментарий |
Пояснения к действиям |
Выноска |
|
Поток информации |
Линии, связывающие блоки |
Стрелка |
В теории программирования доказано [1, 2], что для записи любого сложного алгоритма достаточно трех базовых структур: следование – последовательное выполнение действий (рис. 1,а); ветвление – соответствует выбору одного из двух вариантов действий (рис. 1,б); цикл-пока – определяет повторение действий, пока не будет нарушено условие, выполнение которого проверяется в начале цикла (рис. 2).
Рис. 1. Базовые алгоритмические структуры: а) следование, б) ветвление
Рис. 2. Базовая структура: цикл-пока
На основе базовых структур строятся дополнительные структуры для изображения алгоритмов: выбор (рис. 3), цикл-до, счетный цикл.
Рис. 3. Дополнительная структура «выбор» и реализация ее через базовые структуры
Рис. 4. Дополнительная структура: цикл – до
Рис. 5. Дополнительная структура: цикл с заданным числом повторений (счетный цикл).
На основе алгоритмов создается программное обеспечение (ПО) для решения прикладных задач.
