Лабораторна Робота № 14

Тема: Turbo Pascal.Алгоритми і програми з використанням підпрограм-функцій.

 

Мета: Формування умінь створення програм з використанням підпрограм-функцій алгоритмічною мовою високого рівня Turbo Pascal.

 

Теоретичні відомості

Підпрограми призначені для реалізації алгоритмів опрацювання окремих частин (модулів) деякої складної задачі, які можуть взаємодіяти між собою. Кожна підпрограма описується один раз і при необхідності до неї можна багаторазово звертатись. Розрізняють два види підпрограм – підпрограми-функції і підпрограми-процедури.

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

function <назва>(<список формальних параметрів>):

<тип функції>;

<розділи описів і оголошень функції>;

Begin

<розділ команд функції, де має бути така команда:

назва:= вираз>

end;

У розділі команд функції має бути команда присвоєння значення деякого виразу назві функції. Результат функції повертається в основну програму через її назву. Виклик функції здійснюється таким чином:

<назва>(<список формальних параметрів>).

Хід роботи

2.1 Постановка задачі

Скласти графічний алгоритм і програму для обчислення значення функції

,

де ; ; ,

використовуючи функцію .

 

2.2 Графічний алгоритм показаний на рис. 14.1:

а) графічний алгоритм основної програми;

б) графічний алгоритм підпрограми-функції SUM.

 

2.3 Таблиця ідентифікації змінних

 

Змінна Ідентифікатор
x x
y y
t t[i]
q q[i]
NR NR
NT NT
NQ NQ

 

2.4 Програма мовою Pascal та результати обчислень

 

Program PF{Підпрограми функції};

Const

n=100; x=3.2;

Type

vect= array[1..n] of real;

Var

i,NR,NT,NQ:integer;

t,q:vect;

y:real;

Function SUM(mas:vect;k,mm:integer):real;

Var

s:real;

j:integer;

 

 
 

 


 

 

б)

 

а)

 

Рисунок 14.1 –1 Графічний алгоритм

Begin

s:=0;

for j:=k to mm do

s:=s+mas[j];

SUM:=s

end;

Begin

writeln('Введіть значення NR,NT,NQ');

read(NR,NT,NQ);

writeln('Введіть елементи масиву t ');

for i:=1 to NT do

read(t[i]);

writeln('Введіть елементи масиву q ');

for i:=1 to NQ do

read(q[i]);

y:=SUM(t,1,NR)*x*x+SUM(t,NR+1,NT)*x+SUM(q,1,NQ);

writeln('РЕЗУЛЬТАТИ ОБЧИСЛЕНЬ:');

write('y=',y:6:3)

end.

РЕЗУЛЬТАТИ ОБЧИСЛЕНЬ:

у= 117.680

 

3 Контрольні запитання

1. Коли доцільно використовувати підпрограми-функції?

2. Що таке фактичні і формальні параметри?

3. Які функції називають рекурсивними?

4. Як формується звертання до підпрограм-функцій мовою Pascal?

5. Як здійснюється передача обчисленого значення функції в головну програму?

 

Варіанти завдань наведені нище:

 

14.1. Скласти процедуру-функцію,яка обчислює значення х аргумента монотонної функції,при якому f(x)=0, згідно формули:

Очевидно:

14.2. Скласти процедуру-функцію,яка визначає довжину відрізка на площині за заданими полярними координатами його вершин згідно формули:

Використовуючи цю процедуру,скласти програму, яка вводить полярні координати вершин трикутника і друкує його периметр.

Вершини: .

14.3. Оформити у вигляді процедури-функції обчислення бінома :

де із заданою точністю .

14.4. Нехай функція y(x) задана таблицею:

 

Xi X1 X2 X3 X4 ... X20
Yi Y1 Y2 Y3 Y4 ... Y20

 

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

,

де .

14.5. Скласти програму для обчислення означеного інтегралу:

згідно методу трапецій

,

де -крок інтегрування, а=2, b=3, n-число інтервалів;

-підінтегральна функція. Обчислення підінтегральної функції оформити як процедуру-функцію.

14.6. Задані дійсні a i b. Отримати

, де

.

Обчислення функції f(x;y) оформити у вигляді процедури-функції.

