Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПП пособие Шишов.doc
Скачиваний:
151
Добавлен:
17.11.2018
Размер:
3.25 Mб
Скачать

8.2. Формы записи алгоритмов

Существуют множество различных форм записи алгоритмов. Это связано с тем, что каждый исполнитель алгоритмов "понимает" лишь такой алгоритм, который записан на его "языке" и по его правилам. Условно выделяют четыре формы записи алгоритмов:

1. Словесно-пошаговая (текстовая).

2. Табличная.

3. Графическая форма записи (блок-схема).

4. Запись на алгоритмическом языке.

Словесная форма записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.

При использовании словесно-пошаговой (текстовой) формы записи алгоритм часто записывается в виде пронумерованных этапов его выполнения.

Например: Алгоритм сложения двух чисел ( a и b ).

1. Спросить, чему равно число a .

2. Спросить, чему равно число b .

3. Сложить a и b, результат присвоить с.

4. Сообщить результат с.

Словесный способ не имеет широкого распространения, так как такие описания: строго не формализуемы, страдают многословностью записей, допускают неоднозначность толкования отдельных предписаний.

Табличная форма записи – это запись алгоритма в виде таблицы. Используемые таблицы могут быть различными. Для примера будем использовать упрощенную форму. Порядок составления табличных алгоритмов:

1. Переписать выражение так, как допустимо в информатике.

2. Определить порядок действий.

3. Ввести обозначения промежуточных результатов.

4. Занести полученные действия в таблицу.

Пример: Алгоритм вычисления R=2a +3b .

действия

действие

величина

результат

1

2

1

*

2

A

k

2

*

3

B

u

3

+

k

U

R

При использовании графической формы записи (блок-схемы) алгоритм записывается в виде схемы, состоящей из блоков (геометрических фигур) с размещенными в них действиями. Блоки соединяются стрелочками и показывают структуру всего алгоритма. Алгоритм в виде блок-схемы начинается блоком «начало» и заканчивается блоком «конец».

Таблица Основные блоки

При составлении блок-схемы алгоритма сначала выделяют исходные данные (все переменные величины после знака равенства и в условии) и результат (величины которые необходимо найти). Если в задании подразумеваются, но не указываются имена величин, то они обозначаются самостоятельно.

При отсутствии исходных данных блок ввода не пишется. В один блок можно поместить одно действие.

 

Например: Алгоритм вычисления значения выражения (ВЗВ) K=3b+6а.

Дано : b, a

Результат: K

                        K=3*b+6*a

1) R := 3*b

2) M := 6*a

3) K := R+M  

Существуют еще формы записи, которые можно отнести к графическим. Одной из таких форм является построение структурограмм.

Действия в структурограмме располагаются друг под другом. Это позволяет наглядно отслеживать обработку данных в алгоритмах. Все структуры имеют прямоугольную форму. Заполнение их сходно с аналогичными блоками в блок-схемах, но имеются и отличия. Рассмотрите блок-схему и структурограмму алгоритма.

Форма записи на алгоритмическом языке это запись алгоритма на специальном языке (в том числе и на том или языке программирования). Она осуществляется, строго следуя правилам выбранного языка.

Для единообразной записи алгоритмов в форме близкой к языковой, но не учитывающей особенностей конкретного языка программирования была придумана особая система обозначений и правил, получившая название псевдокод.

Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.

В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.

Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.

Стандарта псевдокода нет, т.е. нет единого или формального его определения, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.

Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. "Основы информатики и вычислительной техники", 1991. Этот язык в дальнейшем мы будем называть просто "алгоритмический язык".

Т а б л и ц а Основные служебные слова

алг (алгоритм)

сим (символьный)

дано

для

да

арг (аргумент)

лит (литерный)

надо

от

нет

рез (результат)

лог (логический)

если

до

при

нач (начало)

таб (таблица)

то

знач          

выбор

кон (конец)

нц (начало цикла)

иначе

и

ввод

цел (целый)

кц (конец цикла)

все

или

вывод

вещ (вещественный)

длин (длина)

пока          

не

утв

Рассмотрим основные команды школьного АЯ.

Команда присваивания. Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А  :=  В, где знак  ":="  означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части.

Например,   a := (b+c) * sin(Pi/4);   i := i+1.

Команды ввода и вывода:

  • ввод (далее перечисляются имена вводимых переменных);

  • вывод (далее перечисляются имена выводимых переменных, выражений, тексты).

Команды   если   и   выбор. Применяют для организации ветвлений.

Команды   для   и   пока. Применяют для организации циклов.

После команды может стоять знак "|", за которым записываются комментарии. Комментарии можно помещать в конце любой строки. Они не обрабатываются, но существенно облегчают понимание алгоритма.

Пример записи алгоритма на школьном АЯ.

алг Сумма квадратов (арг цел 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

кон