Найти в массиве кроме минимальных значений еще и максимальные - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите, нужно найти кроме минимальных значений еще и максимальные (его адрес в массиве, и потом среди максимальных найти наибольшее значение).
Листинг программы
  1. const
  2. Nmax=100;
  3. type
  4. massiv=array [1..Nmax] of integer; {столбец}
  5. matrix=array [1..Nmax] of massiv; {массив столбцов}
  6. var
  7. str,stlb,i,j,min,min1,k:integer;
  8. AB:matrix;
  9. procedure PrMin(n,p:integer; m:massiv; var min,k:integer);
  10. var
  11. i:integer;
  12. begin
  13. min:=m[1];
  14. k:=1;
  15. for i:=1 to n do
  16. if min>m[i] then
  17. begin
  18. min:=m[i];
  19. k:=i;
  20. end;
  21. writeln('Минимальный элемент столбца ', p, ': ', min, ', его порядковый номер: ', k);
  22. end;
  23. begin
  24. randomize;
  25. write('Введите число строк матрицы: ');
  26. readln(str);
  27. write('Введите число столбцов матрицы: ');
  28. readln(stlb);
  29. writeln('Матрица: ');
  30. for j:=1 to stlb do
  31. for i:=1 to str do
  32. AB[j][i]:=random(100); {заполняем столбцы матрицы}
  33. for i:=1 to str do
  34. begin
  35. for j:=1 to stlb do {выводим матрицу по строкам}
  36. write(AB[j][i]:5);
  37. writeln;
  38. end;
  39. min1:=101;
  40. for i:=1 to stlb do
  41. begin
  42. PrMin (str,i,AB[i],min,k);
  43. if min<min1 then
  44. min1:=min;
  45. end;
  46. writeln;
  47. write('Из них минимальный=',min1);
  48. end.

Решение задачи: «Найти в массиве кроме минимальных значений еще и максимальные»

textual
Листинг программы
  1. const nm=100; W=3;
  2. type TMatrix = array [1..nm,1..nm] of Integer;
  3. procedure MinMax(const a: TMatrix; m, n: Integer);
  4. var mn, mx: array [1..nm] of Integer; i, j: Integer;
  5. begin
  6.   for j:=1 to n do begin mn[j]:=1; mx[j]:=1; end;
  7.   for j:=1 to n do for i:=1 to m do begin
  8.     if a[mn[j],j]>a[i,j] then mn[j]:=i;
  9.     if a[mx[j],j]<a[i,j] then mx[j]:=i;
  10.   end;
  11.   WriteLn('Min/pos:');
  12.   for j:=1 to n do Write(' ',a[mn[j],j]:W); WriteLn;
  13.   for j:=1 to n do Write(' ',mn[j]:W); WriteLn;
  14.   WriteLn('Max/pos:');
  15.   for j:=1 to n do Write(' ',a[mx[j],j]:W); WriteLn;
  16.   for j:=1 to n do Write(' ',mx[j]:W); WriteLn;
  17. end;
  18. var
  19.   a: TMatrix;
  20.   m, n, i, j: Integer;
  21. begin
  22.   Randomize;
  23.   repeat
  24.     Write('m, n [2..',nm,']: '); ReadLn(m,n);
  25.   until (m in [2..nm]) and (n in [2..nm]);
  26.   for i:=1 to m do for j:=1 to n do a[i,j]:=Random(100);
  27.   for i:=1 to m do begin for j:=1 to n do Write(' ',a[i,j]:W); WriteLn; end;
  28.   MinMax(a,m,n);
  29. end.

Объяснение кода листинга программы

  1. В начале кода объявляются переменные nm и W, которые представляют собой количество строк и столбцов в массиве соответственно.
  2. Затем определяется тип данных TMatrix, который представляет собой массив целых чисел.
  3. Далее объявляется процедура MinMax, которая принимает в качестве параметров массив a, его размерность m и n.
  4. Внутри процедуры инициализируются два массива mn и mx, которые будут использоваться для поиска минимального и максимального значения в массиве a.
  5. Затем происходит цикл, в котором происходит сравнение значений элементов массива a и перестановка их в случае необходимости. Это позволяет найти минимальное и максимальное значение в каждой строке.
  6. После завершения цикла выводятся на экран минимальное и максимальное значение в каждой строке, а также сами значения mn и mx.
  7. В конце кода считываются значения m и n с помощью функции Randomize, чтобы обеспечить разнообразие входных данных.
  8. Затем происходит итерация по массиву a, в которой генерируются случайные значения для каждого элемента.
  9. После этого вызывается процедура MinMax с массивом a, размером m и n.
  10. Код завершается после вывода на экран минимального и максимального значения в каждой строке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы