Заданы 2 матрицы A(6,6), B(6,6). Выполнить указанные преобразования – 2 для той матрицы, которая отвечает заданному условию – 1

Условие 1 – выполнить в подпрограмме FUNCTION, условие 2 – выполнить в подпрограмме PROCEDURE. Например, для матрицы, в которой max элемент в первой строке больше – (это условие 1) просуммировать элементы в каждом столбце – (это условие 2).
Условие 1: количество нулевых элементов больше;
Условие 2: Найти сумму всех элементов, расположенных до главной диагонали.

code: #pascal
program PascalGuru;
uses crt;
type arr=array[1..6,1..6] of integer;
     vector=array[1..6] of integer;
 
var A,B:arr;
    i,j,s:integer;
{----------------------------------------}
function countNull(X:arr):integer;
var i,j,rez:integer;
begin
rez:=0;
for i:=1 to 6 do
for j:=1 to 6 do
 if X[i,j]=0 then inc(rez);
countNull:=rez;
end;
{----------------------------------------}
procedure summa(X:arr; var summa:integer);
var i:integer;
begin
summa:=0;
for i:=1 to 6 do summa:=summa+X[i,i]
end;
{----------------------------------------}
 
 
begin
for i:=1 to 6 do
for j:=1 to 6 do A[i,j]:=-8+random(26);
 
for i:=1 to 6 do
for j:=1 to 6 do B[i,j]:=-8+random(26);
 
write ('Vot matrica A:');
for i:=1 to 6 do begin writeln;
for j:=1 to 6 do write (A[i,j]:8,' '); end;
writeln;writeln;
write ('Vot matrica B:');
for i:=1 to 6 do begin writeln;
for j:=1 to 6 do write (B[i,j]:8,' '); end;
 
writeln;writeln;
if countNull(A)>countNull(B) then
   begin
    summa(A,s);
    writeln('Summa gl.diag. matricy "A": ',s);
   end
   else
   begin
    summa(B,s);
    writeln('Summa gl.diag. matricy "B": ',s);
   end;
 
 
readln;
end.      
Поделиться:

Похожие статьи: