Найти в массиве кроме минимальных значений еще и максимальные - Turbo Pascal
Формулировка задачи:
Помогите, нужно найти кроме минимальных значений еще и максимальные (его адрес в массиве, и потом среди максимальных найти наибольшее значение).
Листинг программы
- const
- Nmax=100;
- type
- massiv=array [1..Nmax] of integer; {столбец}
- matrix=array [1..Nmax] of massiv; {массив столбцов}
- var
- str,stlb,i,j,min,min1,k:integer;
- AB:matrix;
- procedure PrMin(n,p:integer; m:massiv; var min,k:integer);
- var
- i:integer;
- begin
- min:=m[1];
- k:=1;
- for i:=1 to n do
- if min>m[i] then
- begin
- min:=m[i];
- k:=i;
- end;
- writeln('Минимальный элемент столбца ', p, ': ', min, ', его порядковый номер: ', k);
- end;
- begin
- randomize;
- write('Введите число строк матрицы: ');
- readln(str);
- write('Введите число столбцов матрицы: ');
- readln(stlb);
- writeln('Матрица: ');
- for j:=1 to stlb do
- for i:=1 to str do
- AB[j][i]:=random(100); {заполняем столбцы матрицы}
- for i:=1 to str do
- begin
- for j:=1 to stlb do {выводим матрицу по строкам}
- write(AB[j][i]:5);
- writeln;
- end;
- min1:=101;
- for i:=1 to stlb do
- begin
- PrMin (str,i,AB[i],min,k);
- if min<min1 then
- min1:=min;
- end;
- writeln;
- write('Из них минимальный=',min1);
- end.
Решение задачи: «Найти в массиве кроме минимальных значений еще и максимальные»
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.
- Код завершается после вывода на экран минимального и максимального значения в каждой строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д