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

не пойму почему получаются такие значения углов, подскажите как исправить пожалуйста - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Книги НЕ на научном языке по C++ http://www.cyberforum.ru/cpp-beginners/thread832925.html
Собственно название темы говорит само за себя. Дайте, пожалуйста, название книг по C++ для начинающих, не на научном языке (лучше, чтобы эти книги были написаны русскими). Заранее спасибо!
C++ не пойму почему получаются такие значения углов, подскажите как исправить пожалуйста не пойму почему получаются такие значения углов, помогите исправить пожалуйста lb_1_oop_sam.h #ifndef lb_1_oop_sam_h #define lb_1_oop_sam_h //Структура "треугольник" class triangle { struct point { http://www.cyberforum.ru/cpp-beginners/thread832921.html
Посчитать интеграл в С++ C++
хелп, хелп! Нужно посчитать интеграл в С++ и значение записать в файл. все константы задаются
В заданной последовательности слов найдите все слова, начинающиеся с заданной приставки C++
Люди помогите с задачкой, я пишу на паскале а язык С++ я попросту не знаю...))) В долгу не останусь. Все же надеюсь есть люди добрые))) 5 - В заданной последовательности слов найдите все слова, начинающиеся с заданной приставки.
C++ Найдите сумму цифр заданного натурального числа http://www.cyberforum.ru/cpp-beginners/thread832900.html
Люди помогите с задачкой, я пишу на паскале а язык С++ я попросту не знаю...))) В долгу не останусь. Все же надеюсь есть люди добрые))) 4 - Найдите сумму цифр заданного натурального числа.
C++ В заданном массиве A(N,N) вычислите 2-е суммы элементов, расположенных выше и ниже побочной диагонали. Люди помогите с задачкой, я пишу на паскале а язык С++ я попросту не знаю...))) В долгу не останусь. Все же надеюсь есть люди добрые))) 3 - В заданном массиве A(N,N) вычислите 2-е суммы элементов, расположенных выше и ниже побочной диагонали. подробнее

Показать сообщение отдельно
beg1ns
 Аватар для beg1ns
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 13
09.04.2013, 19:59     не пойму почему получаются такие значения углов, подскажите как исправить пожалуйста
не пойму почему получаются такие значения углов треугольника, помогите исправить пожалуйста
lb_1_oop_sam.h
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
#ifndef lb_1_oop_sam_h
#define lb_1_oop_sam_h
 
//Структура "треугольник"
    class triangle
    {
        struct point
        {
            double x;
            double y;
            
            //конструктор объекта "точка" по умолчанию
            point()
            {
                x=y=0;
            }
        };
        point A;
        point B;
        point C;
        //получение вектора
        void get_Vector(point e,point f,point &v);
        //Функция вычисления длины ребер треугольника
        void get_Length(double &a,double &b,double &c);
    public:
        //Конструктор объекта "треугольник"
        void set_triangle(double x1, double y1, double x2, double y2, double x3, double y3);
        //Функция вычисления периметра
        double get_perimeter();
        //Функция вычисления площади
        double get_area();
        //функция доступа к координатам
        void get_ABC();
        //функция вычисления угла
        double get_angle(int code);
        //функции определение вида треугольника
        bool is_rectangulor();
        bool is_isosceles();
        bool is_equilateral();
        //функции вычисления радиусов вписанной и описанной окружностей
        double get_r();
        double get_R();
    };
#endif
lb_1_oop_sam.cpp
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
#include<iostream>
#include<math.h>
#include"lb_1_oop_sam.h"
//Конструктор объекта "треугольник" по умолчанию
void triangle::set_triangle(double x1, double y1, double x2, double y2, double x3, double y3)
{
    A.x=x1;
    A.y=y1;
    B.x=x2;
    B.y=y2;
    C.x=x3;
    C.y=y3;
}
//получение вектора
void triangle::get_Vector(point e,point f,point &v)
{
    v.x=f.x-e.x;
    v.y=f.y-e.y;
}
//Функция вычисления длины ребер треугольника
void triangle::get_Length(double &a,double &b,double &c)
{
    point av,bv,cv;
    get_Vector(A,B,av);
    get_Vector(B,C,bv);
    get_Vector(C,A,cv);
    a=sqrt(pow(av.x,2)+pow(av.y,2));
    b=sqrt(pow(bv.x,2)+pow(bv.y,2));
    c=sqrt(pow(cv.x,2)+pow(cv.y,2));
}
//Функция вычисления периметра
double triangle::get_perimeter()
{
    double a,b,c;
    get_Length(a,b,c);
    double P=0;
    return P=a+b+c;
}
//Функция вычисления площади
double triangle::get_area()
{
    double a,b,c;
    get_Length(a,b,c);
    double p=0;
    p=(get_perimeter()/2);
    double S=0;
    return S=sqrt(p*(p-a)*(p-b)*(p-c));
}
//функция доступа к координатам
void triangle::get_ABC()
{
    std::cout<<"A.x="<<A.x<<'\n'<<"A.y="<<A.y<<'\n'<<"B.x="<<B.x<<'\n'<<"B.y="<<B.y<<'\n'<<"C.x="<<C.x<<'\n'<<"C.y="<<C.y<<'\n';
}
//функция вычисления угла
double triangle::get_angle(int code)
{
    double a,b,c;
    get_Length(a,b,c);
    double angle=0;
    point av,bv,cv;
    get_Vector(A,B,av);
    get_Vector(B,C,bv);
    get_Vector(C,A,cv);
    switch(code)
    {
        case 1:
        {
            angle=acos(fabs((bv.x*cv.x+bv.y*cv.y)/(b*c)))*180/3.14;
            return angle;
            break;
        }
        case 2:
        {
            angle=acos(fabs((cv.x*av.x+cv.y*av.y)/(c*a)))*180/3.14;
            return angle;
            break;
        }
        case 3:
        {
            angle=acos(fabs((av.x*bv.x+av.y*bv.y)/(a*b)))*180/3.14;
            return angle;
            break;
        }
    }
 
 
 
}
//функции вычисления радиусов вписанной и описанной окружностей
        double triangle::get_r()
        {
            double P=get_perimeter();
            double pp=P/2;
            double S=get_area();
            double r=S/pp;
            return r;
        }
 
 
        double triangle::get_R()
        {
            double S=get_area();
            double a,b,c;
            get_Length(a,b,c);
            double R=(a*b*c)/(4*S);
            return R;
        }
test_infinity.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<math.h>
#include"lb_1_oop_sam.h"
 
using namespace std;
 
    void main()
{
    triangle t1;
    t1.set_triangle(1,1,2,2,4,1);
    double p=0;
    p=t1.get_perimeter();
    t1.get_ABC();
    cout<<"P="<<p<<'\n';
    cout<<"S="<<t1.get_area()<<'\n'<<"R="<<t1.get_R()<<'\n'<<"r="<<t1.get_r()<<'\n';
    cout<<"angle:"<<t1.get_angle(1)<<'\n'<<t1.get_angle(2)<<'\n'<<t1.get_angle(3)<<'\n';
    system("pause");
        
}
вот результатhttp://www.cyberforum.ru/attachments/254113d1365520584
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru