Задача Массивы 2
Задача[править]
Написать программу, которая по заданному двумерному массиву B размерности 3x5 строит новый массив с именем V путем удаления из B строки и столбца, которые содержат минимальный элемент.
Решение[править]
Программа[править]
uses crt; const N=3;M=5; {Размер исходного массива} var B: array [1..N,1..M] of integer; V: array [1..(N-1),1..(M-1)] of integer; i,j,minimum,i_min,j_min,ii,jj:integer; begin clrscr; {Вводим массив} writeln('Введите элементы массива'); for i:=1 to N do for j:=1 to M do begin write('B[',i,',',j,']='); readln(B[i,j]); end; {Выводим исходный массив B} clrscr; writeln('Исходный массив B:'); for i:=1 to N do begin for j:=1 to M do write('B[',i,',',j,']=',B[i,j]:3,' '); writeln; end; writeln; {Находим минимальный элемент} minimum:=B[1,1]; i_min:=1; j_min:=1; for i:=1 to N do for j:=1 to M do if (minimum>B[i,j]) then begin minimum:=B[i,j]; i_min:=i; j_min:=j; end; writeln('Минимальный элемент B[',i_min,',',j_min,']=',minimum); writeln; {Копируем массив B в V без столбца и строки которые содержат минимальный} ii:=0; for i:=1 to (N-1) do begin jj:=0; for j:=1 to (M-1) do begin if (i=i_min) then ii:=1; if (j=j_min) then jj:=1; V[i,j]:=B[i+ii,j+jj]; end; end; {Выводим полученный массив V} writeln('Полученный массив V:'); for i:=1 to (N-1) do begin for j:=1 to (M-1) do write('V[',i,',',j,']=',V[i,j]:3,' '); writeln; end; readln; end.
Примеры работы[править]
Пример №1
Введите элементы массива B[1,1]=1 B[1,2]=2 B[1,3]=3 B[1,4]=2 B[1,5]=7 B[2,1]=3 B[2,2]=4 B[2,3]=0 B[2,4]=2 B[2,5]=4 B[3,1]=1 B[3,2]=99 B[3,3]=2 B[3,4]=3 B[3,5]=4 Исходный массив B: B[1,1]= 1 B[1,2]= 2 B[1,3]= 3 B[1,4]= 2 B[1,5]= 7 B[2,1]= 3 B[2,2]= 4 B[2,3]= 0 B[2,4]= 2 B[2,5]= 4 B[3,1]= 1 B[3,2]= 99 B[3,3]= 2 B[3,4]= 3 B[3,5]= 4 Минимальный элемент B[2,3]=0 Полученный массив V: V[1,1]= 1 V[1,2]= 2 V[1,3]= 2 V[1,4]= 7 V[2,1]= 1 V[2,2]= 99 V[2,3]= 3 V[2,4]= 4