- •1 Введение в теорию алгоритмов
- •1.1 Исторический обзор
- •1.2 Цели и задачи теории алгоритмов
- •Пример работы машины Тьюринга
- •1.3 Практическое применение результатов теории алгоритмов
- •1.4 Понятие алгоритма
- •1.5 Способы описания алгоритмов
- •1.5.1 Средства графического изображения алгоритмов
- •Практическое занятие
1.5.1 Средства графического изображения алгоритмов
Схемы алгоритмов
Описание алгоритмов с помощью схем – один из наиболее наглядных и распространенных способов задания алгоритмов. Правила построения алгоритмов определены соответствующими стандартами.
Основные символы схем алгоритмов представлены на рисунке. Символы схемы располагаются сверху вниз. Линии соединения символов – линии потока, показывают направление процесса обработки. Стрелки на соединяющих линиях не ставят при направлениях сверху-вниз и слева-направо; противоположные направления показывают стрелкой на линии потока.
Основные символы схем алгоритмов
Содержание действия, обозначенного символом, раскрывается внутри символа и может быть записано на формальном или естественном языке.
Алгоритмы бывают трех видов: линейные, разветвляющиеся и циклические.
Условные изображения и примеры простейших линейного, разветвляющегося и циклического алгоритмов приведены на рисунке.
Алгоритм независимо от его структуры – сложной или простой всегда имеет один «Останов». Все ветви алгоритма должны сойтись при движении по нему на символе «Останов».
Однако требования к графическому исполнению схем вызывают предубеждение некоторых программистов, представляются основным недостатком схем и заставляют искать новые способы записи алгоритмов.
Основные виды алгоритмов:
а – линейный, б – разветвляющий, с – циклический
В качестве иллюстрации изобразим алгоритм вычисления функции
в виде схемы.
Схема алгоритма вычисления функции
Псевдокодом называется подробное описание алгоритма на структурированном и частично формализованном подмножестве английского (русского) языка. Псевдокод, обладая всеми положительными качествами схем, имеет еще и собственные преимущества. Псевдокод менее схем ограничен правилами изображения. Основное – использование только служебных конструкций и соблюдение правил ступенчатой записи.
Структурограммы
Иллюстрация действий вычислительного процесса, выражающегося в передаче управления от одной части программы к другой, с помощью схем алгоритмов является старым, но не очень удобным средством.
Лучшим средством графического изображения процесса передачи управления (исполнения) являются так называемые структурограммы. Они дают полное визуальное представление деталей логических операций над группами операторов программы.
По имени их авторов такой способ изображения называют еще диаграммами или схемами Нэсси–Шнейдермана.
Диаграмма Нэсси–Шнейдермана – это схема, иллюстрирующая структуру передачи управления внутри модуля с помощью вложенных друг в друга блоков. Диаграммы представляют собой хорошую систему описания и понимания процесса передачи управления в программе.
Основные символы диаграмм показаны на рисунке.
Каждый блок имеет форму прямоугольника и может быть вписан в любой внутренний прямоугольник любого другого блока. Запись внутри блока производится на естественном языке или с помощью математических обозначений.
При использовании структурограмм следует иметь в виду ряд обстоятельств:
структурограмма, описывающая полную разработанную программу, сама представляет собой большой символ обработки, содержащий внутри себя другие символы;
в полной программе, описанной системой вложенных блоков (структурограммой), управление начинает свой путь на верхней стороне внешнего прямоугольника, проходит через каждый прямоугольник и завершает путь на нижней стороне внешнего прямоугольника;
структурограмма законченной программы или ее логически завершенной части должна размешаться на одной странице; в отличие от схем алгоритмов разрыв структурограмм и перенос их на другую страницу недопустим, так как здесь отсутствуют явные линии передачи управления от блока к блоку.
