[ Foro de C++ ]

Ejercicio de clase

17-Jul-2018 21:30
Moiss Antn
1 Respuestas

Buenas tardes, el día de hoy el profesor mandó una guía a resolver en donde tengo una duda sobre un ejercicio de dicha guía, a continuación está el enunciado.

Supongamos que tenemos un triángulo rectángulo y queremos calcular y mostrar la longitud de los lados A y B al igual que la superficie total S, conociendo para ello la longitud del lado C y el Ángulo (Beta).


#include <iostream>
#include <math.h>
#include <iomanip>
#define PI 3.14159265
using namespace std;
main ()
{
     float La, Lb, Lc, S;
     int B;
     cout<< "ingrese el lado c:";
     cin>> Lc;
     B=90;
     cout<< "el SenB es:"<<setprecision (2)<<sin(B*PI/180)<<endl;
     cout<< "para calcular el lado b:"<<endl;
     cout<< Lc<<"*"<<sin(B*PI/180)<<"= "<<Lc*sin(B*PI/180)<<endl;
     Lb=Lc*sin(B*PI/180);
     cout<< "el lado b del triangulo rectangulo es:"<<Lb<<endl;
     cout<< "el CosB es:"<<setprecision (2)<<cos(B*PI/180)<<endl;
     cout<< "para calcular el lado a:"<<endl;
     cout<< Lc<<"*"<<cos(B*PI/180)<<"= "<<Lc*cos(B*PI/180)<<endl;
     La= Lc*cos(B*PI/180);
     cout<< "el lado a del triangulo rectangulo es:"<<La<<endl;
     cout<< "para calcular la superficie:"<<endl;
     cout<< La<<"*"<<Lb<<"= "<<La*Lb<<"/"<<2<<"= "<<La*Lb/2<<endl;
     S=La*Lb/2;
     cout<< "la superficie del triangulo rectangulo es:"<<La*Lb/2<<endl;
     system ("pause");
     return 0;
     }


Cuando ejecuto el programa me dice que el SenB es 1 mientras que el CosB es 0 (pero en el programa me da un resultado de 1.8e-009) yo pensaba que el programa estaba malo pero el profesor me dijo que en realidad está bien... sólo debo manejar los decimales a mi antojo y se acomodará, logré disminuir el rango de decimales a sólo 2 pero a pesar de que simplifique los decimales me sigue mostrando como parte del resultado el "e-00".

Espero que puedan ayudarme :(


11-Aug-2018 12:45
Nacho Cabanes (+84)

Si quieres que salga exactamente con 2 decimales tendrás que hacer:


cout << setprecision (2) << fixed << miDato;


 






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)