Структура ветвления. Условный оператор
- 1. Какая целесообразность применения структуры ветвления в программах?
- 2. Какой вид имеет полная форма оператора условного перехода if в языке Паскаль?
- 3. Какой вид имеет сокращенная форма оператора условного перехода?
- 4. Примеры использования оператора условного перехода, который имеет полную форму представления.
- 5. Примеры использования оператора условного перехода, который имеет сокращенную форму представления.
- 6. Примеры использования вложенных операторов условного перехода.
1. Какая целесообразность применения структуры ветвления в программах?
Бывает, что в программах возникает необходимость организовать ветвление. В этом случае процесс решения задачи происходит на основе выполнения или не выполнения некоторого условия.
В языке Паскаль выбор действия, в зависимости от некоторого условия, может быть реализован с помощью конструкции
if ... then ... else ...
или
if ... then ...
⇑
2. Какой вид имеет полная форма оператора условного перехода if в языке Паскаль?
Полная форма оператора условного перехода if:
if условие then оператор1 else оператор2;
Действие оператора состоит в следующем: сначала вычисляется значение выражения условие. Если оно истинное (равное TRUE), то выполняется оператор, который следует за словом then (оператор1). Если значение ложное (FALSE), то выполняется оператор, который следует за словом else (оператор2).
Операторы оператор1 и оператор2 могут быть составными, то есть содержать несколько строк кода. Такие операторы берутся в операторные скобки begin … end. Такая необходимость возникает, если после зарезервированных слов then или else нужно указать несколько операторов.
В этом случае общий вид оператора условного перехода может иметь, например, следующий вид:
if условие then begin // несколько операторов ... end else begin // несколько операторов ... end;
⇑
3. Какой вид имеет сокращенная форма оператора условного перехода?
Сокращенная форма оператора условного перехода не содержит блока else и имеет вид:
if условие then оператор;
В этом случае оператор работает следующим образом. Сначала вычисляется значение логического (булевого) выражения условие. Если результат логического выражения условие истинный (равный TRUE), то выполняется оператор, который следует за словом then. Если результат равный FALSE, то выполняется оператор, который следует за оператором if (в операторе if…then ничего не выполняется).
Если при выполнении условия нужно выполнить несколько операторов, то общий вид оператора условного перехода может быть таким:
if условие then begin // два или больше оператора ... end;
⇑
4. Примеры использования оператора условного перехода, который имеет полную форму представления.
Пример 1. Фрагмент программы нахождения максимального значения между двумя вещественными числами.
var a,b:real; // a, b - переменные, для которых ищется максимум max:real; // максимум ... begin ... // a, b - задаются if a>b then max:=a else max:=b; ... end;
Пример 2. Вычисление значения функции согласно условию. Пусть необходимо найти значение функции:
Фрагмент программного кода, решающего эту задачу:
... var x,f:real; begin ... // x - задается if -5<x then f := x*x+8 else f := -x*x*x+2; // в переменной f - результат ... end;
⇑
5. Примеры использования оператора условного перехода, который имеет сокращенную форму представления.
Пример 1. Фрагмент кода, который находит минимальное значение между двумя вещественными числами x и y.
... var min:real; ... begin ... // x, y - заданы min := x; if min<y then min := y; ... end;
Пример 2. Вычисление значения функции согласно условию. Пусть необходимо найти значение функции:
var x, f:real; begin ... // x - задано if x<-6 then f:=3*x*x-x; if (-6<=x) and (x<=5) then f:=sqrt(7-x); if x>5 then f:=8*x-3; ... end;
⇑
6. Примеры использования вложенных операторов условного перехода.
Операторы условного перехода могут быть вложенными. Степень их вложенности неограничена.
Пример. Поиск максимального значения среди трех заданных чисел, которые сохраняются в переменных a, b, c. Максимальное значение записывается в переменную max.
... var a, b, c:integer; max:integer; // максимальное значение, которое нужно вычислить ... begin ... // a,b,c - задается if a<b then begin if b<c then max:=c else max:=b; end else begin if a<c then max:=c else max:=a; end; ... end;