М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
olgailinsk
olgailinsk
01.05.2020 05:26 •  Информатика

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

👇
Ответ:
Andrey1privet4
Andrey1privet4
01.05.2020
Конечно, на основе функций решение было бы элегантнее, но требовались процедуры...

// 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
Массив содержит введенное значение
4,8(79 оценок)
Открыть все ответы
Ответ:
Аnuk
Аnuk
01.05.2020
Не самый лёгкий, но работающий

const  n = 10000;//Не изменяемая по ходу программы переменная
var  a: array[1..n] of integer;  b: array[1..10]of integer;  c: array[1..10]of integer;  i, s, v: integer;
begin  for i := 1 to 10 do //Заполнение массива с числами от 1 до 10    c[i] := i;  for i := 1 to n do //Заполнение массива    a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей  for i := 1 to n do    case a[i] of      1: b[1] := b[1] + 1;      2: b[2] := b[2] + 1;      3: b[3] := b[3] + 1;      4: b[4] := b[4] + 1;      5: b[5] := b[5] + 1;      6: b[6] := b[6] + 1;      7: b[7] := b[7] + 1;      8: b[8] := b[8] + 1;      9: b[9] := b[9] + 1;      10: b[10] := b[10] + 1;    End;    for i := 1 to 10 do    for s := 1 to 9 do      if b[s] > b[s + 1] then begin        v := b[s];        b[s] := b[s + 1];        b[s + 1] := v;        v := c[s];        c[s] := c[s + 1];        c[s + 1] := v;      end;  writeln(c[10], ' - их ', b[10]);    end.
4,4(82 оценок)
Ответ:
катя3868
катя3868
01.05.2020
РЕФЕРАТ
Много программ это хорошо, но если они развиваться тебе в твоей сфере образования. Но иногда много программ ухудшает работо компьютера, телефона ноутбука и любые другие гаджеты. Иногда это ухудшает разрядность процессора.
Разрядность- максимальное количество бит информации, которые могут обрабатываться и передаваться процессором одновременно.
До недавнего времени все процессоры были 32-битными эта разрядность была достигнута уже 10-ток лет назад. Сейчас процессоры бывают 64-битные, 128-битные и т.д. Что для большей работо компьютера.
4,5(31 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