| Ветвление в алгоритмах и программах
Для решения большинства задач линейных алгоритмов недостаточно.
В проектах, которые реализуют другие виды алгоритмов, например алгоритмы с разветвлением, используют логические выражения.
Как сравнивают значения величин в программах?
- Простые высказывания в языках программирования можно записать в виде логических выражений с использованием операций сравнения. (Логическая переменная - это переменная, которая может принимать только значение true или false)
- Результатом выполнения операции сравнения значений двух величин есть величина логического типа, которая может принимать одного из двух значений: true, false.
- Для описания логических величин в языке программирования Object Pascal - тип boolean
 |
Сравнение значений величин различных типов имеет определенные особенности:
1. Числовые величины сравниваются по правилам математики.
2. Сравнение текстовых величин языке Object Pascal, в результате которого получено логическое значение True, продемонстрировано ниже:
"Алгоритм" < "алгоритм" - код большой буквы А меньше код буквы а;
"Алгоритм"> "АГО" - длина первой величины больше длины второй;
"Алгоритм" <> 'alhoritm'.
3. Для логических величин:
а = True, b = False
Результатом выполнения операции: а> b будет значение True поскольку:
истинное значение True интерпретируется как 1, а ложное False – 0, понятно, что 1> 0
|
4. Кроме операций сравнения над логическими величинами во всех языках программирования для записи составленных высказываний используют логические операции:
- отрицание;
- конъюнкция;
- дизъюнкция.
Результаты выполнения этих операций над переменными А и В логического типа, принимают значения True (1) и False (0) приведены в таблице истинности

- Чтобы определить значения составного логического выражения, содержащего несколько логических операций, используют таблицу истинности и учитывают приоритет выполнения операций: not, and, or.
- Как и для числовых выражений, для изменения порядка выполнения логических операций используют скобки.
Ветвление в языке программирования Object Pascal
Простые и составные логические выражения, значениями которых являются True или False, используют в описании алгоритмической структуры ветвления, с помощью которой исполнитель алгоритма может выбрать один из сценариев дальнейших действий в зависимости от выполнения определенного условия.
Для описания алгоритмической структуры ветвления на языке программирования используют:
1. Оператор полного ветвления: if <логическое выражение> then <команда 1> else <команда 2>; |
 |
Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End. |
If условие then
Begin
[Оператори1]
End
Else
begin
[Оператори2]
End;
|
2. Оператор неполного ветвления: if <логическое выражение> then <команда>;
Команда или блок команд в операторе неполного ветвления будет выполняться только в случае, когда логическое выражение принимает значение True. |
 |
В операторе неполного ветвления на языке программирования Object Pascal после служебного слова then можно записать только одну команду или блок команд, которые ограничены операторных скобками begin, end. |
begin
<Команда 1>;
<Команда 2>;
...
<Команда n>;
end;
|
Замечания.
- Перед ключевым словом else (иначе) точка с запятой не ставится, она ставится после всего оператора If.
- Условие является логическим выражением.
- Простые условия записываются в виде равенств или неравенств.
- В сложных условиях несколько простых условий объединяются с помощью логических операций or, and ... В этом случае простые условия заключаются в круглые скобки
3. Если есть необходимость учесть значения нескольких логических выражений, то используют вложенные ветвления.
if <логическое выражение 1> then <команда 1>
elseif <логическое выражение 2> then <команда 2>
...
elseif <логическое выражение n> then <команда n>
else <команда иначе>;
|
В описанных вложенных разветвлениях:
Если значение логического выражения 1- True, то выполняется команда 1 или блок команд 1.
Если значение логического выражения 1 - False и значение логического выражения 2 - True, то выполняется команда 2 или блок команд 2 и т.д.
В противном случае выполняется команда иначе или блок команд иначе.
|
Обращаем ваше внимание:
-
если после ключевых слов Then и Else следуют только по одной команде, то операторные скобки begin и end можно не ставить;
-
перед Else , Elseif ставить точку с запятой нельзя.
Задание. Разработайте проект в среде Lazarus, в котором по введенным значением температуры воды будет определяться ее агрегатное состояние.
Алгоритм проекта

1. Откройте среду Lazarus, создайте новый проект и сохраните его составляющие в папке проекта.
2. Измените свойства объекта Form1, разместите на форме нужные объекты и предоставьте значений их свойствам, чтобы получить форму например, как на рисунке.

Примите во внимание, что для всех объектов используется свойство шрифта - ArialUnicode MS, размер - 16. Стиль шрифта определите по рисунку.
3. Создайте процедуру обработки события нажатия кнопки Пуск. В окне редактора кода введите код.
procedure TForm1.Button1Click(Sender: TObject);
var t: integer;
begin
t := strtoint(edit1.text);
if t<0 then label2.Caption := 'агрегатное состояние - лед'
elseif t>100 then label2.Caption := 'агрегатное состояние - пар'
else label2.Caption := 'агрегатное состояние - жидкость';
end;
Примеры.Алгоритмы с ветвлением
| |