Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 1-5 (1 чт. СА-10).doc
Скачиваний:
3
Добавлен:
03.11.2018
Размер:
443.39 Кб
Скачать

6.2.5. Оператор варіанта (вибору) саse...Of

У тому випадку, коли варіантів дії більше двох при програмуванні може бути використаний оператор варіанту – caseof, який дозволяє вибрати в програмі один шлях із множини можливих. Його загальний вигляд такий.

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) в інших випадках.