Дан массив B(n*m).Элементы массива ввести в программе.Поменять местами максимальный и...

0 голосов
103 просмотров

Дан массив B(n*m).Элементы массива ввести в программе.Поменять местами максимальный и минимальный элемент. Паскаль
двумерный массив
пример присвоения элементов массива в программе :
b: array[1..n, 1..m] of integer=((5,4,8,4,5),(2,3,4,5,2),(5,4,3,4,5),(2,3,4,5,2),(2,3,4,5,2));


Информатика (99 баллов) | 103 просмотров
0

Кривой пример инициализации какой-то. Зачем писать n и m, перед этим задавать их значения, если явно указаны пять строк по 5 элементов в каждой?

0

все по книжке делал

0

Можно еще 6 переделать по этому же формату ?

0

Я не про книжку а о самой идее. Зачем задавать n,m если ясно, что они только 5 и 5, а иначе надо текст программы переделывать в нескольких местах?

0

Можно и 6 переделать, если его также удалить и заново задать. Но еще раз: НЕ НАДО использовать термин "ВВЕСТИ" - он означает использование оператора ввода. Лучше пишите "ЗАДАТЬ"

0

Эта идея написана в книжке :) 

0

А задание давал преподаватель, как написано, так и задаю, никакой самодеятельности 

0

Можно подумать и книжка, и преподаватели такие безгрешные...

0

Автор книги напорол, преподаватель взял из книги...

Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.0, сборка 1128
begin
  var b:array[,] of integer:=((5,8,7,3),(-2,0,6,9),(2,1,12,4));
  Writeln('Массив B: ',b);
  var n:=b.GetLength(0);
  var m:=b.GetLength(1);
  var imax:=0; var jmax:=0;
  var imin:=0; var jmin:=0;
  for var i:=0 to n-1 do
    for var j:=0 to m-1 do
      if b[i,j]>b[imax,jmax] then begin imax:=i; jmax:=j end
      else
        if b[i,j]  Swap(b[imin,jmin],b[imax,jmax]);
  Writeln('Результирующий массив: ',b)
end.

Тестовое решение:
Массив B: [[5,8,7,3],[-2,0,6,9],[2,1,12,4]]
Результирующий массив: [[5,8,7,3],[12,0,6,9],[2,1,-2,4]]

(142k баллов)