Vladislav_Bezruk

Untitled

Oct 7th, 2021 (edited)
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.79 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. /*
  6.     a, b, c - сторони трикутрика
  7.     Triangle (float x, float y, float z) - констуктор ініціалізації списком
  8.     Triangle(const Triangle &src) - конструктор копіювання
  9.     friend Triangle operator - (const Triangle &a, const Triangle &b) - оператор - як дружня функція
  10.     bool operator > (Triangle &a) - оператор >
  11.     void set(char q) - SET
  12.     void show(char q) - SHOW
  13.     float calcP() { return a + b + c; } - обчислення периметра
  14.     void showCond(char q, float p) - друкування інформації з умовою що P() > p
  15. */
  16.  
  17.  
  18. class Triangle {
  19.     float a, b, c;
  20.    
  21.     public:
  22.         Triangle() { a = b = c = 0; cout << "Used empty constructor" << endl;}
  23.        
  24.         Triangle (float x, float y, float z) : a(x), b(y), c(z) { cout << "Used list constructor" << endl; }
  25.        
  26.         Triangle(const Triangle &src) { a = src.a; b = src.b; c = src.c; cout << "Used copy constructor" << endl; }
  27.        
  28.         friend Triangle operator - (const Triangle &a, const Triangle &b);
  29.        
  30.         bool operator > (Triangle &a) { return (calcP() > a.calcP()); }
  31.  
  32.         void set(char q);
  33.        
  34.         void show(char q);
  35.        
  36.         float calcP() { return a + b + c; }
  37.        
  38.         void showCond(char q, float p) {
  39.             if (calcP() > p) show(q);
  40.             else cout << "Triangle " << q << " perimeter < p" << endl << endl;
  41.         }  
  42. };
  43.  
  44. int main() {
  45.     Triangle C1;
  46.    
  47.     C1.set('1');
  48.    
  49.     Triangle C2(3, 4, 5);
  50.    
  51.     C2.show('2');
  52.    
  53.     Triangle C3 = C2;
  54.    
  55.     C3.show('3');
  56.    
  57.     Triangle C4;
  58.    
  59.     C4 = C1 - C2;
  60.    
  61.     C4.show('4');
  62.    
  63.     cout << "C4 > C1: " << (C4 > C1) << endl << endl;
  64.    
  65.     cout << "P of tiangle C1 = " << C1.calcP() << endl;
  66.     cout << "P of tiangle C2 = " << C2.calcP() << endl;
  67.     cout << "P of tiangle C3 = " << C3.calcP() << endl;
  68.     cout << "P of tiangle C4 = " << C4.calcP() << endl;
  69.    
  70.     int n;
  71.    
  72.     cout << endl << "Enter count of objects: ";
  73.     cin >> n;
  74.    
  75.     Triangle objs[n];
  76.    
  77.     for (int i = 0; i < n; i++) {
  78.         objs[i].set(i + '0');
  79.     }
  80.    
  81.     float p;
  82.     cout << endl << "Enter p: ";
  83.     cin >> p;
  84.    
  85.     cout << endl << "Result: " << endl;
  86.    
  87.     for (int i = 0; i < n; i++) {
  88.         cout << "P of triangle " << i + 1 << " = " << objs[i].calcP() << endl;
  89.         objs[i].showCond(i + '0', p);
  90.     }
  91.    
  92.     return 0;
  93. }
  94.  
  95. void Triangle :: set(char q) {
  96.     cout << "Enter info about triangle " << q << ":" << endl;
  97.     cout << "\ta: ";
  98.     cin >> a;
  99.     cout << "\tb: ";
  100.     cin >> b;
  101.     cout << "\tc: ";
  102.     cin >> c;
  103.     cout << endl;
  104. }
  105.        
  106. void Triangle :: show(char q) {
  107.     cout << "Info about triangle " << q << ":" << endl;
  108.     cout << "\ta: " << a << endl;
  109.     cout << "\tb: " << b << endl;
  110.     cout << "\tc: " << c << endl;
  111.     cout << endl;  
  112. }
  113.  
  114. Triangle operator - (const Triangle &a, const Triangle &b) {
  115.     Triangle c(a.a - b.a, a.b - b.b, a.c - b.c);
  116.     return c;
  117. }
Add Comment
Please, Sign In to add comment