Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2009, 14:35   #1
тиGра
Новичок
Джуниор
 
Регистрация: 16.09.2009
Сообщений: 2
Вопрос Задача с двумерным массивом (Pascal)

Доброго времени суток, помогите пожалуйста решить задачу.

Даны числа M и N и двумерный массив размером M*N некоторый элемент этого массива назовем Седловой точкой если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Напечатать индексы седловых точке если седловые точек нет напечатать 0.
тиGра вне форума Ответить с цитированием
Старый 16.09.2009, 15:04   #2
GenniY
Форумчанин
 
Регистрация: 09.09.2009
Сообщений: 181
По умолчанию

Поищи на форуме про двумерные массивы. Похожая задача уже была.
Получил помощь — отблагодарил.
GenniY вне форума Ответить с цитированием
Старый 16.09.2009, 15:14   #3
тиGра
Новичок
Джуниор
 
Регистрация: 16.09.2009
Сообщений: 2
По умолчанию

Да есть задача про седловую точку, но в ней другое условие
тиGра вне форума Ответить с цитированием
Старый 16.09.2009, 15:23   #4
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Ну так в чем проблемма?
Будет выглядеть как-то так:
Код:
function MaxCol(i:integer):integer;
var j,max:integer;
begin
 max:=array[0,i];
 for j:=1 to N-1 do 
  if array[j,i] > max then max:=array[j,i];   
MaxCol:=max;
end;

function MinRow(i:integer):integer;
var j,min:integer;
begin
 min:=array[i,0];
 for j:=1 to M-1 do 
  if array[i,j] < min then min:=array[i,j];   
MinRow:=min;
end;

for i:=0 to m-1 do
 for j:=0 to n-1 do
  begin
   if (array[i,j] = MaxCol(j)) and (array[i,j] = MinRow(i)) then Writeln(array[i,j])
  end;
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 16.09.2009, 15:25   #5
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Код:
//mas - двумерный массив из условия задачи
//m1, m2 - одномерный вспомогательный массив
//ind - одномерный вспомогательный массив индексов
for i := 1 to M do
begin
  m1[i] := mas[i,1];
  indX[i] := 1;
  for j := 2 to N do
  begin
    if m1[i] > mas[i,j] then
    begin
      m1[i] := mas[i,j];
      indX[i] := j;
    end;
  end
end
//не не , я подумал так, что нужно найти мин. седловую точку, а если все то вот так еще дописать нужно:
for i := 1 to N do
begin
  m2[i] := mas[1,i];
  indY[i] := 1;
  for j := 2 to N do
  begin
    if m2[i] > mas[j,i] then
    begin
      m2[i] := mas[j,i];
      indY[i] := j;
    end;
  end
end

for i := 1 to M do
begin
  if m1[i] = m2[indX[i]] then
    writeln(i,indX[i],m[i]);
end;
//здесь i,indX[i] - есть координаты седловой точки, m[i] - значение

Последний раз редактировалось mMAg; 16.09.2009 в 15:49.
mMAg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на работу с двумерным массивом.Найти количество прямоугольников. anta Общие вопросы C/C++ 6 05.01.2009 15:23
Задача с двумерным массивом. svobodys Паскаль, Turbo Pascal, PascalABC.NET 0 14.12.2008 18:09
Задача в Delphi с двумерным массивом SirLionheART Помощь студентам 2 14.12.2008 13:11
Задача с двумерным массивом. svobodys Помощь студентам 3 13.12.2008 15:44
задача с двумерным массивом Ras Помощь студентам 1 22.12.2007 19:58