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

Разработать класс треугольник - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать класс Время http://www.cyberforum.ru/cpp-beginners/thread208351.html
ПОМОООГИТЕ ПЛИИЗ,ПОНЯТИЕ НЕ ИМЕЮ КАК ЭТО ДЕЛАТЬ. ЗАДАЧА- Согласно варианту задания написать программу на языке С++. Класс - Время Члены класса - Часы, минуты,секунды Методы -Конструктор, метод вывода времени и составляющей суток (до 6 –ночь, до 12 – утро, до 18 – день, до 24- вечер) Операторы перегрузки- Сложение (+),вычитание (-), сравнение времени < и > Исходные данные - t1, t2 ,t3, t4...
C++ Найти множество всех слов, которые встречаются в каждом из двух заданных предложений. Сделать используя текстовые файлы. помогите пожалуйста с решением задачи: Найти множество всех слов, которые встречаются в каждом из двух заданных предложений. Сделать задачу с помощью текстовых файлов. Заранее спасибо. Добавлено через 5 часов 16 минут написал начало программы, но дальше никак не могу понять что делать. как проверить слова из первого предложения со словами из второго. #include <iostream.h> http://www.cyberforum.ru/cpp-beginners/thread208341.html
Решить СЛАУ C++
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ - Решить СЛАУ 2ATX=Y2, где A= ∣2 1 5 6 5 2 2 6 2 2 1 2 1 3 3 1∣ Y= ∣3121∣
C++ [C++] В матрице найти строку с максимальной суммой элементов и поэлементно поменять ее с первой строкой
ПОМОООООГИТЕ !!!!!!!!!Написать программу на языке С++. В программе предусмотреть диалог, откуда будут вводится элементы исходной матрицы – с клавиатуры или из текстового файла. Результаты выводить на экран и в результирующий текстовый файл. Матрицу выводить до и после преобразований. УСЛОВИЕ ЗАДАЧИ - В матрице Р(n,m) найти строку с максимальной суммой элементов и поэлементно поменять ее с...
C++ [C++] Вставить в массив число, сохранив упорядоченность массива http://www.cyberforum.ru/cpp-beginners/thread208334.html
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ - "Задан упорядоченный по убыванию целочисленный массив Х, вставить в массив Х некоторое число Н, сохранив упорядоченность массива. Найти среднее арифметическое простых чисел в массиве после вставки числа и среднее геометрическое всех элементов массива."
C++ Простые числа ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ ЗАДАЧУ - "Вводится последовательность из N целых чисел. Сформировать новую последовательность, каждый элемент которой равен 1, если соответствующее число простое, 2 – если число совершенное, 0 – в остальных случаях. Вычислить количество 0, 1 и 2 в выходной последовательности (функциями оформить проверку является ли число простым, совершенным)." подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.12.2010, 19:40     Разработать класс треугольник
Слегка через одно место, для достоверности. Удачно сдать.
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
#include <iostream>
#include <vector>
#include <cmath>
#include <stdexcept>
#include <cstdlib>
#include <ctime>
 
class Triangle
{
protected:
        double _a, _b, _c;
        const static double pi = 3.14159265;
public:
        Triangle() : _a(0), _b(0), _c(0) {}
        Triangle(double a, double b, double c) : _a(a), _b(b), _c(c) {}
        Triangle(const Triangle& other) : _a(other._a), _b(other._b), _c(other._c) {}
        // стороны
        const double a() const { return _a; }
        const double b() const { return _b; }
        const double c() const { return _c; }
 
        const double perimeter() const { return _a+_b+_c; }
        const double area() const
        {
                return (_b*_c*sin(A()))/2.0;
        }
        const bool is_possible() const { return ((_a+_b)>_c) || ((_b+_c)>_a) || ((_a+_c)>_b); }
        const bool is_right() const
        {
                return (((Ad()-90)<0.0001) || ((Bd()-90)<0.0001) || ((Cd()-90)<0.0001));
        }
 
        // углы, противолежащие соответствующим сторонам
        const double A() const
        {
                double p = (_b*_b + _c*_c - _a*_a) / (2.0*_c*_b);
                return acos(p-static_cast<int>(p));
        }
        const double B() const
        {
                double p = (-_b*_b + _c*_c + _a*_a) / (2.0*_a*_c);
                return acos(p-static_cast<int>(p));
        }
        const double C() const
        {
                double p = (_b*_b - _c*_c + _a*_a) / (2.0*_a*_b);
                return acos(p-static_cast<int>(p));
        }
 
        const double Ad() const { return A()/(pi/180.); }
        const double Bd() const { return B()/(pi/180.); }
        const double Cd() const { return C()/(pi/180.); }
 
        friend std::ostream& operator<< (std::ostream& o, const Triangle& T)
        {
                o << "a: " << T.a() << ", b: " << T.b() << ", c: " << T.c() << ". ";
                if (T.is_possible())
                        o << "Area: " << T.area();
                else
                        o << "Impossible triangle.";
                return o;
        }
};
 
class RightTriangle : public Triangle
{
public:
        const double hypotenuse() const { return _c; }
        RightTriangle(void) : Triangle(0, 0, 0) {}
        RightTriangle(double a, double b) : Triangle(a, b, pow(a*a+b*b, .5)){}
        RightTriangle& operator= (const Triangle& other)
        {
                if (this!=&other)
                {
                        if (other.is_right())
                        {
                                if (other.A()-90 < 0.0001)
                                {
                                        _a = other.c();
                                        _b = other.b();
                                        _c = other.a();
                                } else
                                if (other.B()-90 < 0.0001)
                                {
                                        _a = other.a();
                                        _b = other.c();
                                        _c = other.b();
                                } else
                                if (other.C()-90 < 0.0001)
                                {
                                        _a = other.a();
                                        _b = other.b();
                                        _c = other.c();
                                }
                        }
                        else
                                throw (std::runtime_error("Not a right triangle."));
                }
                return *this;
        }
 
        operator Triangle() const { return Triangle(_a, _b, _c); }
};
 
int main()
{
        srand(static_cast<unsigned int>(time(0)));
        int M = 10;
        int N = 10;
        std::vector<Triangle> T(M);
        std::vector<RightTriangle> R(N);
 
        std::cout << "Triangles: " << std::endl;
        double sum_of_areas = 0.;
        for (int i=0; i<T.size(); i++)
        {
                T[i] = Triangle((rand()%1000+500)/10., (rand()%1000+500)/10., (rand()%500+1)/10.);
                std::cout << T[i] << std::endl;
                sum_of_areas += T[i].area();
        }
        std::cout << "Average sum of areas: " << sum_of_areas/M << std::endl;
 
        int index = 0;
        std::cout << std::endl << "Right triangles: " << std::endl;
        for (int i=0; i<R.size(); i++)
        {
                R[i] = RightTriangle((rand()%1000+500)/10., (rand()%1000+500)/10.);
                std::cout << R[i] << std::endl;
                if (R[i].hypotenuse() > R[index].hypotenuse())
                        index = i;
        }
        std::cout << "Maximum hypotenuse has triangle number " << index << ": " << R[index].hypotenuse() << std::endl;
 
        return 0;
}
 
Текущее время: 11:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru