- •Лабораторна робота № 1.
- •4.4. Контрольні запитання
- •Лабораторна робота № 2 Тема: Програмування лінійних обчислювальних процесів.
- •5.2. Загальні положення.
- •0) Not, - ( унарний мінус ) операції інверсії
- •1) * , / , Dib, mod, and мультиплікативні операції
- •6.2.3. Умовний оператор if...Then...Else.
- •6.2.4. Складений оператор.
- •6.2.5. Оператор варіанта (вибору) саse...Of
- •6.2.6. Варіантні обчислення
- •6.6. Завдання
- •6.8. Контрольні питання
- •Лабораторна робота №5
6.2.5. Оператор варіанта (вибору) саse...Of
У тому випадку, коли варіантів дії більше двох при програмуванні може бути використаний оператор варіанту – case…of, який дозволяє вибрати в програмі один шлях із множини можливих. Його загальний вигляд такий.
CASE вираз OF
1-ша множина констант вибору: ОПЕРАТОР;
2-га множина констант вибору: ОПЕРАТОР;
. . . . . . . . . . .
остання множина констант вибору: ОПЕРАТОР;
ELSE ОПЕРАТОР {не обов´язковий рядок}
END;
Слід зазначити, оператор варіанта має дещо обмежене використання, бо результат обчислення виразу в CASE вираз OF має бути типу, що перераховується ( byte, char, integer,…).
Пояснимо використання оператора варіанту на конкретному прикладі. Нашим завданням буде ввести з клавіатури числа А та Х і обчислити У:
-у = х2, коли а + 2х = 1
- у = ех, коли а + 2х = 2,3
- у = х2+х+1, коли а+2х=5,7,8,9
- у = а+2х, в усіх інших випадках
Program Variant;
var a:byte;
x,y:real;
begin
WriteLn(‘ Введіть змінні A,X’);
ReadLn(a,x);
Case a+2*x of
1:y:=sgr(x);
2, 3:y:=exp(x);
5,7..9:y;=sgr(x)+x+1;
else y:=a+2*x;
end;
WriteLn(‘y=’,y:8:3);
end.
Виконання оператора варіанта відбувається в такому порядку:
-
спочатку визначається значення виразу після службового слова САSE.
Якщо потрібно, то воно обчислюється.
-
вибирається і обчислюється той оператор, який стоїть після мітки варіанта, що співпадає хоча б одним значенням із виразом після САSE.
Слідкуйте, щоб константи вибору в різних гілках не повторювались, бо це приведе до помилок.
Коли треба виконати не один, а группу, то використовується складений оператор.
6.2.6. Варіантні обчислення
Обчислення, хід виконання яких змінюється в залежності від досягнення тих чи інших умов, називають варіантними.
Класичним прикладом варіантних обчислень в математиці є знаходження коренів квадратного рівняння ах2+ bх2+с=0, шлях якого залежить від знака дискримінанта: D=b2-4ac.
, якщо D>0;
x1 = x2 = , якщо D=0;
Дійсних коренів немає, якщо D=0.
Графічно реалізація обчислення квадратного рівняння показана на блок-схемі (рис.6.1.).
Рис. 6.1. Блок-схема розгалуженого обчислювального процесу.
Таким чином, програма для реалізації подібних обчислень повинна мати спеціальні структури вибору, які б порівнювали результат обчислень з заданою умовою і в залежності від його результату спрямували б подальший хід виконання програми в заданому напрямку.
6.6. Завдання
6.6.1. По заданому варіанту завдання розробити подрібню блок-схему обчислення виразу.
6.6.2. Блок-схему розробити у двох варіантах:
з використанням умовного оператора " if " та оператор вибору варіанту " case ".
6.6.3. По блок-схемам розробити програму та відладити їх.
6.6.4. Обчислити заданий вираз та вивести результати.
6.6.5. Порівняти результати обчислення по вказаним варіантам та зробити виводи.
Варіант |
Вираз для обчислення |
1 |
С = а2 - (b +2)sin(a-1), коли a>b; С = а2 + (b-2)sin(a-1), коли a=b; C = a2 – (b+2)cos(a+1), коли a<b;
|
2 |
С = b2 – (b +tg(a))cos(a-b), коли a>b; C = b2 – (b+lg(a))cos(a-b), коли a=b; C = b2 – (b+a)sin2(a-b), коли a<b; |
3 |
С = lna2 – (b+5)tg2(a-1), коли a>sin(b); C = lga2 – (b+5)ctg(a-1), коли a=sin(b); C = lna2 – (b4+5)cos2(a-1), коли a<sin(b); |
4 |
С = е2+а – (cos(b)+2)cos(a-1), коли a>0 інакше: C = e2+a – (cos(b+a)+2)sin(a-1), коли a>=ln(b); C = e2+a – (cos(b)+2)sin3(a-1), коли a<ln(b); |
5 |
С = а1/2 –(b+2)sin(ea-1), коли a>e інакше; C = a1/4 – (b+a2)sin(ea-1), коли a<=tg(b); C = a1/2 – (b+2)tg(ea-1), коли a>tg(b); |
6 |
с = а2 – ln(b+a2)sin2(a-1), коли a>b інакше; c = a2 – ln(b+sin2(a))sin2(a-1), коли lg(a)<=tg(b) c = a3 – ln(b+2)tg2(a-1), коли lg(a)tg(b); |
7 |
с = ln2(a3) – sin(b+2)sin(a+b), коли a=1 інакше; c = ln2(a2) – cos(b+2)sin(lg(a)+1), коли lg(a)<b; c = ln2(a2) – cos(b+a)cos(a+5), коли lg(a)>=b; |
8 |
с = а2sin(a) – e(b+2)ln(lg(a)-1), коли a>b інакше; c = a2b – e(b+2)lg(a-1) |
9 |
с = cos(a2 + b2) – e(b+a)+1, коли ln(a)<b; с = sin(a2 +b2) – e(a+2) +1, коли ln(a)=b; c = lg(a2a +b) – e(b+1) +1, колиln(a)>b; |
10 |
с = b2/a2 – (b+2a)sin(ea), коли cos(a)<b; c = b2/a2 – (sin(b) +a)sin(ea), коли cos(a)=b; c = b2/a2 – (b +a)lg(ea), коли cos(a)>b; |
11 |
c = ab2 – (b + 2)sin2(a), коли a=0; c = ab2 – (b+3)sin3(a), коли a = 1 або 2 або 3; с = ab4 – (b +4)sin4(a) в інших випадках |
12 |
с = b/a3 – (b+2)/cos(a-1), коли a=b; c = b/a2 – (b+2)/tg(a-b), коли a=1, b>0; c = cos(b)/a2 – (b+a1/2)/sin(a-1) в інших випадках |
|
|
13 |
с = a2/((b+2)sin(a-1)), коли a>0 або b>0; c = a2/((b+2)cos(a-1)), коли a=0, b>0 та b<2; c = a2 в інших випадках. |
14 |
с = ex/sin4(y-lg(x-1)), коли x>0 або y>x; c = ex/sin2(y-cos3(x-1)), коли x>y та y>0; c = ex/cos2(y-cos(x-y)) в інших випадках |
15 |
с = lg(sin2(2x))+y-cos(1/x1/2), коли x=1, x=2, x=4 y=0; c = exsin2y-cos(3x1/2), коли y>0 або x=3; c = exsin(y+1) в інших випадках. |
16 |
с = lnx(y)/sin2y-tg(x-y), коли x>y або y=0; c = lgx(x+y)/sin2y-sin(x-5), коли x=y та y=0; c = ex/cos2y-cos(x-1), коли y<0; |
17 |
с = xx/sin2y+cos(1/y-1), коли y>0 та sin(y)>0; c = yx/sin3y+cos(1/x-1), коли y=0 та sin(x)>0; c = ex/tg2y+cos(y/x-x) в інших випадках |
18 |
с = yexysin2y+ecos(y-1), коли (x+y)>5 y>0; c = xeysin2y+ecos(y-x), коли y<0; c = xe2xsin2y+esin(x-1) в інших випадках; |
19 |
с = сtn(sin(1-cos2(x-1))), коли x=0 та y=1; c = ln(sin(y-cos3(x))), коли x<0 або y<0; c = lg(sin(x-cos4(x-y))) в інших випадках |
20 |
с = e(sin(x)+2y)/ln(xy-1), коли xy>0; c = e(x+2y)/lg(x2y+1), коли x=y=1; c = e(2x+y)/ctn(1+xy) в інших випадках |
21 |
c = yx/ctn2(y+cos(x-1)), коли x-y=1 та y>0; c = 2x/sin2(y-cos(x-1)), коли y=0; c = ex/cos2(x-sin(x-y)) в інших випадках |
22 |
с = (ex-ey)2/sin(y)-cos(x), коли cos(x)>0 y>0; c = (2x-2y)2x/sin(y2)-cos(y2)-cos(y), коли sin(y)<>0 x>0; c = (ex-ey)2/sin(x2+1)-ctg(y) в інших випадках; |
23 |
с = ((x2+1)2+1)2-y-1, коли (x+y)=1, або (x+y)=2, або (x+y)=4; c = ((y2+1)2+1)2-x-1, коли (x+y)=3, або (x+y)=5 c = x+y в інших випадках; |
24 |
с = exsin(x2 –cos(x2-1)), коли (x2>1) (y3>1); c = exsin(y2-sin(x2-1)), коли x=0 y=0; c = exsin(x+y2-cos(y2-1)) в інших випадках |
25 |
с = sin(ex)sin2(y-x-1), коли (x>1) та (y>1); c = cos(ex)sin3(y-x-1), коли (x=1) та (y<1); c = tg(ex)sin1/3(y-x-1) в інших випадках. |