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

Текст программы.

PROGRAM Primer_3;

CONST n = 10; m=7; c=-1.5; d=4.8;

Type Vect= ARRAY [1 .. n] OF Real;

VAR z : real;

Function F1(i:integer; ni,ki:real):real;

BEGIN

F1:=(cos(i)+sin(2.4*i))*(ki/ni)/(0.25*i);

End;

Function F2(j:integer; ni,ki:real):real;

BEGIN

F2:=ln(j)/ln(10)+j*j+ni/ki;

End;

Function Mass_kol(m,nf:integer; ni,ki:real):integer;

VAR i, R: INTEGER;

ab : vect;

BEGIN

Writeln('Расчет и вывод элементов',nf:3,' МАССИВА ');

FOR i := 1 TO m DO

BEGIN

If nf=1 Then ab[i]:=F1(i,ni,ki) Else ab[i]:=F2(i,ni,ki);

Write(ab[i]:7:2,' ');

End;

Writeln;

R:=0;

FOR i := 1 TO m DO

If (ni<=ab[i]) and (ab[i]<=ki) Then R:=R+1;

Writeln('Контрольный вывод количества элементов в',nf:3,

' массиве =',R:3 );

Mass_kol:=R;

Writeln;

End;

BEGIN

Z:=Mass_kol(n,1, c,d)+ Mass_kol(m,2, c,d);

Writeln( 'Значение z= ',z:3);

End.

Расчет и вывод элементов 1 МАССИВА

-15.56 9.04 0.84 2.65 0.65 -4.11 0.24 -0.32 0.75 2.23

Контрольный вывод количества элементов в 1 массиве = 7

Расчет и вывод элементов 2 МАССИВА

0.69 3.99 9.16 16.29 25.39 36.47 49.53

Контрольный вывод количества элементов в 2 массиве = 2

Значение z= 9

Подпрограмма - процедура

В отличие от подпрограммы – функции подпрограмма – процедура в качестве результата может возвращать несколько значений. Структура процедуры имеет вид:

Procedure <имя> (а1;...;аn);

Раздел описания локальных меток, констант, переменных

B

Группа операторов - тело процедуры

egin

End;

где a1;…;an – список формальных параметров с указанием типа. Причем при указании типа параметра обязательно выделяют параметры, которые в ходе выполнения программы не меняют своего значения (замена формальных фактическими параметрами по значению) и которые могут его изменить (замена формальных фактическими параметрами по наименованию). В описании последних перед ним ставится служебное слово Var.

Пример 5.

Рассчитать элементы квадратной матрицы A={a[i,j]}, i,j=1,2,…n по заданной формуле:

; .

Расчет элементов матрицы оформить подпрограммой. Так как результаты работы подпрограммы много значений, следовательно, необходимо использовать подпрограмму-процедуру.

Структурная схема имеет вид:

Program prim5_1;

Const n=7;

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

matr=array[1..n,1..n] of real;

Var a:matr;

i,j:integer;

{Описание поцедуры вычисления элементов матрицы А}

Procedure Matrica(n:integer; var A:matr);

var i,j:integer;

Begin

for i:=1 to n do

for j:=1 to n do

a[i,j]:=(2*j*i+4*i)/j;

End;

{Основная программа}

Begin

Matrica(n,a);

Writeln(' ':20,'MATPICA A');

for i:=1 to n do

Begin

for j:=1 to n do Write(a[i,j]:8:3);

writeln;

End;

End.

Результаты работы программы.

Ввод значений элементов массива осуществляется с использованием операторов цикла, например:

Writeln(‘ Введите элементы матрицы А‘);

for i:=1 to n do

for j:=1 to m do

read (a[i, j]);.

При большой размерности массива ввод данных с клавиатуры становится трудоемкой операцией. В этом случае значения элементов массива удобнее задавать в разделе описания констант.

Пример 6: ввести значения элементов вектора Х и матрицы А, которые соответственно равны:

4, 5, 10, 8, 0

7, 9, 25, 0, 1

Х = (5, 1.2, 0.1, 7, 8.6) А = 3, 0, 6, 14, 5

0, 0, 0, 99, 12

Значения элементов могут быть определены путем их инициализации:

Const X: array [1..5] of real = (5.0, 1.2, 0.1, 7.0, 8.6);

A: array [1..4, 1..5] of integer = ((4, 5, 10, 8, 0),

(7, 9, 25, 0, 1),

(3, 0, 6, 14, 5),

(0, 0, 0, 99, 12));.

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