| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Pascal] Количество локальных максимумов |
| Автор: golden 12.11.2006, 20:13 |
| Задача: Дан массив [8,8].Найти количество локальных максимумов массива. Требуется самое простое решение задачи. Заранее благодарю. Golden |
| Автор: powerfox 12.11.2006, 20:38 |
| А что такое локальный максимум? |
| Автор: volvo877 12.11.2006, 21:08 |
| Локальный максимум матрицы - элемент, который больше всех своих соседей... |
| Автор: powerfox 12.11.2006, 22:34 |
| А соседи - числа и по строкам и по столбцам? И по диагонале? 93445 23232 23232 А11 - максимум? Так как рядом 3-3-2? |
| Автор: golden 13.11.2006, 07:31 |
| Вы мне программу скиньте пожалуйсто! |
| Автор: powerfox 13.11.2006, 13:53 |
| golden, а ты объясни чего надо, я и скину. Тут писанины на 2 минуты. Выходит, что надо сравнивать Аnn с А(n+-1)n и c Аn(n+-1)? |
| Автор: Alexeis 13.11.2006, 14:40 |
Ну поскольку это матрица, то соседей либо 8 либо 4 (в зависимости от того как смотреть) |
| Автор: golden 13.11.2006, 15:03 |
| 2powerfox\да ты прав:Выходит, что надо сравнивать Аnn с А(n+-1)n и c Аn(n+-1).Вот это и надо сделать только я незнаю как. |
| Автор: volvo877 13.11.2006, 17:29 | ||
|
| Автор: powerfox 13.11.2006, 17:46 | ||
Вот код. Внимательно проверь индексы.
|
| Автор: powerfox 13.11.2006, 18:02 |
| volvo877, красивое решение, но нерабочее. У тебя там с этим наворотом bad проблемы. |
| Автор: likehood 13.11.2006, 18:18 | ||
чуть подправил решение volvo877:
|
| Автор: golden 13.11.2006, 18:51 |
| Ок спасибо разберусь |
| Автор: volvo877 13.11.2006, 18:59 | ||
| Правда? А ты проверял? Я вот прогнал на матрице - как положено, так и отрабатывает.
4 локальных максимума. Показать, или найдешь сам? Приведи мне матрицу, на которой МОЮ программу проверял ТЫ... Добавлено @ 19:03 baronp, теперь вопрос к тебе: чем тебе помешало сравнение с самим собой? Ты считаешь, что это может повлиять на правильность результата? Могу тебя огорчить: ты не разобрался в логике работы программы, в следующий раз сначала разберись, а потом будешь критиковать... К тому же с твоим исправлением будут сравниваться и диагональные элементы (рассказать, почему?), а этого (судя по посту автора) делать не нужно: |
| Автор: likehood 13.11.2006, 23:33 | ||||||||
в данном случае не помешает, только вот вопрос: что выведет твоя программа, если матрица будет заполнена нулями? Специально проверял: выведет n*n, хотя максимумов здесь не будет, поскольку
Чтобы учитывать равентство соседних элементов, нужно последнее условие заменить на
Именно из-за этого я исключил сравнение с самим собой, поскольку иначе неравенство всегда будет давать bad:=true, только неравенство забыл подправить (каюсь).
Так оно и задумывалось, видимо я неправильно понял условие задачи. Надеюсь, автор разберется какой ему нужен максимум и сам доделает задачу. |
| Автор: golden 15.11.2006, 07:42 |
| Всё ОК! задача сдана. Я получил зачёт. спасибо всем сочуствующем! |