Найти в массиве кроме минимальных значений еще и максимальные - Turbo Pascal
Формулировка задачи:
Помогите, нужно найти кроме минимальных значений еще и максимальные (его адрес в массиве, и потом среди максимальных найти наибольшее значение).
Решение задачи: «Найти в массиве кроме минимальных значений еще и максимальные»
textual
Листинг программы
const nm=100; W=3;
type TMatrix = array [1..nm,1..nm] of Integer;
procedure MinMax(const a: TMatrix; m, n: Integer);
var mn, mx: array [1..nm] of Integer; i, j: Integer;
begin
for j:=1 to n do begin mn[j]:=1; mx[j]:=1; end;
for j:=1 to n do for i:=1 to m do begin
if a[mn[j],j]>a[i,j] then mn[j]:=i;
if a[mx[j],j]<a[i,j] then mx[j]:=i;
end;
WriteLn('Min/pos:');
for j:=1 to n do Write(' ',a[mn[j],j]:W); WriteLn;
for j:=1 to n do Write(' ',mn[j]:W); WriteLn;
WriteLn('Max/pos:');
for j:=1 to n do Write(' ',a[mx[j],j]:W); WriteLn;
for j:=1 to n do Write(' ',mx[j]:W); WriteLn;
end;
var
a: TMatrix;
m, n, i, j: Integer;
begin
Randomize;
repeat
Write('m, n [2..',nm,']: '); ReadLn(m,n);
until (m in [2..nm]) and (n in [2..nm]);
for i:=1 to m do for j:=1 to n do a[i,j]:=Random(100);
for i:=1 to m do begin for j:=1 to n do Write(' ',a[i,j]:W); WriteLn; end;
MinMax(a,m,n);
end.
Объяснение кода листинга программы
- В начале кода объявляются переменные nm и W, которые представляют собой количество строк и столбцов в массиве соответственно.
- Затем определяется тип данных TMatrix, который представляет собой массив целых чисел.
- Далее объявляется процедура MinMax, которая принимает в качестве параметров массив a, его размерность m и n.
- Внутри процедуры инициализируются два массива mn и mx, которые будут использоваться для поиска минимального и максимального значения в массиве a.
- Затем происходит цикл, в котором происходит сравнение значений элементов массива a и перестановка их в случае необходимости. Это позволяет найти минимальное и максимальное значение в каждой строке.
- После завершения цикла выводятся на экран минимальное и максимальное значение в каждой строке, а также сами значения mn и mx.
- В конце кода считываются значения m и n с помощью функции Randomize, чтобы обеспечить разнообразие входных данных.
- Затем происходит итерация по массиву a, в которой генерируются случайные значения для каждого элемента.
- После этого вызывается процедура MinMax с массивом a, размером m и n.
- Код завершается после вывода на экран минимального и максимального значения в каждой строке.