Условный оператор реализует «ветвление», т.е. изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия.
Полная форма условного оператора IF THEN ELSE ; Перед словом Else знак ; отсутствует. Если (IF) условие истинно, тогда (THEN) выполняется оператор 1, иначе (ELSE) выполняется оператор 2. Для наглядности программы операторы можно писать в несколько строк После слов Then и Else можно использовать только один оператор.
Операции отношения: >- больше <- меньше =- равно >=- больше или равно <=- меньше или равно <>- не равно Примеры: A>5 B<-4 A=B X>=0 S<=D+3 A-5<>B*2
IF THEN BEGIN ; … ; END ELSE BEGIN ; … ; END; Если по условию задачи после THEN или ELSE необходимо выполнить больше одного оператора, то тогда используют операторные скобки BEGIN…END
PROGRAM zadacha1; VAR A,B:INTEGER; BEGIN WRITE(A=); READLN(A); WRITE(B=); READLN(B); WRITE (Большее число : ); IF A>B THEN WRITELN (A) ELSE WRITELN (B); END. Задача 1. Из двух чисел А и В найти большее и вывести его на экран. Описываем переменные А и В целыми числами Вводим числа А и В Если А>В, то выводим на экран А, иначе выводим В
Неполная форма условного оператора IF THEN ; Пример: Удвоить число Х, если оно положительное: IF X>0 THEN X:=X*2;
Задача 2. Составить программу для решения квадратного уравнения ax 2 +bx + c = 0 Блок-схема алгоритма Вложенное условие
PROGRAM zadacha2; VAR a,b,c,D,x,x1,x2:REAL; BEGIN WRITE(a=); READLN(a); WRITE(b=); READLN(b); WRITE(c=); READLN(c); D:= b*b - 4*a*c; WRITE (Корни уравнения: ); IF D>0 THEN BEGIN x1:=(-b+SQRT(D))/(2*a); x1:=(-b-SQRT(D))/(2*a); WRITELN (x1=,x1:5:2,x2=,x2:5:2); END ELSE IF D=0 THEN BEGIN x:= -b/(2*a); WRITELN (x=,x:5:2); END ELSE WRITELN (Корней нет); END. Программа для решения квадратного уравнения Внешнее условие Вложенное условие
Сложные условия В сложных условиях используются логические выражения, записанные с помощью логических операций. Логические операции: Not- Не And- И Or- Или Мультипликативные операции: Div- целая часть от деления Mod- остаток от деления Примеры: Определить, есть ли среди чисел a, b, c хотя бы одно равное нулю. IF (a>0) Or (b=0) THEN WRITELN(YES) ELSE WRITELN(NO); Определить, является ли число а – нечетным. IF a Mod 2<>0 THEN WRITELN(YES) ELSE WRITELN(NO); Каждое простое условие заключается в скобки
Задача 3. Написать программу, проверяющую, принадлежит ли число интервалу (0;5]. PROGRAM zadacha3; VAR x:REAL; BEGIN WRITE(x=); READLN(x); IF (x>0) and (x<=5) THEN WRITELN (YES) ELSE WRITELN (NO); END. Сложное условие
Коротко о главном Формы записи условного оператора: IF THEN ELSE ; IF THEN ; Перед ELSE знак ; не ставится Операции отношения: >,, >=, <=. Логические операции: Not, Or, And Мультипликативные операции: Mod, Div