Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posibnik_paskal.pdf
Скачиваний:
230
Добавлен:
11.02.2016
Размер:
2.43 Mб
Скачать

«Turbo Pascal »

Значенко О.П.

ТЕМА 5. УМОВНИЙ ОПЕРАТОР В МОВІ ПАСКАЛЬ

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

Обчислювальні процеси, що виконуються за заданим алгоритмом, поділяють на три основні види: лінійні; розгалужені; циклічні.

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

Команді розгалуження в Паскалі відповідає умовний оператор. Умовному оператору відповідають дві структури:

1.Неповна форма умовного оператора, коли дія здійснюється тільки тоді, якщо виконується умова. У разі невиконання умови відбувається перехід до наступного оператора (вихід із структури).

2.Повна форма умовного оператора: при виконанні умови (вихід « + ») виконується оператор 1 , при невиконанні (вихід «—») — оператор 2.

Оператор 1 Оператор 2

рис. 1

 

рис. 2

У мові програмування Паскаль

неповній формі умовного оператора

відповідає конструкція

if

<умова> then <оператор>;

Повній формі умовного оператора

if <умова> then <оператор _1> else <оператор _2>;

Якщо після службових слів then і else необхідно записати не один оператор, а їх групу, тоді ці оператори беруться в операторні дужки. Така група операторів сприймається транслятором як єдиний і називається складеним оператором:

22

«Turbo Pascal »

Значенко О.П.

begin

<оператор_1> ; <оператор_2> ;

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

end;

Перед else крапка з комою не ставиться.

Кожну пару begin...end записують в одному стовпці: так легше перевірити наявність для кожної відкриваючої операторної дужки відповідної закриваючої.

Приклади застосування умовного оператора (Визначення максимального з 2-х

чисел)

Початок

А, В

A>B

Max=A

Max=B

Кінець

Program Maksimum; Var a, b: real;

Begin

Writeln('введіть два числа '); Readln(a,b);

If a>b Then writeln (‘максимальне', a)

Else writeln (‘максимальне', b);

End.

В умовному операторі може бути вкладено інший умовний оператор. Транслятор працює таким чином. Зустрівши складну конструкцію з

вкладених умовних операторів, транслятор аналізує її з кінця, приписуючи останнє знайдене ELSE найближчому умовному оператору IF.

if <умова 1> then if <умова 2> then <оператор _А> else

<оператор _В>;

23

«Turbo Pascal »

Значенко О.П.

Приклад програми визначення коренів квадратного рівняння

Program rivnanny;

Var a, b, c, x, x1, x2, d: real;

Begin

Writeln('введіть дані ');

Readln(a,b,c); d :=sqr(b)-4*a*c;

If d = 0 Then

Begin

X:=-b/(2*a); Writeln (‘x=', x);

End

Else

IF d > 0 Then

Begin

x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); Writeln (‘x1=', x, ‘x2=’,x2);

End

Else Writeln ( ‘не існує'); Readln;

End.

Логічні вирази

Логічний вираз — це засіб запису умов для знаходження потрібних даних. Логічний вираз може приймати значення true (істинність) або false (хибність). Логічні вирази бувають прості та складені.

Простий – це два арифметичні вирази, з'єднані символом відношення (<,.>,<>,>=, <=, =), а складений – це прості логічні вирази, з'єднані назвами

логічних операцій.

Для побудови складних умов у Паскалі існують логічні операції and (і), оr (або) і not (ні).

Відношення, між якими стоїть логічна операція, беруться в круглі дужки.

24

«Turbo Pascal » Значенко О.П.

Приклад програми визначення існування трикутника із сторонами a, b і с.

(Умова існування трикутника відома з геометрії: сума двох будь-яких сторін повинна бути більша третьої. Отже, для всіх сторін умова «сума двох більше третьої» повинна виконуватись.)

Program Trikutnik;

Var a, b, c: real;

Begin

Writeln('введіть довжини трьох сторін трикутника ');

Readln(a,b,c);

If (а + b > с) and (b + с > а) and (с + а > b) then writeln (‘існує')

Else Writeln ( ‘не існує'); Readln;

End.

Оператор варіанту

Якщо в залежності від значення змінної необхідно виконати певні оператори використовується оператор варіанту.

Оператор варіанту (case) має вигляд

CASE <вираз> OF

<список значень 1>:<оператор 1>; …..

<список значень n>: <оператор 2> ELSE <оператор n+1>

END;

Тут <вираз> - це змінна цілого, символьного, перерахованого або логічного типу;

<списки значень> - сталі або діапазони, тип яких збігається з типом виразу. Якщо список значень складається з декількох елементів, то вони перераховуються через кому.

Якщо необхідно записати не один оператор, а їх групу, тоді ці оператори

25

«Turbo Pascal »

Значенко О.П.

беруться в операторні дужки.

Складова частина ELSE <оператор n+1> може бути відсутня – тоді матимемо

коротку форму оператора варіанту CASE.

Якщо значення виразу збігається зі значенням з списку, то виконується команда з номером і, а інші команди цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з жодного списку, то виконується <оператор n+1> або, у випадку короткої форми, наступна команда після оператора варіанту CASE.

Приклад програми, яка за введеним номером дня тижня виводить повідомлення „робочий день” чи „вихідний”

Program DAY;

Var d: integer;

Begin

Write(' Введіть номер дня тижня > ');

Readln(d); CASE d OF

1..5: Writeln (' робочий день '); 6,7: Writeln (' вихідний день ') ELSE Writeln(' помилка введення ')

End; Readln; End.

26

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]