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

Ответы 3

  • Да и вместо процедур можно было бы сделать нормальные функции в виде расширений, что урезало бы объем текста раза в полтора.
  • Они нужны, если писать на Турбо или Фри Паскале.
    • Автор:

      olive42
    • 5 лет назад
    • 0
  • Конечно, на основе функций решение было бы элегантнее, но требовались процедуры...// PascalABC.NET 3.2, сборка 1417 от 28.03.2017// Внимание! Если программа не работает, обновите версию!procedure GetMax(a:array[,] of integer; var mr,mc:array of integer);// максимумы по строкам mr и столбцам mcbegin  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Массив содержит введенное значение
    • Автор:

      cali87
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years