Читайте также:
|
|
Продемонстрируем использование подпрограмм-функций для решения задач, разобранных выше.
Задача 1: найти среднее арифметическое двух пар чисел А и В, С и D.
Program Primer_Function_1;
Var {раздел описания глобальных переменных}
A, B, C, D, S1, S2: real;
Function Sum (N, M: integer):real; {заголовок функции}
Begin
Sum:= (N + M) / 2 {присвоение имени функции вычисленного значения }
End; {конец описания функции }
Begin {начало основной программы}
Writeln(’Введите 4 числа’);
Readln(A,B,C,D);
S1:= Sum (A, B ); {вызов функции }
S2:= Sum (C,D) {вызов функции }
Writeln (’S1=’, S1:6:2,’S2=’, S2:6:2)
End.
Задача 2: найти сумму элементов главных диагоналей матриц A(n,n) и B(m,m) (n<=10, m<=15).
Program Primer_Function_2;
Const
Nmax=15;
Type
tmatr=array[1..Nmax, 1..Nmax] of real;
Var {раздел описания глобальных переменных}
A, B: tmatr;
n, m: byte;
Sab:real;
procedure EnterMatr(var matr: tmatr; var nm: byte; ch:char);
Var
i, j: byte;
Begin
write(‘Введите размерность квадратной матрицы ’,ch);
Readln(nm);
writeln(‘Введите элементы матрицы по строкам’);
for i:=1 to nm do
for j:=1 to nm do
Begin
write(ch,’[’,i, ’,’,j, ’]=’);
read(matr[i,j]);
End;
End;
Function Summa(const matr: tmatr; nm:byte): real; {заголовок функции}
Var {раздел описания локальных переменных, используемых в теле функции}
I: byte;
S: real;
Begin
s:=0;
for i:=1 to nm do
s:= s+ matr[ i, i ];
Summa:= s
end; {конец описания функции }
begin {начало основной программы}
EnterMatr(A, n, ’А’); {вызов процедуры для ввода матрицы А}
EnterMatr(В, m, ’B’); {вызов процедуры для ввода матрицы В}
Sab:= Summa (A, n )+ Summa (B,m);
Writeln (’Sab=’, Sab:6:2)
End.
Дата добавления: 2015-07-10; просмотров: 109 | Нарушение авторских прав