/*create a program with an area function that is overloaded to calcuilate
the area of a circle (given the radius)
the area of rectangle (given length and width)
the area of triangle (given the three side of the triangle)*/
#include <iostream>
using namespace std;
#include <cmath>
#define PI 3.14159
// Area of a circle
double area(double radius) {
return PI * radius * radius;
}
// Area of a rectangle
double area(double length, double width) {
return length * width;
}
// Area of a triangle using Heron's formula
double area(double a, double b, double c) {
double s = (a + b + c) / 2; // semi-perimeter
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main() {
std::cout << "Area of circle (r=5): " << area(5.0) << std::endl;
std::cout << "Area of rectangle (l=4, w=6): " << area(4.0, 6.0) << std::endl;
std::cout << "Area of triangle (sides=3,4,5): " << area(3.0, 4.0, 5.0) << std::endl;
return 0;
}
LypjcmVhdGUgYSBwcm9ncmFtIHdpdGggYW4gYXJlYSBmdW5jdGlvbiB0aGF0IGlzIG92ZXJsb2FkZWQgdG8gY2FsY3VpbGF0ZQp0aGUgYXJlYSBvZiBhIGNpcmNsZSAoZ2l2ZW4gdGhlIHJhZGl1cykKdGhlIGFyZWEgb2YgcmVjdGFuZ2xlIChnaXZlbiBsZW5ndGggYW5kIHdpZHRoKQp0aGUgYXJlYSBvZiB0cmlhbmdsZSAoZ2l2ZW4gdGhlIHRocmVlIHNpZGUgb2YgdGhlIHRyaWFuZ2xlKSovCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2luY2x1ZGUgPGNtYXRoPgoKI2RlZmluZSBQSSAzLjE0MTU5CgovLyBBcmVhIG9mIGEgY2lyY2xlCmRvdWJsZSBhcmVhKGRvdWJsZSByYWRpdXMpIHsKICAgIHJldHVybiBQSSAqIHJhZGl1cyAqIHJhZGl1czsKfQoKLy8gQXJlYSBvZiBhIHJlY3RhbmdsZQpkb3VibGUgYXJlYShkb3VibGUgbGVuZ3RoLCBkb3VibGUgd2lkdGgpIHsKICAgIHJldHVybiBsZW5ndGggKiB3aWR0aDsKfQoKLy8gQXJlYSBvZiBhIHRyaWFuZ2xlIHVzaW5nIEhlcm9uJ3MgZm9ybXVsYQpkb3VibGUgYXJlYShkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjKSB7CiAgICBkb3VibGUgcyA9IChhICsgYiArIGMpIC8gMjsgLy8gc2VtaS1wZXJpbWV0ZXIKICAgIHJldHVybiBzcXJ0KHMgKiAocyAtIGEpICogKHMgLSBiKSAqIChzIC0gYykpOwp9CgppbnQgbWFpbigpIHsKICAgIHN0ZDo6Y291dCA8PCAiQXJlYSBvZiBjaXJjbGUgKHI9NSk6ICIgPDwgYXJlYSg1LjApIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiQXJlYSBvZiByZWN0YW5nbGUgKGw9NCwgdz02KTogIiA8PCBhcmVhKDQuMCwgNi4wKSA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgIkFyZWEgb2YgdHJpYW5nbGUgKHNpZGVzPTMsNCw1KTogIiA8PCBhcmVhKDMuMCwgNC4wLCA1LjApIDw8IHN0ZDo6ZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==