Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФ_ЛЕКЦИИ_(1 С)_2011.doc
Скачиваний:
5
Добавлен:
16.04.2019
Размер:
898.56 Кб
Скачать

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 [фолс] – ложно.

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

2.3. Базовые алгоритмические структуры

<TBODY>Логическая структура любого алгоритма может быть представлена комбинацией трех базовых (основных) структур: следование, ветвление, цикл.

1. Базовая структура “следование. Образуется из последовательности действий, следующих строго одно за другим.

Например, требуется вычислить величину y по формуле y = ax2 + bx при произвольных a, b, x. Блок-схема соответствующего алгоритма имеет вид, приведенный на рис 2.2. В данном случае алгоритм состоит из простой последовательности действий (блоков). Значит, </TBODY>он соответствует структуре “следование”.

Рис. 2.2. Алгоритм вычисления по формуле y = ax2 + bx

2. Базовая структура “ветвлениеобеспечивает в зависимости от результата проверки выполнения некоторого условия (да или нет) выбор одного из альтернативных путей работы алгоритма.

Структура “ветвление” существует в двух основных вариантах:

если – то:

если – то – иначе.

В алгоритме примера 2.1 присутствуют оба варианта этой структуры. После блока “m = n ?” в случае положительного ответа выполняется действие “Вывести n”, а в случае отрицательного – работа алгоритма продолжается далее. Таким образом, реализована структура “если – то”. После блока “m > n ?” в случае положительного ответа выполняется действие “m = m – n”, а в случае отрицательного (т.е. иначе) – действие “n = n – m”,. Таким образом реализована структура “если – то – иначе”.</TBODY>

3. Базовая структура “цикл”. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла.

Пример 2.2. Рассмотрим следующую задачу. Двум бойцам, посланным в разведку, надо перебраться через широкую реку. У берега в маленькой лодке удят рыбу два мальчика. Как бойцам с помощью этих детей перебраться на другой берег, если лодка выдерживает либо одного взрослого, либо двоих детей?

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

1. Оба мальчика переправляются на левый берег.

2. Один мальчик возвращается на правый берег, второй – остается на левом.

3. Первый боец переправляется на левый берег, а первый мальчик остается на правом.

4. Второй мальчик переправляется на правый берег.

5. Оба мальчика переправляются на левый берег.

6. Один мальчик возвращается на правый берег, второй – остается на левом.

7. Второй боец переправляется на левый берег.

8. Второй мальчик переправляется на правый берег.

Заметим, что шаги 1 – 4 почти совпадают с шагами 5 – 8, разница только в номере переправляемого бойца. Очевидно, что с помощью подобного алгоритма можно переправить любое количество N бойцов, а не только двоих. Для этого надо выполнить следующий алгоритм.

1. Повторять шаги со 2 по 6, увеличивая каждый раз на 1 значение k от 1 до N.

2. Оба мальчика переправляются на левый берег.

3. Один мальчик возвращается на правый берег, второй – остается на левом.

4. k-й боец переправляется на левый берег, а первый мальчик остается на правом.

5. Второй мальчик переправляется на правый берег.

6. Если k = N, то стоп.

Это будет циклический алгоритм, тело которого составляют шаги 2 – 6. Другой вариант циклической структуры дан в примере 2.1. В нем телом цикла являются шаги 2 – 4.