Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 3 курс Pascal.doc
Скачиваний:
9
Добавлен:
18.11.2019
Размер:
825.86 Кб
Скачать

Команды ветвления

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

If <условие> then <оператор1> else < оператор2>

Условие – это логическое выражение. Если оно принимает значение true, то выполняется оператор1, если false, то оператор2.

Можно использовать сокращенную форму записи:

If <условие> then <оператор1>

В этом случае при невыполнении условия, управление передается следующей команде.

Если после then должны выполняться несколько операторов, то они должны быть заключены в операторные скобки begin … end. Такое оператор называется составным.

Пример 3. Вводится число. Если оно положительное, то уменьшить его в 10 раз.

Program primer;

Var a: real;

BEGIN

write('a='); readln(a);

if a>0 then a:=a/10;

writeln('a=', a);

readln

END.

Пример. Из чисел a и b выбрать минимальное.

Program primer;

Var a, b: integer;

BEGIN

write('a, b='); readln(a, b);

if a<b then writeln('Мin=', a) else writeln('Мin=', b);

readln

END.

Если предусмотреть случай равенства a и b, то условный оператор следует записать в виде:

if a<b then writeln('Мin=', a)

else if a>b then writeln('Мin=', b)

else writeln('a=b');

Другой вариант:

if a<b then writeln('Мin=', a);

if a>b then writeln('Мin=', b);

if a=b then writeln('a=b');

Пример 4. Выбрать минимальное из трех введенных целых чисел.

Program primer;

Var a, b, c, m: integer;

BEGIN

write('a, b, c='); readln(a, b, c);

if a<b then m:=a else m:=b;

if c<m then m:=c;

writeln('Мin=', m);

readln

END.

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

program primer;

var x,y: real;

begin

Write('введите x y ');

readln (x,y);

if (sqr(x)+sqr(y)<=25) and (sqr(x)+sqr(y)>=4) then writeln('точка попадает в заштрихованную область')

else writeln('точка не попадает в заштрихованную область');

readln;

end.

Пример 6. Вводятся три числа A, B, C. Определить, сколько среди них нечетных.

program primer;

var a, b, c, k: integer;

begin

write('a, b, c= ');

readln (a, b, c);

k:=0;

if (a mod 2=1) then k:=k+1;

if (b mod 2=1) then k:=k+1;

if (c mod 2=1) then k:=k+1;

writeln(‘k=’,k);

readln;

end.

Пример 7. Введено трехзначное число. Необходимо разбить его на цифры. Все четные цифры, которые меньше 8 увеличить на 2, а 8 заменить на 0.

program primer;

var n,a,b,c,d:Integer;

begin

write('введите n'); readln (n);

a:=n div 1000; b:=n div 100 mod 10;

c:=n div 10 mod 10; d:=n mod 10;

if (a mod 2=0) and (a<8) then a:=a+2 else if a=8 then a:=0;

if (b mod 2=0) and (b<8) then b:=b+2 else if b=8 then b:=0;

if (c mod 2=0) and (c<8) then c:=c+2 else if c=8 then c:=0;

if (d mod 2=0) and (d<8) then d:=d+2 else if d=8 then d:=0;

n:=1000*a+100*b+10*c+d;

writeln('результат= ', n);

readln;

end.

Пример. Вычислить выражение для введенного x.

Program primer;

Var x, y : real;

BEGIN

write('x ='); readln(x);

if x>=0 then

begin

y:=sqrt(x);

writeln(‘y=’, y: 6:3);

end

else writeln('недопустимое x');

readln;

END.