Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <string>
- using namespace std;
- class triangle //класс тругольник
- {
- private:
- float a, b, c;
- public: // спецификатор доступа с открытыми членами
- static int count;
- void set(float a, float b, float c) //указывает на использование переменной с плав запятой
- { //то есть у класса появляются стороны
- this->a = a; //указатель на переменную, хранит адрес объекта класса, через него обращаемся к полю
- this->b = b;
- this->c = c;
- }
- void _info()const
- {
- float p = (a + b + c) / 2; //объявляем полупериметр
- cout << "Сторона а: " << a << endl; //вывод сторон треугольника
- cout << "Сторона b: " << b << endl;
- cout << "Сторона c: " << c << endl;
- cout << "Периметр: " << a + b + c << endl; // вывод периметра
- cout << "Площадь: " << sqrt(p * (p - a) * (p - b) * (p - c)) << endl; // вывод площади
- count++;
- }
- float uv_A(float uvel)const //метод увеличения сторон ( метод - это функция, привязанная к объекту)
- {
- count++;
- return uvel * a;
- }
- float uv_B(float uvel)const
- {
- count++;
- return uvel * b;
- }
- float uv_C(float uvel)const
- {
- count++;
- return uvel * c;
- }
- void _uvel(float uvel)const
- {
- count++;
- cout << "Увеличили стороны в " << uvel << " раз: " << endl;
- cout << "Сторона А: " << uv_A(uvel) << endl;
- cout << "Сторона B: " << uv_B(uvel) << endl;
- cout << "Сторона C: " << uv_C(uvel) << endl;
- }
- float angle_A()const //метод высчета углов
- {
- count++;
- return acos ((b*b + c*c - a*a) / (2*b*c)) * 180 / 3.14;
- }
- float angle_B()const //метод высчета углов
- {//формулы для высчета угла b отличается от формулы для угла А поэтому у нас 2 разные функции
- count++;
- return acos ((a*a + c*c - b*b) / (2*a*c)) * 180 / 3.14;
- }
- void _angle()const
- {
- cout << "Угол А: " << angle_A () << endl;
- cout << "Угол B: " << angle_B() << endl;
- cout << "Угол С: " << 180 - (angle_A()+angle_B()) << endl;
- count++;
- }
- ~triangle(){count--;}
- static int getNumber(){
- return count;
- }
- };
- int triangle::count = 0;
- int main() {
- setlocale(LC_ALL, "rus");
- triangle tr,tr1; //вызов класса
- float a, b, c, d ,e , f;
- cout << "Введите стороны треугольника 1: ";
- cin >> a >> b >> c; // ввод сторон
- cout << "Введите стороны треугольника 2: ";
- cin >> d >> e >> f;
- tr.set(a, b, c);
- tr1.set(d,e,f);
- tr._info(); //вызов инфо
- tr1._info();
- cout << "Введите в какой кол-во раз увеличить стороны: ";
- float u;
- cin >> u;
- tr._uvel(u); //вызов увел
- tr1._uvel(u);
- tr._angle(); //вызов углов
- tr1._angle();
- tr.~triangle();
- tr1.~triangle();
- cout << "Счетчик 1: " << tr.getNumber() << endl;
- cout << "Счетчик 2: " << tr1.getNumber() << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment