Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Jay en 5 Agosto 2019, 10:00 am



Título: Ayuda con problema de figuras
Publicado por: Jay en 5 Agosto 2019, 10:00 am
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

Código:

#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;


}




Título: Re: Ayuda con problema de figuras
Publicado por: K-YreX en 5 Agosto 2019, 15:15 pm
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:
Código:
numeroLados = 4
perimetro = 20
area = 24

Solución: (Soluciones más bien :rolleyes:)
Código:
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.