Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornye_raboty_PASKAL.doc
Скачиваний:
15
Добавлен:
25.03.2015
Размер:
969.22 Кб
Скачать

Функции

Функции отличаются от процедур тем, что в них результат вычислений присваивается непосредственно имени функции.

Описание функции должно начинаться со служебного слова function и заканчиваться указанием типа функции:

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

Среди операндов функции обязательно должно быть присваивание имени функции некоторого значения: f:=<значение>;

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

Пример выполнения задания лабораторной работы

Пример 29. Вычислить значения выражения

.

Элементы массивов a(10) и b(5) определяются по формулам:

ai=3,1i2+4,9i-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=a1и2-a2(5-i); yi=b1sin(2и)+b2ei-5;

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

Значение коэффициентов a1,...,d2 приведены в таблице 6.

Таблица 6

Варианты

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.

Условие А приведенная в таблицы 7.

Таблица 7

m

Условие А

0,3

отрицательных

1

положительных

2

принадлежащих интервалу [-10;20]

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