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