
- •3.1. Найпростіші конструкції мови Турбо Паскаль
- •Алфавіт мови.
- •Типи даних.
- •Константи та змінні.
- •Арифметичні вирази.
- •3.2. Лінійні програми в Турбо Паскалі Загальна структура програми.
- •Присвоювання значень.
- •Введення-виведення даних.
- •Лінійні програми.
- •3.3. Розгалужені програми в тп
- •Логічні вирази.
- •Умовний оператор.
- •Оператор вибору case.
- •Оператор безумовного переходу.
- •3.4. Циклічні програми в тп
- •§2. Оператор циклу з параметром.
- •Оператор циклу з передумовою.
- •Оператор циклу з післяумовою.
- •3.5. Нестандартні типи даних
- •Скалярні типи даних.
- •Масиви даних.
- •Двовимірні масиви.
- •3.6. Підпрограми
- •Функції.
- •Процедури .
Оператор вибору case.
В ТП передбачено ще один управляючий механізм для вибору однієї з декількох альтернатив, який іноді виявляється кращим в порівнянні з структурою умовного оператора. Оператор вибору стає особливо необхідним та оптимальним в тих випадках, коли в залежності від значень певної змінної треба обрати один з трьох або більше варіантів обчислень, тобто має місце базова структура “вибір”:
Структура оператора вибору така:
CASE <управляюча змінна або вираз > OF
n1: < оператор 1>;
n2: < оператор 2>;
…………………
nk: < оператор k>
ELSE < альтернативний всім оператор >
END;
Між службовими словами CASE та OF повинна стояти змінна або вираз, який обчислюється при виконанні оператора в першу чергу. Це –селектор, за значенням якого відбувається вибір одного з варіантів. Тип змінної або виразу може бути тільки перелічуваним ( в тому числі CHAR та BOOLEAN ), діапазоном або цілочисловим.
ni – набори значень: конкретні значення управляючої змінної або вирази, при котрих необхідно виконувати відповідний оператор, ігноруючи решту варіантів. В наборі може бути декілька значень, якщо один і той же оператор необхідно виконувати при різних значеннях селектору. Тоді ці значення відокремлюються один від одного комою. Можна також при необхідності указати діапазони значень. Між набором значень і відповідним йому оператором обов‘язково повинна ставитися двокрапка “:”. ni повинно бути одного типу з селектором. Значення в кожному наборі повинні бути унікальними, тобто можуть з’являтися лише в одному варіанті.
<Оператор> в будь-якому варіанті може бути як простим, так і складеним. Кінець варіанта обов’язково позначається “;”.
Порядок виконання оператора вибору такий: спочатку обчислюється значення селектора, яке потім порівнюється із значенням n1. Якщо вони співпадають, то виконується <оператор 1>, а решта пропускається. Якщо їх значення різні, то такі дії повторюються для кожного варіанта до тих пір, поки не буде знайдено підходящий варіант. ТП допускає необов’язкову частину ELSE . Якщо значення селектора не співпало з жодним із значень в варіантах , буде виконано оператор, що стоїть після ELSE. Завершує оператор вибору службове слово END. Перед ELSE та END “;” необов’язкова.
Швидкість виконання оператора вибору буде максимальною, якщо першими в порядку проходження розміщувати найбільш імовірні значення.
Приклад. Скласти програму обчислення значення функції
a+bx+cx2 при 1≤x<2
(asin(xb))c при 2≤x<3
Y=
easinx +c3 при 3≤x<5
0 в решті випадків
Програма:
PROGRAM SELECTOR;
VAR A,B,C,X,Y : REAL;
BEGIN
WRITELN (‘ВВЕСТИ A,B,C,X’);READ (A,B,C,X);
WRITELN (‘A=’,A,’ B=’,B,’ C=’,C,’ X=’,X);
CASE TRUNC(X) OF
1: Y:= A+B*X+C*X*X;
2: Y:= EXP(C*LN(ABS(A*SIN(X*B))));
3,4: Y:=EXP(A*SIN(X))+C*C*C
ELSE
Y:=0
END;
WRITELN(‘Y=’,Y)
END.
В програмі вибір здійснюється по значенню цілої частини змінної X , яка визначається за допомогою функції TRUNC(X). Першому обмеженню на значення X відповідає значення селектору 1, другому – 2, третьому – 3 та 4. Альтернатива ELSE оператора вибору забезпечує присвоєння функції Y значення 0.