Вставить столбец из нулей после каждого из столбцов, содержащих максимальный элемент - Pascal

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

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

Дан двумерный массив размером n*m, заполненный случайным образом. 2. Вставить после всех столбцов, содержащий максимальный элемент столбцов из нулей.

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

textual
Листинг программы
const nmax=10;
var a:array[1..nmax,1..2*nmax] of integer;
    m,n,i,j,k,max:integer;
begin
randomize;
repeat
writeln('Введите размеры матрицы от 1 до ',nmax);
readln(m,n);
until(m in [1..nmax])and(n in [1..nmax]);
writeln('Исходная матрица');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=1+random(9);
    write(a[i,j]:2);
    if(i=1)and(j=1) then max:=a[i,j]
    else if a[i,j]>max then max:=a[i,j];
   end;
  writeln;
 end;
writeln('Максимальный элемент=',max);
j:=1;
while j<=n do //проверякм все столбцы
 begin
  k:=0;
  i:=1;
  while (i<=m)and(k=0) do//ищем в них максимаотный
  if a[i,j]=max then k:=1 //если есть,дальше не ищем
  else inc(i);
  if k=1 then //нашли
   begin
    inc(n); //добавляем столбец
    if j=n-1 then //если был последний
    for i:=1 to m do
    a[i,n]:=0 //в новый пишем ноли
    else  //иначе
     begin
      for k:=n downto j+2 do//сдвигаем столбцы срава на 1 вправо
      for i:=1 to m do
      a[i,k]:=a[i,k-1];
      for i:=1 to m do  //в свобоюдный пишем ноли
      a[i,j+1]:=0;
     end;
    inc(j,2)//перешагиваем
   end
  else inc(j);//если нет макс, на 1 вперед
 end;
writeln('Вставка столбцов из 0 за столбцами с максимальными');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:2);
  writeln;
 end;
end.

Объяснение кода листинга программы

  1. Объявление константы nmax со значением 10
  2. Объявление переменных a, m, n, i, j, k, max типа integer
  3. Начало выполнения программы
    • Генерация случайных чисел
    • Повторять пока не будут введены размеры матрицы от 1 до nmax (цикл repeat-until) -- Ввод и сохранение значений m и n
    • Вывод Исходная матрица
    • Заполнение матрицы a случайными числами от 1 до 9 и вывод их на экран
    • Поиск максимального значения в матрице max
    • Вывод Максимальный элемент
    • Установка значения j в 1
    • Проверка всех столбцов в матрице -- Поиск в каждом столбце максимального элемента -- Если найден, добавление нового столбца из нулей после каждого столбца с максимальным элементом -- Сдвиг столбцов справа на 1 вправо
  4. Вывод Вставка столбцов из 0 за столбцами с максимальными
    • Вывод измененной матрицы на экран
  5. Конец выполнения программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы