GAECHKA
Твоя помощница в решении задач

Переставить местами максимальный элемент и минимальный элемент первого столбца

Дан двумерный массив. Переставить местами максимальный элемент и минимальный элемент первого столбца
0
вопрос задан

Источник


1 ответ
program Project1;
type
  TArr = array [1..10,1..10] of integer;
 
procedure InfOutMatrix (arr: TArr; narr,marr: integer);
// Процедура для вывода элементов массива на экран.
var
   i,j: integer;
begin
  for i:= 1 to narr do
    begin
    for j:= 1 to marr do
      Write(arr[i,j]:4);
    writeln;
    end;
end;
 
procedure RandomInfInMatrix (var arr: TArr; narr,marr,leftval,rightval: integer);
// Процедура для заполнения двумерного массива случайными числами в заданном диапазоне.
var
   i,j: integer;
begin
for i:= 1 to narr do
    for j:= 1 to marr do
      arr[i,j]:= leftval + random(rightval - leftval + 1) ;
 
end;
 
 
procedure SearchMaxMinElement(arr:TArr; narr: integer; var maxarr,minarr,indmax1,indmin1: integer);
// Процедура для нахождения минимального и максимального элемента в первом столбце матрицы.
var
  i,j: integer;
  min,max: integer;
 
begin
min:= 2147483646;
max:= -2147483646;
  for i:= 1 to narr do
      begin
      if arr[i,1] > max then
         begin
         max:= arr[i,1];
         indmax1:= i;
         end;
      if arr[i,1] then
         begin
         min:= arr[i,1];
         indmin1:= i;
         end;
      end;
  maxarr:= max;
  minarr:= min;
end;
 
var
  a: TArr;  // Переменная для хранения двумерного массива.
  n: integer;  // Переменная для хранения значения количества строк.
  m: integer;    //  Переменная для хранения значения количества столбцов.
  maxelem: integer;   //  Переменная для хранения значения максимального элемента.
  minelem: integer;   //  Переменная для хранения значения минимального элемента.
  indmax: integer;    //  Переменная для хранения значения индекса максимального элемента.
  indmin: integer;    //  Переменная для хранения значения индекса минимального элемента.
  temp: integer;       //  Вспомогательная переменная для организации обмена значениями элементов.
begin
  Randomize;
  Writeln('Введите значение количества строк:');
  Readln(n);
  Writeln('Введите значение количества столбцов:');
  Readln(m);
  RandomInfInMatrix (a,n,m,-100,100);
  Writeln('Исходная матрица:');
  InfOutMatrix(a,n,m);
  SearchMaxMinElement(a,n,maxelem,minelem,indmax,indmin);
  Writeln('Элемент первого столбца массива с максимальным значением ',maxelem,' имеет индекс: ',indmax);
  Writeln('Элемент первого столбца массива с минимальным значением ',minelem,' имеет индекс: ',indmin);
  temp:= a[indmax,1];    // Обмен значениями между максимальным и минимальным элементами первого столбца.
  a[indmax,1]:= a[indmin,1];
  a[indmin,1]:= temp;
  Writeln('Измененная матрица:');
  InfOutMatrix(a,n,m);
  readln;
end.