Практическая работа "Программирования ветвлений"
Алгоритмическая структура ветвления программируется в Паскале с помощью условного оператора If.
Полное ветвление:
If < логическое выражение > Then < оператор 1 > Else < оператор 2 >
Неполное ветвление:
If < логическое выражение > Then < оператор >
То, что в алгоритмах называется условием, в Паскале является логическим выражением, которое вычисляется в первую очередь. Если его значение равно true, то будет выполняться < оператор 1 > (после Then), если — false, то < оператор 2 > (после Else) для полной формы или оператор, сразу следующий после условного, для неполной формы (без Else). На ветвях может быть как простой оператор, так и составной — серия операторов в операторных скобках Begin, End.
Пример 1. По длинам трех сторон треугольника а, b, с требуется вычислить его площадь.
Для решения задачи используется формула Герона
где р = (а + b + с)/2 — полупериметр треугольника. Исходные данные должны удовлетворять основному соотношению для сторон треугольника — длина каждой стороны должна быть меньше суммы длин двух других сторон, и длины сторон не могут быть отрицательными величинами.
Имея возможность в одном условном операторе записывать достаточно сложные логические выражения, используя логические операции, мы можем сразу «отфильтровать» все варианты неверных исходных данных.
Пример 2. Требуется перевести пятибалльную оценку в ее на-именование: 5 — «отлично», 4 — «хорошо», 3 — «удовлетворительно», 2 — «неудовлетворительно».
Блок-схема алгоритма приведена на рис. 3.14.
Этот алгоритм имеет структуру вложенных ветвлений и может быть запрограммирован с использованием условного оператора If следующим образом:
Пример 3. Решение рассмотренной в предыдущем примере задачи можно запрограммировать с помощью одного оператора выбора, имеющегося в языке Паскаль. Вот как будет выглядеть такая программа:
Оператор выбора имеет следующий формат:
Case < селектор > of < список констант 1 > : < оператор 1 > ; ··· < список констант N > : < оператор N > ; Else <оператор> End
Здесь < селектор > — это выражение любого порядкового типа; < константа > — постоянная величина того же типа, что и селектор; < оператор > — любой простой или составной оператор.
Выполнение оператора выбора происходит так: вычисляется выражение-селектор; затем в списках констант ищется такое значение, которое совпадает с полученным значением селектора; далее исполняется оператор, помеченный данной константой. Если такой константы не найдено, то происходит переход к выполнению оператора, следующего после слова Else.
Пример 4. В этом примере демонстрируется использование списка констант в операторе выбора. Программа сообщает, сдал студент экзамен или не сдал. Если оценка одна из следующих: 3, 4, 5, то экзамен сдан; если 2, то не сдан.
Case N of 3, 4, 5: WriteLn('Экзамен сдан'); 2: WriteLn('Экзамен не сдан'); Else WriteLn('Нет такой оценки') End
Так же как условный оператор, оператор выбора может ис-пользоваться в неполной форме, т. е. без ветви Else.
Если применить условный оператор, то эта программа запишется так:
If (N=3) or (N=4) or (N=5) Then WriteLn('Экзамен сдан') Else If N=2 Then WriteLn('Экзамен не сдан') Else WriteLn('Нет такой оценки');
В условии ветвления использовано сложное логическое выражение, содержащее операции логического сложения or (или).