- •Міністерство освіти україни
- •1. Абетка мови Паскаль
- •2. Структура Паскаль - програми
- •4. Константи
- •5. Типи даних
- •5.1. Обмежений тип
- •5.2. Тип перелiчення
- •5.3. Стандартнi типи
- •6. Оператори присвоювання
- •7. Процедури введення інформації
- •8. Процедури виведення інформації
- •9. Оператори переходу
- •Варiанти завдань № 1
- •10. Циклічні обчислювальні процеси
- •Варiанти завдань № 2
- •Варiанти завдань №3
- •11. Робота з масивами
- •Варiанти завдань № 4
- •12. Записи
- •Варiанти завдань №5
- •13. Множини
- •Варiанти завдань №6
- •14. Файли
- •Варiанти завдань №7
- •15. Вказівний тип
- •Варiанти завдань № 8
- •Варiанти завдань № 9
- •16. Підпрограми користувача
- •Варiанти завдань №10
- •Повiдомлення I коди помилок компiлятора Турбо Паскаль (5.5.)
- •Перелiк кодiв ascii
- •257006, М. Черкаси, бульвар Шевченка, 460, 4к.
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 -1x<0 x0 |
-2 |
20,2 |
| ||||||
|
-330,3f1 f<-1 -1f<1 |
2 | ||||||||||
|
-240,4b<0 0b1 b>1 |
3 | ||||||||||
|
-130,2a0 0<a<2 a2 |
4 | ||||||||||
|
050,252r4 r>4 r<2 |
5 | ||||||||||
|
-220,2-1s1,2 s<-1 s>1,2 |
6 | ||||||||||
|
-220,2y>1 0y1 y<0 |
7 | ||||||||||
|
-450.5y2 -2<y<2 y-2 |
8 | ||||||||||
|
-550,5x>-0,5 -1x-0,5 x<-1 |
9 | ||||||||||
|
-440,5x-1 -1x<0 x0 |
10 | ||||||||||
|
-220.2x-0,5 -0,5<x0,5 x>0,5
|
11 | ||||||||||
|
-550,5x<-1 -1x<1 x1 |
12 | ||||||||||
|
030.2x<1 1x2 x>2 |
13 | ||||||||||
|
-420,5x0 -1<x<0 x-1 |
14 | ||||||||||
|
-110,1x>0,5 0,1x0,5 x<0,1 |
15 | ||||||||||
|
-220.2x1 -1<x<1 x-1 |
16 | ||||||||||
|
-330,3x>2 0<x2 x0 |
17 | ||||||||||
|
-220.2x1 -1<x<1 x-1 |
18 | ||||||||||
|
-220.2x<0 0x1 x>1 |
19 | ||||||||||
|
-550.5x>3 0<x3 x0 |
20 | ||||||||||
|
-220.2x>1 0x1 x<0 |
21 | ||||||||||
|
-330,3x>1 -1x1 x<-1 |
22 | ||||||||||
|
-440.4x>0 -3x0 x<-3 |
23 | ||||||||||
|
-820.5x<-6 -6x-1 x>-1 |
24 | ||||||||||
|
-170,5x>5 1x5 x<1 |
25 | ||||||||||
|
-110,1x0,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,1x0,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;






























