
Archive / 1_семетр-1 / Лабораторные работы / Labtp_1s / LabTp_3_1_if
.docРибакова Л.В. МОДУЛЬ №1 Лабораторна робота №4
Лабораторна робота № 4
Тема: Програмування розгалужених розрахунків
Мета роботи: Навчитися створювати алгоритм та програму розрахунку функції за певної умови, використовуючи для цього умовний оператор if...then...else.
Розгалужений обчислювальний процес передбачає виконання різних дій у залежності від виконання чи не виконання певної умови.
Повна форма умовного оператора має вигляд
IF <логiчний вираз> THEN <оператор1> ELSE <оператор2>;
IF <логічний вираз> THEN <оператор1>;
Тут:
IF, THEN, ELSE - службовi слова, синоніми слів "якщо", "тоді", "інакше";
<оператор1>,< оператор2> - оператори дій.
Якщо значенням логічного виразу є - TRUE, виконується оператор за словом THEN, якщо FALSE - то за словом ELSE, або не виконується ніякої дії (у другому варіанті виразу умовного оператора).
У складних випадках бажано користуватись позначеннями логічних зв'язків у формі AND ("i"), OR ("або"), NOT ("не"), або вкладеною формою записів –
IF..THEN
IF..THEN
IF..THEN ..;
Приклади програмування:
Якщо a>b і а<1, то виконати присвоєння y1=7;y2=a;y3=a+b;
iнакше, якщо a<=b або b>1, тодi виконати t1=2a;t2=a-b.
Умовний оператор мажна для цього випадка застосувати у такому варіанті:
IF (a>b) and (a<1) THEN
BEGIN y1:=7;
y2:=a;
y3:=a+b; END
ELSE IF (a<=b) OR (b>1) THEN
BEGIN t1:=2*a;
t2:=a-b; END;
………………………………….
ЗАВДАННЯ:
Задано вирази для розрахунку значень x,y,z. У залежності від співвідношень між ними мають бути розраховані значення інших змінних - v1 та v2. Скласти програму для розрахунку значень x,y,z та v1 і v2 при умовах, заданих у таблиці 2, передбачивши виконання наступних дій:
1. Увести вхідні дані оператором введення;
2. Виконати розрахунки з використанням оператора умови;
3. Користуючись оператором виведення та коментуванням вивести окремо вхідні дані та результати розрахунків
Варіант |
Математична форма запису функцій |
Вхідні дані |
Умови розрахунку v1 та v2 |
1 |
2 |
3 |
4 |
1 |
x=a+b; y=b/arctgx; z=x-bay |
a=0,1; b=0,2 |
x<y v1=yx2 x>=y v2=5z3 |
2 |
x=bc;
y=c+x;
|
b=1,1 c=1,2 |
x<z v1=y2x x>=y v2=5z3 |
3 |
x=c-d; y=dcos3x ; z=yc+1+x/y |
c=0,2 d=0,1 |
y<z v1=x+y y>=z v2=y2z |
4 |
x=d/k; y=d+kx ;xyk-d |
d=0,2 k=1,1 |
x>y v1=x2 +y x<=y v2=z2y |
5 |
x=ak
;
y=a-sinx;
|
a=1,4 k=0,3 |
y<x v1=y2-x y>=x v2=zy2 |
6 |
x=k+l;
y=klgx;
|
k=0,3 l=0,2 |
z<x v1=x-y2 z>=x v2=5z2+x |
7 |
x=al;
y=l-arctgx;
|
a=0,3 l=1,1 |
x>y v1=x2 +y x<=y v2=z2-y |
8 |
x=a-b; y=a/lnx; z=b+xa-y |
a=1,1 b=0,3 |
x>z v1=5x +y2 x<=z v2=2z2+y |
9 |
x=b/c; y=bx; z=b+xc-y |
b=1,1 c=1,2 |
y>z v1=y -x2 y<=z v2=3y+z2 |
10 |
x=dc; y=d/cosx; z=x-d+xy |
d=0,2 c=0,4 |
z>x v1=5x +y z<=x v2=2z2-x |
1 |
2 |
3 |
4 |
11 |
x=k+s;
y=k-sx;
|
k=0,3 s=0,4 |
x>y v1=2x2 +y x<=y v2=4z2-y |
12 |
x=kl; y=l/sinx ; z=lk-x+y |
k=0,4 l=0,6 |
x>=z v1=x2 +y x<z v2=z+5y2 |
13 |
x=a/b; y=b-lnx; z=xy+ba |
a=1,2 b=0,3 |
z>=x v1=x-y z<x v2=z2+x |
14 |
x=kd;
y=k+cosx2;
|
k=0,1 d=1,3 |
y<x v1=6-xy2 y>=x v2=z2x |
15 |
x=cd2;
|
c=0,1 d=0,2 |
y<z v1=3x2-y y>=z v2=5z2+x |
Для самостійної роботи
Скласти схему алгоритму і програму для обчислювання А= (x,y,z) та B=(x,y,z) при умовах, заданих в таблиці. Якщо жодна з умов не виконуються, вивести про це інформацію на екран у довільній формі.
Задачу вирішити для двох значень х, заданих відповідно верхньою та нижньою строками у стовпці значень х.
Варіант |
Вид функцій |
При умовах |
Вихідні дані |
|||
х |
у |
z |
||||
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
B=
|
x
x<z |
0,981
-0,32 |
-2,625 |
0,512 |
|
2 |
A= B=x1/sinz |
x y
x<z |
1,625 6,31 |
5,4 |
0,252 |
|
3 |
A=xy+1+ey-I
B= |
x z
x<y |
0,451
2,444 |
0,869 |
-0,16 |
|
6 |
A= B=tg2z+1 |
x
x>z |
-4,5
1,62 |
0,75 |
0,845 |
|
7 |
A=1+lg2(x+y)
B=(arctg |
x z x<y |
0,025 3,741 |
-0,82 |
0,16 |
|
8 |
A=y+2sin2x
B=1+ |
z x y x<y |
0,412 0,011 |
0,275 |
0,486 |
|
1 |
2 |
3 |
4 |
5 |
6 |
|
9 |
A=lg (y|x|) B=sin2(z+y) |
x x>z |
-15,246 3,52 |
4,642 |
2,401 |
|
10 |
A= 0B=arcsinz |
y>x z x<z |
0,55 0,08 |
2,75 |
0,15 |
|
11 |
1A=5arctgz
B= |
y<x x>y |
0,465 5,15 |
6,33 |
3,25 |
|
12 |
A=e|x-y| B=lg+tgx |
y>x>z
x |
15,331 -2,23 |
-0,823 |
15,221 |
|
13 |
A= B=ez-1+sinx |
y>x z x<y |
7,8 0,65 |
-5,5 |
2,3 |
|
14 |
A=
B= |
y>x z
x<z |
3,75
0,22 |
-6,72
|
1,05 |
|
15 |
A= B=sin (arctgz) |
y>x z x<z |
2,65 0,032 |
0,255
|
0,88 |
|
16 |
A= B= |
x z
y<x<z |
3,75
0,22 |
-6,72
|
1,05 |
|
17 |
A=5e|x-4y| B=lnx3+ctgx |
y<x<z x z |
0,331 -2,23 |
-0,823 |
1,221 |
|
18 |
A=y+2cos2x
B=1+ |
y x z x<z |
0,412 0,011 |
0,275 |
0,486 |
Контрольні запитання.
Які оператори мови Turbo Pascal називаються структурними?
Що таке складений оператор мови Turbo Pascal і які функції він виконує?
Як працює умовний оператор IF?
Чи може символ “ ;” зустрічатись в структурному операторі і чому?
Які особливості при написання вкладених операторів IF ?
Задана кусочно-безперервна функція Y=F(X) . Обчислити значення функції в областях існування, в протилежному випадку вивести на друк повідомлення про відсутність рішення.
a)
у
= x-1,
x
(-
; -5)
у = x2+2, x (5; + )
b)
у = x3-2x, x (-20; 0)
у = x - x2, x (20; 40)
c)
у
= x/2+5,
x
[-15;1]
(15; 30)
у = x2+1/x, x [5;10] (40; + )
7. Написати програму для обчислення значення y :
8. Напишіть програму знаходження коренів квадратного рівняння ax2+bx+c=0 за нижче поданим алгоритмом:
Введіть коефіцієнти рівняння: а, в, с , надавши їм довільних числових значень;
Перевірте коефіцієнт а :
Перевірте величину d :
Вимоги до оформлення лабораторних робіт
Титульний лист :
- Міністерство освіти і науки КНТУ кафедра ОТ і ПМ;
№ лаб. роботи, назва теми роботи ;
Мета роботи, завдання до роботи;
ПІПб виконавця та № варіанту;
дата виконання та дата оформлення звіту;
ПІПб викладача, що перевірив.
2-й лист
Формалізація змісту задачі
Блок-схема алгоритму;
3-й лист
Листинг програми (роздруківка, або від руки переписати з екрану ПК)
4-й лист
Протокол виконання програми та висновки.
5-й лист
Письмові відповіді на запитання по формі:
№ та зміст запитання |
Коротка, але змістовна відповідь |
Власний підпис
Приклад :
Знаходження найбільшого з двох чисел
уведення первісних даних (два числа)
перетворення первісних даних (виконання порівняння двох чисел) Якщо a>b, то обчислювальний процес піде по галузі max:=a і ніяк не піде по галузі max:=b.
виведення результуючих даних (найбільше число)
Програма має слідуючий вигляд:
PROGRAM LAB3;
USES CRT;
VAR A,B, MAX:REAL;
BEGIN
WRITELN ('ВВЕДIТЬ ЗНАЧЕННЯ A');
READ (A);
WRITELN ('ВВЕДIТЬ ЗНАЧЕННЯ B');
READ (B);
IF A>B THEN MAX:=A
ELSE MAX:=B
WRITELN ('Максимальне з', А:8:5), ’та’, В:8:5, ’є’, МАХ:8:5);
END.