Составить три процедуры для двумерных массивов 2)поиск макс. элемента (выводим в два одномерных массива максимальные значения по строкам и столбцам) 3)сортировка(как душе угодно) 4)поиск по условию (есть определенное значение или нет)

Вопрос школьника по предмету Информатика

Составить три процедуры для двумерных массивов
2)поиск макс. элемента (выводим в два одномерных массива максимальные значения по строкам и столбцам)
3)сортировка(как душе угодно)
4)поиск по условию (есть определенное значение или нет)

Ответ учителя по предмету Информатика

Конечно, на основе функций решение было бы элегантнее, но требовались процедуры…

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017

// Внимание! Если программа не работает, обновите версию!

procedure GetMax(a:array[,] of integer; var mr,mc:array of integer);

// максимумы по строкам mr и столбцам mc

begin

  mr:=a.Rows.Select(r->r.Max).ToArray;

  mc:=a.Cols.Select(c->c.Max).ToArray;

end;

procedure MatrSort(a:array[,] of integer);

// сортировка срок по первой колонке

begin

  for var i:=0 to a.RowCount-2 do

    for var k:=0 to a.RowCount-2-i do

      if a[k,0]>a[k+1,0] then a.SwapRows(k,k+1);

end;

procedure IsCont(n:integer; a:array [,] of integer; var res:boolean);

// есть ли элемент n в массиве a?

begin

  res:=a.ElementsByRow.Contains(n)

end;

begin

  var n:=ReadInteger(‘Количество строк в массиве:’);

  var m:=ReadInteger(‘Количество столбцов в массиве:’);

  Writeln(‘*** Исходный массив [‘,n,’,’,m,’] ***’);

  var a:=MatrRandom(n,m,-99,99);

  a.Println(4); Writeln(4*a.ColCount*’-‘);

  var vr:=new integer[n];

  var vc:=new integer[m];

  GetMax(a,vr,vc);

  Write(‘Вектор максимумов по строкам: ‘); vr.Println;

  Write(‘Вектор максимумов по столбцам: ‘); vc.Println;

  MatrSort(a);

  Writeln(‘*** отсортированный массив ***’);

  a.Println(4); Writeln(4*a.ColCount*’-‘);

  var k:=ReadInteger(‘Введите значение элемента для поиска:’);

  var q:boolean;

  IsCont(k,a,q);

  if q then Writeln(‘Массив содержит введенное значение’)

  else Writeln(‘Массив не содержит введенного значения’)

end.

Пример

Количество строк в массиве: 4

Количество столбцов в массиве: 7

*** Исходный массив [4,7] ***

 -96  63   6 -96 -21 -61 -54

  31 -20  63 -48  70  13  48

  72 -27 -68 -52  32  15 -58

 -71 -86  45  49  40 -64  -2

—————————-

Вектор максимумов по строкам: 63 70 72 49

Вектор максимумов по столбцам: 72 63 63 49 70 15 48

*** отсортированный массив ***

 -96  63   6 -96 -21 -61 -54

 -71 -86  45  49  40 -64  -2

  31 -20  63 -48  70  13  48

  72 -27 -68 -52  32  15 -58

—————————-

Введите значение элемента для поиска: 70

Массив содержит введенное значение

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей