profile
Размещено 4 года назад по предмету Информатика от иришка2091995

дано массивы A(N1,N1),B(N2,N2),C(N3,N3). найти в каждой строке исходного массива наименьший элемент и переставить его с элементом стоящим на главной диагонали. нахождение в каждой строке массива наименьшего элемента и его перестановку с элементом стоящим на главной диагонали оформить в виде подпрограммы

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    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


Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.