OmegaUP: Problema 11818 - Área de Figuras Geométricas

Descripción

Encontrar el área de una figura geométrica, en caso de ser una figura válida.

Entrada

La primer linea contiene un entero n, el tipo de la figura la cual se desea obtener su área. Dependiendo el tipo de la figura la siguiente linea puede variar:


Cada uno de los valores estará separado por un espacio, cabe resaltar que en caso de ser una figura no válida, la segunda línea no contendrá ningún valor. El tipo de los valores de la segunda línea es flotante.

Salida

El nombre de la figura geométrica en la primera línea, y su área en la segunda línea. El valor del área se debe mostrar con 3 puntos decimales.

En caso de que se trate de una figura no válida la salida solo debe ser una línea con el mensaje "Figura no valida".

EntradaSalida
4
11.24
Circulo
396.902
2
29.668
Cuadrado
880.190
0
18.129 12.652 18.225
Trapecio
280.492
5
Figura no valida
1
22.282 17.02
Triangulo
189.620


Solución


#include <iostream>
#include <iomanip>

using namespace std;

class Geometria
{
public:
    static double areaTrapecio(double baseMayor, double baseMenor, double altura);
    static double areaTriangulo(double base, double altura);
    static double areaCuadrado(double lado);
    static double areaRectangulo(double base, double altura);
    static double areaCirculo(double radio);
};

double Geometria::areaTrapecio(double baseMayor, double baseMenor, double altura)
{
    return ((baseMenor + baseMayor) / 2) * altura;
}

double Geometria::areaTriangulo(double base, double altura)
{
    return (base * altura) / 2;
}

double Geometria::areaCuadrado(double lado)
{
    return (lado * lado);
}

double Geometria::areaRectangulo(double base, double altura)
{
    return (base * altura);
}

double Geometria::areaCirculo(double radio)
{
    return 3.1416 * (radio * radio);
}

int main() {
    int opcion;
    double bMenor, bMayor, altura, base, radio;

    cin >> opcion;
    cout << fixed << setprecision(3);

    switch (opcion) {
    case 0:
        cout << "Trapecio" << endl;
        cin >> bMenor >> bMayor >> altura;
        cout << Geometria::areaTrapecio(bMenor, bMayor, altura);
        break;
    case 1:
        cout << "Triangulo" << endl;
        cin >> base >> altura;
        cout <<  Geometria::areaTriangulo(base, altura);
        break;
    case 2:
        cout << "Cuadrado" << endl;
        cin >> base;
        cout <<  Geometria::areaCuadrado(base);
        break;
    case 3:
        cout << "Rectangulo" << endl;
        cin >> base >> altura;
        cout <<  Geometria::areaRectangulo(base, altura);
        break;
    case 4:
        cout << "Circulo" << endl;
        cin >> radio;
        cout <<  Geometria::areaCirculo(radio);
        break;
    default:
        cout << "Figura no valida";
        break;
    }

  return 0;
}

Referencias


Si te ha servido la solucion a este problema no olvides dejar un comnetario en la parte de abajo, comparte cualquier sugerencia o duda que tengas.

Comentarios