You are on page 1of 4

Лабораторна робота №3

з дисципліни «Програмування-2»

Тема: «Розробка програм з використанням успадкування»

Завдання: Створити базовий клас геометричної плоскої фігури, що містить:


 властивості визначення фігури, наприклад, сторони, радіус, кути і т.п.;
 методи обчислення периметру та площини фігури.
Створити похідний клас геометричної об’ємної фігури, що додатково містить:
 властивість – висоту;
 методи обчислення площини поверхні та об’єму фігури.
В головній програмі побудувати об’єкт плоскої фігури та об’єкт об’ємної фігури та
виконати наступне:
 задати властивості об’єктів;
 вивести на екран для плоскої фігури:
- периметр;
- площу;
 вивести на екран для об’ємної фігури:
- периметр основи;
- площу основи;
- площу поверхні;
- об’єм фігури.

Використати конструктори з параметрами в обох класах для завдання початкових


значень властивостей.

Варіант №6: с-т С-92 н.г. Обуховець О.В.

1. Математичне забезпечення
Площа основи:
ab
 S=
2
Периметр рівнобедреного трикутника:
 Р = a+b+c
Площа бічної поверхні рівнобедреного трикутника:
 Sб .п = Pо* H
Площа призми:
 S = Sб + 2 So
2. Алгоритм

3. Програма
#include <iostream>

using namespace std;

class right_triangle{
protected:
double a, b, c, H, So, P, SB, V, Sp;
public:
right_triangle(double, double, double, double);
void calc_So();
void calc_P();
double getSo(){return So;};
double getP(){return P;};
};

right_triangle::right_triangle(double myA, double myB, double myC, double myH) {


a = myA;
b = myB;
c = myC;
H = myH;
}

void right_triangle::calc_So() {So = a * b / 2; }


void right_triangle::calc_P() { P = 2*a + b; }

class Prism: public right_triangle{


public:
Prism(double, double, double, double);
void calc_SB();
void calc_V();
void calc_Sp();
double getSB(){return SB;}
double getV(){return V;}
double getSp(){return Sp;}
};

Prism::Prism(double l, double z, double q, double s):right_triangle(l, z, q, s){};


void Prism::calc_SB() { SB = P * H;}
void Prism::calc_V() { V = So * H; }
void Prism::calc_Sp() { Sp = SB + 2 * So;}

int main() {
double A, B, C, H;

cout << "Enter a: ";


cin >> A;
cout << "Enter b: ";
cin >> B;
cout << "Enter c: ";
cin >> C;
cout << "Enter H: ";
cin >> H;

try {
if ((A <= 0) || (B <= 0) || (C <= 0) || (H <= 0)){
throw 1;
}
}
catch (int e) {
cout << "Value of sides must be > 0! ";
exit(1);
}

Prism Calc_triangle(A, B, C, H);

Calc_triangle.calc_So();
Calc_triangle.calc_P();
Calc_triangle.calc_SB();
Calc_triangle.getSB();
Calc_triangle.calc_Sp();
Calc_triangle.calc_V();

cout << "Square of right triangle: " << Calc_triangle.getSo() << endl;
cout << "Perimeter of right triangle: " << Calc_triangle.getP() << endl;
cout << "Square of prism: " << Calc_triangle.getSp() << endl;
cout << "Volume of the prism: " << Calc_triangle.getV() << endl;

return 0;
}

4. Тести

№ Вхідні Очікувані результати Результати програми Висновок


дані
1 а=5 Square of right triangle: 10 Square of right triangle: 10 вірно
b=4 Perimeter of right triangle: 13 Perimeter of right triangle: 13
c=3 Square of prism: 124 Square of prism: 124
H=8 Volume of the prism: 80 Volume of the prism: 80
а=12
b=13 Value of sides must be > 0! Value of sides must be > 0!
2 вірно
c=15
H=-5
а=12.3 Square of right triangle: 49.2 Square of right triangle: 49.2
b=8 Perimeter of right triangle: 32.6 Perimeter of right triangle: 32.6
3 вірно
c=1.6 Square of prism: 421.14 Square of prism: 421.14
H=9.9 Volume of the prism: 487.08 Volume of the prism: 487.08
Висновки:

В ході виконання даної лабораторної роботи ми навчилися розробляти


програми з використанням успадкування, а саме: створювати базовий клас
геометричної фігури.
Тестування показало, що програма працює вірно.

You might also like