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

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

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

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

14.11.2012, 16:51. Просмотров 377. Ответов 0
Метки нет (Все метки)

Треугольник задаётся либо тремя сторонами, либо двумя сторонами и углом между ними, либо стороной и двумя прилежащими углами (три конструктора + конструктор по умолчанию). Всё написано, все нужные методы написаны)) Осталось только в 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();  
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 16:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Треугольник задаётся либо тремя сторонами, либо двумя сторонами и углом между ними, либо стороной и двумя прилежащими углами ... (C++):

При изменении каких либо данных программа либо вылетает, либо просто не изменяет данные - C++
Добрый вечер. Только недавно начал заниматься С++. И вот возникли проблемы. При изменении каких либо данных. Программа либо вылетает(Qt),...

Вычислить площадь треугольника со сторонами k и прилежащими углами a и b - C++
Вычислить площадь треугольника со сторонами k и прилежащими углами a и b. Помогите с написанием программы на C++. Правила п 4.3...

две прямые либо паралельны либо совпадают либо не существуют - C++
Д даны числа a1, b1, c1, a2, b2, c2. Напечатать координаты точки пересечения прямых, описываемых уравнениями a1x+b1y=c1 и a2x+b2y=c2, либо...

Что-то интересное. Или программа, которая принимает либо 1, либо 2 числа - C++
Программа - консольное приложение, в качестве параметров при вызове принимает одно или два целых числа. Как это реализовать на C++? Проще...

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

Можно ли передать в функцию либо вектор, либо список, если да, то как? - C++
Можно ли передать в функцию либо вектор, либо список, если да, то как?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 16:51
Привет! Вот еще темы с ответами:

Проверка открытия файла либо работает, либо уходит в бесконечность - C++
string A=Enterway('t');//функция ввода адреса файла fstream str(A.c_str(), ios::in ); for(;;){ if (!str){ cout &lt;&lt; &quot;ERROR!!! Файл...

Никак не могу найти ошибку, должен сосздать матрицу либо из звездочеку либо из пробелов - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;ctime&gt; using namespace std; int main(){ char a; int zvezd,probel,b; int...

При потсроении пишет что конструктор либо недоступен либо объявлен как explicit - C++
/*Все обьекты содержимые в контейнерах без проблем выводятся через потоковые итераторы и алгоритм copy. Но когда речь идет о собственных...

По условию вывести сумму либо чётных, либо нечётных разрядов заданного шестизначного числа - C++
Пользователь вводит шестизначное число. Если сумма четных разрядов больше суммы нечетных разрядов этого числа, вывести сумму четных...


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

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

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