Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod-PASCAL.doc
Скачиваний:
4
Добавлен:
23.02.2016
Размер:
889.34 Кб
Скачать

9. Оператори переходу

9.1. Для змiни послiдовного порядку виконання операторiв у мовi Паскаль хоч i не рекомендується, але можна застосовувати оператор безумовного переходу:

GOTO <мiтка>;

Недоцiльнiсть застосування цього оператора в Паскаль-програмах, про яку йдеться в лiтературi [2,3,6], зв'язана з тим , що з його допомогою не можна входити в середину iнших блокiв, складених операторiв, функцiй, процедур.

9.2. Для реалiзацiї розгалужених обчислювальних процесiв у залежностi вiд результатiв промiжних обчислень в мовi Паскаль застосовується умовний оператор переходу, що має конструкцiю:

IF <булевий вираз (умова) > THEN < оператор 1>

[ELSE < оператор 2>];

Скорочений оператор реалiзує алгоритмiчну структуру переходу:

Повний оператор реалiзує алгоритми вибору:

Приклад. Визначення логарифма числа Х :

IF X<=0 THEN

WRITELN("Аргумент логарифма =", X, "Логарифма не iснує")

ELSE WRITELN ("Логарифм числа", X, "=", LN(X));

Наведемо приклад виконання першої лабораторної роботи по

освоєнню лiнiйних i простих розгалужень та циклiчних процесiв. Блок-схема табулювання кускової функцiї :

в дiапазонi вiд XMIN до XMAX з кроком DX наведена на рис.3.

Рис. 3. Блок-схема алгоритму табулювання функцiї

Її програмна реалiзацiя може мати такий вигляд:

VAR X, XMAX, XMIN, DX, Y : REAL;

BEGIN

READLN(A,XMIN,XMAX,DX);

WRITELN ;WRITELN;

WRITELN(' ':10,'Програма табулювання кускової функцiї');

WRITELN(' ':8,'Лабораторна робота N1 ст.гр. Ф-82 Скакун

Ольги');

WRITELN;WRITELN;

WRITELN(' ':5,'Табулюється функцiя в дiапазонi вiд',

XMIN:6:1, ' до ', XMAX:6:1, 'з кроком ',DX:4:1);

WRITELN;WRITELN;

WRITELN(' ':10,'Значення X Значення Y');

X:=XMIN;

1 : IF X<(-A ) THEN Y:=SQR(X*X)+SQR(SIN(X))+0.05;

IF (X>=(-A)) AND (X<=A) THEN

Y:=SIN(X)/COS(X)+LN(ABS(X));

IF X>A THEN Y:=SIN(EXP(X))+SIN(SQRT(X));

WRITELN(' ':10 , ' X=' , X:6:1 , ' * ' , ' Y=' , Y:10 );

X=X+DX

IF X<=XMAX THEN GOTO 1;

WRITELN;

WRITELN;

WRITELN(' ':15,'Програма роботу закiнчила')

END.

Варiанти завдань № 1

Обчислити значення функції на відрізку [a,b] з кроком С

Функція

Умова

а

вс

1

x<-1

-1x<0

x0

-2

20,2

-330,3f1

f<-1

-1f<1

2

-240,4b<0

0b1

b>1

3

-130,2a0

0<a<2

a2

4

050,252r4

r>4

r<2

5

-220,2-1s1,2

s<-1

s>1,2

6

-220,2y>1

0y1

y<0

7

-450.5y2

-2<y<2

y-2

8

-550,5x>-0,5

-1x-0,5

x<-1

9

-440,5x-1

-1x<0

x0

10

-220.2x-0,5

-0,5<x0,5

x>0,5

11

-550,5x<-1

-1x<1

x1

12

030.2x<1

1x2

x>2

13

-420,5x0

-1<x<0

x-1

14

-110,1x>0,5

0,1x0,5

x<0,1

15

-220.2x1

-1<x<1

x-1

16

-330,3x>2

0<x2

x0

17

-220.2x1

-1<x<1

x-1

18

-220.2x<0

0x1

x>1

19

-550.5x>3

0<x3

x0

20

-220.2x>1

0x1

x<0

21

-330,3x>1

-1x1

x<-1

22

-440.4x>0

-3x0

x<-3

23

-820.5x<-6

-6x-1

x>-1

24

-170,5x>5

1x5

x<1

25

-110,1x0,4

-0,4<x<0,4

x-0,4

26

1101

27

150,5x>a

x=a

x<a

28

0,220,1x<0,5

x=0,5

x>0,5

29

30

x<-0,1

-0,1x0,1

x>0,1

-1

1

0,1

9.3 В операторi IF операторами 1 i 2 можуть бути iншi оператори IF. Такi оператори умовного переходу називаються вкладеними. З допомогою вкладених операторiв IF в попередньому прикладi можна замiнити три оператори умовного переходу одним:

IF X<(-A ) THEN Y:=SQR(SQR(X))+SQR(SIN(X))+0.05

ELSE IF X>A THEN Y:=SIN(EXP(X))+SIN(SQRT(X))

ELSE Y:=SIN(X)/COS(X)+LN(ABS(X));

Порядок вкладеностi IF в мовi Паскаль не обмежується. Проте програма з великим порядком вкладеностi стає менш наочною i складною для налагодження. В мовi Паскаль в таких випадках рацiональнiше застосувати оператор вибору (варiанта), який дає змогу записувати програми бiльш просто i зрозумiло:

CASE < вираз > OF

< список констант >:< оператор >;

< список констант >:< оператор >;

. . .

< список констант >:< оператор >

[ELSE < оператор >]

END;

<Вираз> має бути ординарного типу. <Списком констант> тобто мiткою варiанта може бути дiапазон цiлих чисел. Наприклад:

CASE K OF

1..10 : A:=COS(X);

11..20: A:=SIN(X);

21..30: A:=LN(X)

END;

Для програми табулювання функцiї визначення значень функцiй з допомогою оператора CASE може бути таким:

IF X<(-A) THEN K:=1 ELSE IF K>A THEN K:=2 ELSE K:=3;

CASE K OF

1: Y:=SQR(SQR(X))+SQR(SIN(X))+0.05;

2: Y:=SIN(EXP(X))+SIN(SQRT(X));

3: Y:=SIN(X)/COS(X)+LN(ABS(X))

END;

З допомогою оператора CASE можна обiйти заборону друкувати елементи перелiчувального типу, про яку йшла мова в примiтцi роздiлу 8:

VAR SIMJA :(BT,MT,SN1,SN2,DK);

. . .

CASE SIMJA OF

BT: WRITELN(’ ’:3,’BT’);

MT: WRITELN(’ ’:3,’MT’);

SN1: WRITELN(’ ’:3,’SN1’);

SN2: WRITELN(’ ’:3,’SN2’);

DK: WRITELN(’ ’:3,’DK’)

END;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]