Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
все лабы.doc
Скачиваний:
9
Добавлен:
05.11.2018
Размер:
1.86 Mб
Скачать

Завдання до лабораторної роботи

Нехай D - заштрихована частина площини (рис. 2) і нехай Z визначається через x і y у такий спосіб (запис (x, y) D означає, що точка з координатами x, y належить ділянці D):

Дано два числа x, y. Складіть програму для визначення Z. Вид функцій f1 і f2 заданий у таблиці 2.

Таблиця 2

Варі-ант

f1(x,y)

f2(x,y)

Ділянка

(рис.2)

1

а

2

б

3

в

4

г

5

д

6

е

7

ж

8

к

9

л

10

м

11

н

12

п

13

а

14

б

15

в

16

г

17

д

18

(y-x)cosx

е

Продовження таблиці 2

Варі-ант

f1(x,y)

f2(x,y)

Ділянка

(рис.2)

19

ж

20

Sin(arctg(x3))

к

21

e|x-y|

Ln|x|+tg(y2)

л

22

м

23

y3ln(x2+4)

н

24

п

25

|y|x+cos2(x/2)

1/(x2+y)

а

26

yx+y+cos2(x+y)

Ln|x+y3|

б

27

в

28

г

29

д

30

е

Лабораторна робота 3

ПРОГРАМУВАННЯ РОЗГАЛУЖеного ЦИКЛІЧНОГО

ОБЧИСЛЮВАЛЬНОГО ПРОЦЕСУ. ТАБУЛЮВАННЯ

ФУНКЦІЙ

Мета роботи: виробити практичні навички в складанні алгоритмів, написанні та налагодженні програм на розгалужений циклічний процес, в організації таблиці результатів.

Оператор циклу while

«Цикл - поки» з перевіркою умови на початку циклу має вид:

while A do P;

Тут А - логічний вираз; P - простий чи складений оператор. Оператор P виконується доти, поки логічний вираз істинний.

Наприклад:

z:=-5;

while z 0 do

begin

y: = y + sqrt(z);

z: = z - 1

end;

Оператор циклу repeat

«Цикл - поки» з перевіркою умови наприкінці циклу має вид

repeat P until A;

Тут Р - група операторів; А - логічний вираз. Оператор циклу повторює групу операторів доти, поки не стане істинним (true) булевський вираз A.

Наприклад:

z:=-5;

repeat

y: = y + sqrt(z); z: = z - 1

until z < 0;

Оператор безумовного переходу

Загальний вид - goto N;

Мітка N, на яку передається керування, має бути описана в розділі label. Мітку можна поставити перед будь-яким оператором, відокремивши її двокрапкою.

Табулювання функцій

У задачах табулювання функцій доводиться робити багаторазові обчислення за тими самими математичними залежностями при різних значеннях величин (аргументів), що входять до їхнього складу. Використання циклів дозволяє при цьому істотно скоротити довжину програми. На відміну від ітераційного циклу в задачах табулювання функцій застосовується цикл із заданою кількістю повторень, яку можна визначити за формулою

n=[(Xk-Xн)/h]+1,

де Хн і Хк - початкове і кінцеве значення аргументу; h - крок зміни аргументу.

Перед першим виконанням циклу необхідно задати початкове значення аргументу, а потім організувати n раз обчислення і друк значень функції. При кожному новому виконанні циклу необхідно змінювати аргумент на крок. Щоб процес був кінцевим, необхідно задати умову закінчення циклу.

Приклад виконання завдання лабораторної роботи

Приклад 7. Знайти суму ряду

y = , при 0 x , x = /20.

Порядок роботи:

Крок 1. Установимо початкове значення суми s = 0.

Крок 2. Визначимо початкове значення параметра циклу x = 0.

Крок 3. Поки x , виконуємо кроки 3-7, інакше - йдемо на крок 8.

Крок 4. Обчислюємо y = sinx / (x2+1).

Крок 5. Обчислюємо суму s = s + y.

Крок 6. Збільшуємо значення x на крок: x = x + /20.

Крок 7. Повертаємося на крок 3.

Крок 8. Останов.

Приклад 8. Обчислити y = sin(3x)/x при 1 x 100 із кроком 0,5.

Б лок-схема

Порядок роботи:

Крок 1. Задаємо початкове значення x=1.

Крок 2. Поки x 100, виконуємо кроки 3-6, інакше - крок 7.

Крок 3. Обчислюємо y = sin(3x)/x..

Крок 4. Виводимо x, y.

Крок 5. Збільшуємо значення x на крок: x = x + 0,5.

Крок 6. Повертаємося на крок 2.

Крок 7. Останов.

Приклад 9. Обчислити таблицю значень функції

де а=3|sin2x|, x змінюється в інтервалі від -1,8 до 4,6 із кроком 0,4.

Програма обчислення таблиці значень функції z має вид:

program pr9;

uses Crt;

const XN = -1.8; XK = 4.6; HX = 0.4;

var x,a,z,y:real; p:char;

begin

clrscr;

x:=XN;

writeln('======================');

writeln('I X I A I Z I');

writeln('-------------------------------------------');

while x <= XK do

begin

a:=3*abs(sin(2*x));

if x<a then begin

y:=sqrt(abs(a*x))+ln(sqr(x));

z:=y/exp(-a*x) end

else

begin

y:=1+exp(ln(x*x*x*pi*a)/5);

z:=a*sqr(sin(x))/y end;

writeln(‘I ‘,x:5:2,’I’,a:7:3,’I’,z:7:3,' I');

x:=x+HX;

end;

writeln('================');

p:=readkey

end.

У цій програмі цикл організований оператором while. Аналогічно можна використати оператор repeat.