program PascalGuru;
var
A: array [1 .. 50, 1 .. 50] of integer; { переменная массива }
MIN: array [1 .. 50] of integer;
{ переменная МАССИВА минимальных элементов в i-ой строке }
MAX: array [1 .. 50] of integer;
{ переменная МАССИВА максимальных элементов в j-ом столбце }
i, j, n, kol: integer; { переменные для циклов }
b: boolean; { логическая переменная }
begin
write('Vvedite razmer matricy A: ');
readln(n); { ввод размера матрицы }
for i := 1 to n do
for j := 1 to n do
begin
write('A[', i, ',', j, ']=');
readln(A[i, j]);
end; { ввод элементов матрицы }
write('Vot vvedennai vami matrica A: ');
for i := 1 to n do
begin
writeln;
for j := 1 to n do
write(A[i, j]:8);
end; { вывод элементов матрицы на экран }
writeln;
writeln;
{ ***1: }
for i := 1 to n do { цикл пробегает по строке }
begin
b := false;
for j := 1 to n do
if A[i, j] = 0 then
b := true; { смотрим - есть ли нули в текущ. строке }
kol := 0; { обнуляем переменную кол-ва }
if b then { если есть нули в текущ. строке }
begin
for j := 1 to n do
if A[i, j] < 0 then
inc(kol); { тогда находим кол-во отриц. эл-ов в текущ. строке }
writeln('Kol-vo v ', i, ' stroke: ', kol);
{ выводим кол-во отриц. эл-ов на экран }
end;
end;
writeln;
{ ***2: }
for i := 1 to n do { начало поиска минимальных элементов в i-ой строке }
begin
MIN[i] := A[i, 1];
for j := 2 to n do
if A[i, j] < MIN[i] then
MIN[i] := A[i, j];
end; { ---конец поиска минимальных элементов в i-ой строке }
for j := 1 to n do { начало поиска максимальных элементов в j-ом столбце }
begin
MAX[j] := A[1, j];
for i := 2 to n do
if A[i, j] > MAX[j] then
MAX[j] := A[i, j];
end; { ---конец поиска максимальных элементов в j-ом столбце }
for i := 1 to n do { проходим по матрице }
for j := 1 to n do
if MIN[i] = MAX[j] then { находим адреса седловых точек }
writeln('Sedlovoe cislo: "', MIN[i], '" s adresom: [', i, ',', j, ']');
{ выводим их на экран }
readln;
end.