Hola!!
Veran, en vista de que no tengo nada mas que hacer ( :xD) me puse a hacer todos los algoritos que el profesor de geometría nos ha dado, y al ver que el de catetos me quedo tan largo cuando es algo tan censillo, pense en que se podrá simplificar.
#include <iostream>
#include <math.h>
#include <cstdlib>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char p;
float a,b,r;
while(a){
cout<<endl<<"\t\tTeorema de pitagoras";
cout<<endl<<endl<<"\tUsando C^2=a^2+b^2."<<endl<<endl;
cout<<"\n\n\n\tTienes el valor de la hipotenusa?(s/n):";
cin>>p;
switch(p)
{
case 's':
{
cout<<"\tDame el valor de la hipotenusa:";cin>>a;
cout<<"\tDame el valor del cateto:";cin>>b;
r=sqrt((a*a)-(b*b));
if(r==((int)r))
{
cout<<"\tEl valor del cateto es:"<<r;
}
else cout<<"\tEl valor de el cateto es:Sqr("<<(a*a)-(b*b)<<")";
break;
}
case 'n':
{
cout<<"\tDame el valor del cateto a:";cin>>a;
cout<<"\tDame el valor del cateto b:";cin>>b;
r=sqrt((a*a)+(b*b));
if(r==((int)r))
{
cout<<"\tEl valor de la hipotenusa es:"<<r;
}
else cout<<"\tEl valor de el cateto es:Sqr("<<(a*a)+(b*b)<<")";
break;
}
}
cin.get();cin.get();
system("CLS");
}
return 0;
}
Ustedes que dicen, quedo bien hecho o se le podría añadir o quitar algo, etc.
Gracias de antemano. ;D
PD:Gracias Alien-Z, no me acorada que existía \t :P ya edite el código, y por lo de remplazar endl por \n, lo dices porque ahorra código o porque es preferible usar \n? Saludos!! ;D
Se ve largo por la cantidad de mensajes pero los cálculos en si están bien.
En vez de usar "cout << endl;" puedes poner al principio del mensaje siguiente "\n" y tienes el mismo efecto pero con menos código.
Otra cosa que no tiene mucho que ver, en vez de poner espacios asi:
Citarcout<<endl<<" Teorema de pitagoras";
Usa el tabulador (\t):
Citarcout<<endl<<"\t Teorema de pitagoras";
Puedes ponerlo las veces que quieras. No es nada improtante pero queda mejor de esta forma.
Sobre los cálculos creo que no se puede acortar más...
Saludos.