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

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

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

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

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

textual
Листинг программы
  1. const m=5; n=7;
  2. var
  3.   a: array [1..2*m,1..n] of Integer;
  4.   i, j, k, mm: Integer;
  5. begin
  6.   Randomize;
  7.   for i:=1 to m do for j:=1 to n do a[i,j]:=1+Random(9);
  8.   WriteLn('A =');
  9.   for i:=1 to m do begin
  10.     for j:=1 to n do Write(' ',a[i,j]:3); WriteLn;
  11.   end;
  12.   mm:=m; for i:=1 to m do if a[i,1] mod 3=0 then Inc(mm);
  13.   i:=m; k:=mm;
  14.   while i<k do begin
  15.     for j:=1 to n do a[k,j]:=a[i,j];
  16.     if a[i,1] mod 3=0 then begin
  17.       Dec(k); for j:=1 to n do a[k,j]:=0;
  18.     end;
  19.     Dec(i); Dec(k);
  20.   end;
  21.   WriteLn('A''=');
  22.   for i:=1 to mm do begin
  23.     for j:=1 to n do Write(' ',a[i,j]:3); WriteLn;
  24.   end;
  25. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы