Ayuda con problema de figuras

Iniciado por Jay, 5 Agosto 2019, 10:00 AM

0 Miembros y 1 Visitante están viendo este tema.

Jay

Hola, como estan amigos , veran tengo un problema que consiste en: Un programa donde se introduzcan numero de lados, area y perimetro y detecte a que figura geometrica corresponde: Circulo, triangulo, rectangulo, cuadrado, trapecio o rombo. He estado batallando para saber si es un rectangulo y el trapecio los otros creo que yo que ya estan bien pero aun asi no se como realizar el rectangulo y trapecio podria poner perimeto/2 - b = a y despues usar la formula del area



#include<iostream>
#include<math.h>

using namespace std;


int main()
{

float numeroLados, perimetro, area, ladoCuadrado, perimetroCuadrado, baseRombo, alturaRombo, a, b, ladosRectangulo;


    cout<<"Introduce el numero de lados de tu figura: "<<endl;
    cin>>numeroLados;
    cout<<"Introduce el perimetro de la figura: " <<endl;
    cin>>perimetro;
    cout<<"Introduce el area de la figura: "<<endl;

    cin>>area;

        ladoCuadrado = sqrt(area);
        perimetroCuadrado = (perimetro / 4.0f);

        baseRombo = (perimetro / 4.0f);
        alturaRombo = (area / baseRombo );


        if(numeroLados == 3)
        {
            cout<<"Es un triangulo";


        }
        else if (numeroLados == 0)
        {
           cout<<"Es un circulo";
        }
        else if ((numeroLados == 4) && (ladoCuadrado == perimetroCuadrado) )
        {
            cout<<"Es un cuadrado";
        } else {


            cout<<"Introduce un numero de lados valido";

        }



        if((numeroLados == 4) && (baseRombo * alturaRombo == area))
        {
            cout<<"Es un rombo";

        }else if(numeroLados == 4)
        {

            cout<<"Es trapecio";


        }


return 0;


}



K-YreX

No sé de dónde habrás sacado tal ejercicio pero mi respuesta después de haberle dado algunas vueltas es que no puedes encontrar una solución con esos datos. Para ello lo único que voy a hacer es ponerte un ejemplo...
Datos:

numeroLados = 4
perimetro = 20
area = 24


Solución: (Soluciones más bien :rolleyes:)

Rectangulo con base = 6 y altura = 4 (o viceversa)
Rombo con base (lado) = 5 y altura = 4.8

Puedes comprobarlo con las fórmulas... Ambas soluciones satisfacen todas las condiciones por lo que sólo con esos datos es imposible diferenciar si la figura en cuestión es un rectángulo o un rombo.

Revisa el ejercicio ya que puede que te hayas dejado alguna condición como otro dato más o que los valores sólo puedan ser enteros o algo por el estilo. O que la solución englobe al rectángulo y rombo dentro de la misma opción, es decir, distinguir entre: cuadrado, rectángulo/rombo, trapecio.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;