Условный оператор и оператор выбора
В Турбо Паскале разветвляющиеся алгоритмы позволяет реализовать условный оператор.
Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.
Структура условного оператора имеет следующий вид:
IF условие THEN оператор1 ELSE оператор2;
Вначале вычисляется условие, если результат - TRUE (истина), то выполняется оператор1, если результат есть FALSE (ложь), наоборот, выполняется оператор2.
В условном операторе после then, а также после else по синтаксису может стоять только один оператор. Если же при выполнении (или невыполнении) заданного условия надо выполнить не одно действие, а несколько, то их надо объединить в единый, составной оператор, т.е. заключить эту последовательность действий в операторные скобки begin... end.
Пример 1: Ввести два числа, сравнить их, результат выдать в следующем виде a<b? a=b, a>b
Program chisla;
Var a,b:integer;
Begin
Readln(a,b);
If a<b then writeln(a,'<',b)
else if a=b then writeln(a,'=',b) else writeln(a,'>',b);
End.
|
Существует сокращенная форма условного оператора:
IF условие THEN оператор1;
Пример 2: Ввести число, если оно положительное, то увеличить в 2 раза
Program chislo2;
Var a:integer;
Begin
Writeln('введите число а');
Readln(a);
If a>0 then a:=a*2;
Writeln(a);
Readln;End.
|
Оператор варианта Case.
Данный оператор служит для выбора одного из возможных вариантов в ситуации, которая может иметь несколько (более двух) возможных исходов. В зависимости от значения переменой выполняется оператор, помеченный соответствующей константой. Если же ни одна константа не подходит, выполняется оператор, записанный после else.
Оператор case имеет следующий формат:
Case порядковая_переменная of
Значение_1: оператор_1;
Значение_2: оператор_2;
…
Значение_n: оператор_n;
Else оператор;
End;
Пример 1
Case i of
1,3,5,7:Writeln('Нечетные цифры');
2,4,6,8:Writeln('Четные цифры');
10..100: Writeln('Цифры от 10 до 100');
End;
Возможно использование сокращенной формы оператора case, в которой строка else отсутствует. В этом случае, если ни одно значение не совпадает со значением порядковой переменой, управление передается оператору, следующему за end. Если для нескольких значений, нужно выполнять один и тот же оператор, их можно перечислять через запятую, или указать диапазон
Пример 2: Ввести номер дня недели, в зависимости от номера вывести название «понедельник», «вторник» и т.д, если введен номер больше или меньше 7 – вывести «такого дня недели не существует»
Program den;
Var n:integer;
Writeln('Введите номер дня недели')
Case n of
1: writeln ('понедельник');
2: writeln ('вторник');
3: writeln ('среда');
4: writeln ('четверг');
5: writeln ('пятница');
6: writeln ('суббота');
7: writeln ('воскресенье');
Else writeln ('такого дня недели не существует');End. |