С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Megovova
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 2
#1

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

26.10.2010, 17:59. Просмотров 945. Ответов 8
Метки нет (Все метки)

Ввести координаты трех точек и по ним определить треугольник ето или нет если да то какой...Пожалуйста помогите очень надо (
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 17:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввести координаты трех точек и ... (C++):

Ввести координаты точек. Вычислить расстояния от всех точек до точки, введенной последней - C++
С клавиатуры вводятся координаты точек на плоскости в виде строк, представляющих пару в формате “(x,y)”. Строка должна быть...

Определить образуют ли треугольник координаты трех точек - C++
Ввести числа , которые являются значениями коор-динат трех точек на плоскости. Определить, образуют ли они треуголь-ник (точки не лежат на...

Вычислить координаты центра тяжести трех материальных точек - C++
Вычислить координаты центра тяжести трех материальных точек с массами m1, m2, m3 и координатами (x1, y1), (x2, y2), (x3, y3) по формулам: ...

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

заданы координаты трех точек. Напишите программу, которая проверяет, являются ли эти точки вершинами треугольника. - C++
На входе заданы координаты трех точек. Напишите программу, которая проверяет, являются ли эти точки вершинами треугольника. :) ...

Даны координаты трех точек на плоскости. Если они могут быть вершинами равнобедренного остроугольного треугольника, вычислить его площадь. Где ошибка? - C++
Даны координаты трех точек на плоскости. Если они могут быть вершинами равнобедренного остроугольного треугольника, вычислить его...

8
oxotnik
1591 / 1068 / 33
Регистрация: 21.08.2008
Сообщений: 4,464
Записей в блоге: 1
26.10.2010, 18:05 #2
по любому треугольник будет
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
26.10.2010, 18:07 #3
oxotnik, уверены? А если точки такие:
(0, 1); (0, 2); (0, 3)
?
0
oxotnik
1591 / 1068 / 33
Регистрация: 21.08.2008
Сообщений: 4,464
Записей в блоге: 1
26.10.2010, 18:10 #4
silent_1991, и что?
частный случай треугольника, который превратился в отрезок
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
26.10.2010, 18:11 #5
oxotnik, т.е. отрезок вы треугольником называете? А точку?
0
Megovova
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 2
26.10.2010, 18:34 #6
ааа и на С++ надо ето все помогите люди...
0
oxotnik
1591 / 1068 / 33
Регистрация: 21.08.2008
Сообщений: 4,464
Записей в блоге: 1
26.10.2010, 23:24 #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
oxotnik, т.е. отрезок вы треугольником называете? А точку?
я ж говорю - частный случай, все вершины треугольника совпадают в одной точке. Геометрию в школе не учили?
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
27.10.2010, 09:57 #8
oxotnik, что-то я не припомню, чтобы все повсеместно геометрические фигуры были частными случаями других фигур... По вашей логике треугольник - частный случай N-угольника, у которого N-2 вершины совпали в одной точки, и в то же время 5-угольник - частный случай того же N-угольника, у которого уже N-4 вершины совпали в одной точке... Это может фактически верно (на счёт этого не спорю), но в геометрии это так не называется (отрезок не называют частным случаем треугольника, как и точку). Ведь мы можем ввести 10 точек, которые лягут на одну прямую, и тогда этот отрезок можно считать и частным случаем треугольника, и частным случаем 10-угольника, и даже 1000000-угольника. А в данном задании важно выдать название фигуры, поэтому если для отрезка она выдаст "Треугольник", такую программу не зачтут.
0
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
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);
}
1
28.10.2010, 23:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2010, 23:06
Привет! Вот еще темы с ответами:

Заданы координаты трех вершин прямоугольника, необходимо определить координаты четвертой вершины - C++
Заданы координаты трех вершин прямоугольника. Необходимо определить координаты четвертой вершины. Можете найти? Добавлено через 1...

Ввести урожайность трех сортов пшеницы (36, 40, 44 т/га) и размеры трех соответственных по- лей (у га). Скольк - C++
Здравствуйте! Помогите сделать код на C# по такому заданию: Ввести урожайность трех сортов пшеницы (36, 40, 44 т/га) и размеры трех...

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

Получить координаты точек сферы, равноотстоящие от соседних точек - C++
Здравствуйте. Знает ли кто-нибудь, как это сделать. Сгенерировать сферу я и так могу, то мне именно нужно, чтобы все точки сферы при этом...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.