PASCAL. Помогите, пожалуйста. Информатика 10 класс Матрица A состоит из 8 строк и 10...

0 голосов
39 просмотров

PASCAL. Помогите, пожалуйста. Информатика 10 класс
Матрица A состоит из 8 строк и 10 столбцов. Найти минимальный
элемент и удалить строку и столбец, на пересечении которых он находится.


Информатика (683 баллов) | 39 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Еще вариант решения. Работает на первом минимальном элементе.

var
  a: array[1..8, 1..10] of integer;
  min, i, j, im, jm: integer;
begin
  min := MaxInt;
  //Заполнение матрийцы, вывод и поиск минимального
  for i := 1 to 8 do
  begin
    for j := 1 to 10 do
    begin
      a[i, j] := random(21) - 10;
      if a[i, j] < min then begin
        min := a[i, j];im := i;jm := j; //в im и jm индексы минимального
      end;
      write(a[i, j]:4);
    end;
    writeln;
  end;
  writeln('Первое минимальное a[', im, ',', jm, '] = ', min:3);
  //Удаление строки и столбца
  for i := im to 7 do
    for j := 1 to 10 do a[i, j] := a[i + 1, j];
  for i := 1 to 7 do
    for j := jm to 9 do a[i, j] := a[i, j + 1];
   
  //Вывод матрицы
  for i := 1 to 7 do
  begin
    for j := 1 to 9 do write(a[i, j]:4);
    writeln;
  end; 
end.

Тестовое решение:

   3   3   9   7   0   6  -6  -3  -9  10
   7   8  -3  -4  -9   0   9  -5  -3   8
   3   2  -7   1   6  -6  -8  10  -7   1
   2   0  -9   2   1  -2   7   1   7   5
  -6  -1  -7  -6  -7   7 -10   6   9  -6
  -3  -7   9   9   3 -10  -1  -3 -10  -4
   4  -6  -7   0  -3  -4   7   5   6   3
   4  -2  -1   3   4  -7  -1   9  -2   9

Первое минимальное a[5,7] = -10

   3   3   9   7   0   6  -3  -9  10
   7   8  -3  -4  -9   0  -5  -3   8
   3   2  -7   1   6  -6  10  -7   1
   2   0  -9   2   1  -2   1   7   5
  -3  -7   9   9   3 -10  -3 -10  -4
   4  -6  -7   0  -3  -4   5   6   3
   4  -2  -1   3   4  -7   9  -2   9



(13.9k баллов)
0

Спасибо!

0

Для чего присваивать min:=maxlnt?

0

А мы не имея готовой матрицы не можем сказать какой элемент минимальный. Поэтому используем системную константу МахInt в которой максимальное значение целого числа. Далее при заполнении матрицы переменная min меняться, в зависимости от того, какое число получим в строке a[i, j] := random(21) - 10;

0

Так как заполняем матрицу сл. числами в дипазоне от -10 до 10, то можно вместо min := MaxInt; записать min := 10;

0 голосов

Вот ответ - все решение написано в скриншотах


image
image
image
(200 баллов)
0

Что такое matrixout?

0

Это процедура вывода матрицы на экран, чтобы 2 раза её не писать