Условный оператор

Условный оператор используется для реализации структуры ветвления в программах. Оператор позволяет передать управление по условию. Это один из ключевых операторов в любом языке программирования, позволяющий организовать сложные вычисления.
Синтаксис

if условие then 
    оператор_1, если условие = true
[else 
    оператор_2, если условие = false;]

if0
В скобках [] выделена часть, отсутствие которой превращает полную форму условного оператора в сокращенную (неполное ветвление).

  • Условие — это логические выражение: логическая переменная, логическая функция (например, odd(x) => true, если x нечетный или keypressed, см.), операция отношения или сложное выражение с использованием логических операций. В последнем случае необходимо помнить, что операции сравнения имеют более низкий приоритет по сравнению с логическими операциями not, and, or и xor, следовательно, должны заключаться в круглые скобки. Например, (x > 5) and (x <> 0).
  • Если в ветви несколько операторов (составной оператор), то они должны быть заключены в операторные скобки begin end.
  • Перед else «;» не ставится. Не ставится «;» и после then (предложение не закончено). Один условный оператор может быть вложен в другой. Каждое Else соответствует предшествующему then.

Пример 1. Неполное ветвление. Определить является ли число N кратным числу K.

uses
	crt;
var
	n,k:integer;
begin
	clrscr;
	write('n = '); readln(n);
	write('k = '); readln(k);
	if n mod k = 0 then
		writeln('Число ', n, ' кратно ', k);
end.

if1Блок-схема к программе Пример 1

Пример 2. Полное ветвление. Введены два числа. Определить порядковый номер большего из них.

uses
	crt;
var
	n,k:integer;
begin
	clrscr;
	write('n = '); readln(n);
	write('k = '); readln(k);
	if n > k then
		write(1)
	else
		write(2)
end.

if2Блок-схема к программе Пример 2

Пример 3. Проверить нажата ли клавиша.

uses
	crt;
begin
	clrscr;
	if not(keypressed) then
		write('Нажмите клавишу');
end.

Пример 4. Вложенное ветвление Найти действительные корни квадратного уравнения.

uses
	crt;
var
	a,b,c,x1,x2,x,d:real;
begin
	clrscr;
	writeln('Введите коэффициенты');
	readln(a, b, c);
	d:=b*b-4*a*c;
	if d<0 then
		writeln('Уравнение корней не имеет')
	else
		if d=0	then
		begin
			x:=-b/2*a;
			writeln('X= ',x);
		end
		else
		begin
			x1:=(-b-sqrt(d))/2*a;
			x2:=(-b+sqrt(d))/2*a;
			writeln('X1= ',x1, ' X2= ',x2);
		end;
end.

if_kvur
Пример 6. Сложные логические выражения, ветвления каскадом (else if). Даны координаты точки, не лежащей на координатных осях OX и OY. Определить номер координатной четверти, в которой находится данная точка.

uses
	crt;
var
	x,y:real;
begin
	clrscr;
	write('Введите координаты: ');
	readln(x, y);
	if (x > 0) and (y > 0) then
		write('Точка находится в первой четверти')
	else if (x < 0) and (y > 0) then
		write('Точка находится во второй четверти')
	else if (x < 0) and (y < 0) then
		write('Точка находится в третьей четверти')
	else 
		write('Точка находится в четвертой четверти')
end.

Добавить комментарий