Для заданных четырёх матриц X1(N1*N1), X2(N2*N2), X3(N3*N3), X4(N4*N4) и найти и напечатать длины векторов Ya3=s1,s2,s3 и Yb3=s2,s3,s4, где s1,s2,s3,s4 – суммы положительных элементов соответствующих матриц. Следует напомнить, что длина вектора вычисляется как квадратный корень из суммы квадратов координат. (При решении реализовать процедуры ввода и вывода массивов: Vvod2m(A,N,Name), Vivod2m(A,N,Name); а также функции SummPol(A,N):<тип массива> – сумма положительных элементов; и Dlina(p,q,r):real – длина вектора с координатами p,q,r)
вот что я смог решить:
Код: Выделить всё
program ABC;
type T1m=array[1..100] of integer;
T2m=array[1..10,1..10] of integer;
var X1,X2,X3,X4:T2m;
Ya3,Yb3:T1m;
s1,s2,s3,s4:byte;
procedure Vvod2m(var A:T2m; var N:byte; const Name:TName);
var i,j:byte;
begin
writeLn('введите массив ', Name,':');
write('размерность массива N=');
readLn(N);
for i:=1 to N do
for j:=1 to N do
begin
write(Name,'[',i,',',j,']=');
readLn(A[i,j]);
end;
end;
procedure Vivod2m(const A:T2m; const N:byte; const Name:TName);
var i,j:byte;
begin
writeLn('введите массив ', Name,':');
for i:=1 to N do
begin
for j:=1 to N do
write(A[i,j]:5);
writeLn;
end;
end;
function SummPol(const A:T2m; N,M:byte):integer;
var S:integer;
i,j:byte;
begin
S:=0;
for i:=1 to N do
for j:=1 to M do
if A[i,j]>0 then
S:=S+A[i,j];
writeln('S=',S);
end;
function Dlina(p,q,r:real;B:T1m)
begin
B:=SQRT(SQR(p)+SQR(q)+SQR(r))
end;