Вставить после всех строк (двумерного массива), в которых есть заданное число А, последнюю строку - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Вставить после всех строк (двумерного массива), в которых есть заданное число А, последнюю строку. Желательно с процедурами init, print, insert

Решение задачи: «Вставить после всех строк (двумерного массива), в которых есть заданное число А, последнюю строку»

textual
Листинг программы
const nmax=20;
type mtr=array[1..nmax,1..nmax] of integer;
procedure init(var a:mtr; var m,n:byte);
var i,j:byte;
begin
repeat
write('Количество строк до ',nmax div 2,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random(20);
end;
procedure print(a:mtr;m,n:byte;s:string);
var i,j:byte;
begin
writeln(s);
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
end;
procedure insert(var a:mtr;x:integer;var m:byte;n:byte);
var b:array[1..nmax] of integer;
    i,j,k,f:byte;
begin
for i:=1 to n do
b[i]:=a[m,i];
i:=1;
while i<=m do
 begin
  f:=0;
  j:=1;
  while(j<=n)and(f=0)do
  if a[i,j]=x then f:=1
  else inc(j);
  if f=1 then
   begin
    inc(m);
    if i<m-1 then
    for k:=m downto i+2 do
    for j:=1 to n do
    a[k,j]:=a[k-1,j];
    for j:=1 to n do
    a[i+1,j]:=b[j];
    inc(i,2);
   end
  else inc(i);
 end;
end;
var c:mtr;
    m,n:byte;
    A:integer;
begin
randomize;
init(c,m,n);
print(c,m,n,'Исходный массив');
write('A=');
readln(A);
insert(c,A,m,n);
print(c,m,n,'Вставка строк');
end.

Объяснение кода листинга программы

  1. В начале программы объявляются переменные nmax, mtr, m и n, которые будут использоваться в дальнейшем.
  2. Затем объявляется процедура init, которая считывает количество строк и столбцов массива, а затем заполняет его случайными числами.
  3. После этого объявляется процедура print, которая выводит исходный массив, а затем вставляет строки после всех строк, содержащих заданное число.
  4. Далее объявляется процедура insert, которая выполняет вставку строк. Она считывает значения из исходного массива, сохраняет их в новом массиве, а затем заменяет соответствующие строки в исходном массиве.
  5. В конце программы объявляется переменная c, которая будет использоваться для хранения результата. Затем выполняется инициализация c, вывод исходного массива и вставка строк.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы