Свойства и способы описания алгоритмов
Алгоритмам должен обладать следующими свойствами:
· Однозначность – чёткое предписание, что и как делать в каждой конкретной ситуации.
· Универсальность – применимость данного алгоритма к решению любой задачи данного типа.
· Результативность – отсутствие зацикливаний (образование замкнутого круга, из которого можно выйти только принудительным прерыванием работы программы). Любая программа должна всегда приводить к результату, даже если это будет аварийное сообщение.
К основным способам описания алгоритмов можно отнести следующие:
· словесно-формульный;
· структурный или блок-схемный.
При словесно-формульном способе алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий.
Пусть, например, необходимо найти значение следующего выражения:
у = 2а - (х+6).
Словесно-формульным способом алгоритм решения этой задачи может быть записан в следующем виде:
· Ввести значения а и х.
· Сложить х и 6.
· Умножить а на 2.
· Вычесть из 2а сумму (х+6).
· Вывести y как результат вычисления выражения.
При блок-схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий. Графическая интерпретация алгоритма называется блок-схемой. Данный способ по сравнению с другими способами записи алгоритма имеет ряд преимуществ. Он наиболее нагляден: каждая операция вычислительного процесса изображается отдельной геометрической фигурой. Кроме того, графическое изображение алгоритма наглядно показывает разветвления путей решения задачи в зависимости от различных условий, повторение отдельных этапов вычислительного процесса и другие детали.
Оформление программ должно соответствовать определенным требованиям. В настоящее время действует единая система программной документации (ЕСПД), которая устанавливает правила разработки, оформления программ и программной документации. В ЕСПД определены и правила оформления блок-схем алгоритмов (ГОСТ 10.002-80 ЕСПД, ГОСТ 10.003-80 ЕСПД).
Операции обработки данных и носители информации изображаются на схеме соответствующими блоками. Большая часть блоков по построению условно вписана в прямоугольник со сторонами a и b. Минимальное значение а = 10 мм, увеличение а производится на число, кратное 5 мм. Размер b=1,5а. Для отдельных блоков допускается соотношение между а и b, равное 1:2. В пределах одной схемы рекомендуется изображать блоки одинаковых размеров. Все блоки нумеруются. Виды и назначение основных блоков приведены в таблице.
Таблица 1.1. Условные обозначения блоков схем алгоритмов
Наименование | Обозначение | Функции |
Процесс | Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных. | |
Ввод-вывод | Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). | |
Решение | Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий. | |
Предопределенный процесс | Использование ранее созданных и отдельно написанных программ (подпрограмм). | |
Документ | Вывод данных на бумажный носитель. | |
Магнитный диск | Ввод-вывод данных, носителем которых служит магнитный диск. | |
Пуск-останов | Начало, конец, прерывание процесса обработки данных. | |
Соединитель | Указание связи между прерванными линиями, соединяющими блоки. | |
Межстраничный соединитель | Указание связи между прерванными линиями, соединяющими блоки, расположенные на разных листах. | |
Комментарий | [ | Связь между элементом схемы и пояснением. |
Линии, соединяющие блоки и указывающие последовательность связей между ними, должны проводится параллельно линиям рамки. Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий, то есть блок может являться преемником любого числа блоков. Из блока (кроме логического) может выходить только одна линия. Логический блок может иметь в качестве продолжения один из двух блоков, и из него выходят две линии. Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, когда одна линия подходит к другой и слияние их явно выражено, точку можно не ставить.
Схему алгоритма следует выполнять как единое целое, однако в случае необходимости допускается обрывать линии, соединяющие блоки.
Если при обрыве линии продолжение схемы находится на этом же листе, то на одном и другом конце линии изображается специальный символ соединитель – окружность диаметром 0,5 а. Внутри парных окружностей указывается один и тот же идентификатор. В качестве идентификатора, как правило, используется порядковый номер блока, к которому направлена соединительная линия.
Если схема занимает более одного листа, то в случае разрыва линии вместо окружности используется межстраничный соединитель. Внутри каждого, соединителя указывается адрес — откуда и куда направлена соединительная линия. Адрес записывается в две строки: первой указывается номер листа, во второй — порядковый номер блока.
Блок-схема должна содержать все разветвления, циклы и обращения к подпрограммам, содержащиеся в программе.