Pascal. Условный оператор
Условный оператор if предназначен для выполнения последовательности операторов в зависимости от логического условия. Существует сокращенный и полный варианты оператора if. Сокращенный вариант:
if <условие> then <оператор>;
В условии может использоваться любое логическое выражение, результатом которого является значение типа boolean. Тип данных boolean может принимать только два значения: true или false. В таблице приведены операции сравнения, тип результата которых является boolean:
Обозначение | Операция |
= | Равно |
<> | Не равно |
< | Меньше |
<= | Меньше или равно |
> | Больше |
>= | Больше или равно |
in | Принадлежность |
Также в условиях можно использовать логические операции:
Обозначение | Операция |
not | Отрицание |
and | Конъюнкция (логическое умножение) |
or | Дизъюнкция (логическое сложение) |
Например, выведем сообщение, если введенное значение нечетное:
var
a: integer;
begin
readln(a);
if a mod 2 = 1 then writeln('Число нечетное');
end.
В полном варианте условного оператора, если условие принимает значение true, выполняется оператор, который следует за словом then, в противном случает выполняется оператор, который следует за словом else:
if <условие> then <оператор>
else <оператор>;
Например, выведем соответствующее сообщение в зависимости от четности введенного натурального числа:
var
a: integer;
begin
readln(a);
if a mod 2 = 1 then writeln('Число нечетное')
else writeln('Число четное');
end.
Обратите внимание, перед словом else точка с запятой не ставится, потому что конструкция if..else - это единый блок. Если в какой-то ветви if необходимо выполнить несколько операторов, то они объединяются в группу, которя начинается со слова begin и заканчивается словом end. Такую конструкцию принято называть составным оператором.
if <условие> then begin
<оператор1>;
<оператор2>;
end
else begin
<оператор1>;
<оператор2>;
end;
Если в условии используются логические операции, то выражения со сравнениями заключаются в скобки. Например, в задачу проверки на нечетность добавим возможность проверки не только натуральных чисел:
var
a: integer;
begin
readln(a);
if (a mod 2 = 1) or (a mod 2 = -1) then writeln('Число нечетное');
end.
Если вариантов логического выражения больше одного, то можно использовать следующую конструкцию:
if <условие1> then begin
<оператор1>;
<оператор2>;
end
else if <условие2> begin
<оператор1>;
<оператор2>;
end
else begin
<оператор1>;
<оператор2>;
end;
Например, в задаче проверки на четность добавим вывод сообщения, если введенное число равно 0.
var
a: integer;
begin
readln(a);
if a = 0 then writeln('Введенное число 0')
else if a mod 2 <> 0 then writeln('Число нечетное')
else writeln('Число четное');
end.
Задачи для самостоятельного решения
-
Пользователь вводит два числа. Если первое число меньше второго, то вывести сумму чисел, иначе - разность первого и второго.
-
Пользователь вводит число (дальность выстрела). Если число в интервале от 28 до 30, то вывести "Попал", иначе "Не попал".
-
Пользователь вводит число (дальность выстрела). Если число в интервале от 28 до 30, то вывести "Попал", если больше 30 - "Перелет", если меньше 28, но больше 0 - "Недолет", если 0 или меньше - "Не бей по своим".
-
Пользователь вводит номер года. Вывести сообщение, является ли год високосным. Примечание: Год кратный 100, но не кратный 400 не является високосным.
-
Пользователь вводит коэффициенты a,b,c квадратного уравнения ax2 + bx + c = 0. Вывести корни этого уравнения или сообщение, что их нет. Отдельно рассмотреть случай с одним корнем.
-
Пользователь вводит число, арифметическую операцию (символы + - * /) и второе число. Вывести результат.
-
Пользователь вводит координаты x и y точки на числовой плоскости. Вывести номер четверти числовой плоскости, которой принадлежит точка.
-
Пользователь вводит длины сторон треугольника, Если треугольник существует, то определить равносторонний, равнобедренный или разносторонний этот треугольник.