Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача по фортрану!

Михаил Марков Ученик (130), на голосовании 1 год назад
Фортран

Назовем элемент матрицы седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы 6х7 вывести на экран дисплея индексы всех ее седловых точек.
Голосование за лучший ответ
Мстислав Черепашкин Профи (753) 1 год назад
const
n = 4;
m = 6;

var
a: array[1..n, 1..m] of integer; // основной массив
Rext: array[1..n, 1..2] of integer; // номера столбцов с min и max в строках
Cext: array[1..2, 1..m] of integer; // номера строк с min и max в столбцах
i, j, amin, amax: integer;

begin
// заполняем массив А случайными числами
Randomize;
writeln('Исходный массив');
for i := 1 to n do
begin
for j := 1 to m do
begin
a[i, j] := random(100) - 50;
write(a[i, j]:4);
end;
writeln;
end;
// Заполняем массив Rext n x 2
for i := 1 to n do
begin
amin := 10000; //заведомо больше a[i,j]
amax := -10000; //заведомо меньше a[i,j]
for j := 1 to m do
begin
if amin > a[i, j] then begin
amin := a[i, j]; Rext[i, 1] := j
end;
if amax < a[i, j] then begin
amax := a[i, j]; Rext[i, 2] := j
end
end;
end;
// Заполняем массив Cext 2 x m
for j := 1 to m do
begin
amin := 10000; //заведомо больше a[i,j]
amax := -10000; //заведомо меньше a[i,j]
for i := 1 to n do
begin
if amin > a[i, j] then begin
amin := a[i, j]; Cext[1, j] := i
end;
if amax < a[i, j] then begin
amax := a[i, j]; Cext[2, j] := i
end
end
end;
writeln;
// Ищем седловые точки
writeln('*** Седловые точки ***');
for i := 1 to n do
begin
j := Rext[i, 1];
if Cext[2, j] = i then
write('[', i, ',', j, '] ')
else begin
j := Rext[i, 2];
if Cext[1, j] = i then
write('[', i, ',', j, '] ')
end
end;
writeln
end.

Тестовое решение:

Исходный массив
35 34 -17 -33 20 -29
-8 -31 -4 -20 8 -1
-39 -7 -12 27 42 9
32 13 -17 37 19 -24

*** Седловые точки ***
[2,5]
Михаил МарковУченик (130) 1 год назад
загуглить каждый может) это паскаль а не фортран...
Михаил Марков, тестовый пример будет?
Михаил МарковУченик (130) 1 год назад
простая матрица 6x7 из единиц и нулей
Михаил Марков, хм. начинают вырисовываться детали. Смотри. тебе подгонят код, как ты определишь, этот код твоей задачи или для какой другой? Пусть ты не знаешь алгоритм, но задать сам матрицу ты должен уметь Иначе какой смысл тебе помогать
Похожие вопросы