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

Треугольник задаётся либо тремя сторонами, либо двумя сторонами и углом между ними, либо стороной и двумя прилежащими углами ... - C++

Восстановить пароль Регистрация
 
Dmitry_name
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 3
14.11.2012, 16:51     Треугольник задаётся либо тремя сторонами, либо двумя сторонами и углом между ними, либо стороной и двумя прилежащими углами ... #1
Треугольник задаётся либо тремя сторонами, либо двумя сторонами и углом между ними, либо стороной и двумя прилежащими углами (три конструктора + конструктор по умолчанию). Всё написано, все нужные методы написаны)) Осталось только в main создать два объекта(два треугольника) и вывести на консоль сообщение о равенстве этих двух треугольников. Если что не так, поправьте код пожалуйста.

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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
//файл triangle_ .cpp
 
#include "triangle_.h"
#include <iostream>
#include <cmath>
using namespace std;
 
triangle_ :: triangle_ (){
    st1 = 1;
    st2 = 1;
    st3 = 1;
    yg1 = 60;
    yg2 = 60;
    yg3 = 60;
}
 
triangle_ :: triangle_ (float _st1, float _st2, float _st3){
    st1 = _st1;
    st2 = _st2;
    st3 = _st3;
    cos(yg1)=(st2*st2 + st3*st3 - st1*st1)/(2*st2*st3);
    yg1 = cos(yg1);
    cos(yg2)=(st1*st1 + st3*st3 - st1*st1)/(2*st1*st3);
    yg2 = cos(yg2);
    yg3 = 180 - (yg1 + yg2);
}
 
triangle_ :: triangle_ (float _st1, float _st2, float _yg1){
    st1 = _st1;
    st2 = _st2;
    yg1 = _yg1;
    st1=sqrt(st2*st2 + st3*st3 - 2*st2*st3*acos(yg1));
    sin(yg2)=(st2*sin(yg1))/st1;
    yg2 = sin(yg2);
    yg3 = 180 - (yg1 + yg2);
}
 
triangle_ :: triangle_ (float _st1, float _yg1, float _yg2){
    st1 = _st1;
    yg1 = _yg1;
    yg2 = _yg2;
    yg3 = 180 - (yg1 + yg2);
    st2 = (st1*sin(yg2))/sin(yg1);
    st3 = (st1*sin(yg3))/sin(yg1);
}
 
float triangle_ :: ploshad(float s)
{
    s = sqrt((st1+st2+st3)*(st1+st2)*(st2+st3)*(st1+st3));
    return s;
}
float triangle_ :: perimetr(float p)
{
    p = st1 + st2 + st3;
    return p;
}
void triangle_ :: TypeTriangle()
{
    if(((yg1+yg2) <yg3 )||(yg1+yg2) < yg2)||(yg1+yg2)<yg1))
        cout << "typoygolni" << endl;
    else
        if(((yg1+yg2) ==yg3 ) || ((yg1+yg2)==yg2) || ((yg1+yg2)==yg2))
            cout << "pryamoygolni" <<endl;
        else
            cout << "ostroygolni" <<endl;
    if(st1 == st2 == st3)
        cout << "ravnostoronni" << endl;
    if((st1==st2)||(st2==st3)||(st1==st3))
        cout << "ravnobedrenni" <<endl;
}
void triangle_ :: Visoti()
{
    float v1=0, v2=0, v3=0;
    v1 = sqrt((4*(st1+st2+st3)*(st1+st2)*(st2+st3)*(st1+st3))/st1);
    v2 = sqrt((4*(st1+st2+st3)*(st1+st2)*(st2+st3)*(st1+st3))/st2);
    v3 = sqrt((4*(st1+st2+st3)*(st1+st2)*(st2+st3)*(st1+st3))/st3);
    cout << "visoti iz 1 and 2 storoni, iz 2 and 3, iz 1 and 3 storon sootvetsnvenno" << v3 << v1 << v2 << endl;
}
void triangle_ :: Mediani()
{
    float m1=0, m2=0, m3=0;
    m1 = sqrt((2*st2*st2+2*st3*st3-st1*st1)/4);
    m2 = sqrt((2*st1*st1+2*st3*st3-st2*st2)/4);
    m3 = sqrt((2*st2*st2+2*st1*st1-st3*st3)/4);
    cout << "mediani iz 1 and 2 storoni, iz 2 and 3, iz 1 and 3 storon sootvetsnvenno" << m3 << m1 << m2 << endl;
}
void triangle_ :: Bissektrissi()
{
    float b1=0, b2=0, b3=0;
    b1 = sqrt((st2*st3*((st2+st3)*(st2+st3))-st1*st1)/(st2+st3)*(st2+st3));
    b2 = sqrt((st1*st3*((st1+st3)*(st1+st3))-st2*st2)/(st1+st3)*(st1+st3));
    b3 = sqrt((st2*st1*((st2+st1)*(st2+st1))-st3*st3)/(st2+st1)*(st2+st1));
    cout << "Bissektrissi iz 1 and 2 storoni, iz 2 and 3, iz 1 and 3 storon sootvetsnvenno" << b3 << b1 << b2 << endl;
}
void triangle_ :: Vpisannaya_Okryznost(float s, double p, double RV)
{   
    RV = s/p;
}
void triangle_ :: Opisannaya_Okryznost(float s, float RO)
{   
    RO=(st1*st2*st3)/(4*s)
}
int triangle_ :: sravnenue( triangle_ trg2)
{   
    if((st1==t2.st1 && st2==t2.st2 && st3==t2.st3)||
    (st1==t2.st1 && st2==t2.st3 && st3==t2.st2)||
    (st1==t2.st2 && st2==t2.st1 && st3==t2.st3)||
    (st1==t2.st2 && st2==t2.st3 && st3==t2.st1)||
    (st1==t2.st3 && st2==t2.st2 && st3==t2.st1)||
    (st1==t2.st3 && st2==t2.st1 && st3==t2.st2))                                                                                        
            return 1;       
    return 0;
}
 
 
//файл triangle_ .h
 
