Показать сообщение отдельно

  #7  
Старый 30.05.2009, 17:26
Agregat
Новичок
Регистрация: 15.05.2009
Сообщений: 11
С нами: 8942183

Репутация: 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.
 
Ответить с цитированием