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. Обчислити значення функції У для будь-кого х, с.
sin x, Y cosx,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.
Обчислити значення функції
YВиди функцій f1, f2, f3 задані в табл. 7. Значення x запрошувати у
діалозі.
Таблиця 7 – Варіанти завдання до лабораторної роботи 1
Варіант | f1(x) | f2(x) | f3(x) |
1 | tg 2x | 3 x 1 | cos x 2 |
2 | sin(ex) | sin(3x 2 x) | 2sin(3x 2)/5 |
3 | 3 x 1 | x4/7 | sin3(2x) |
4 | 3sin2(x) cos4(x) | sin(x 2) | ln(2x 5) |
5 | x3 ln x | ln3(x 4) | x4 x |
6 | sin(x) 2 | e | ln(x3 x2) |
7 | (3x 1)/x5 | ln2 | 1 x2 |
8 | x xcos(x) | 1/(tg(2x) 1) | x2e |
9 | x 2sin(3x) | x2cos(x) | sin(x 2) x |
10 | x 2 | sin(x 2) | ln2(x) |
11 | sin2(x3) | ln(x3 3) | 2sin(x) |
12 | 2xe | cos(2x) | xx cos(x) |
13 | ln(2x 5) | sin(ex) | tg(1/x) |
14 | sin(2x 1) | (x 1)2cos(x3) | x3 1 sin(x) 2 |
15 | cos(3x2) | x3sin(x) | x2 + ln(5x) |
16 | sin(x3 5) | ln(4x 1)2 | 5 ln x x2 |
17 | x4 2x3 x | sin2(x3) | xx +1sin(x) |
18 | x5ctg(2x3) | ln(x 1) | e 2X 3 x |
19 | sin(4x 3) | 5 2 1 6x x | Sin(2x 1)3 |
20 | ctg(3x 1)2 | 2 | sin3(x2) |
21 | x -sin(x3 1) | (x 1)3 cos(2x3) | x3sin(x3) |
22 | (2x 1)/x5 | ex +1+ cos(x) | 3ln5sin(x) x2 |
23 | 3x5 ctg(x3) | ln(sin(4x) 1)2 | 3 ln 2x x3 |
24 | 1,3 4 x2 | 3x | 5x +1sin(2x) |
25 | e-3x | sin3(x4) | e X 33x |
5 ЛАБОРАТОРНА РОБОТА 2. ЦИКЛІЧНИЙ АЛГОРИТМ.