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. ЦИКЛІЧНИЙ АЛГОРИТМ.