| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Минимум в стрингриде |
| Автор: Самозванка 5.9.2006, 13:32 |
| Есть определенный стринггрид... Находим в нем минимум...(сделано). Потом, где находится минимум столбец (или строку) обнуляем(сделано). Далее ищим минимум везде в стрингриде кроме этого столбца...( тоже сделала) А потом надо сделать чтобы искало везде кроме этого столбца и еще одного столбца или даже строчки, ну тоесть исключающие строки и столбцы нельзя учитывать...а они все накапливаются и накапливаются... Как это реализовать??? Если не правильно как то сформулировала, уточню... |
| Автор: Partizan 5.9.2006, 14:37 |
| ну первое что приходит в голову. воспользоваться вспомогательными переменными....например записывать индексы проверенных строк и столбцов.... |
| Автор: Самозванка 5.9.2006, 14:55 |
| так а если я незнаю сколько их конкретно будет? их пользователь задает |
| Автор: Partizan 5.9.2006, 15:01 |
| ну хорошо...другой вариант...алгоритм сдледующий: пусть есть матрица 4х4: хххх хххх хххх хххх проходим от 0 до 3 строки и столбцы..нашли минимум...допустим он в 3 строке...обнуляем..... хххх хххх 0000 хххх и вот теперь 3 строку смещаем в конец и в итоге получаем матрицу 3х4.... хххх хххх хххх 0000 кароче суть состоит в сдвиге обнулённых строк(столбцов) в конец матрицы |
| Автор: Самозванка 5.9.2006, 15:09 |
| неа... просто мне надо чтобы строки и столбцы остались на месте, я там значения еще в опреденные клетки записываю... Вообщем я пишу программу решение Транспортной задачи( в данный момент нахождение опорного плана методом минимального элемента) |
| Автор: Partizan 5.9.2006, 15:15 |
| хз...я б воспользовался вспомогательным динамическим массивом... |
| Автор: Самозванка 5.9.2006, 15:30 |
| Просто, вот можно не обнуляя строки, просто исключать их из рассмотрения...(Delfy такое позволяет...) И зачем массив еще один если стринг грид сам по себе массив, иль нет? У меня еще небольшой просто опыт программирования. но большое стремление. Объясню задачу: Алгоритм метода минимального элемента состоит в следующем. Просматривается вся матрица тарифов перевозок, и из нее выбирается позиция с наименьшим значением тарифа C, затем просматриваются значения наличия запасов на складе A и потребности у потребителя B, затем в данную клетку записывается величина D=MIN(A,B). Из запасов соответствующего склада и потребностей магазина вычитается величина D . Если запас товара на складе исчерпан, то эта строка исключается из дальнейшего рассмотрения. Если потребность магазина в товаре удовлетворена полностью, то этот столбец исключается из дальнейшего рассмотрения. Может быть случай , когда одновременно исключаются и строка и столбец, этот случай называется вырожденным. В дальнейшем весь процесс повторяется до тех пор , пока не будет исчерпан весь запас товаров на складах и не будет удовлетворена потребность всех магазинов. По полученной матрице перевозок вычисляется целевая функция задачи Z. |
| Автор: Syrex 6.9.2006, 14:18 |
| Храни инфу о выведенных строках и столбцах в матрице - a[i][j]/ И при проверке каждый раз проверяй на принадлежность строки: выведена или нет |
| Автор: Romikgy 6.9.2006, 15:26 |
| имхо проще в условии добавить проверку на ноль, т.е. if (a[][]!=0) а далее все свои проверки |
| Автор: Syrex 6.9.2006, 17:35 |
| ну можно и так! тогда уж так if(!a[][]) |