русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Оператор вибору CASE.


Дата додавання: 2014-11-27; переглядів: 936.


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

 

 


Структура оператора вибору така:

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.


<== попередня лекція | наступна лекція ==>
Умовний оператор. | Оператор безумовного переходу.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн