- •1.7. Алгоритмы. Основные понятия
- •1.7.1. Определение алгоритма. Запись алгоритма. Свойства алгоритмов
- •1.7.3. Примеры алгоритмов. Способы, используемые при записи алгоритмов: рекурсия, итерация, разбор случаев, иерархическое построение
- •1.7.5. Объекты, типы объектов
- •1.7.7. Псевдокод для записи алгоритмов
- •1.7.9. Неструктурированная форма записи алгоритмов
- •1.7.11. Структурированная форма записи алгоритмов
- •1.7.13. Последовательный оператор
- •1.7.15. Условный оператор
- •1.7.17. Оператор цикла
-
1.7.13. Последовательный оператор
Для выполнения последовательно друг за другом двух действий, задаваемых некоторыми операторами "ОПЕРАТОР1" и "ОПЕРАТОР2", в структурированной форме записывают фрагмент текста следующего простого вида:
ОПЕРАТОР1
ОПЕРАТОР2
В неструктурированной форме данная запись эквивалентна записи вида:
Пункт 1. ОПЕРАТОР1.
Перейти к пункту 2.
Пункт 2. ОПЕРАТОР2.
Перейти к следующему пункту алгоритма,
частью которого является данный фрагмент.
Таким образом, при использовании структурированной формы окончание выполнения оператора автоматически (без дополнительных указаний) означает переход к следующему оператору.
-
1.7.15. Условный оператор
Условный оператор - составной оператор, используемый для реализации одного из способов построения алгоритмов - разбора случаев (см.
1.7.3).
1-й вариант записи условного оператора. Пусть имеется некоторое логическое выражение, которое обозначим словом "УСЛОВИЕ". При истинности логического выражения "УСЛОВИЕ" должно выполняться действие, задаваемое оператором "ОПЕРАТОР1". Если же выражение "УСЛОВИЕ" ложно (т.е. в противном случае), должно выполняться действие, задаваемое оператором "ОПЕРАТОР2". В структурированной форме это записывается в виде:
если УСЛОВИЕ то
ОПЕРАТОР1
иначе
ОПЕРАТОР2
конецесли
Для конструирования условного оператора в нашем языке записи алгоритмов используются три ключевых слова: "если", "иначе" и "конецесли". Для наглядности записи алгоритмов перед операторами, включаемыми в составной оператор, принято вставлять отступы из пробелов.
В неструктурированной форме условный оператор эквивалентен записи вида:
Пункт 1. Определить истинность логического
выражения УСЛОВИЕ.
Если оно истинно, то перейти к пункту 2,
иначе перейти к пункту 3.
Пункт 2. ОПЕРАТОР1.
Перейти к пункту 4.
Пункт 3. ОПЕРАТОР2.
Перейти к пункту 4.
Пункт 4. Перейти к следующему пункту алгоритма,
частью которого является данный фрагмент.
Приведенная выше форма записи условного оператора является основной. Кроме нее используются и другие приводимые ниже варианты условного оператора.
2-й вариант записи условного оператора. Если нет необходимости выполнять альтернативное действие, условный оператор можно записать в сокращенном виде:
если УСЛОВИЕ то
ОПЕРАТОР
конецесли
3-й вариант записи условного оператора. Если альтернативное действие само по себе является условным оператором, как, например:
если УСЛОВИЕ1 то
ОПЕРАТОР1
иначе
если УСЛОВИЕ2 то
ОПЕРАТОР2
иначе
ОПЕРАТОР3
конецесли
конецесли
где
· при истинности выражения "УСЛОВИЕ1" выполняется оператор "ОПЕРАТОР1",
· при ложности выражения "УСЛОВИЕ1" и одновременно при истинности выражения "УСЛОВИЕ2" выполняется оператор "ОПЕРАТОР2"
· при ложности выражения "УСЛОВИЕ1" и одновременно ложности выражения "УСЛОВИЕ2" выполняется оператор "ОПЕРАТОР3",
данный составной оператор может быть записан в следующем эквивалентном сокращенном виде:
если УСЛОВИЕ1 то
ОПЕРАТОР1
иначеЕсли УСЛОВИЕ2 то
ОПЕРАТОР2
иначе
ОПЕРАТОР3
конецесли
где вводится новое ключевое слово: "иначеесли", полученное слиянием слов "иначе" и "если". При необходимости в одном условном операторе может быть не один, а несколько блоков вида
иначеесли УСЛОВИЕ то
ОПЕРАТОР
Может отсутствовать блок альтернативных действий, например:
если УСЛОВИЕ1 то
ОПЕРАТОР1
иначеесли УСЛОВИЕ2 то
ОПЕРАТОР2
иначеесли УСЛОВИЕ3 то
ОПЕРАТОР3
конецесли
В качестве примера применения условных операторов приведем структурированную форму записи приведенного в 1.7.9 алгоритма решения линейного уравнения ax+b=0 с действительными коэффициентами:
числовой объект A
числовой объект B
A ¬ a
B ¬ b
если A ¹ 0 то
Выдать ответ: решением является число -b/a
иначеесли B ¹ 0 то
Выдать ответ: решений нет
иначе
Выдать ответ: решением является любое число
конецесли
Заметим, что условие вида A ¹ 0 означает сравнение на неравенство значения объекта с именем A и значения 0. Структурированная запись гораздо нагляднее и понятнее приведенной в 1.7.9 неструктурированной записи того же алгоритма.