Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
491.92 Кб
Скачать

32. Формы представления (задания) алгоритмов

После того, как алгоритм разработан, его необходимо представить в той или иной форме. Существует несколько форм представления алгоритмов;

- словесное (вербальное);

- с использованием псевдокодов;

- операторный (язык операторных схем)

Структурированное (словесное, вербальное) описание алгоритма Евклида имеет вид (при условии n > m):

Шаг 1: Если n = 0 вернуть m в качестве ответа и закончить работу, иначе перейти к шагу 2.

Шаг 2: Поделить нацело n на m и присвоить значение остатка переменой r.

Шаг 3: Присвоить значение m переменной n, значение r – переменной m. Перейти к шагу 1.

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

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

 для обозначения операции присваивания;

// для записи комментариев.

С учетом этого, алгоритм Евклида принимает следующий вид.

АЛГОРИТМ Euclid(n,m)

// Алгоритм Евклида вычисляет значение функции gcd(n,m)

// Входные данные: два неотрицательных целых числа m

// и n , которые одновременно не могут быть равны нулю

// Выходные данные: наибольший общий делитель чисел m и n

while n ≠ 0 do

r  n mod m

n  m

m  r

return m

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

Выражаясь операторным языком, алгоритм Евклида основан на рекуррентном вычислении следующего равенства:

gcd(n,m) = gcd(m,n mod m).

Здесь выражение (n mod m) является остатком от деления m на n.

Для чисел 21 и 15 такой способ задания алгоритма может иметь следующий вид

gcd(n,m) = gcd(21,15) = gcd(15,6) = gcd(6,3).

Таким образом, НОД чисел 21 и 15 равен 3.

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

На заре развития вычислительной техники основным способом представления алгоритмов были блок-схемы (flowchart). В настоящее время в нашей стране они заменены на гостированные схемы алгоритмов – чертежи, состоящие из последовательности соединенных линиями без стрелок и со стрелками геометрических фигур (символов), с помощью которых описывается каждый шаг выполнения алгоритма. Схемы алгоритмов выполняются в строгом соответствии с ГОСТ 19.003-80 СХЕМЫ АЛГОРИТМОВ И ПРОГРАММ. ОБОЗНАЧЕНИЯ УСЛОВНЫЕ ГРАФИЧЕСКИЕ, входящим в состав Единой системы программной документации (ЕСПД 19.ХХХ.ХХ) .

Наиболее часто используемые символы представлены в таблице 10.1.

Таблица 10.1 – Некоторые символы схем алгоритмов

Наименование

Обозначение

Функции

Процесс

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

Решение

Да

Нет

Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий

Модификация

Выполнение операций, меняющих команды или группу команд, изменяющих программу

Предопределенный процесс

Использование ранее созданных и отдельно описанных алгоритмов или программ

Ввод - вывод

Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод)

Соединитель

Указание связи между прерванными линиями потока, связывающими символами

Пуск-останов

Начало, конец, прерывание процесса обработки данных или выполнения программы

Комментарий

Связь между элементом схемы м пояснением

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]