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

Ввести координаты трех точек и ... - C++

Восстановить пароль Регистрация
 
Megovova
Сообщений: n/a
26.10.2010, 17:59     Ввести координаты трех точек и ... #1
Ввести координаты трех точек и по ним определить треугольник ето или нет если да то какой...Пожалуйста помогите очень надо (
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 17:59     Ввести координаты трех точек и ...
Посмотрите здесь:

C++ заданы координаты трех точек. Напишите программу, которая проверяет, являются ли эти точки вершинами треугольника.
Даны координаты трех точек на плоскости. Если они могут быть вершинами равнобедренного остроугольного треугольника, вычислить его площадь. Где ошибка? C++
Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты C++
Заданы координаты точки подвеса математического маятника A(xa, ya, za) и координаты одной из точек его наивысшего подъема B(xb, yb, zb). Найти координ C++
C++ Определить, сколько точек пересечения имеют прямая и окружность и найти координаты этих точек
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
26.10.2010, 18:05     Ввести координаты трех точек и ... #2
по любому треугольник будет
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
26.10.2010, 18:07     Ввести координаты трех точек и ... #3
oxotnik, уверены? А если точки такие:
(0, 1); (0, 2); (0, 3)
?
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
26.10.2010, 18:10     Ввести координаты трех точек и ... #4
silent_1991, и что?
частный случай треугольника, который превратился в отрезок
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
26.10.2010, 18:11     Ввести координаты трех точек и ... #5
oxotnik, т.е. отрезок вы треугольником называете? А точку?
Megovova
Сообщений: n/a
26.10.2010, 18:34     Ввести координаты трех точек и ... #6
ааа и на С++ надо ето все помогите люди...
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
26.10.2010, 23:24     Ввести координаты трех точек и ... #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
oxotnik, т.е. отрезок вы треугольником называете? А точку?
я ж говорю - частный случай, все вершины треугольника совпадают в одной точке. Геометрию в школе не учили?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
27.10.2010, 09:57     Ввести координаты трех точек и ... #8
oxotnik, что-то я не припомню, чтобы все повсеместно геометрические фигуры были частными случаями других фигур... По вашей логике треугольник - частный случай N-угольника, у которого N-2 вершины совпали в одной точки, и в то же время 5-угольник - частный случай того же N-угольника, у которого уже N-4 вершины совпали в одной точке... Это может фактически верно (на счёт этого не спорю), но в геометрии это так не называется (отрезок не называют частным случаем треугольника, как и точку). Ведь мы можем ввести 10 точек, которые лягут на одну прямую, и тогда этот отрезок можно считать и частным случаем треугольника, и частным случаем 10-угольника, и даже 1000000-угольника. А в данном задании важно выдать название фигуры, поэтому если для отрезка она выдаст "Треугольник", такую программу не зачтут.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2010, 23:06     Ввести координаты трех точек и ...
Еще ссылки по теме:

C++ Дано множество точек на плоскости, заданных полярными координатами. Получить декартовы координаты этих точек
C++ Заданы координаты трех точек. Определить периметр треугольника, вершинами которого являются заданные точк
Ввести координаты точек. Вычислить расстояния от всех точек до точки, введенной последней C++

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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,656
28.10.2010, 23:06     Ввести координаты трех точек и ... #9
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
//////////////////////////////////////////////////////////////////////////////////////
#include <cmath>
#include <complex>
#include <iostream>
#include <limits>
#include <set>
//////////////////////////////////////////////////////////////////////////////////////
typedef double                 T_coord;
typedef std::complex<T_coord>  T_point;
typedef std::set<T_coord>      T_angles;
//////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  equal_to_for_real(T a, T b) 
{
    const T  coef = 10;    
    return abs(a - b) < 0.001;
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_for_real(T a, T b) 
{
    return a > b
           && !equal_to_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_for_real(T a, T b) 
{
    return a < b
           && !equal_to_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_equal_for_real(T a, T b) 
{
    return !less_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_equal_for_real(T a, T b) 
{
    return !greater_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
T_point  vect(T_point  A, T_point  B)
{
    return  B - A;
}
//////////////////////////////////////////////////////////////////////////////////////
struct  T_point_compare
{
    bool  operator() (T_point  A, T_point  B)
    {
        return equal_to_for_real(A.real(), B.real()) 
            ? less_for_real(A.imag(), B.imag()) : less_for_real(A.real(), B.real());
              
    }
};
//////////////////////////////////////////////////////////////////////////////////////
typedef std::set<T_point, T_point_compare>  T_triangle;
//////////////////////////////////////////////////////////////////////////////////////
 
void  print_triangle_type(T_triangle  triangle)
{
    std::cout << "Тип треугольника:"
              << std::endl;
 
    if(triangle.size() < 3)
    {
        std::cout << '\t'
                  << "вырожденный"
                  << std::endl;
        return;
    }
 
    T_point  A = *triangle.begin();
    triangle.erase(A);
 
    T_point  B = *triangle.begin();
    triangle.erase(B);
 
    T_point  C = *triangle.begin();
 
    T_point  AB = vect(A, B);
    T_point  AC = vect(A, C);
    T_point  BC = vect(B, C);
 
    if(equal_to_for_real(0.0, arg(AB / AC)))
    {
        std::cout << '\t'
                  << "вырожденный"
                  << std::endl;
        return;
    }
 
    if(   equal_to_for_real(abs(AB), abs(AC))
       && equal_to_for_real(abs(AB), abs(BC)))
    {
        std::cout << '\t'
                  << "равносторонний"
                  << std::endl;
        return;    
    }
 
    bool is_isosceles =    equal_to_for_real(abs(AB), abs(AC))
                        || equal_to_for_real(abs(AB), abs(BC))
                        || equal_to_for_real(abs(AC), abs(BC));    
    
    std::cout << '\t'
              << (is_isosceles ? "равнобедренный" : "разносторонний")
              << std::endl;
 
    T_coord  angleA = abs(arg( AB /  AC));
    T_coord  angleB = abs(arg(-AB /  BC));
    T_coord  angleC = abs(arg(-AC / -BC));
 
    T_angles  angles;
    angles.insert(angleA);
    angles.insert(angleB);
    angles.insert(angleC);
 
    T_coord  angle_max = *angles.rbegin();
    const T_coord  RIGHT_ANGLE = acos(0.0);
 
    if(equal_to_for_real(angle_max, RIGHT_ANGLE))
    {
        std::cout << '\t'
                  << "прямоугольный"
                  << std::endl;    
    }
    else if(less_for_real(angle_max, RIGHT_ANGLE))
    {
        std::cout << '\t'
                  << "остроугольный"
                  << std::endl;    
    }
    else
    {
        std::cout << '\t'
                  << "тупоугольный"
                  << std::endl;    
    }
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    std::cout << "Введите координаты вершин треугольника:"
              << std::endl;
 
    T_triangle  triangle;
    for(char point_name = 'A'; point_name <= 'C'; ++point_name)
    {
        std::cout << std::endl
                  << '\t'
                  << point_name
                  << "x = ";
 
        T_coord X = 0;
        std::cin >> X;
 
        std::cout << '\t'
                  << point_name
                  << "y = ";
 
        T_coord Y = 0;
        std::cin >> Y;
        triangle.insert(T_point(X, Y));
    }
    print_triangle_type(triangle);
}
Yandex
Объявления
28.10.2010, 23:06     Ввести координаты трех точек и ...
Ответ Создать тему
Опции темы

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