
30.05.2009, 17:26
|
|
Новичок
Регистрация: 15.05.2009
Сообщений: 11
Провел на форуме: 7498
Репутация:
0
|
|
Почему не работает программа? По заданию программа должна менять минимальные элементы с диагональными в каждой строке квадратной матрицы.
Код:
var
A:array [1..100,1..100] of integer;
i,j,M:byte;
C,z,Idx1,Idx2:integer;
begin
repeat
writeln('Введите размерность матрицы (M<=100): ');
readln(M);
if ((M<=1) or (M>100)) then
begin
writeln('Такая размерность невозможна по условию.');
writeln('Повторите ввод.');
end;
until ( (M>1) and (M<=100) );
writeln('Введите матрицу');
for i:=1 to M do
for j:=1 to M do
begin
write('A[',i,',',j,']=');
readln(A[i,j]);
end;
writeln('Вы ввели: ');
for i:=1 to M do
begin
for j:=1 to M do write(A[i,j],' ');
writeln;
end;
for i:=1 to M do
begin
Idx1:=1;
z:=A[i,Idx1];
for j:=2 to M do
if A[i,j]<z then
begin
z:=A[i,j];
Idx1:=j;
end;
A[i,Idx1]:=A[i,i];
A[i,i]:=z;
end;
for i:=1 to M do
begin
Idx2:=1;
C:=A[i,Idx2];
for j:=2 to M do
if ((A[i,j]>A[i,i]) and (A[i,j]<C)) then
begin
C:=A[i,j];
Idx2:=j;
end;
A[i,Idx2]:=A[i,(M+1-i)];
A[i,(M+1-i)]:=C;
end;
writeln;
writeln('Новая матрица:');
begin
for i:=1 to M do
begin
for j:=1 to M do
write(A[i,j]:5);
writeln;
end;
readln;
end;
end.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|