словесная (запись на естественном языке);
графическая (изображения из графических символов);
псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
программная (тексты на языках программирования).
Что такое словесный способ записи алгоритмов?Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида).
Алгоритм может быть следующим:
- задать два числа;
- если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма;
- определить большее из чисел;
- заменить большее из чисел разностью большего и меньшего из чисел;
- повторить алгоритм с шага 2.
Словесный способ не имеет широкого распространения, так как такие описания: строго не формализуемы;
страдают многословностью записей;
допускают неоднозначность толкования отдельных предписаний.
Что такое графический способ записи алгоритмов?
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков,
каждый из которых соответствует выполнению одного или нескольких действий.
Такое графическое представление называется блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура называемых блоками. Блоки соединяются линиями переходов (называемых ветвью алгоритма), определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые блоки.
Название
блока |
Графическое
изображение |
Оприсание |
Блок
начало и конца алгоритма |
Любой алгоритм начинается и
заканчивается данным блокрм. |
|
Блок
ввода - вывода |
Внутри данного блока
записываются именна данных которые вводятся или выводятся в процессе
выполнения алгоритма. |
|
Блок
обработки (арифметический блок) |
Внури блока записываются
формулы, указывающие на обработку данных. |
|
Логический
блок |
Внутри блока записывается
проверяемое условие, если оно истино, то выполнение алгоритма
продолжается по положительной ветви, а иначе по отрицательной ветви
алгоритма. |
|
Блок
начало цикла |
Внутри блока записывается
параметр цикла, для которого указываются его начальное значение,
граничное условие и шаг изменения значения параметра для каждого
повторения. |
Что такое псевдокод?
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой строны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. "Основы информатики и вычислительной техники", 1991. Этот язык в дальнейшем мы будем называть просто "алгоритмический язык".
Пример записи алгоритма на школьном АЯ
алг Сумма квадратов (арг цел n, рез цел S)
дано | n > 0
надо | S = 1*1 + 2*2 + 3*3 + ... + n*n
нач цел i
ввод n; S:=0
нц для i от 1 до n
S:=S+i*i
кц
вывод "S = ", S
кон