Помогите пожалуйста составить программу на Pascal ! Дана целочисленная квадратная матрица A(N,N). Просматривая её элементы в зад
Помогите пожалуйста составить программу на Pascal ! Дана целочисленная квадратная матрица A(N,N). Просматривая её элементы в заданном порядке, найдите первый чётный элемент и поменяйте его местами с диагональным элементом той строки, в которой он находится. Порядок про-смотра: справа налево и снизу вверх.
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);
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.