#include <bits/stdc++.h>

using namespace std;

class Shape {
public:
    double height, base;
    Shape(double h, double base) : height(h), base(base) {}
    virtual double getArea() = 0;
};

class Triangle : public Shape{
public:
    Triangle(double h, double base) : Shape(h, base){}
    virtual double getArea() {
        return base*height/2;
    }
};

class Rectangle : public Shape{
public:
    Rectangle(double h, double base) : Shape(h, base){}
    virtual double getArea() {
        return base*height;
    }
};

int main() {
    Shape *pointer;
    Triangle t(5, 6);
    Rectangle r(5, 7);
    pointer = &t;
    printf("%lf\n", pointer->getArea());
    pointer = &r;
    printf("%lf\n", pointer->getArea());
    return 0;
}

