![]() |
|
|
![]()
|
|
| atlant1s |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.10.2007 Где: Одесса Репутация: нет Всего: нет |
Здравствуйте. Пишу универскую задачу, работает некорректно.
Задача - выбирается файл xls, в котором симметричная матрица. Цифры (float) из неё переносятся в StringGrid (далее - SG). Так же пользователь указывает в SG2 последовательность чисел, они в дальшейшем имеют следующий смысл: - это номера строк, которые не обрабатываются (пропускаются) в цикле - это номера столбцов, с которыми работает цикл. Нужно среди содержимого этих ячеек в каждой строке найти минимальное значение и вывести его в Memo1. Кусок кода (пишу в С++ Builder 6.0):
Например: Если имеем матрицу 6х6, а в SG2 указали строки 2 и 4, которые нам надо пропустить, то работаем с строками 1, 3, 5, 6. Берём каждую строку, смотрим значение ячейки 2 и 4, выбираем среди них меньшее и выводим его в Memo1. Например например: 0 9 5 4 7 9 9 0 1 2 4 4 5 1 0 9 1 5 4 2 9 0 6 1 7 4 1 6 0 5 9 4 5 1 5 0 Должен быть результат: Для пункта 1 минимальное расстояние в пункте 4 равное 4 км. Для пункта 3 минимальное расстояние в пункте 2 равное 1 км. Для пункта 5 минимальное расстояние в пункте 2 равное 4 км. Для пункта 6 минимальное расстояние в пункте 4 равное 1 км. У меня: Для пункта 1 минимальное расстояние в пункте 2 равное 9 км. - лишняя строка, минимум в следующей Для пункта 1 минимальное расстояние в пункте 4 равное 4 км. - верно Для пункта 3 минимальное расстояние в пункте 2 равное 1 км. - верно Дальше не пишет. Подскажите, где поправить? Это сообщение отредактировал(а) atlant1s - 20.5.2013, 18:35 |
|||
|
||||
| atlant1s |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.10.2007 Где: Одесса Репутация: нет Всего: нет |
Нашел причину того, почему программа показываем в результате те строки, которые необходимо пропустить. Это из-за проверки:
Текущий шаг цикла не всегда совпадает с значением temp (оно же mass_OPZ[j] - 1, оно же содержимое SG2). Т.е. всё в порядке будет, если в SG2 указать, например, 1-2-3, тогда оно будет совпадать с шагом цикла и будет пропускать указанные в SG2 строки. Но т.к. в действительности всё по-другому, то оно работает неверно. Подскажите, какое условие вместо этого написать? Это сообщение отредактировал(а) atlant1s - 20.5.2013, 00:30 |
|||
|
||||
| KaZepKa |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 29.10.2011 Репутация: нет Всего: нет |
не проще ли проверять: нет ли i-ой строки в массиве mass_OPZ, то есть типо:
Find описать самому, или же загонять данные из SG2 в вектор и использовать реализованный метод. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |