помогите найти ошибки в программе
a. расчет элементов квадратной матрицы A = (aij), i,j – 1,2,…,n по заданной формуле: a[i,j]=(i-j)/(i*j)*(i*j)*(i*j)
b. упорядочить элементы первых трех столбцов матрицы А по убыванию абсолютных значений;
Program zadaha;
Const r=10;
Var a: array[1..r,1..r] of real;
i,j,n,k: integer; z:real;
begin
writeln('vvedi n');
readln(n);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=(i-j)/(i*j)*(i*j)*(i*j);
writeln('matriza A:');
writeln;
for i:=1 to n do
begin
for j:=1 to n do
writeln(a[i,j]:6:2,' ');
writeln;
end;
for i:=1 to n do
begin
for j:=1 to 3 do
begin
for k:=1 to n-1 do
if a[k,j]>a[k+1,j] then
begin
z:=a[k,j];
a[i,k]:=a[k+1,j];
a[k+1,j]:=z;
end;
end;
end;
writeln('otsortirovannay matriza A:');
writeln;
for i:=1 to n do
begin
for j:=1 to n do
writeln(a[i,j]:6:2,' ');
writeln;
end;
end.
Var a: array[1..r,1..r] of real;
i,j,n,k: integer; b:real;
begin
writeln('vvedi n');
readln(n);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=(i-j)/(i*j)*(i*j)*(i*j);
writeln('matriza A:');
writeln;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:6:2,' ');
writeln;
end;
for j:=1 to 3 do
for i:=1 to n-1 do
for k:=i+1 to n do
if a[i,j]<a[k,j] then
begin
b:=a[i,j];
a[i,j]:=a[k,j];
a[k,j]:=b;
end;
writeln('otsortirovannay matriza A:');
writeln;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:6:2,' ');
writeln;
end;
readln;
end.
я тут кажется с сортировкой намутил что то не правильно сортирует((
Код:
if abs(a[k,j]) > abs(a[k+1,j]) then
Код:
a[k,j] := a[k+1,j];
Цитата: ellor!
Во-первых, при сравнении надо брать значения по модулю:
Во-вторых, в перестановке элементов вместо a[i,k]:
Код:
if abs(a[k,j]) > abs(a[k+1,j]) then
Код:
a[k,j] := a[k+1,j];
спасибо но я уже сам во всем разобрался))