Обнулить элементы матрицы, для которых все соседние не меньше его самого - Turbo Pascal
Формулировка задачи:
Здравствуйте! Нужна ваша помощь, без нее никак.
Обнулить элементы матрицы, для которых все соседние не меньше его самого. Желательно, что бы отображалась исходная матрица и отредактированная.
Буду очень признателен!
Решение задачи: «Обнулить элементы матрицы, для которых все соседние не меньше его самого»
textual
Листинг программы
uses crt; var a:array[0..11,0..11] of integer;{матрица} b:array[1..10,1..10] of boolean; {матрица для элементов, которые менять} m,n,mx,i,j,ii,jj,k:integer; begin clrscr; repeat writeln('Введите количество строк и столбцов от 2 до 10'); readln(m,n); until(m in [2..10])and(n in [2..10]); randomize; for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=1+random(10); b[i,j]:=false; {заполняем массив для замены значением false} write(a[i,j]:3); if i*j=1 then mx:=a[i,j]{находим максимум} else if a[i,j]>mx then mx:=a[i,j]; end; writeln; end; for i:=0 to n+1 do {заполняем внешний периметр значениями макс+1} begin a[0,i]:=mx+1; a[m+1,i]:=mx+1; end; for i:=0 to m+1 do begin a[i,0]:=mx+1; a[i,n+1]:=mx+1; end; for i:=1 to m do for j:=1 to n do begin k:=0; {считаем соседей и само число не меньшие его} for ii:=i-1 to i+1 do for jj:=j-1 to j+1 do if a[ii,jj]>=a[i,j]then inc(k); if k=9 then b[i,j]:=true;{если все 9, то меняем флаг в масиве b} end; writeln('Замена по условию'); for i:=1 to m do begin for j:=1 to n do begin if b[i,j] then a[i,j]:=0; write(a[i,j]:3); end; writeln; end; readln end.
Объяснение кода листинга программы
Этот код на Turbo Pascal представляет собой программу для изменения элементов матрицы в соответствии с определенным условием. Вот список действий, которые происходят в коде:
- Пользователю предлагается ввести количество строк и столбцов матрицы (от 2 до 10).
- Матрица
a
инициализируется случайными целыми числами от 1 до 100. - Матрица
b
инициализируется значениямиfalse
. - Находится максимальное значение в матрице
a
. - Внешний периметр матрицы
a
заполняется значениямиmx+1
. - Проверяется каждый элемент матрицы
a
. Если все его соседи больше или равны ему, флажокb[i,j]
устанавливается вtrue
. - Если все соседи больше или равны элементу и значение
b[i,j]
равноtrue
, то этот элемент заменяется на 0. - Выводится матрица
a
с обновленными значениями. - Программа ожидает ввода, чтобы пользователь мог увидеть результаты.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д