Показать сообщение отдельно
Старый 26.12.2018, 21:37   #1 (permalink)
Denleonyr
Новичок
 
Регистрация: 26.12.2018
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Проблема с функциями в Паскале

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

type
TVect = Array[1..100, 1..100] Of Integer;


var
n, m, i, j: integer;
a: tvect;

function sedl(a: TVect): integer;
var
b: array[1..100, 1..2] of integer;
c: array[1..100, 1..2] of integer;
d: Array[1..100] Of Integer;

i, j, k, min, max, n, m: integer;

begin
for i := 1 to n do
begin
b[i, 1] := A[i, 1];
b[i, 2] := 1;
for j := 2 to m do
if A[i, j] < b[i, 1] then begin
b[i, 1] := A[i, j];
b[i, 2] := j;
end;
end;
for j := 1 to m do
begin
c[j, 1] := a[1, j];
c[j, 2] := 1;
for i := 2 to n do
begin
if a[i, j] > c[j, 1] then begin
c[j, 1] := a[i, j];
c[j, 2] := i;
end;
end;
end;
for i := 1 to n do
begin
if (b[i, 1] = c[i, 1]) and (b[i, 2] = c[i, 2]) then begin
j := j + 1;
d[j] := b[i, 1];
end;
end;
sedl := d[1];
end;

begin
randomize;
writeln('Введите размерность массива NxM');
readln(n, m);
for i := 1 to n do for j := 1 to m do a[i, j] := random(10) + 1;
writeln('Ваш массив:');
for i := 1 to n do
begin
for j := 1 to m do write(A[i, j]: 3);
writeln;
end;
write(sedl(a));
end.
Первый вопрос на форме, извините пожалуйста, если нарушил какие-то правила.
Denleonyr вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070