Var I:byte;
function mult(c:array of real):real;
Var I:byte; p:real;
begin
p:=1;
for i:=low(c) to high(c) do p:=p*c[i];
mult:=p
end;
begin
clrscr;
if mult(a)<mult(b) then begin writeln('massiv A');
for i:=1 to 8 do begin
a[i]:=a[i]*2;
write(' ',a[i]:5:1)
end
end
else begin writeln('massiv B');
for i:=1 to 5 do begin
b[i]:=b[i]*2;
write(' ',b[i]:5:1)
end
end
end.
ответ
Размер массива не указан
Здесь стандартные функции LOW(C) и HIGH(C) возвращают нижнее и верхнее значение индекса входного массива соответственно.
uses crt;
const n=3;
type matr=array[1..n,1..n] of real;
const a:matr=((0.5,2.25,1.5),(0.8,1.5,-1),(3.3,4.1,0.5));
b:matr=((3.5,2.15,-1.5),(0.5,4.5,3),(0.3,-7.1,3.5));
c:matr=((-2.5,8.25,0.4),(-3.8,-2.5,1),(4.3,-1.1,-3.5));
d:matr=((3.3,4.1,0.5),(0.8,1.5,-1),(0.5,2.25,1.5));
Var a_b,c_d,p:matr; I,j,k:byte; s:real; sled:real;
procedure sum(x,y:matr; var z:matr);
Var I,j:byte;
begin
for i:=1 to n do
for j:=1 to n do z[i,j]:=x[i,j]+y[i,j]
end;
procedure print(x:matr;t:string);
Var I,j:byte;
begin
writeln;
writeln(t);
for i:=1 to n do begin
for j:=1 to n do write(' ',x[i,j]:4:1);
writeln
end
end;
begin
sum(a,b,a_b);
sum(c,d,c_d);
print(a_b,'A+B');
print(c_d,'C+D');
for i:=1 to n do
for j:=1 to n do begin s:=0;
for k:=1 to n do s:=a_b[i,k]*c_d[k,j];
p[i,j]:=s
end;
print(p,' P');
for i:=1 to n do sled:=sled+p[i,i];
writeln(' sled=',sled:4:1)
end.
Кафедра информатики
Иванов Борис Алексеевич.
Файл