Переставить столбец и строку, в которой находится первый отрицательный элемент - Pascal ABC
Формулировка задачи:
Дан двумерный квадратный массив. Переставить столбец и строку, в которой
находится первый отрицательный элемент. Если такого элемента нет, то выдать сообщение
Решение задачи: «Переставить столбец и строку, в которой находится первый отрицательный элемент»
textual
Листинг программы
Program perest;
const
n=4;
type
Mass=array[1..n,1..n] of integer;
Var
b:Mass;
k,i,j:integer;
procedure WWOD(var a: Mass);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(20)-random(10);{i-ому элементу массива присваивается случайное значение от -10 до 20}
end;
procedure WIWOD (a: Mass); {вывод исходного массива на экран}
var
i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
end;
procedure PER1 (var a: Mass;k:integer);
var
x,i,j:integer;
begin
{В этой процедуре столбик должен стать строкой}
for i:=1 to n do
begin
x:=a[i,k];
a[i,k]:=a[k,i];
a[k,i]:=x;
end;
end;
Begin
randomize;
WWOD(b);
writeln('Исходная матрица: ');
WIWOD(b);
writeln;
{использование процедур}
for i:=1 to n do
for j:=1 to n do
if b[i,j]<0 then
begin
k:=j;
break;
end;
per1(b,k);
writeln('Полученная матрица: ');
WIWOD(b);
readln;
end.
Объяснение кода листинга программы
- В программе объявлены переменные n и Mass, которые имеют описания типов данных.
- Объявлены переменные b, k, i и j, которые являются целочисленными типами данных.
- В процедуре WWOD присваиваются случайные значения от -10 до 20 всем элементам массива b.
- В процедуре WIWOD выводится на экран каждый элемент массива b.
- В процедуре PER1 происходит перестановка столбца и строки, в которой находится первый отрицательный элемент. Для этого используется цикл for, который проходит по всем элементам массива b.
- В процедуре Begin выполняется инициализация генератора случайных чисел, вызывается процедура WWOD для создания исходной матрицы, выводится эта матрица на экран, вызывается процедура WIWOD для вывода исходной матрицы, затем вызываются процедуры PER1 и WIWOD для использования процедур и получения полученной матрицы, которая выводится на экран.
- В конце программы считывается ввод пользователя и программа завершается.