Дан двумерный массив размера n * m заполненный случайным образом: — Вставить после каждого столбца, начиная со второго, первый столбец; — Удалить из него каждый столбец, содержащий элемент кратный 5 — Pascal(Паскаль)

program marazm3;



uses crt;

var
  a:array[1..1000,1..800] of integer;     {создаем массив}
  i,k,n,l,j,m:integer;

begin
writeln('Simple Arrays');writeln('press Enter to continue');readln;      {начинаем}
Write('Enter number of strings:  ');readln(n);     {запоминаем количество строк}
write('Enter number of columns:  ');readln(m);     {запоминаем количество столбцов}

randomize;               {Случайно заплняем все клеточки массива}
for i:=1 to m do begin
 for k:=1 to n do begin
   a[i,k]:=random(10);     {числами от нуля до 9}
  end;
end;


For k:=1 to n do begin
  writeln('--------------------------------------------------------------');
  For i:=1 to m do begin           {вот оно, графическое изображение массива}
  write(' ',a[i,k],' |');
  end;
  writeln;
end;
writeln('--------------------------------------------------------------');
writeln('press enter');
readln;

for i:=m downto 3 do begin       {теперь делаем первуую часть задачи.отодвигаем начиная с третьего}
  for k:=1 to n do begin        {все ячейки столбца}
     a[i*2-2,k]:=a[i,k];         {отодвигаем столбцев на понятно сколько едениц, если почитаешь код}
     a[i*2-1,k]:=a[1,k];       {а в столбец стоящий после него заисываем ячейки первого}
  end;
end;

for k:=1 to n do a[3,k]:=a[1,k];      {а в третий столбец пишем тоже ячейки первого, т.к. он не попал в промежуток прошлого цикла}

   writeln('Otredactirovannij massiv');writeln;      {графически представляем массив}
For k:=1 to n do begin                                        {который получился после преобразований}
  writeln('--------------------------------------------------------------');
  For i:=1 to m*2-1 do begin
  write(' ',a[i,k],' |');
  end;                
  writeln;
end;
writeln('--------------------------------------------------------------');
writeln('press enter');       {нарисовали его, просим нажать ентер}
readln;

For k:=1 to m*2+1 do begin       {теперь вторая часть задания}
  for l:=1 to n do begin          {с мы проверяем посторочно каждую ячеку каждого столбца} 
     If a[k,l] mod 5=0 then       {если делится на 5}
         begin
            For j:=0 to n do a[l,j]:=0;       {то записываем в этот столбец нули}
         end;
     end;
    end;

   writeln('Massiv s obnulennimi stolbzami s 4islami, kratnimi 5');writeln;
For k:=1 to n do begin                          {теперь рисуем получившийся массив}
  writeln('--------------------------------------------------------------');
  For i:=1 to m*2-1 do begin
  write(' ',a[i,k],' |');
  end;
  writeln;
end;
writeln('--------------------------------------------------------------');
writeln('press enter');
readln;

   writeln('Otredactirovannij massiv, bez nulevih stolbzov');writeln;
 For k:=1 to n do begin                               {и на последок рисуем массив только без обнуленных строк}
  writeln('--------------------------------------------------------------');
  For i:=1 to m*2-1 do begin
   if a[i,k]>0 then
   write(' ',a[i,k],' |');
  end;
  writeln;
end;
writeln('--------------------------------------------------------------');
writeln('press enter to exit');
readln;
end.

Leave a Comment

+ 33 = 38