В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
alexmmv2013
alexmmv2013
03.02.2023 10:27 •  Информатика

Дано массивы a(n1,n1),b(n2,n2),c(n3,n3). найти в каждой строке исходного массива наименьший элемент и переставить его с элементом стоящим на главной диагонали. нахождение в каждой строке массива наименьшего элемента и его перестановку с элементом стоящим на главной диагонали оформить в виде подпрограммы

Показать ответ
Ответ:
liubovbalan
liubovbalan
07.07.2020 23:53
Type
  M = array[,] of integer;

procedure Swap(var a: M; i: integer; j: integer);
//обменивает местами элементы массива a[i,i] и a[i,j]
var
  buff: integer;
begin
  if i <> j then begin
    buff := a[i, i]; a[i, i] := a[i, j]; a[i, j] := buff
  end
end;

function GetColMin(a: M; i: integer): integer;
// возвращает номер столбца, в котором найден минимальный элемент
// по строке с номером i, т.е. a[i,?]=min
var
  j, vmin, jm: integer;
begin
  vmin := 32766;
  for j := 0 to Length(a, 1) - 1 do
    if vmin > a[i, j] then begin
      vmin := a[i, j]; jm := j
    end;
  Result := jm
end;

procedure SwapMatrix(var a: M);
// меняет местами в массиве a[n,n] минимальный по строке элемент с
// элементом, лежащим на главной диагонали.
// Обращается к функции GetColMin и процедуре Swap
var
  i: integer;
begin
  for i := 0 to Length(a, 0) - 1 do Swap(a, i, GetColMin(a, i))
end;

procedure WriteMas(a: M; title: string);
// выводит заголовок, а потом массив построчно
var
  i, j, n: integer;
begin
  n := Length(a, 0) - 1;
  writeln(title);
  for i := 0 to n do
  begin
    for j := 0 to n do write(a[i, j]:5);
    writeln
  end
end;

procedure CreateMas(var a: M; n: integer; p: integer; q: integer);
// Создает массив a[0..n-1,0..n-1] и заполняет его
// данными используя датчик случайных чисел с мощностью "р"
// и минимальным значением q
var
  i, j: integer;
begin
  Randomize;
  SetLength(a, n, n);
  for i := 0 to n - 1 do
    for j := 0 to n - 1 do
      a[i, j] := random(p) + q
end;

const
  n1 = 3;
  n2 = 5;
  n3 = 8;

var
  a, b, c: M;

begin
  CreateMas(a, n1, 100, -50);
  WriteMas(a, 'Исходный массив а');
  SwapMatrix(a);
  WriteMas(a, 'Результирующий массив а');
  CreateMas(b, n2, 300, -150);
  WriteMas(b, 'Исходный массив b');
  SwapMatrix(b);
  WriteMas(b, 'Результирующий массив b');
  CreateMas(c, n3, 500, -250);
  WriteMas(c, 'Исходный массив c');
  SwapMatrix(c);
  WriteMas(c, 'Результирующий массив c');
end.

Тестовый прогон:

Исходный массив а
   14   23    7
  -50   31   36
  -39  -43  -38
Результирующий массив а
    7   23   14
   31  -50   36
  -39  -38  -43
Исходный массив b
  -91    6  -21 -139 -141
  130  -99   44  131  143
   93    5   97 -111   43
 -113   15  125   88   31
 -115  -39   27  124  144
Результирующий массив b
 -141    6  -21 -139  -91
  130  -99   44  131  143
   93    5 -111   97   43
   88   15  125 -113   31
  144  -39   27  124 -115
Исходный массив c
 -234  211  207 -131  151 -228  197 -163
  147    5  180 -135 -181  217 -178   -3
  178 -142 -149  -44 -195 -224 -187 -173
  -24   62   28 -134  -11 -216  -59   83
   62  -86   48  152  -44  -49 -218   92
   91  -60  201  206 -160 -135 -131   77
  161 -184 -204  113 -181  199  223  240
  147  129  143 -162   -6   80   98  113
Результирующий массив c
 -234  211  207 -131  151 -228  197 -163
  147 -181  180 -135    5  217 -178   -3
  178 -142 -224  -44 -195 -149 -187 -173
  -24   62   28 -216  -11 -134  -59   83
   62  -86   48  152 -218  -49  -44   92
   91  -60  201  206 -135 -160 -131   77
  161 -184  223  113 -181  199 -204  240
  147  129  143  113   -6   80   98 -162
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота