Russian Qt Forum
Май 04, 2024, 14:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Неправильно работает программа, собранная на другом компе  (Прочитано 9608 раз)
FluffyMan2000
Гость
« : Декабрь 19, 2012, 17:53 »

Доброго времени суток всем.

Такая проблема. Написал я лабораторную работу на c++/qt по графам. Окно редактора графа и кнопки алгоритмов. Что-то вроде нарисовал граф, нажал кнопку, визуализировался обход в ширину по графу.

Все бы отлично, но если собрать эту программу на другом компьютере, то программа работает неверно. Что имеется в виду: при одних и тех же тестовых условиях у меня на компьютере все работает корректно, на другом компьютере некорректно.

Я предполагаю, что может быть проблема в том, что разные библиотеки Qt на компах стоят (у меня sdk еще нокиевское, а на другом компе уже скачано с сайта digia).

Архив с программой прикрепляю. Тестовый граф тоже (результат обхода в ширину + в глубину). Может кто протестирует и сверится с эталонным результатом? Очень нужно выяснить в чем проблема.

У меня стоит Qt4.7.4.

Может быть кто-то просто соберет у себя и скажет какой результат обходов?
« Последнее редактирование: Декабрь 24, 2012, 11:41 от FluffyMan2000 » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Декабрь 19, 2012, 18:06 »

У меня винда хр, Qt 4.8.0, результат такой же как по скриншотам Улыбающийся
Записан

Bepec
Гость
« Ответ #2 : Декабрь 19, 2012, 18:13 »

А у меня VS2008, который придерживается стандарта Улыбающийся В результате проект не собирается Веселый
Записан
Dancing_on_water
Гость
« Ответ #3 : Декабрь 19, 2012, 18:13 »

Я, конечно, дико извиняюсь. Но с какого перепугу обход в ширину 0 1 2 3 4
хотя между вершинами 1 и 2 нет ребра? ( у меня результат такойже)
« Последнее редактирование: Декабрь 19, 2012, 18:14 от Dancing_on_water » Записан
FluffyMan2000
Гость
« Ответ #4 : Декабрь 19, 2012, 18:13 »

У меня винда хр, Qt 4.8.0, результат такой же как по скриншотам Улыбающийся

Ок, спасибо. а какой QtSDK у тебя? еще от nokia или уже от digitea?
Записан
FluffyMan2000
Гость
« Ответ #5 : Декабрь 19, 2012, 18:15 »

Я, конечно, дико извиняюсь. Но с какого перепугу обход в ширину 0 1 2 3 4
хотя между вершинами 1 и 2 нет ребра? ( умея результат такойже)

хм. там в архиве есть сохраненные .html страницы с графами. проверял на них, все сходится.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #6 : Декабрь 19, 2012, 18:16 »

Windows 7, Qt 4.8.4, msvc2012 x86 (компилировал сам): ширина совпала, глубина 0 2 1 4 3.

динамическому массиву память надо выделять руками, а не писать int array[n], т.к. не все компиляторы это съедают.

ну и стандартное замечание по поводу кодировки файлов cp1251 вместо utf-8 и неудаления файлов *.user перед выкладыванием в паблик.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
FluffyMan2000
Гость
« Ответ #7 : Декабрь 19, 2012, 18:16 »

У меня винда хр, Qt 4.8.0, результат такой же как по скриншотам Улыбающийся

и еще, при обходе в ширину при визуализации не пропускаются никакие вершины?
Записан
FluffyMan2000
Гость
« Ответ #8 : Декабрь 19, 2012, 18:17 »

Qt 4.8.4, msvc2012 x86 (компилировал сам): ширина совпала, глубина 0 2 1 4 3.

динамическому массиву память надо выделять руками, а не писать int array[n], т.к. не все компиляторы это съедают.

ну и стандартное замечание по поводу кодировки файлов cp1251 вместо utf-8 и неудаления файлов *.user перед выкладыванием в паблик.

попробую заменить массив на QVector.
на другом компьютере *.user удалял - все равно неверно работает.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #9 : Декабрь 19, 2012, 18:20 »

Qt 4.8.4, msvc2012 x86 (компилировал сам): ширина совпала, глубина 0 2 1 4 3.