#ifndef _TRIANGLE_
#define _TRIANGLE_
 
class triangle_ {
    private:
        float st1, st2, st3;
        float yg1, yg2, yg3;
    public:
        triangle_ ();
        triangle_ (float _st1, float _st2, float _st3);
        triangle_ (float _st1, float _st2, float _yg1);
        triangle_ (float _st1, float _yg1, float _yg2);
        float Get_st1(){return st1;}                           //возвращение полей
        float Get_st2(){return st2;}
        float Get_st3(){return st3;}
        float Get_yg1(){return yg1;}
        float Get_yg2(){return yg2;}
        float Get_yg3(){return yg3;}
 
        void Set_st1(float _st1){st1 = _st1;}              //переприсваивание
        void Set_st2(float _st2){st1 = _st2;}
        void Set_st3(float _st3){st1 = _st3;}
        void Set_yg1(float _yg1){yg1 = _yg1;}
        void Set_yg2(float _yg2){yg2 = _yg2;}
        void Set_yg3(float _yg3){yg3 = _yg3;}
 
        float ploshad(float s);
        float perimetr(float p);
        void TypeTriangle();
        void Visoti();
        void Mediani();
        void Bissektrissi();
        void Vpisannaya_Okryznost(float s, double p, double RV);
        void Opisannaya_Okryznost(float s, float RO);
        int sravnenue( triangle_ t2);
        ~triangle_()
};
#endif
 
 
//файл main.cpp
 
#include <iostream>
#include "triangle_.h"
using namespace std;
 
void main()
{
    int num;
    cout << "Chto vam izvestno ? \n\n" << "Tri storoni(vvedite 0) \n" << "Dve storoni i ygol mezdy nimi (vvedite 1) \n" << "Storona i dva ygla (vvedite 2)" << endl;
    cin >> num;
    if(num < 0 || num > 2)
    {
        cout << "Error ! /n";
        return;
    }
    triangle_ trg1, trg2;
    if(num == 0){
        cout << "Vvedite storony 1: " << endl;
        cin >> trg1.st1;
        cout << "Vvedite storony 2: " << endl;
        cin >> trg1.st2;
        cout << "Vvedite storony 3: " << endl;
        cin >> trg1.st3;
        triangle_ (float st1, float st2, float st3);
        void print_polya();
        void print_dannie();
    }
            
    if(num == 1){
        cout << "Vvedite storony 1: " << endl;
        cin >> trg1.st1;
        cout << "Vvedite storony 2: " << endl;
        cin >> trg1.st2;
        cout << "Vvedite ygol mezdy nimi: " << endl;
        cin >> trg1.yg1;
        triangle_ (float st1, float st2, float yg1);
        void print_polya();
        void print_dannie();
    }
 
    if(num == 2){
        cout << "Vvedite storony 1: " << endl;
        cin >> trg1.st1;
        cout << "Vvedite prilezashi ygol 1: " << endl;
        cin >> trg1.yg1;
        cout << "Vvedite prilezashi ygol 2: " << endl;
        cin >> trg1.yg2;
        triangle_ (float st1, float yg1, float yg2);
        void print_polya();
        void print_dannie();
    }
    cin.get();  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 16:51     Треугольник задаётся либо тремя сторонами, либо двумя сторонами и углом между ними, либо стороной и двумя прилежащими углами ...
Посмотрите здесь:

Никак не могу найти ошибку, должен сосздать матрицу либо из звездочеку либо из пробелов C++
Вывести в алфавитном порядке слова, которые присутствуют либо в первой строке, либо во второй, но не в обеих сразу. C++
Найти либо максимум, либо минимум для трех задаваемых чисел C++
C++ две прямые либо паралельны либо совпадают либо не существуют
Проверка открытия файла либо работает, либо уходит в бесконечность C++
C++ При потсроении пишет что конструктор либо недоступен либо объявлен как explicit
Сделать либо так, чтобы в файл записывались рандомные матрица и вектор, либо из файла считывать C++
Вычислить площадь треугольника со сторонами k и прилежащими углами a и b C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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