Вставить столбец из нулей после каждого из столбцов, содержащих максимальный элемент - 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.
Объяснение кода листинга программы
- Объявление константы
nmax
со значением 10 - Объявление переменных
a
,m
,n
,i
,j
,k
,max
типа integer - Начало выполнения программы
- Генерация случайных чисел
- Повторять пока не будут введены размеры матрицы от 1 до
nmax
(цикл repeat-until) -- Ввод и сохранение значенийm
иn
- Вывод
Исходная матрица
- Заполнение матрицы
a
случайными числами от 1 до 9 и вывод их на экран - Поиск максимального значения в матрице
max
- Вывод
Максимальный элемент
- Установка значения
j
в 1 - Проверка всех столбцов в матрице -- Поиск в каждом столбце максимального элемента -- Если найден, добавление нового столбца из нулей после каждого столбца с максимальным элементом -- Сдвиг столбцов справа на 1 вправо
- Вывод
Вставка столбцов из 0 за столбцами с максимальными
- Вывод измененной матрицы на экран
- Конец выполнения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д