Выяснить, сколько положительных элементов содержит матрица А(i,j), если a(i,j)=sin(i+j/2), если это количество k>15, то с помощью процедуры вычислить и
, иначе с помощью функции подсчитать след в матрице А.
Code:
PROGRAM FUN;
USES Crt;
TYPE
matr=array[1..4,1..4] of real;
VAR
a,a1,b,b1 :matr;
i,k,j:integer;
{----------------Процедура--------------------------}
PROCEDURE pr(a1:matr; k1:integer);
VAR
f :real;
begin
writeln('Матрица B[4,4]');
for i:=1 to 4 do begin
writeln;
for j:=1 to 4 do begin
b1[i,j]:=sqrt(a1[i,j]);
write(b1[i,j]:9:2); {Вывод матрицы}
end;
end;
writeln; F:=sqrt(k1+1);
writeln('F=',f:9:2);
readln; {Задержка экрана}
end;
{----------------------Функция---------------------------}
FUNCTION sled:real;
var sledm:real;
begin
sledm:=0;
for i:=1 to 4 do sledm:=sledm+a[i,i]; {подсчет следа матрицы А[4,4]}
writeln('След матрицы A[4,4]:',sledm:9:2);
sled:=sledm;
readln; {Задержка экрана}
end;
{-----------------Основная программа---------------------}
BEGIN
clrscr;
k:=0;
writeln('Матрица А[4,3]:');
for i:=1 to 4 do begin
writeln;
for j:=1 to 4 do begin
a[i,j]:=sin(i+j/2);
if a[i,j]>0 then k:=k+1; {Подсчет кол. положительных}
write(a[i,j]:9:2); {Вывод матрицы}
end;
end;
writeln;
writeln ('Количество положительных эл.: ',k);
if k>15 then {Проверка условия}
pr(a,k) {Вызов процедуре}
else
sled; {Вызов функции}
END.
06 августа 2010, 03:30