Главная страница / 23. Алгоритм и его свойства. Способы зап...: 23.5. Способы записи алго...
23.5. Способы записи алгоритмов
← 23.4. Элементарные алгоритмические действия | 23.6. Контрольные вопросы и задания → |
Алгоритм может иметь различные формы представления. Рассмотрим три наиболее распространенных из них, иллюстрируя примером алгоритма нахождения корней квадратного уравнения.
Первая и самая простая – это вербальная, или словесно-формульная, форма. В ней алгоритмические действия описываются словами и, при необходимости, формулами. Для выбранного примера описание алгоритма может иметь следующий вид.
Алгоритм вычисления корней квадратного уравнения ax2 + bx + c = 0. Входными данными являются коэффициенты a, b и c.
- Сначала необходимо вычислить дискриминант уравнения D = b2 - 4ac.
- Если дискриминант имеет неотрицательное значение, то корни уравнения – вещественные:
.
- Если дискриминант отрицательный, то корни комплексно сопряженные:
.
Словесно-формульная форма является естественной для человека, но в сложных случаях не дает четкого представления о последовательности действий и может обладать неоднозначностью их интерпретации. Она обычно используется при разработке алгоритмов как исходная.
Наиболее полной и корректной формой является запись алгоритма на специальном языке. За рубежом он называется PDL (Process Design Language), «псевдокод». Отечественный вариант этого языка был предложен академиком А.П. Ершовым в первых школьных учебниках по информатике [2] и используется у многих других авторов учебников [3,4]. Это – паскалеподобный язык, обладающий всей полнотой и корректностью описания алгоритма. Алгоритм решения квадратного уравнения на нем имеет следующий вид:
алг Root2 (вещ a,b,c,x1,x2; цел key)
арг a,b,c
рез x1,x2,key
нач
вещ D,re,im
D:=b2-4ac
re:=
im:=-
если D>=0
то
нач
x1:=re+im
x2:=re-im
key:=0
кон
иначе
нач
x1:=re
x2:=im
key:=1
кон
все
кон
Заголовок алгоритма содержит его имя, а также описание входных (арг) и выходных (рез) данных с указанием их идентификаторов и типов. Далее аналогично описываются промежуточные данные алгоритма. Начало и конец алгоритмических действий обозначены служебными словами нач и кон. Рассматриваемый в качестве примера алгоритм очень простой и содержит только операторы присваивания и одну структурную конструкцию – бинарное ветвление. Она оформляется служебными словами: если, то, иначе, все.
Представление алгоритма на псевдокоде допускает разные уровни абстракции и поэтому может быть использовано как при разработке алгоритма путем постепенной детализации, так и для его окончательного представления.
Третьей широко распространенной формой представления алгоритмов является язык блок-схем. По корректности он занимает промежуточное положение между словесно-формульным описанием и представлением на псевдокоде. Достоинством его является визуальная наглядность графического изображения. Каждая структурная конструкция имеет стандартное графическое изображение. Некоторые из них представлены в табл. 23.1. Отдельные действия представляются в виде прямоугольников, последовательность их выполнения показываются стрелками (линиями потока).
Таблица 23.1. Некоторые условно-графические элементы блок-схем
Наименование |
Обозначение и относительные размеры |
Функция |
---|---|---|
Процесс |
Выполнение операций или группы операций, в результате которых изменяется значение, форма представления или расположение данных |
|
Решение |
Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий |
|
Модификации |
Выполнение операций, меняющих команды или группу команд, изменяющих программу |
|
Предопределенный процесс |
Использование ранее созданных и отдельно описанных алгоритмов или программ |
|
Ввод-вывод |
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов об-работки (вывод) |
|
Линия потока |
Указание последовательности между символами |
|
Пуск-останов |
Начало, конец, прерывание процесса обработки данных или выполнения программы |
|
Комментарий |
Связь между элементом схемы и пояснением |
Алгоритм решения квадратного уравнения представлен блок-схемой на рис. 23.3. Бинарное ветвление в ней показано ромбовидной фигурой. В зависимости от значения записанного в ней логического выражения (условия) выполняется та или иная ветвь вычисления.
Рис. 23.3. Блок схема алгоритма вычисления корней квадратного уравнения
Блок-схемы допускают различные уровни детализации представляемых алгоритмических действий и поэтому очень удобны при разработке алгоритмов. Будучи дополнены комментариями с описаниями данных, они дают достаточно полное представлении об алгоритме.
Существуют и другие формы представления алгоритмов, имеющие более ограниченное использование, но они в данном пособии не рассматриваются. Упомянутые выше формы будут более подробно представлены ниже при описании конкретных алгоритмических структур.
← 23.4. Элементарные алгоритмические действия | 23.6. Контрольные вопросы и задания → |