Найти локальные минимумы в матрице и вывести на экран - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Задание звучит так: Дана целочисленная квадратная матрица. Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов матрицы. Для отладки программы числа последовательности сформировать с помощью генератора случайных чисел. это я сделал
Но препод попросил еще и вывести найденные локальные минимумы...не могу додуматься как это сделать. Пожалуйста помоги уже завтра сдавать

Решение задачи: «Найти локальные минимумы в матрице и вывести на экран»

textual
Листинг программы
const
  n_max=100;
type
  matr=array [1..n_max,1..n_max] of integer;
var
  a:matr;
  j,i,k,n:integer;
 
function LocMin(var i,j:integer;a:Matr):boolean;
begin
  LocMin:=((i=1)or(a[i,j]<a[i-1,j]))and
        ((j=1)or(a[i,j]<a[i,j-1]))and
        ((i=10)or(a[i,j]<a[i+1,j]))and
        ((j=10)or(a[i,j]<a[i,j+1]));
end;
 
begin
  randomize;
  write('razmer matricy',' n=');
  readln(n);
  for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          a[i,j]:=random(20)-5;
          write(a[i,j]:4);
        end;
      writeln;
    end;
  writeln;
  k:=0;
  for i:=1 to n do
    for j:=1 to n do
      if LocMin(i,j,a)then
        begin
          k:=k+1;
          writeln('Локальный минимум: ',a[i,j],', в строке: ',i,', в столбце: ',j);
        end;
  writeln;
  writeln('Kolichestvo lokalnyh minimumov k=',k);
  readln;
end.

Объяснение кода листинга программы

Код написан на языке Turbo Pascal и решает задачу поиска локальных минимумов в матрице. Переменная n_max определяет максимальное значение размера матрицы, которое может быть равно 100. Тип matr представляет собой матрицу целых чисел, размером от 1 до n_max на 1 до n_max. Переменная a содержит значения матрицы. Переменные j и i используются для итерации по строкам и столбцам матрицы соответственно. Переменная k отслеживает количество найденных локальных минимумов. Функция LocMin проверяет условие для нахождения локальных минимумов: если элемент в строке и столбце меньше предыдущего элемента в той же строке или в строке выше, и элемент в столбце и строке ниже меньше текущего элемента в этой строке. Цикл for используется для заполнения матрицы случайными числами от 1 до 20. Внутри второго цикла for проверяется условие LocMin, и если оно выполняется, то элемент считается локальным минимумом, и его индексы записываются в переменную k. После завершения циклов выводится количество найденных локальных минимумов. Код использует функцию randomize для инициализации генератора случайных чисел перед заполнением матрицы случайными числами. После выполнения кода с помощью функции readln считывается ввод пользователя, и программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы