Составить программу на pascal ! дана целочисленная квадратная матрица a(n,n). просматривая её элементы в заданном порядке, найдите первый чётный элемент и поменяйте его местами с диагональным элементом той строки, в которой он находится. порядок про-смотра: справа налево и снизу вверх.

Marmanril12 Marmanril12    2   02.09.2019 10:10    0

Ответы
LittlePanda3 LittlePanda3  06.10.2020 11:41
Uses Crt;
Label
   BbIXOD, BBODN;
Var
   A:array[1..19,1..19] of shortint;
   i,j,N,t:integer;
Begin
Randomize;
BBODN:
Write('N = ');ReadLn(N);
ClrScr;
if (N <= 0)or(N > 19) then GOTO BBODN;
t:= 700 div N;
For i:= 1 to N do
    Begin
    For j:= 1 to N do
        Begin
        A[i,j]:=random(21)-10;
        Write(A[i,j]:3,' ')
        End;
    WriteLn;
    End;
Delay(300);
For i:= N downto 1 do
    Begin
    For j:= N downto 1 do
        Begin
        if (j < N) then
           Begin
           GotoXY(j*4+1,i);
           TextBackground(0);
           Write(A[i,j+1]:3,' ');
           GotoXY(1,N+1);
           End;
        TextBackground(2);
        GotoXY(j*4-3,i);
        Write(A[i,j]:3,' ');
        Delay(t);
        if A[i,j] mod 2 = 0 then
           Begin
           Delay(700);
           if i <> j then
              Begin
              TextBackground(12);
              GotoXY(j*4-3,i);
              Write(A[i,j]:3,' ');
              Delay(700);
              TextBackground(14);
              GotoXY(i*4-3,i);
              Write(A[i,i]:3,' ');
              Delay(700);
              
              t:=A[i,j];
              A[i,j]:=A[i,i];
              A[i,i]:=t;
              
              TextBackground(14);
              GotoXY(j*4-3,i);
              Write(A[i,j]:3,' ');
              TextBackground(12);
              GotoXY(i*4-3,i);
              Write(A[i,i]:3,' ');
              Delay(700);
              
              TextBackground(0);
              GotoXY(j*4-3,i);
              Write(A[i,j]:3,' ');
              TextBackground(2);
              GotoXY(i*4-3,i);
              Write(A[i,i]:3,' ');
              End;
           t:=-1;
           GOTO BbIXOD;
           End
        End;
    GotoXY(1,i);
    TextBackground(0);
    Write(A[i,j]:3,' ')
    End;
BbIXOD:
TextBackground(0);
GotoXY(1,N+1);
if t >= 0 then WriteLn('Чётных элементов не обнаружено');
WriteLn('Для повторного ввода N нажмите 0');
WriteLn('Для выхода - любую другую клавишу');
if ReadKey = '0' then
   Begin
   ClrScr;
   GOTO BBODN;
   End
End.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика