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

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

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

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

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

textual
Листинг программы
  1. const nmax=10;
  2. var a:array[1..nmax,1..2*nmax] of integer;
  3.     m,n,i,j,k,max:integer;
  4. begin
  5. randomize;
  6. repeat
  7. writeln('Введите размеры матрицы от 1 до ',nmax);
  8. readln(m,n);
  9. until(m in [1..nmax])and(n in [1..nmax]);
  10. writeln('Исходная матрица');
  11. for i:=1 to m do
  12.  begin
  13.   for j:=1 to n do
  14.    begin
  15.     a[i,j]:=1+random(9);
  16.     write(a[i,j]:2);
  17.     if(i=1)and(j=1) then max:=a[i,j]
  18.     else if a[i,j]>max then max:=a[i,j];
  19.    end;
  20.   writeln;
  21.  end;
  22. writeln('Максимальный элемент=',max);
  23. j:=1;
  24. while j<=n do //проверякм все столбцы
  25.  begin
  26.   k:=0;
  27.   i:=1;
  28.   while (i<=m)and(k=0) do//ищем в них максимаотный
  29.   if a[i,j]=max then k:=1 //если есть,дальше не ищем
  30.   else inc(i);
  31.   if k=1 then //нашли
  32.    begin
  33.     inc(n); //добавляем столбец
  34.     if j=n-1 then //если был последний
  35.     for i:=1 to m do
  36.     a[i,n]:=0 //в новый пишем ноли
  37.     else  //иначе
  38.      begin
  39.       for k:=n downto j+2 do//сдвигаем столбцы срава на 1 вправо
  40.       for i:=1 to m do
  41.       a[i,k]:=a[i,k-1];
  42.       for i:=1 to m do  //в свобоюдный пишем ноли
  43.       a[i,j+1]:=0;
  44.      end;
  45.     inc(j,2)//перешагиваем
  46.    end
  47.   else inc(j);//если нет макс, на 1 вперед
  48.  end;
  49. writeln('Вставка столбцов из 0 за столбцами с максимальными');
  50. for i:=1 to m do
  51.  begin
  52.   for j:=1 to n do
  53.   write(a[i,j]:2);
  54.   writeln;
  55.  end;
  56. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы