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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2010, 22:32   #1
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Сообщение более элегантный алгоритм

Подскажите более элегантный код к заданию(я написал "обычный",но вот думаю может можно попроще написать).
Задание:
Для матрицы размером NxM вывести на экран все ее седловые точки.
Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце, или наоборот.
ts-alan вне форума Ответить с цитированием
Старый 02.08.2010, 22:37   #2
arcer
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 42
По умолчанию

Цитата:
Сообщение от ts-alan Посмотреть сообщение
Подскажите более элегантный код к заданию(я написал "обычный",но вот думаю может можно попроще написать).
Задание:
Для матрицы размером NxM вывести на экран все ее седловые точки.
Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце, или наоборот.
Сложно предложить альтернативный код, не ознакомившись с "обычным". И что по-вашему "обычный"? А Вам нужен лучший код или алгоритм?

Последний раз редактировалось arcer; 02.08.2010 в 22:47.
arcer вне форума Ответить с цитированием
Старый 04.08.2010, 00:11   #3
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

вот "обычный" код, нужен лучший алгоритм, и пожалуста высказывания по ошибкам моего оформления буду оч. рад принять(я только пока учусь) :

int i,j,j1,k,item;
bool temp,goog;
for(j=0;j<K;j++){
for(i=0;i<N;i++){
a[i][j]=StrToFloat(StringGrid1->Cells[i+1][j+1]);
}
}
for (j=0;j<K;j++){
item=a[0][j];
temp=true;
goog=false;
k=0;
for(i=1;i<N;i++){
if(a[i][j]>item){
item=a[i][j];
k=i;
}
}
for(j1=0;j1<K;j1++){
if(a[k][j1]<item){
temp=false;
}
}
if (temp==true){
Memo1->Lines->Add(IntToStr(a[k][j]));
}
}
ts-alan вне форума Ответить с цитированием
Старый 04.08.2010, 00:15   #4
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

ну и следовательно если "наборот" следовательно нужно повторить алгоритм и изменить некоторые знаки-если в строке слабый элемент,а в столбе большой.
И вопрос "лучший" код это значит оформление? Подскажите пожалуста.
ts-alan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Более действенный алгоритм. MAKEDON Помощь студентам 0 21.01.2010 13:36
Какое программирование в наше время более востребовано и более рентабельно? iukash Свободное общение 18 29.10.2009 13:02
ипользование 2 и более БД(Access) GhostBZ БД в Delphi 7 31.08.2009 12:36
Более 4 миллиардов MAKTE Общие вопросы C/C++ 2 16.05.2008 20:11
массивы более 64 кб Alar Паскаль, Turbo Pascal, PascalABC.NET 1 30.10.2006 14:25