динамическому массиву память надо выделять руками, а не писать int array[n], т.к. не все компиляторы это съедают.

ну и стандартное замечание по поводу кодировки файлов cp1251 вместо utf-8 и неудаления файлов *.user перед выкладыванием в паблик.

на другом компьютере *.user удалял - все равно неверно работает.
наличие этих файлов на работу программы никак не влияет, просто они там сто лет не нужны, т.к. у каждого пользователя *.user будет свой, а креатор будет только ругаться на чужие.

только что забыл о ребре между 2 и 4 — результаты идентичные. мне кажется, что программа работает неправильно.

добавлено: определённо неправильно (ширина: 0 1 5 3 2 4, глубина: 0 5 3 4 2 1). и ещё обход в глубину не подсвечивается.
« Последнее редактирование: Декабрь 19, 2012, 18:23 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #10 : Декабрь 19, 2012, 18:22 »

У меня винда хр, Qt 4.8.0, результат такой же как по скриншотам Улыбающийся

Ок, спасибо. а какой QtSDK у тебя? еще от nokia или уже от digitea?
nokia

У меня винда хр, Qt 4.8.0, результат такой же как по скриншотам Улыбающийся

и еще, при обходе в ширину при визуализации не пропускаются никакие вершины?

При поиске в ширину - нормально, как по результату показывает
при поиск в глубину - вообще нет визуализации О_о
Записан

FluffyMan2000
Гость
« Ответ #11 : Декабрь 19, 2012, 18:23 »

Qt 4.8.4, msvc2012 x86 (компилировал сам): ширина совпала, глубина 0 2 1 4 3.

динамическому массиву память надо выделять руками, а не писать int array[n], т.к. не все компиляторы это съедают.

ну и стандартное замечание по поводу кодировки файлов cp1251 вместо utf-8 и неудаления файлов *.user перед выкладыванием в паблик.


на другом компьютере *.user удалял - все равно неверно работает.
наличие этих файлов на работу программы никак не влияет, просто они там сто лет не нужны, т.к. у каждого пользователя *.user будет свой, а креатор будет только ругаться на чужие.

только что забыл о ребре между 2 и 4 — результаты идентичные. мне кажется, что программа работает неправильно.

только что забыл о ребре между 2 и 4 — результаты идентичные. мне кажется, что программа работает неправильно. 0 не понял это. результаты идентичные как на скриншоте? (в данный момент правильность алгоритма не обсуждается. интересует именно то, что работать должна одинаково на всех компах)

ДОБАВЛЕНО: алгоритм поиска в глубину не реализован пока что. интересует не правильность алгоритма на данный момент, а идентичность результата на всех компа с теми, что на скриншотах
« Последнее редактирование: Декабрь 19, 2012, 18:25 от FluffyMan2000 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #12 : Декабрь 19, 2012, 18:24 »

результаты идентичные моим первым (ширина как на скрине, глубина 0 2 1 4 3). также обновил предыдущий пост.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
FluffyMan2000
Гость
« Ответ #13 : Декабрь 19, 2012, 18:26 »

У меня винда хр, Qt 4.8.0, результат такой же как по скриншотам Улыбающийся

Ок, спасибо. а какой QtSDK у тебя? еще от nokia или уже от digitea?
nokia

У меня винда хр, Qt 4.8.0, результат такой же как по скриншотам Улыбающийся

и еще, при обходе в ширину при визуализации не пропускаются никакие вершины?

При поиске в ширину - нормально, как по результату показывает
при поиск в глубину - вообще нет визуализации О_о

визуализация поиска в глубину не реализована
Записан
Dancing_on_water
Гость
« Ответ #14 : Декабрь 19, 2012, 18:27 »

Цитировать
хм. там в архиве есть сохраненные .html страницы с графами. проверял на них, все сходится.
Да, попутал. С шириной так и должно быть.

Проблема с глубиной.

Цитировать
(в данный момент правильность алгоритма не обсуждается. интересует именно то, что работать должна одинаково на всех компах)
Крайне неверный подход, сначала надо добиться ожидаемого результата, а потом пинять на qt\компилятор
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.061 секунд. Запросов: 23.