|
84 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 93
|
|
Поиск точек на плоскости03.03.2013, 16:10. Показов 5795. Ответов 15
Метки нет (Все метки)
разработать объектно-ориентированную прогу для поиска пары наиболее близких точек из любого заданного набора точек на плоскости. Декартовые координаты всех его точек должны быть специфицированы парами целых чисел в аргументах командной строки вызова проги. Координаты полученной пары ближайших точек набора и расстояние между ними должны отображаться строкой потока стандартного вывода. В проге должен быть реализован класс точки с приватными полями для ее декартовых координат, публичными методами доступа к ним и конструктором инициализации их значений, а так же метод для вычисления расстояния до любой другой заданной точки. Кроме того, в проге должно быть предусмотрено динамическое распределение памяти для всех точек заданного набора и массива их адресов
Помогите, пожалуйста!!!
0
|
|
| 03.03.2013, 16:10 | |
|
Ответы с готовыми решениями:
15
Ввести координаты 10 точек на плоскости и определить в какой из четвертей больше всего точек |
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 04.03.2013, 16:12 | |
|
0
|
|
|
84 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 93
|
|
| 04.03.2013, 19:07 [ТС] | |
|
у меня есть класс точка с private x и y и public getx() gety() и метод double distance (point *q) {double d=sqrt((x-q->x)^2+(y-q->y)^2); return d;}. В main описан point **p где p=new point*[argc] и заполняемый в цикле. Как связать перебор чисел и метод вычисления?? И как сделать перебор??
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
| 04.03.2013, 19:29 | ||||||
|
Набросал такой код:
P.S. Оператор ^ в С/С++ не является оператором возведения в степень (это Вам не бейсик). Для возведения в степень следует использовать функцию pow();
1
|
||||||
|
24 / 24 / 5
Регистрация: 21.11.2012
Сообщений: 106
|
|||||||||||
| 04.03.2013, 20:35 | |||||||||||
|
функция
Добавлено через 7 минут у класса поинт неплохо бы прегрузить оператор [] Добавлено через 29 минут
Добавлено через 7 минут и да вам еще сортировку вектора надо сделать, чтоб выяснить наиболее близкую дистанцию всмысле не сортировку а пробежаться по вектору и найти минимальное значение функции distance
0
|
|||||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||
| 04.03.2013, 20:40 | |||
|
0
|
|||
|
45 / 6 / 1
Регистрация: 20.08.2012
Сообщений: 200
|
|
| 04.03.2013, 20:57 | |
|
У меня похожая задача. (но не про классы, программирование, а про алгоритм)
Есть N точек на плоскости. Надо найти все группы точек, находящиеся друг от друга на расстоянии R или меньше. Как это сделать оптимально? Допустим так: Создаем массив bol в N членов для отметки использованных точек и заполняем его нулями. 1. Берем первую точку (из массива точек) и ищем среди оставшихся точек те, которые по Х не отличаются более чем на +/- R. Находим например К точек. 2. Среди этих К точек ищем те, которые по Y не отличаются более чем на +/- R от первой точки. Допустим нашли Р таких точек. 3. Среди Р точек ищем те, которые внутри радиуса R от первой точки. Допустим нашли М таких точек. После нахождения этих М точек имеем также их индексы из исходного массива N точек. В соответствующих индексах помечаем в массиве bol что эти точки уже использованы (ставим туда напр 1) и не подлежат дальнейшим вычислениям. Ищем следующую свободную точку в массиве N при учете, что на соответствующем месте в bol есть ноль. Повторяем процесс с учетом того что не следует брать точки для которых в bol уже 1 На сколько оптимален по времени этот алгоритм? Может есть лучший?
0
|
|
|
24 / 24 / 5
Регистрация: 21.11.2012
Сообщений: 106
|
||||||
| 04.03.2013, 22:05 | ||||||
вывод смущает, наверное опять в чём то не прав(
0
|
||||||
|
84 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 93
|
|
| 04.03.2013, 23:12 [ТС] | |
|
Tulosba Если вам не сложно, не могли бы объяснить что делает strtol, std::vector<point> points; // Вектор для точек - как он работает? и push_back.
0
|
|
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
| 05.03.2013, 00:19 | |
|
booker, в вашем коде вызывается distance(iterator, iterator) - это стандартная функция, которая не имеет отношения к высчитыванию расстояния между точками.
Сам метод distance просто должен быть внешним - зачем городить дружеские функции? сигнатура должна быть примерно следующая: double distance(const point& i_left, const point& i_right);
0
|
|
|
84 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 93
|
||||||
| 06.03.2013, 00:16 [ТС] | ||||||
|
Сказали что надо делать по другому через обращения к методу и тп.
Вот код: не знаю как обратиться к методу в классе из функции main. Как думаете - правильно работать будет?
0
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||||||
| 06.03.2013, 10:21 | ||||||||||||
А вообще, мне не понятно зачем смешивать C++ (классы, методы и пр.) с голым С (#define, printf, scanf ...)
1
|
||||||||||||
|
84 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 93
|
|
| 06.03.2013, 20:39 [ТС] | |
|
Про смешивание - так дали задание и пример.
А как я создам два объекта класса если для них нужно задавать значения, а по заданию нужно их вводить с консоли?
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||
| 06.03.2013, 21:46 | ||||||||
1
|
||||||||
|
84 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 93
|
|
| 07.03.2013, 10:40 [ТС] | |
|
спасибо)
0
|
|
| 07.03.2013, 10:40 | |
|
Помогаю со студенческими работами здесь
16
Среди заданных точек на плоскости найти ту, у которой расстояние суммы равно наибольшему от остальных точек Дано множество точек на плоскости, заданных полярными координатами. Получить декартовы координаты этих точек
Из заданного множества точек на плоскости выбрать две различные точки так, что бы количества точек, лежащих по разные ст Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|