14.7. Обчислити ймовірність появи випадкової події рівно m разів в n незалежних дослідах згідно формули Бернуллі:

, де

,

q=1-p, m,n - цілі додатні числа, р -дійсне додатнє число з інтервалу (0;1).

Знаходження факторіалу оформити у вигляді підпрограми-функції.

14.8. Оформити обчислення значення інтегральної функції Ф(x), використовуючи наближену формулу (x>0):

у вигляді процедури-функції.

14.9. Отримати послідовнісь п'ятнадцяти псевдовипадкових чисел в інтервалі (0;1) згідно формули:

де F{ } - символ взяття дробової частини від виразу у фігурних дужках. За α0 взяти будь-який десятковий дріб. Знаходження чергового αk (k=1,2,...) оформити у вигляді процедури-функції.

14.10. Описати процедуру-фнкцію для обчислення

.

Число n, дійсні U, V і елементи дійсного вектора А вибрати самостійно. Скласти програму для обчислення величини

.

14.11. Скласти програму обчислення розміщення згідно наближеної формули:

.

Обчислення ln(x!) оформити у вигляді процедури-функції.

14.12. Знайти значення величини

,

де |z|, |y|<1

При цьому обчислення arcsin(x) оформити у вигляді підпрограми-функції згідно формули:

14.13. Скласти програму для визначення величини

,

де а=1, b=32. Oбчислення інтегралу оформити у вигляді підпрограми-функції, використовуючи метод Сімпсона:

,

де h=(b-a)/n=0,5.

14.14. Нехай А - двовимірний масив розміром nxn. Описати як функцію-процедуру обчислення суми абсолютних значень елементів k-го рядка , виключивши при цьому діагональний елемент , тобто

.

Величину n i елементи матриці А вибрати самостійно.

14.15. Майстерня отримала замовлення на виготовлення циліндричних бочок різної висоти, але діаметр основи кожної з них d=80 см. Скласти програму для визначення кількості бляхи (в квадратних одиницях); потрібної для випуску 10 бочок висотою 1 м, 15 бочок – 0,9 м, 20 бочок – 0,7 м. Повна поверхня циліндра дорівнює:

,

де R - радіус основи. Обчислити як процедуру-функцію.

14.16. В змаганнях з баскетболу приймають участь 5 команд, в кожній з них - 10 спортсменів. Зріст кожного юнака задано. Сформувати команду в яку входитимуть найвищі баскетболісти від кожного колективу. Їх вибір здійснити, використовуючи процедуру-функцію. У випадку однакового зросту, заявити будь-кого.

14.17. Взимку 8 дітей ліпили снігові кулі. Скільки снігу (в м3) необхідно для підготовки кожної з них, якощо процес їх виготовлення припинявся, коли куля ставала за висотою рівною зросту дитини. Кількість снігу визначати як процедуру-функцію. Об'єм сфери дорівнює:

.

14.18. Заипсати програму обчислення величини

.

Обчислення кореня кубічного згідно ітераційної формули

оформити у вигляді процедури-функції. X=5, Y0 =2.

14.19. Скласти програму обчислення

, де

.

Обчислення функції (синус інтегральний) з точністю оформити у вигляді процедури-функції.

.

14.20. Задано дві матриці A(3,3) i B(4,4). Знайти суму добутків додатніх елементів кожної матриці, які лежать нижче головної діагоналі. Обчислення такого добутку оформити у вигляді процедури-функції.

14.21. Написати програму для обчислення

,

де QJ -кількисть елементів векторів X(15) i Y(19), які кратні числу 3. Знаходження Q (j=1.2) оформити у вигляді процедури-функції.

14.22. Визначити суму мінімальних серед додатніх елементів в стовпцях масиву B(А,А). Обчислення такого мінімального елемента в стовпці оформити у вигляді процедури-функції.

14.23. Обчислити

,

,

де X змінюється від Xn =0 до XK =1,57 з кроком h=0,1. Обчислення фнкції sh(x) виконати у вигляді процедури-функції, використовуючи формулу

.

14.24. Записати процедуру-функцію для обчислення скалярного добутку двох векторів. Використовуючи її, скласти програму для знаходження добутків:

.

14.25. Обчислити значення величини

,

де .

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

.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: