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

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

На практике наиболее распространены следующие формы представления алгоритмов:

  • словесная – запись на естественном (“человеческом”) языке;

  • графическая – изображение команд в виде графических символов;

  • программная – текст на языке программирования.

Словесный способ записи алгоритмов. Это <TBODY>описание последовательных этапов (шагов) обработки данных. Алгоритм задается в произвольном изложении на естественном языке. </TBODY>

Пример 2.1. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.

Предлагается следующий алгоритм – алгоритм Евклида.

1. Задать два числа.

2.Если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма.

3. Заменить большее из чисел разностью большего и меньшего из чисел.

4. Повторить алгоритм с шага 2.

Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедимся в этом, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75:

1. m = 125, n = 75.

2. m > n, значит

3. Новое m = 125 – 75 = 50, n = 75. Возврат к 2.

2. n > m, значит

3. Новое n = 75 – 50 = 25, m = 50. Возврат к 2.

2. m > n, значит

3. Новое m = 50 – 25 = 25, n = 25. Возврат к 2.

2. m = n. Значит ОТВЕТ = 25.

Словесный способ не имеет широкого распространения по следующим причинам:

  • описания не формализованы (нет строгих правил);

  • страдают многословностью записей;

  • допускают неоднозначность толкования отдельных предписаний.

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

Таблица 2.1.

<TBODY>Название

символа

Обозначение и пример

заполнения

Пояснение

Процесс

Вычислительное действие или последовательность действий

Решение

Проверка условий

Модификация

Начало цикла

Ввод-вывод

Ввод-вывод в общем виде

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

Начало или конец алгоритма

<TBODY>При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.</TBODY> Такое представление называется блок-схемой алгоритма.

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

В таблице 2.1. приведены наиболее часто употребляемые символы.

Блок "процесс" применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения указанных данных. Для улучшения наглядности схемы несколько отдельных действий по обработке можно объединять в один блок. Представление отдельных операций достаточно свободно.

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

Блок "модификация" используется для организации циклических конструкций. Слово модификация означает видоизменение, преобразование. Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения. На рис. 2.1. приведена блок-схема алгоритма решения задачи примера 2.1.

Да

Нет

Да

Нет

Рис. 2.1. Блок-схема алгоритма Евклида

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

Запишем программу алгоритма решения задачи примера 2.1 на языке PASCAL.

var m, n : integer;

begin readln(m, n);

repeat if m = n then

begin writeln(n:5); halt; end;

if m > n then m := m - n else n := n - m;

until False;

end.

Приведем перевод ключевых слов для понимания алгоритма.

var – переменные; integer [интедже]– целый;

readln [риидлн]– ввод данных с клавиатуры;

writeln [райтелн]– вывод данных на экран;

begin – начало текста программы или ее блока;

end – конец текста программы или ее блока; until [антил]– пока;

halt – конец вычислений; then [зен]– тогда;

if – если (проверка условия); else [элз]– иначе;

repeat [репиит]– повторять; false [фолс] – ложно.

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

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