elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Teorema de Pitágoras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: [C] Teorema de Pitágoras  (Leído 19,971 veces)
STANHMAL

Desconectado Desconectado

Mensajes: 107


ςταηhmαl - hηαfε


Ver Perfil WWW
[C] Teorema de Pitágoras
« en: 7 Julio 2010, 04:45 am »

Holas

Esta aburrido así que decidí hacer esta pequeña aplicación, supongo que no tocara explicarla puesto que todo el mundo la conoce  :xD

Código
  1. /************************************
  2.  * Solución al Teorema de Pitágoras *
  3.  ************************************
  4.  *       Creado por STANHMAL        *
  5.  ************************************/
  6.  
  7. #include <stdio.h>
  8. #include <math.h>
  9. #include <stdlib.h>
  10.  
  11. enum stan {continua};
  12.  
  13. int main()
  14. {
  15. int x;
  16. double c, c2, C, C2, h, h2;
  17. enum stan hmal;
  18.  
  19. printf("\n **************************************\n");
  20. printf(" *  Solución al Teorema de Pitágoras  *\n");
  21. printf(" **************************************\n\n");
  22. hmal = continua;
  23. while (hmal == continua) {
  24. printf("\n1. Para hallar un cateto.\n");
  25. printf("2. Para hallar la hipotenusa.\n3. Para salir.\n");
  26. printf("Opción escogida: ");
  27. scanf("%d", &x);
  28.  
  29. if (x == 1) {
  30. printf("Introduzca el valor de un cateto: ");
  31. scanf("%lf", &c);
  32. printf("Introduzca el valor de la hipotenusa: ");
  33. scanf("%lf", &h);
  34. c2 = c * c;
  35. h2 = h * h;
  36. C = sqrt(h2 - c2);
  37. printf("El cateto tiene un valor de: %f\n", C);
  38. printf("\nDesea continuar o salir.\n1. continuar 2. salir ");
  39. scanf("%d", &x);
  40. if (x == 1){
  41. hmal = continua;
  42. }
  43. else if (x == 2) {
  44. exit(0);
  45. }
  46. }
  47. else if (x == 2) {
  48. printf("Introduzca el valor del cateto opuesto: ");
  49. scanf("%lf", &c);
  50. printf("Introduzca el valor del cateto adyacente: ");
  51. scanf("%lf", &C);
  52. c2 = c * c;
  53. C2 = C * C;
  54. h = sqrt(C2 + c2);
  55. printf("El valor de la hipotenusa es: %f\n", h);
  56. printf("\nDesea continuar o salir.\n1. continuar 2. salir ");
  57. scanf("%d", &x);
  58. if (x == 1){
  59. hmal = continua;
  60. }
  61. else if (x == 2) {
  62. exit(0);
  63. }
  64. }
  65. else if (x == 3) {
  66. exit(0);
  67. }
  68. else {
  69. printf("Error, opción no definida.\n");
  70. }
  71. }
  72. return 0;
  73. }
  74.  

Se que se puede acortar el code, pero bueno, es mientras aprendo bien C
espero criticas constructivas ^^

$4!u2


« Última modificación: 7 Julio 2010, 15:25 pm por STANHMAL » En línea

Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: [C] Teorema de Pitágoras
« Respuesta #1 en: 7 Julio 2010, 04:51 am »

"Se que se puede acortar el code"
+1
Acortalo lo mas que puedas y ahi si te hago alguna critica... Saludos...


En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



STANHMAL

Desconectado Desconectado

Mensajes: 107


ςταηhmαl - hηαfε


Ver Perfil WWW
Re: [C] Teorema de Pitágoras
« Respuesta #2 en: 7 Julio 2010, 04:55 am »

...

Ya ando pensó como acortarlo bastante, haber como me va.

$4!u2
En línea

Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [C] Teorema de Pitágoras
« Respuesta #3 en: 7 Julio 2010, 07:00 am »

