Удалить из массива строку и столбец, на пересечении которых находится минимальный элемент - Pascal ABC
Формулировка задачи:
Помогите исправить ошибку . Задание :Сформировать двумерный массив. Удалить из него строку и столбец, на пересечении
которых находится минимальный элемент.
Решение задачи: «Удалить из массива строку и столбец, на пересечении которых находится минимальный элемент»
textual
Листинг программы
type mtr=array[,]of integer;
procedure delete (var a:mtr; var n,l,imin,jmin: byte);
begin
if imin<n-1 then
for var i:=imin to n-2 do
for var j:=0 to l-1 do
a[i,j]:=a[i+1,j];
dec(n);
if jmin<l-1 then
for var j:=jmin to l-2 do
for var i:=0 to n-1 do
a[i,j]:=a[i,j+1];
dec(l);
end;
var a:mtr;
n,l,i,j,imin,jmin:byte;
begin
write('n,l='); readln(n,l);
Setlength(a,n,l);
imin:=0;
jmin:=0;
for i:=0 to n-1 do
begin
for j:=0 to l-1 do
begin
a[i,j]:=-50+random(101);
write(a[i,j]:4);
if a[i,j]<a[imin,jmin] then
begin
imin:=i;
jmin:=j;
end;
end;
writeln;
end;
writeln;
writeln('мин эл=',a[imin,jmin],' строка=',imin+1,' столбец=',jmin+1);
delete(a,n,l,imin,jmin);
writeln;
setlength(a,n,l);
for i:=0 to n-1 do
begin
for j:=0 to l-1 do
write(a[i,j]:4);
writeln;
end;
end.
Объяснение кода листинга программы
- Создается тип данных
mtr, который представляет собой двумерный массив целых чисел. - Создается процедура
delete, которая принимает в качестве параметров массивa, индексы начала и конца пересечения, а также минимальный элемент. - В начале процедуры проверяется, находится ли минимальный элемент вне пересечения. Если это так, то он перемещается внутрь пересечения.
- Затем происходит итерация по массиву
aдля обновления элементов. Если текущий элемент меньше минимального, то он заменяется на следующий элемент. Это продолжается до тех пор, пока не будет достигнут конец пересечения. - После завершения итерации обновленные элементы сохраняются в новом массиве.
- Создается переменная
aтипаmtr. - Читаются значения
n,lиз стандартного ввода. - Создается новый массив
aс длинойnиl. - Заполняется массив
aслучайными числами. - Находится минимальный элемент в массиве
a. - Обновляется значение минимального элемента в переменной
imin. - Обновляется значение минимального элемента в переменной
jmin. - Выводится на экран информация о минимальном элементе и его положении.
- Вызывается процедура
deleteс параметрамиa,n,l,iminиjmin. - Выводится на экран обновленный массив
a.