Решаем задачи Абрамян на Паскале. Matrix74

Matrix74. Дана матрица размера $$M \times N$$. Элемент матрицы называется ее локальным минимумом, если он меньше всех окружающих его элементов. Заменить все локальные минимумы данной матрицы на нули. При решении допускается использовать вспомогательную матрицу.

Решение:

Другие задачи из раздела Matrix можно посмотреть здесь.

Комментарии:

Комментарии 4

    • не учитываются числа по диагоналям

      • вот такая функция должна быть если в один иф все условия запихать:
        function locmin (a:matrix; i,j:integer): boolean;
        begin
        locmin:= false;
        if ((i=1) or (a[i,j]<a[i-1,j])) and
        ((j=1) or(a[i,j]<a[i,j-1])) and
        ((i=m) or (a[i,j]<a[i+1,j])) and
        ((j=n) or(a[i,j]<a[i,j+1])) and
        ((j=n) or (i=m) or (a[i,j]<a[i+1,j+1])) and
        ((j=1) or (i=m) or (a[i,j]<a[i+1,j-1])) and
        ((j=n) or (i=1) or (a[i,j]<a[i-1,j+1])) and
        ((j=1) or (i=1) or (a[i,j]<a[i-1,j-1]))
        then locmin:=true;
        end;

  • Работает, но с условием, что элементы матрицы не отрицательные. Поэтому сразу на нули менять нельзя. Или менять на число меньшее минимального элемента, а потом вторым проходом менять на нули, или использовать вспомогательную матрицу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *