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

Класс Треугольник на С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ 32-битные регистры в Borland C++ http://www.cyberforum.ru/cpp-beginners/thread670563.html
Всем доброго времени суток! Хочу сделать программу для проигрывания мелодии через системный динамик, и решил попробовать сделать это с помощью ассемблерной вставки. Вроде бы, сделал, но не знаю или верно, ибо при компиляции Borland c++ ругается на регистр eax и т.д. (не распознаёт), хотя в настройках компиляции я включил инструкции i386. Вот выкладываю код, не ругайте сильно, если будут ошибки...
C++ "Сшивка" изображений (метод Хариса) В институте задали написать программу на C++ (QT или Билдер или любой другой) которая бы сшивала изображения. Выбран метод хариса (так как он не запатентован). Надо что бы в программу засовывали изображения с микроскопа (изображения могут пересекаться между собой, могут вообще повторяться) и программа их сшивала, при этом сама находила какие и как надо сшивать изображения. Я сам C++ почти... http://www.cyberforum.ru/cpp-beginners/thread670506.html
Простой графический редактор (перевести с C# на C++) C++
есть код простенького графического редактора, нужно перевести с с# на c++ namespace OpenSave_1_ { public partial class Form1 : Form { public Form1() { InitializeComponent(); pen_for_draw.StartCap = pen_for_draw.EndCap = System.Drawing.Drawing2D.LineCap.Round;
Нужно написать кликер C++
суть такая: запускаю прогу, нажимаю alt+l и прога начинает кликать на f12 со скоростью 3 раза в секунду, при нажатии на alt+k прекращает. P.S. код желательно на java. P.P.S. я не великий програмист потому и прошу помощи
C++ Главные центральные оси инерции http://www.cyberforum.ru/cpp-beginners/thread670035.html
Я нашел главные центральные оси инерции фигуры на плоскости. Если фигура симметрична, то одна из этих осей является осью симметрии. Как определить эту ось? Или подскажите литературу, где я смогу найти ответ на этот вопрос. Использую библиотеку OpenCascade
C++ Создания простого "кликера" Здравствуйте, если кому-нибудь не сложно, написать маленькую программку, которая при нажатии комбинации alt+l будет тыкать со скоростью 3 раза в секунду на ф12 а при нажатии alt+k перестанет тыкать. можно просто исходный код. и если можно то с объяснениями что к чему. P.S. Сразу прошу прощения, если не в тот раздел, пытался написать в Ява-скрипт, оказалось не туда, посоветовали поискать помощи... подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
15.10.2012, 21:43     Класс Треугольник на С++
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
#include <iostream>
#include <stdexcept>
#include <cmath>
#include <sstream>
 
class Triangle
{
public:
    class Angle
    {
    public:
        explicit Angle(double const value_) : value(0.0)
        {
            if(value_ < pi && value_ > 0)
                value = value_;
            else
            {
                std::stringstream ss;
                ss << value_;
                throw(Angle_error("Angle ctor argument out of(0, pi): " + ss.str()));
            }
 
        }
        operator double() const
        {
            return value;
        }
        static double const pi;
    private:
        class Angle_error : public std::runtime_error
        {
        public:
            Angle_error(std::string const& message) : std::runtime_error(message){}
        };
        double value;
    };
 
    class Side
    {
    public:
        explicit Side(double const value_) : value(1)
        {
            if(value_ > 0)
                value = value_;
            else
            {
                std::stringstream ss;
                ss << value_;
                throw Side_error("Side ctor argument <= 0: " + ss.str());
            }
        }
        operator double() const
        {
            return value;
        }
    private:
        class Side_error : public std::runtime_error
        {
        public:
            Side_error(std::string const& message) : std::runtime_error(message){}
        };
        double value;
    };
    Triangle(Side const& a_, Side const& b_, Side const& c_) : a(a_), b(b_), c(c_),
        alpha(acos((b_ * b_ + c_ * c_ - a_ * a_) / (2 * b_ * c_))),
        beta(acos((a_ * a_ + c_ * c_ - b_ * b_) / (2 * a_ * c_))),
        gamma(acos((b_ * b_ + a_ * a_ - c_ * c_) / (2 * a_ * b_))){}
    Triangle(Side const& a_, Side const& b_, Angle const& gamma_) : a(a_), b(b_), gamma(gamma_),
        c(sqrt(a_ * a_ + b_ * b_ - 2 * a_ * b_ * cos(gamma_))),
        alpha(acos((b_ * b_ + pow((sqrt(a_ * a_ + b_ * b_ - 2 * a_ * b_ * cos(gamma_))), 2) - a_ * a_) / (2 * b_ * (sqrt(a_ * a_ + b_ * b_ - 2 * a_ * b_ * cos(gamma_)))))),
        beta(acos((a_ * a_ + c * c - b_ * b_) / (2 * a_ * c))){}
    Triangle(Side const& a_, Angle const& beta_, Angle const& gamma_) : a(a_), beta(beta_), gamma(gamma_),
        alpha(Angle::pi - beta_ - gamma_),
        c((a_ / sin(Angle::pi - beta_ - gamma_)) * sin(gamma_)),
        b((a_ / sin(Angle::pi - beta_ - gamma_)) * sin(beta_)){}
    friend std::ostream& operator<< (std::ostream& os, Triangle const& t)
    {
        return os << "sides: " << t.a << ' ' << t.b << ' ' << t.c
            << "\nangles: " << t.alpha << ' ' <<t.beta << ' ' << t.gamma;
    }
private:
    Side a, b, c;
    Angle alpha, beta, gamma;
};
 
double const Triangle::Angle::pi = 3.14159;
 
typedef Triangle::Side tside;
typedef Triangle::Angle tangle;
 
int main()
{
    try
    {
        Triangle tr(tside(6), tside(3), tside(4));
        std::cout << tr << std::endl;
        Triangle tr1(tside(8), tangle(1.5), tangle(1.1)); // угол в радианах
        std::cout << tr1 << std::endl;
    }
    catch(std::exception const& e)
    {
        std::cerr << "Exception: " << e.what() << std::endl;
    }
    return 0;
}
 
Текущее время: 11:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru