Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
07.02.2016
Размер:
342.02 Кб
Скачать

Умовний оператор.

В першому розділі ви ознайомилися з побудовою алгоритмів обчислювальних процесів з розгалуженням. Для їх використання у мові Pascalє відповідний оператор, що має вигляд

IF < умова> THEN < оператор 1 > ELSE < оператор2 > ;

Цей оператор відповідає блоку альтернативи:

-

+

Якщо умова приймає значення істини, то виконується оператор 1, якщо ні - виконується оператор 2.

Після THEN або ELSE записується тільки один оператор. Якщо треба виконати декілька дій, то застосовується складовий оператор. Цей оператор подається як серія операторів, що записуються між службовими словами BeginтаEnd; (операторні дужки). Всі оператори, записані в складовий оператор розглядаються як одне ціле і виконується разом.

IF < умова> THEN

BEGIN

< оператор 1 > ;

< оператор 2 > ;

END

ELSE < оператор 3 > ;

Наприклад:

if a>5 then

x:=s/2

else

begin

d:=2+r;

x:=d-s;

end;

Крім того існує коротка форма оператору If:

умова

-

+

оператор

IF <умова> THEN <оператор>

Наприклад:

if x>0 then k:=k+1;

Зауважимо, що при записі складної умови кожний операнд логічної операції треба брати у дужки. Наприклад: (a>b)and((x<g)or(b<>c)).

Розглянемо декілька прикладів на побудову програм з розгалуженням.

Приклад 3.5.Для заданих дійсних чисел a,bобчислити значення

величина

ідентифікатор

тип

вхідні величини

перше число

a

дійсне

друге число

b

дійсне

вихідні величини

результат

y

дійсне

Var a, b, y: real;

begin

writeln (‘введіть значення a,b’);

readln (a, b);

if a>b then y:= a + b else y:= a- b;

writeln(‘y=’, y);

end.

Приклад 3.6. Побудувати алгоритм та написати програму для обчислення значення y для будь-яких значень x та y:

величина

ідентифікатор

тип

вхідні величини

перше число

x

дійсне

друге число

k

дійсне

вихідні величини

результат

y

дійсне

Блок-схема приведена на малюнку 3.3.

Програма:

Var X, y, k: real;

begin

writeln(‘введіть x, k’);

readln(x, k);

if (x>5) and (cos(k*x)<>0)

then

begin

y:=exp(sqr(sin(k*x)/cos(k*x))*ln(3));

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

end

else

if (1<x) and (x<4) and (k*x>=0) and (x-sqrt(k*x)>0)

then

begin

y:= 2*exp(1/3*ln( x-sqrt(k*x)));

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

end

else

if (x<1) and (x<>0)

then

begin

y:=ln(abs(x));

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

end

else

writeln( ‘ нема розвязку’);

end.

Приклад 3.7. Задані два різних дійсних числа xта y. Знайти найменше з них.

var x, y, min;

begin

writeln(‘введіть x, y’);

readln(x, y);

if x> y then min:= y else min := x;

writeln(‘min=’, min);

readln;

end.

Соседние файлы в папке конспект лекцій 1 паск