![]() |
|
Модераторы: bsa |
![]()
|
|
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Все привет! Снова я со своими файлами! Вот эта та самая тема Начало темы. Я думаю уже всеми забытая.
Кратко условие: Дан бин.файл с точками на плоскости. Найти равноудаленные точки от зад. с клавиатуры точки. Ребят все ни как не получается, сделать эту задачу. Вот что на данный момент имеется:
Скажите, пожалуйста, в верном ли направлении я иду?(Есть стойкое ощущение, что логика программы неправильная) Это сообщение отредактировал(а) ioManip - 22.11.2013, 06:34 --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
сортируешь точки. критерий - расстояние от заданной. далее последовательно просматриваешь, точки с одинаковыми расстояниями являются равноудаленными.
в зависимости от размера файла можно сортировать в памяти, либо потребуется внешняя сортировка. расстояние полностью вычислять необязательно, достаточно сравнивать квадраты расстояний |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
||||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Копипаст в действии)))
Вы действительно именно так собрались сравнивать числа с плавающей точкой? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
baldina, Попробую!
feodorv,
В самом начале темы, bsa писал, что нужно находить расстояние между точками и сравнивать с введенной точкой. Я как понял, так и написал. P.S. Ну видимо, bsa немного другое имел ввиду. --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
ioManip, скорее всего я имел в виду нечеткое сравнение (больше/меньше). Я никогда бы не предложил четкое равенство для чисел с плавающей точкой.
|
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Пытаюсь найти расстояние, вот так:
Но происходит зацикливание! Но если убрать file.seekg(0, fstream::beg); то все хорошо, только в результате ничего не выводит! --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Ребят, врое проблему с зацикливанием решил, оставив лишь это:
Но сейчас другая возникла, каждый раз при подсчете d, переменной myPoint присваивается лишь последнее значение, т.е. если точки (2,4) (4,5) (3,8) , то берется только последняя точка. --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
myPoint не меняется в цикле Добавлено через 4 минуты и 40 секунд При таких точках нет никакой необходимости во float. Необходимо тупо ограничиться целыми числами, тогда и сравнивать напрямую можно. А сравнивать не расстояние, а, как мудро посоветовал baldina: -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Привет! Смотрите что получилось:
Мне удалось найти расстояния, и "положить" их в массив(пока не знаю зачем). А что дальше? Сравнивать расстояния между собой? И те которые равны, и будут равноудаленными? Это сообщение отредактировал(а) ioManip - 27.11.2013, 10:35 --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
совершенно лишняя!!! Какая разница с точки зрения сравнения - сравнивать расстояния или квадраты расстояний? А вот с точки зрения программирования здесь пропасть: первое - float, второе - int. (Это ещё если промолчать, что потом инту присваивается флоат). Да! Но тут тоже нужна аккуратность... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
ioManip,
у тебя точек n-1 Добавлено через 2 минуты и 13 секунд я бы сказал "в одну и ту же ячейку памяти за границей массива": будь внимательнее Добавлено через 4 минуты и 25 секунд вообще традиционно счетчик в цикле изменяют от 0. это связано с индексацией: первая ячейка имеет смещение 0. поэтому цикл обычно выглядит как
|
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
И снова, Hello! Я к Вам с таким вопросом, сравнение квадратов расстояний мы должны производить в цикле while ?
Если использовать код выше, то он не во всех случаях корректно работает. Но если же отрывок нахождения расстояний перенести в цикл, то ....вообще беда --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Так. Опять двадцать пять)))
Добавлено через 53 секунды Шо, бывает, что работает корректно? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
feodorv, Не могу понять Вас.
Вот так будет верно?
--------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |