Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <vector>
- using namespace std;
- class triangle{
- double a,b,c;
- public:
- void set(double a, double b, double c){
- this->a = a;
- this->b = b;
- this->c = c;
- }
- void _info(){
- cout << "Сторона а: " << a << endl;
- cout << "Сторона b: " << b << endl;
- cout << "Сторона c: " << c << endl;
- cout << "Периметр: " << a+b+c << endl;
- cout << "Площадь: " << _sqrt() << endl;
- }
- void _uvel(double uvel){
- cout << "Увеличили а в " << uvel << " раз: "<< a*uvel << endl;
- cout << "Увеличили b в " << uvel << " раз: "<< b*uvel << endl;
- cout << "Увеличили c в " << uvel << " раз: "<< c*uvel << endl;
- }
- void _angle(){
- cout << "Угол А: " << acos((b*b+c*c-a*a)/(2*b*c)) * 180 / M_PI << endl;
- cout << "Угол B: " << acos((a*a+c*c-b*b)/(2*a*c)) * 180 / M_PI<< endl;
- cout << "Угол С: " << acos((a*a+b*b-c*c)/(2*a*b)) * 180 / M_PI<< endl;
- }
- double _sqrt(){
- double p = (a+b+c)/2;
- return (double)sqrt(p*(p-a)*(p-b)*(p-c));
- }
- };
- class okr:public triangle{
- private:
- double radius1, radius2;
- public:
- void sett(double radius1, double radius2){
- this->radius1 = radius1;
- this->radius2 = radius2;
- }
- double r1(){return radius1;}
- double r2(){return radius2;}
- void _info_okr(){
- cout << "Длина окружности: " << lenght1() << endl;
- cout << "Площадь окружности: " << square1() << endl;
- }
- double lenght1(){
- return (double)3.14*2*radius1;
- }
- double square1(){
- return (double)3.14*radius1*radius1;
- }
- double lenght2(){
- return (double)3.14*2*radius2;
- }
- double square2(){
- return (double)3.14*radius2*radius2;
- }
- };
- class ravn_triangle: public okr{
- private:
- double a,b;
- public:
- void set1(double a, double b){
- this->a = a;
- this->b = b;
- }
- void _info1(){
- double p = (a+b+b)/2;
- cout << "Сторона а: " << a << endl;
- cout << "Сторона b: " << a << endl;
- cout << "Сторона c: " << b << endl;
- cout << "Периметр: " << a+b+b << endl;
- cout << "Площадь: " << (double)sqrt(p*(p-a)*(p-b)*(p-b)) << endl;
- cout << "Длина описанной окружности: " << lenght1() << endl;
- cout << "Площадь описанной окружности: " << square1() << endl;
- cout << "Длина вписанной окружности: " << lenght2() << endl;
- cout << "Площадь вписанной окружности: " << square2() << endl;
- }
- double _sqrt1(){
- double p = (a+b+b)/2;
- return sqrt(p*(p-a)*(p-b)*(p-b));
- }
- void changes(){
- cout << "Радиус описанной окружности: " << r1()*r2() << endl;
- cout << "Длина основания: " << r2() * b << endl;
- }
- };
- int main(){
- triangle tr;
- ravn_triangle tr1;
- vector <double> arr;
- double n,m,a,b,c;
- cout << "Введите кол-во треугольников: ";
- cin >> n;
- cout << "Введите кол-во равнобедренных треугольников: ";
- cin >> m;
- int count = 0;
- double radius1, radius2;
- cout << "Введите радиус описанной и вписанной окружности: ";
- cin >> radius1 >> radius2;
- tr1.sett(radius1, radius2);
- for(int i=0;i<n;i++){
- cout << "Введите стороны треугольника " << i+1 << ": ";
- cin >> a >> b >> c;
- tr.set(a,b,c);
- count+=tr._sqrt();
- tr._info();
- }
- cout << "Средняя площадь треугольников: " << count/n << endl;
- int d,e;
- int count1 = 999999;
- for(int i=0;i<m;i++){
- cout << "Введите стороны равнобедренного треугольника " << i+1 << ":";
- cin >> d >> e;
- tr1.set1(d,e);
- if(tr1._sqrt1() < count1) {
- count1 = tr1._sqrt1();
- }
- tr1._info1();
- }
- cout << "Минимальная площадь равнобедренного треугольника: " << count1;
- cout << endl;
- tr1.changes();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement