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

Функції

Функції відрізняються від процедур тим, що в них результат обчислень привласнюється безпосередньо імені функції.

Опис функції повинен починатися зі службового слова function і закінчуватися вказівкою типу функції:

function f(x:matr; var y:real):real;

Серед операторів функції обов'язково має бути присвоювання імені функції деякого значення: f:=<значення>;

Формальні параметри функцій вводяться за тими ж правилами, що й формальні параметри процедур.

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

Приклад 29. Обчислити значення виразу

.

Елементи масивів a(10) і b(5) визначаються за формулами:

ai=3,1i2+4,9і-5, bi=10ln(i+5)+cos2(i).

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

program pr29;

uses crt;

const m=10; n=5;

type raz=1..m; mac=array[raz] of real;

var a,b:mac; pa,pb,sa,sb,z:real;i:integer; w:char;

procedure pro(x:mac;k:integer; var p:real);

var i:integer;

begin p:=1;

for i:=1 to k do p:=p*abs(x[i])

end;

function sum(x:mac;k:integer):real;

var i:integer; s:real;

begin s:=0;

for i:=1 to k do s:=s+sqr(x[i]); sum:=s

end;

begin clrscr;

WRITELN(' ':10,'МАСИВ А ');

for i:=1 to m do begin

a[i]:=3.1*sqr(i)+4.9*i-5;

Write(a[i]:8:2,' ':4);

IF I MOD 5 = 0 THEN WRITELN; END;

WRITELN; WRITELN(' ':10,'МАСИВ B ');

for i:=1 to n do begin

b[i]:=10*ln(i+5)*sqr(cos(pi*i));

write(b[i]:8:2,' ':4); end; writeln;

pro(a,m,pa); pro(b,n,pb);

sa:=sum(a,n); sb:=sum(b,n);

z:=(pa+pb)/(sa+sb); writeln;

WRITELN(' PA = ',PA:8:2,' PB = ',PB:8:2);

WRITELN(' SA = ',SA:8:2,' SB = ',SB:8:2);

WRITELN(' Z = ',Z:8:2);

w:=readkey

end.

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

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

Дані масиви X(8), Y(8), Z(10), W(15), елементи яких визначаються за формулами:

xi=a1i2-a2(5-i); yi=b1sin(2i)+b2ei-5;

zi=c1(і-4)+c2sin2(1,5i); wi=d1ln(0,1i)+d2cos3(і-2,5).

Значення коефіцієнтів a1,...,d2 наведені в таблиці 10.

Таблиця 10

Варіанти

a1

a2

b1

b2

c1

c2

d1

d2

01-05

2

10

4

6

8

3

5

12

06-10

3

9

6

5

6

5

6

10

11-15

4

8

9

4

2

7

8

6

16-20

5

7

10

3

4

9

7

8

21-25

6

5

12

2

3

11

9

4

26-29

7

6

14

1

5

13

10

2

Варіант m1. Підрахуйте відсоток <умова А> елементів у масивах Х,Y,Z. Визначте мінімальний з них.

Варіант m2. Підрахуйте загальну кількість <умова А> елементів у масивах Y,Z,W.

Варіант m3. Знайдіть суму мінімальних <умова А> елементів масивів X,Y,W.

Варіант m4. Знайдіть добуток максимальних <умова А> елементів масивів Y,Z,W.

Варіант m5. Сформуйте масив з різниць між сумами елементів <умова А> з парними і непарними індексами в масивах Х,Y,Z.

Варіант m6. Знайдіть середні арифметичні <умову А> елементів масивів Х,Y,Z і визначте максимальне з них.

Варіант m7. Знайдіть суму добутків квадратів <умова А> елементів масивів Х,Z,W.

Варіант m8. Сформуйте масив з різниць між максимальним <умова А> і мінімальним елементами масивів Х,Y,Z.

Варіант m9. Сформуйте масив із сум <умова А> елементів масивів Х,Y,W. Знайдіть максимальну суму.

Варіант m0. Сформуйте нові масиви, що складаються з <умова А> елементів масивів Y,Z,W.

Умова А наведена в таблиці 11.

Таблиця 11

m

Умова А

0,3

від'ємних

1

додатних

2

що належать інтервалу [-10;20]

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