Вставить перед всеми строками, первый элемент которых делится на 3,строку из нулей - Pascal

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

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

Дан двумерный массив размером n*m, заполненный случайным образом. 1)Вставить перед всеми строками, первый элемент которых делится на 3,строку из нулей. Начало есть
const m=3; n=7;
type mtr=array[1..m,1..2*n] of integer;
procedure Vivod(a:mtr;x,y:integer);
var i,j:integer;
begin
for i:=1 to x do
 begin
  for j:=1 to y do
  write(a[i,j]:4);
  writeln;
 end;
writeln;
end;
var b,b1:mtr; n1,i,j,k,max,a,z:integer; f:boolean;
begin
for i:=1 to m do
for j:=1 to n do
b[i,j]:=random(50);
writeln('Исходная матрица:');
Vivod(b,m,n);
b1:=b;
нужно продолжить выполнить 1 пункт(Вставить перед всеми строками, первый элемент которых делится на 3,строку из нулей.)

Решение задачи: «Вставить перед всеми строками, первый элемент которых делится на 3,строку из нулей»

textual
Листинг программы
const m=5; n=7;
var
  a: array [1..2*m,1..n] of Integer;
  i, j, k, mm: Integer;
begin
  Randomize;
  for i:=1 to m do for j:=1 to n do a[i,j]:=1+Random(9);
  WriteLn('A =');
  for i:=1 to m do begin
    for j:=1 to n do Write(' ',a[i,j]:3); WriteLn;
  end;
  mm:=m; for i:=1 to m do if a[i,1] mod 3=0 then Inc(mm);
  i:=m; k:=mm;
  while i<k do begin
    for j:=1 to n do a[k,j]:=a[i,j];
    if a[i,1] mod 3=0 then begin
      Dec(k); for j:=1 to n do a[k,j]:=0;
    end;
    Dec(i); Dec(k);
  end;
  WriteLn('A''=');
  for i:=1 to mm do begin
    for j:=1 to n do Write(' ',a[i,j]:3); WriteLn;
  end;
end.

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

  1. Объявляется константа m и n со значениями 5 и 7 соответственно.
  2. Объявляется массив a размером 2*m на n, тип элементов - Integer.
  3. Объявляются переменные: i, j, k, mm - все типа Integer.
  4. Происходит инициализация генератора случайных чисел.
  5. Циклически заполняется двумерный массив a случайными числами от 1 до 9.
  6. Выводится на экран содержимое массива a.
  7. Подсчитывается количество строк в массиве а, удовлетворяющих условию: первый элемент строки делится на 3. В случае соответствия данному условию, переменная mm увеличивается на 1.
  8. Инициализируются переменные i и k, i получает значение m, k получает значение mm.
  9. Выполняется цикл, который копирует значения из i-ой строки массива a в k-ую строку массива a. Если первый элемент i-ой строки делится на 3, уменьшаем k на 1 и заполняем k-ую строку массива a нулями. Уменьшаем значения i и k на 1.
  10. Выводится на экран измененное содержимое массива a.

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


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

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

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