Форум программистов, компьютерный форум CyberForum.ru

Определить, будут ли точки расположены на одной прямой - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 5.00
marts
Сообщений: n/a
24.12.2008, 19:07     Определить, будут ли точки расположены на одной прямой #1
Помогите пожалуйста надо срочно решить эти задачки:

1. Дано натуральное число n. Среди чисел 1, ..., n найти такие, запись которых совпадает с последующими цифрами записи их квадратов (например 6*6(6 в квадрате)=36 5*5 (5 в квадрате)=25)
2. Даны 3 точки A(x1,y1), B(x2,y2), C(x3,y3)

Определить, будут ли они расположены на одной прямой, если нет то вычислить угол ABC

3. Задан массив, содержащий несколько нулевых элементов. Сжать его, выбросив нулевые элементы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2008, 19:07     Определить, будут ли точки расположены на одной прямой
Посмотрите здесь:

Определить, лежат ли точки на одной прямой C++
Определить будут ли заданные три точки расположены на одной прямой C++
C++ Определить, лежат ли три точки A, B, C на одной прямой. Если нет, найти угол ABC
Найти всевозможные группы по 3,4. точки, лежащие на одной прямой C++
Лежат ли точки на одной прямой и вычислить угол C++
C++ Определить расположены ли точки на одной прямой
Три точки заданы координатами. Определить, лежат ли они на одной прямой C++
Принадлежат ли точки одной прямой C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rom1k
13 / 13 / 2
Регистрация: 15.10.2009
Сообщений: 67
28.04.2010, 15:46     Определить, будут ли точки расположены на одной прямой #2
Цитата Сообщение от marts Посмотреть сообщение
2. Даны 3 точки A(x1,y1), B(x2,y2), C(x3,y3)

Определить, будут ли они расположены на одной прямой, если нет то вычислить угол ABC
мне эту задачу тоже надо решить помогите пожалуйста...
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
28.04.2010, 16:26     Определить, будут ли точки расположены на одной прямой #3
p0, p1, p2 - искомые точки
epsilon - число близкое к нулю - зависит от точности и размерности координат
C++
1
2
3
4
5
double s = (p1.x - p0.x)*(p2.y - p0.y) - (p2.x - p0.x)*(p1.y - p0.y);
if (fabs(s) < epsilon)
{
    // на одной прямой....
}
Добавлено через 17 минут
продолжение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
else // вычисляем угол
{
    double l1 = hypotl (p0.x - p1.x, p0.y - p1.y);
    double l2 = hypotl (p1.x - p2.x, p1.y - p2.y);
    double l3 = hypotl (p0.x - p2.x, p0.y - p2.y);
    // добавить проверку l1, l2 и l3 на 0
    double p = l1 + l2 + l3;
    double n = (p*0.5)*(p*0.5 - l3)/(l1*l2);
    n = n < 0 ? 0 : n;
    double c = sqrt(n);
    // добавить проверку попадания c в (-1.0, 1.0)
    double alfa = RadToDeg (acos(c)*2.0);   
}
если нет RadToDeg:
alfa = acos(c)*360/M_PI;
Yandex
Объявления
28.04.2010, 16:26     Определить, будут ли точки расположены на одной прямой
Ответ Создать тему
Опции темы

Текущее время: 13:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru