Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 07.04.2020
Сообщений: 54

Дано множество A из N точек. Найти точку, наиболее близкую к началу координат

13.11.2020, 14:02. Показов 4761. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано множество A из N точек (точки заданы своими координатами x, y). Среди всех
точек этого множества, лежащих в первой или третьей четверти, найти точку, наиболее
близкую к началу координат. Если таких точек нет, то вывести точку с нулевыми
координатами.

Не могу понять как искать в 1й и 3й четверти. Буду признателен за помощь

Добавлено через 12 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
#include<cstdlib>
#include<math.h>
using namespace std;
int main() {
    int n, i;
    setlocale(LC_ALL, "ru");
    cin >> n;
    double a[101];
    double z = 0, zmin = 0, x = 0, y = 0;
    for (i = 1;i <= n;i++) {
        if (i % 2 != 0) {
            cout << "введите x" << endl;
            cin >> a[i];
        }
        else {
            cout << "введите y" << endl;
            cin >> a[i];
        }
    }
    for (i = 1;i <= n;i++) {
        if ((a[i] < 0) && (a[i + 1] > 0)) {
            z = sqrt(pow(a[i], 2) + pow(a[i + 1], 2));
            if (z < zmin) {
                zmin = z;
                x = a[i];
                y = a[i + 1];
            }
        }
    }
    cout << x << "," << y << endl;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2020, 14:02
Ответы с готовыми решениями:

Среди всех точек, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат...
Дано множество A из N точек (точки заданы своими координатами х, у). Среди всех точек этого множества, лежащих в первой или третьей...

Найти точку среди точек данного множества, лежащих в первой четверти, наиболее близкую к началу координат
Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех точек этого множества, лежащих в первой...

Найти точку среди точек данного множества, лежащих в первой четверти, наиболее близкую к началу координат
Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех точек этого множества, лежащих в первой...

30
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.11.2020, 16:49
Студворк — интернет-сервис помощи студентам
Denissia, тут какой есть вопрос - если точки находятся на одинаковом расстоянии, выведет первую. то есть я не знаю насколько это согласуется с условием
Цитата Сообщение от Denissia Посмотреть сообщение
Если таких точек нет, то вывести точку с нулевыми
координатами.
то есть что значит таких точек нет ? есть несколько точек на одинаковом расстоянии ?

Добавлено через 3 минуты
Цитата Сообщение от zayats80888 Посмотреть сообщение
Чего выкладывать то?
Цитата Сообщение от zayats80888 Посмотреть сообщение
std::sqrt
так я и не предлагал находить корень

что касается одной функции hypot, считается что три арифметические операции лучше одной функции ?
0
13.11.2020, 16:54

Не по теме:

Цитата Сообщение от Yetty Посмотреть сообщение
что касается одной функции hypot, считается что три арифметические операции лучше одной функции ?
А что там внутри функции?

0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.11.2020, 16:57
Цитата Сообщение от zayats80888 Посмотреть сообщение
А что там внутри функции?
я понимаю к чему Вы клоните - скорее всего там извлечение корня. но Вы уверены что три операции будут работать быстрее ?
0
1 / 1 / 0
Регистрация: 07.04.2020
Сообщений: 54
13.11.2020, 17:08  [ТС]
Всех благодарю за помощь
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.11.2020, 17:16
zayats80888, ради интереса посмотрел что пишут в интернете. при достаточно больших значениях x при умножении x*x возможно переполнение типа (любого типа), при применении hypot этого недостатка нет.
0
13.11.2020, 17:27

Не по теме:

Цитата Сообщение от Yetty Посмотреть сообщение
я понимаю к чему Вы клоните - скорее всего там извлечение корня.
Я к этому не клоню. Что там внутри, зависит от компилятора.
Цитата Сообщение от Yetty Посмотреть сообщение
возможно переполнение типа (любого типа), при применении hypot этого недостатка нет
Поэтому в некоторых реализациях она работает даже медленнее, чем извлечение корня.

0
13.11.2020, 18:11

Не по теме:

Цитата Сообщение от zayats80888 Посмотреть сообщение
Что там внутри, зависит от компилятора
если зависит от компилятора, к чему Вы это спросили
Цитата Сообщение от zayats80888 Посмотреть сообщение
А что там внутри функции?

0
13.11.2020, 18:30

Не по теме:

Цитата Сообщение от Yetty Посмотреть сообщение
к чему Вы это спросили
А Вы к чему спросили?
Цитата Сообщение от Yetty Посмотреть сообщение
что касается одной функции hypot, считается что три арифметические операции лучше одной функции ?

0
13.11.2020, 18:52

Не по теме:

Цитата Сообщение от zayats80888 Посмотреть сообщение
А Вы к чему спросили?
задаём вопрос на вопрос ? в отличии от Вас отвечаю на вопрос:

в теме Вы предложили не использовать hypot. я поинтересовался чем лучше Ваш способ. насчёт больших чисел уже выяснил, что hypot предпочтительнее. поэтому и спросил чем лучше, может есть какие-то преимущества у предложенного Вами способа (прямой вопрос работает ли вариант x*x + y*y быстрее Вы скромно проигнорили)

0
13.11.2020, 19:11

Не по теме:

Цитата Сообщение от Yetty Посмотреть сообщение
прямой вопрос работает ли вариант x*x + y*y быстрее Вы скромно проигнорили
Возможно это не так, но тон вашего вопроса мне показался провокационным. К тому же вы не уточнили, что значит "лучше" в вашем вопросе. По поводу быстрее, то я тесты не проводил, но если посмотреть код некоторых реализаций hypot, то да, думаю быстрее. Что касается трёх арифметических операций, то скалярное произведение легко векторизируется компилятором (если вы не под условный "Электроника85" собираете), или же можно явно использовать интринсики для векторных инструкций. Что касается больших чисел, то и тут не всё однозначно, можете посмотреть это, например. И последнее, в рамках учебной задачи это пустая дискуссия, имхо.

0
13.11.2020, 19:40

Не по теме:

Цитата Сообщение от zayats80888 Посмотреть сообщение
По поводу быстрее, то я тесты не проводил
то есть плюсы Вашего способа привести не можете, правильно я Вас понял ? тогда мне непонятен категорический тон поста:
Цитата Сообщение от zayats80888 Посмотреть сообщение
для решения задачи не нужны ни std::hypot...
после которого у меня сложилось впечатление что я совершил какую-то ошибку, предложив применить функцию hypot (точнее заменить sqrt(x*x+y*y) на hypot) которая как раз специально разработана для нахождения расстояний

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2020, 19:40

Среди точек множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат
Дано множество A из N точек (точки заданы своими координатами x, y). Среди всех точек этого множества, лежащих в первой или третьей ...

Найти точку среди всех точек этого множества, лежащих в первой четверти, наиболее близкую к началу координат
помогите решить задачу если можно то скоментариями зарание спасибо. Дано множество A из N точек на плоскости. Найти точку (вывести её...

На плоскости заданы координатами N точек. Определить наиболее близкую точку к началу координат
На плоскости заданы координатами N точек. Определить наиболее близкую точку к началу координат. (Составить функцию вычисления расстояния от...

Среди точек массива, лежащих в некоторой четверти, найти точку, наиболее близкую/удаленную от начала координат
Дан массив из N точек. Среди всех точек этого массива, лежащих в первой1|второй2|третьей3|четвертой4 четверти, найти точку, наиболее...

Найти подмножество, содержащее ровно M точек, центр тяжести которого находится наиболее близко к началу координат
Если честно я как то не могу полностью понять суть задачи, помогите желательно кодом мне срочно надо Заранее спасибо) На плоскости...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
BitTorrent (версия 7.11 English) и Меню Настройки
russiannick 15.11.2026
Пункты, отвечающие за отключение обновлений в BitTorrent версии 7. 11 (английской) Options Preferences General Language
Транслитерация текста с кириллицы на латиницу (вариант №4)
Maks 15.11.2026
Что-то я перемудрил с предыдущими версиями, в этот раз сделал всё проще, обратившись к функции "СтрокаЛатиницей" из типового общего модуля "СтроковыеФункцииКлиент". В данной функции нет апострофов,. . .
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru