#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Shape {
protected:
float width, height;
public:
Shape(float width = 0, float height = 0) {
this->width = width;
this->height = height;
}
friend ostream &operator<< (ostream &os, Shape &s) {
os << s.width << " x " << s.height;
return os;
}
};
class Triangle: public Shape {
private:
public:
Triangle(float width = 0, float height = 0):Shape(width, height) {
}
void nhap() {
cout << "Nhap canh day: "; cin >> width;
cout << "Nhap chieu cao: "; cin >> height;
}
float area() {
return 0.5 * width * height;
}
};
class Rectangle: public Shape {
private:
public:
Rectangle(float width = 0, float height = 0):Shape(width, height) {
}
float area() {
return width * height;
}
void nhap() {
cout << "Nhap chieu dai: "; cin >> width;
cout << "Nhap chieu rong: "; cin >> height;
}
};
int main () {
Triangle tamgiac;
Rectangle chunhat;
cout << "Nhap kich thuoc tam giac:\n"; tamgiac.nhap();
cout << "Nhap kich thuoc cua hinh chu nhat:\n"; chunhat.nhap();
cout << "\n> Tam giac kich thuoc " << tamgiac << ". Co dien tich " << tamgiac.area();
cout << "\n> Hinh chu nhat kich thuoc " << chunhat << ". Co dien tich " << chunhat.area();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIFNoYXBlIHsKcHJvdGVjdGVkOgoJZmxvYXQgd2lkdGgsIGhlaWdodDsKcHVibGljOgoJU2hhcGUoZmxvYXQgd2lkdGggPSAwLCBmbG9hdCBoZWlnaHQgPSAwKSB7CgkJdGhpcy0+d2lkdGggPSB3aWR0aDsKCQl0aGlzLT5oZWlnaHQgPSBoZWlnaHQ7Cgl9CglmcmllbmQgb3N0cmVhbSAmb3BlcmF0b3I8PCAob3N0cmVhbSAmb3MsIFNoYXBlICZzKSB7CgkJb3MgPDwgcy53aWR0aCA8PCAiIHggIiA8PCBzLmhlaWdodDsKCgkJcmV0dXJuIG9zOwoJfQp9OwpjbGFzcyBUcmlhbmdsZTogcHVibGljIFNoYXBlIHsKcHJpdmF0ZToKcHVibGljOgoJVHJpYW5nbGUoZmxvYXQgd2lkdGggPSAwLCBmbG9hdCBoZWlnaHQgPSAwKTpTaGFwZSh3aWR0aCwgaGVpZ2h0KSB7Cgl9Cgl2b2lkIG5oYXAoKSB7CgkJY291dCA8PCAiTmhhcCBjYW5oIGRheTogIjsgY2luID4+IHdpZHRoOwoJCWNvdXQgPDwgIk5oYXAgY2hpZXUgY2FvOiAiOyBjaW4gPj4gaGVpZ2h0OwoJfQoJZmxvYXQgYXJlYSgpIHsKCQlyZXR1cm4gMC41ICogd2lkdGggKiBoZWlnaHQ7Cgl9Cn07CmNsYXNzIFJlY3RhbmdsZTogcHVibGljIFNoYXBlIHsKcHJpdmF0ZToKcHVibGljOgoJUmVjdGFuZ2xlKGZsb2F0IHdpZHRoID0gMCwgZmxvYXQgaGVpZ2h0ID0gMCk6U2hhcGUod2lkdGgsIGhlaWdodCkgewoJfQoJZmxvYXQgYXJlYSgpIHsKCQlyZXR1cm4gd2lkdGggKiBoZWlnaHQ7Cgl9Cgl2b2lkIG5oYXAoKSB7CgkJY291dCA8PCAiTmhhcCBjaGlldSBkYWk6ICI7IGNpbiA+PiB3aWR0aDsKCQljb3V0IDw8ICJOaGFwIGNoaWV1IHJvbmc6ICI7IGNpbiA+PiBoZWlnaHQ7Cgl9Cn07CgppbnQgbWFpbiAoKSB7CglUcmlhbmdsZSB0YW1naWFjOwoJUmVjdGFuZ2xlIGNodW5oYXQ7CgoJY291dCA8PCAiTmhhcCBraWNoIHRodW9jIHRhbSBnaWFjOlxuIjsgdGFtZ2lhYy5uaGFwKCk7Cgljb3V0IDw8ICJOaGFwIGtpY2ggdGh1b2MgY3VhIGhpbmggY2h1IG5oYXQ6XG4iOyBjaHVuaGF0Lm5oYXAoKTsKCgljb3V0IDw8ICJcbj4gVGFtIGdpYWMga2ljaCB0aHVvYyAiIDw8IHRhbWdpYWMgPDwgIi4gQ28gZGllbiB0aWNoICIgPDwgdGFtZ2lhYy5hcmVhKCk7Cgljb3V0IDw8ICJcbj4gSGluaCBjaHUgbmhhdCBraWNoIHRodW9jICIgPDwgY2h1bmhhdCA8PCAiLiBDbyBkaWVuIHRpY2ggIiA8PCBjaHVuaGF0LmFyZWEoKTsKCglyZXR1cm4gMDsKfQo=