Вставить перед всеми строками, первый элемент которых делится на 3,строку из нулей - Pascal
Формулировка задачи:
Дан двумерный массив размером n*m, заполненный случайным образом.
1)Вставить перед всеми строками, первый элемент которых делится на 3,строку из нулей.
Начало есть
нужно продолжить выполнить 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;
Решение задачи: «Вставить перед всеми строками, первый элемент которых делится на 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.
Объяснение кода листинга программы
- Объявляется константа
m
иn
со значениями 5 и 7 соответственно. - Объявляется массив
a
размером 2*m на n, тип элементов - Integer. - Объявляются переменные:
i
,j
,k
,mm
- все типа Integer. - Происходит инициализация генератора случайных чисел.
- Циклически заполняется двумерный массив
a
случайными числами от 1 до 9. - Выводится на экран содержимое массива
a
. - Подсчитывается количество строк в массиве
а
, удовлетворяющих условию: первый элемент строки делится на 3. В случае соответствия данному условию, переменнаяmm
увеличивается на 1. - Инициализируются переменные
i
иk
,i
получает значениеm
,k
получает значениеmm
. - Выполняется цикл, который копирует значения из
i
-ой строки массиваa
вk
-ую строку массиваa
. Если первый элементi
-ой строки делится на 3, уменьшаемk
на 1 и заполняемk
-ую строку массиваa
нулями. Уменьшаем значенияi
иk
на 1. - Выводится на экран измененное содержимое массива
a
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д