Листинг
программы:
program
matrix_local_max;
type
mas=array
[1..50,1..50] of real;
var
a:mas;
x,y:integer;
procedure
enter_matrix(var x:integer;var y:integer;var a:mas);
var
i,g:integer;
d:char;
begin
writeln('Введите
количество строк');
readln(x);
writeln('Введите
количество столбцов');
readln(y);
for
i:=1 to x do
begin
if
g=y then
writeln;
for
g:=1 to y do
begin
write('a[',i,g,']=
');
readln(a[i,g]);
end;
end;
writeln('Ввод
матрицы в ручном режиме осуществлен');
writeln;
end;
procedure
matrix_output(x:integer;y:integer;a:mas);
var
i,g:integer;
begin
for
i:=1
to
x
do
begin
if
g=y then
writeln;
for
g:=1 to y do
write(a[i,g]:4:0);
end;
writeln;
writeln('Вывод
матрицы произведен...');
writeln;
end;
procedure
matrix_local_change_1(x:integer;y:integer;var b:mas);
var
i,g:integer;
a:mas;
begin
a:=b;
for
i:=2 to x-1 do
for
g:=2 to y-1 do
if
(a[i,g]>=a[i+1,g]) and (a[i,g]>=a[i-1,g])
and
(a[i,g]>=a[i,g+1]) and (a[i,g]>=a[i,g-1])
then
b[i,g]:=1;
writeln('Локальные
максимумы заменены...');
writeln;
end;
begin
enter_matrix(x,y,a);
matrix_output(x,y,a);
matrix_local_change_1(x,y,a);
matrix_output(x,y,a);
writeln('Программа
завершила
свою
работу');
writeln('Нажмите
ENTER для выхода');
readln;
end.
Результаты:
Ввод
матрицы в ручном режиме осуществлен
12
13 56 48
75
64 25 95
35
16 45 25
84
36 35 97
Вывод
матрицы произведен...
Локальные
максимумы заменены...
12
13 56 48
75
64 25 95
35
16
1
25
84
36 35 97
Вывод
матрицы произведен...
Программа
завершила свою работу
Нажмите
ENTER для выхода
|