Помогите пожалуйста составить программу на Pascal !Дана целочисленная квадратная матрица
Помогите пожалуйста составить программку на Pascal !
Дана целочисленная квадратная матрица A(N,N). Просматривая её элементы в данном порядке, найдите 1-ый чётный элемент и поменяйте его местами с диагональным элементом той строчки, в которой он находится. Порядок про-смотра: справа влево и снизу ввысь.
1 ответ
Витя Арлеевский
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 lt;= 0)or(N gt; 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 lt; 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 lt;gt; 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 gt;= 0 then WriteLn('Чётных частей не обнаружено');
WriteLn('Для повторного ввода N нажмите 0');
WriteLn('Для выхода - всякую иную клавишу');
if ReadKey = '0' then
Begin
ClrScr;
GOTO BBODN;
End
End.
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 lt;= 0)or(N gt; 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 lt; 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 lt;gt; 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 gt;= 0 then WriteLn('Чётных частей не обнаружено');
WriteLn('Для повторного ввода N нажмите 0');
WriteLn('Для выхода - всякую иную клавишу');
if ReadKey = '0' then
Begin
ClrScr;
GOTO BBODN;
End
End.
Штыхер
Никита
Спасибо огромное)))
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов