Вставить столбец из нулей после каждого из столбцов, содержащих максимальный элемент - 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 за столбцами с максимальными
- Вывод измененной матрицы на экран
- Конец выполнения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д