6 Оператор вибору варіанта є узагальненням умовного оператора: він дає можливість виконати один з декількох операторів залежно від значення деякого виразу, що називається селектором або ключем вибору. Вираз має бути порядкового типу. У загальному випадку оператор має вигляд
CASE < селектор>
<список вибору 1>: < Оператор 1>;
<список вибору 2>: < Оператор 2>;
M<список вибору n>: < Оператор n>; [ELSE
<оператор>]
END;
<Селектор> – вираз будь-якого порядкового типу, тобто дійсний тип не допустимий.
<список вибору> – список розділених комами констант – значень виразу <селектор> або одного його значення. Можна задавати діапазон.
Значення мають бути того ж типу, що й селектор.
<оператор> – будь-який оператор мови, у тому числі і складовий.
Оператор варіанту вибирає для виконання той оператор, одна з констант списку вибору якого співпадає з поточним значенням виразу <селектор>. Якщо значення виразу <селектор> не співпадає ні з однією з міток, тоді виконується оператор, що відповідає ELSE. Гілка ELSE необов'язкова. По закінченню виконання вибраного оператора виконання оператора вибору завершується і управління передається в кінець оператора CASE.
Блок-схема (рис. 4)
Рисунок 4 – Блок-схема алгоритму
Текст програми
Program Lab1a;
{ Обчислення Коренів Рівняння } Uses Crt;
Var A,B,C,D,X,X1,X2,Z: Real;
Begin
Clrscr;
Writeln('Введіть коефіцієнти квадратного рівняння');
Write(' A= '); Readln(A);
Write(' B= '); Readln(B);
Write(' C= '); Readln(C);
Writeln('A= ',A:5:2,' B= ',B:5:2,' C= ',C:5:2);
D:=Sqr(B)-4*A*C;
If D>0 Then
Begin
Z:=2*A;
X1:=(-B+Sqrt(D))/Z; X2:=(-B-Sqrt(D))/Z;
Writeln(' Рівняння має два корені ');
Writeln(' X1= ',X1:6:2,' X2= ',X2:6:2)
End
Else If D=0 Then
Begin
X:=-B/(2*A);
Writeln(' Рівняння має один корінь ');
Writeln(' X=',X:6:2)
End
Else Writeln(' Коріння Немає '); Readkey; End.
Приклад 1b. Обчислити значення функції У для будь-кого х, с.
tgx, 0
Блок-схеми (рис. 5,6)
Рисунок 5 - Блок-схема алгоритму функції
Рисунок 6 - Блок-схема алгоритму основної програми
Текст програми
Program lab1b;
{Лабораторна робота 1. Обчислення значення функції}
Uses crt; var c,x,y : real;
{-------------обчислення функції---------}
Function f(x,c:real):real;
var а : real;
Begin а:=2*sqr(c)+1; if x>a then f:=sin(x) else if x<0 then f:=cos(x) else f:=sin(x)/cos(x);
End;
{--------------основна програма-----------}
Begin clrscr; writeln(' введіть значення х,с'); write(' x= '); readln(x); write(' c= '); readln(c); у:=f(x,c);
writeln('якщо x=',x:5:2,' c=',c:5:2,' y=',y:6:2); readkey;
End.
Обчислити значення функції
Види функцій f1, f2, f3 задані в табл. 7. Значення x запрошувати у
діалозі.
Таблиця 7 – Варіанти завдання до лабораторної роботи 1
| Варіант | f1(x) | f2(x) | f3(x) | 
| 1 |    |     |     |  
| 2 | sin(ex) |    |  2sin(3x 2)/5 | 
| 3 |    |  x4/7 | sin3(2x) | 
| 4 |    |  sin(x 2) |    |  
| 5 |    |     |  x4   |  
| 6 | sin(x) 2 | e  |     |  
| 7 |    |      |     |  
| 8 |    |     |  x2e  |  
| 9 |    |  x2cos(x) |    |  
| 10 |    |  sin(x 2) | ln2(x)   |  
| 11 | sin2(x3) |    |  2sin(x)   |  
| 12 | 2xe  |  cos(2x) |    |  
| 13 |    |  sin(ex) | tg(1/x) | 
| 14 |    |     |     |  
| 15 | cos(3x2) |    |  x2 + ln(5x) | 
| 16 |    |     |    5  |  
| 17 |    |  sin2(x3) | xx +1sin(x) | 
| 18 | x5ctg(2x3) |    |     |  
| 19 | sin(4x 3) |     6x x  |     |  
| 20 |    |  2   |  sin3(x2) | 
| 21 |    |     |     |  
| 22 |    |  ex +1+ cos(x) |    |  
| 23 |    |     |    3  |  
| 24 |    |  3x   |  5x +1sin(2x) | 
| 25 | e-3x | sin3(x4) |    |  
5 ЛАБОРАТОРНА РОБОТА 2. ЦИКЛІЧНИЙ АЛГОРИТМ.