Tal vez debieras limpiar el buffer de entrada.
Usar fflush(stdout).
Y no hace falta que uses exit(0), con el return 0 bastaba.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: [C] Teorema de Pitágoras
« Respuesta #4 en: 7 Julio 2010, 07:47 am »

el buffer de entrada es fflush(stdin) xD
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [C] Teorema de Pitágoras
« Respuesta #5 en: 7 Julio 2010, 07:51 am »

el buffer de entrada es fflush(stdin) xD

Sin comentarios.  :-\
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: [C] Teorema de Pitágoras
« Respuesta #6 en: 7 Julio 2010, 08:15 am »

Leo, el bufer de entrada es stdin. El de salida es stdout.

fflush solo se puede utilizar con bufers de salida, para obligar a que se vacien, por ejemplo cuando hay un bufer asociado a un fichero de salida, y se quiere escribir la informacion del bufer en el fichero antes de que este completo...

fflush(stdin), funciona solo bajo windows. Al aplicar fflush a cualquier flujo que no sea de salida, el comportamiento queda indefinido.

Revisa este post de Littlehorse.

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [C] Teorema de Pitágoras
« Respuesta #7 en: 7 Julio 2010, 08:46 am »

Leo, el bufer de entrada es stdin. El de salida es stdout.

fflush solo se puede utilizar con bufers de salida, para obligar a que se vacien, por ejemplo cuando hay un bufer asociado a un fichero de salida, y se quiere escribir la informacion del bufer en el fichero antes de que este completo...

fflush(stdin), funciona solo bajo windows. Al aplicar fflush a cualquier flujo que no sea de salida, el comportamiento queda indefinido.

Revisa este post de Littlehorse.

¡Saludos!
Tal vez debieras limpiar el buffer de entrada.
Usar fflush(stdout).
Y no hace falta que uses exit(0), con el return 0 bastaba.

Lo de "Usar fflush(stdout)" no tiene nada que ver con la primera línea, es por eso que está en una segunda línea. Yo sé que el buffer de entrada es stdin y sé también que fflush() con un buffer de entrada da como resultado un comporamiento indefinido en algunos compiladores.

La segunda recomendación no tiene nada que ver con la primera.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
globsharp

Desconectado Desconectado

Mensajes: 84


No me mires


Ver Perfil
Re: [C] Teorema de Pitágoras
« Respuesta #8 en: 7 Julio 2010, 13:19 pm »

Estaría interesante aligerar el main repartiendo la funcionalidad entre diferentes procedimientos, normalmente el main solo debería encargarse de invocar a dichos procedimientos :)

En línea

Duérmete
STANHMAL

Desconectado Desconectado

Mensajes: 107


ςταηhmαl - hηαfε


Ver Perfil WWW
Re: [C] Teorema de Pitágoras
« Respuesta #9 en: 7 Julio 2010, 15:32 pm »

ya acorte un poco el código, a ver que tal me quedo.

Y no hace falta que uses exit(0), con el return 0 bastaba.

te refieres a reemplazar el exit por el return?
porque si es así, lo probé y no sirvió.

y con respecto al flash fflush, bueno, no lo entiendo muy bien.

$4!u2
En línea

Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Teorema del seno
Programación C/C++
ChicoMaravilla 3 3,159 Último mensaje 10 Noviembre 2011, 13:55 pm
por ChicoMaravilla
Teorema Binomial
Programación C/C++
Black Lotus 5 4,750 Último mensaje 18 Abril 2013, 21:42 pm
por leosansan
Teorema del Binomio
Programación C/C++
Black Lotus 1 5,542 Último mensaje 23 Mayo 2013, 16:06 pm
por leosansan
Triples de pitagoras C++ (Ayuda sobre optimizacion)
Programación C/C++
erest0r 2 7,756 Último mensaje 10 Septiembre 2013, 07:02 am
por erest0r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines