Дан двумерный массив размерностью 5 х 6, заполненный случайным образом.вставить после...

0 голосов
39 просмотров

Дан
двумерный массив размерностью 5 х 6, заполненный случайным образом.

вставить после столбцов с максимальными элементами столбец из единиц.
и
поменять местами предпоследний и последний столбцы.


Информатика (101 баллов) | 39 просмотров
0

столбец в котором максимальный элемент есть, например диапазон чисел от 5 до 10 , следовательно после столбца в котором есть 10 , ставиться столбец из единиц

Дан 1 ответ
0 голосов
Правильный ответ

Type
  mas=array[,] of integer;
var
  i,j,ik,jk,k,max:integer;
  a:mas;
  b:array[0..5]of integer;//вспомогательный массив
begin
setlength(a,5,6);
writeln('Массив:');
for i:=0 to 4 do
  begin
  for j:=0 to 5 do
    begin
    a[i,j]:=random(-10,10);
    write(a[i,j]:4);
    end;
  writeln;
  end; 
writeln('Вставка столбцов:');
// в массиве b признак наличия в столбце максимума
for i:=0 to 4 do
  for j:=1 to 5 do
    if a[i,j]>max then
      max:=a[i,j];
for i:=0 to 4 do
  for j:=0 to 5 do
    if a[i,j]=max then b[j]:=1;
for i:=0 to 5 do k:=k+b[i];
k:=5+k;
setlength(a,5,k+1);
jk:=k;
for j:=5 downto 0 do
  begin
    if b[j]=1 then
      begin
      for ik:=0 to 4 do a[ik,jk]:=1;
      jk:=jk-1;
      end;
    for ik:=0 to 4 do a[ik,jk]:=a[ik,j];
    jk:=jk-1;
  end;
for i:=0 to 4 do
  begin
  for j:=0 to k do
    write(a[i,j]:4);
  writeln;
  end;  
writeln('Обмен столбцов:');
for i:=0 to 4 do
  begin
  b[i]:=a[i,k-1];
  a[i,k-1]:=a[i,k];
  a[i,k]:=b[i];
  end;
for i:=0 to 4 do
  begin
  for j:=0 to k do
    write(a[i,j]:4);
  writeln;
  end;
end.

0

а по процедурам не можете сделать??? отдельно процедура обмена, и отдельно вставки?

0

и меня интересует, что эта за команда setlength(a,5,k+1);?

0

Уже нет, изменения в ответе закрыты.

0

Этой командой переопределяем размеры массива

0

а заменить её чем нибудь можно?

0

Нет. Можно только вначале создать массив с запасом - большего, чем нужно, размером. Нам же надо вставлять столбцы - это значит, размер массива станет больше.

0

ааа, вот оно что, спасибо)