Вставить перед всеми строками, первый элемент которых делится на 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д