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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Les presento mi calculadora de ncr!!!(ahora si que si!!!)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Les presento mi calculadora de ncr!!!(ahora si que si!!!)  (Leído 15,285 veces)
flacc


Desconectado Desconectado

Mensajes: 854


Ver Perfil WWW
Les presento mi calculadora de ncr!!!(ahora si que si!!!)
« en: 14 Mayo 2010, 22:38 pm »

hola, se preguntarán alguno que diablos es ncr, bueno mas especificamente es una parte del Teorema del binomio.

Mas especificamente es:


Entonces como en mis ratos libres y de oseo aprendo C, y dado que no tengo para comprarme una calculadora de esas Casio y que solo tengo una de esas chinas o japonesas, en fin, me hice mi propia calculadora para eso que entrega detalladamente los resultados para comprobarlos(si quieren a mano)...

Quiero agradecer al usuario dr.~ que se dio el trabajo de ayudarme con una duda... en  fin... y al foro.elhacker.net (que es genial ;-))
esta echa en c con el compilador dev c/c++, como dije antes no me resulta el [ code=c][/code ] asi que lo pongo de forma normal, si algun moderador lo puede arreglar se lo agradecería...
espero que a alguien le sirva tanto como a mi, saludos, gracias por la ayuda y si ven que le falta algo o quieren  aportar algo diganmelo y lo agrego.. (tengan en cuenta que tengo 17 y estoy aprendiendo asi que pongan el codigo para agregarlo)...

Código
  1. /* NCR Calculator v. 1.0.6 <versión estandar>*/
  2. /* foro.elchacker.net */
  3. #include <stdio.h>
  4.  
  5. int
  6. main( void )
  7. {
  8. signed long n, k, nf, kf, resta, restaf, x, y;
  9. char opcion;
  10. int ch;
  11.  
  12. do
  13. {
  14. printf( "\nIngrese n y k: " );
  15. fflush( stdout);
  16. scanf( "%ld %ld", &n, &k );
  17. while ( (ch = fgetc( stdin )) != EOF && ch != '\n' );
  18.  
  19. nf = 1;
  20. kf = 1;
  21. resta = n - k;
  22. restaf = 1;
  23.  
  24. while ( n > 1 ) /* factorial de n */
  25. {
  26. nf *= n--;
  27. }
  28.  
  29. while ( k > 1 ) /* factorial de k */
  30. {
  31. kf *= k--;
  32. }
  33.  
  34. while ( resta > 1 ) /* factorial de (n - k) */
  35. {
  36. restaf *= resta--;
  37. }
  38.  
  39. x = kf * restaf; /* k! * (n - k)! */
  40. y = nf / x; /* n! / (k! * (n - k)!) */
  41.  
  42. /* resultados */
  43. printf( "\nn! = %ld\n"
  44. "k! = %ld\n"
  45. "(n - k)! = %ld\n"
  46. "k! * (n - k)! = %ld\n"
  47. "n! / [k! (n - k)!] = %ld\n"
  48. "--------------------------\n"
  49. "Resultado final (ncr): %ld\n", nf, kf, restaf, x, y, y );
  50.  
  51. printf( "\nContinuar? S/n: " );
  52. fflush( stdout );
  53. scanf( "%c", &opcion );
  54. while ( (ch = fgetc( stdin )) != EOF && ch != '\n' );
  55. }
  56. while ( opcion == 's' || opcion == 'S' );
  57.  
  58. return 0;
  59. }
  60.  
  61.  

ya.. y aunque no entendi mucho acerca de limpiar el buffer y eso de la consola..
ya esta estandarizada gracias a nicolas_cof...
de todas fomas conservo la version antigua por seacaso... hasta le hice un icono.. pero en fin... todavia no he legado a esa parte del buffer... solo se pocas cosas.... y sigo quebrandome la cabesa con eso de los signos logicos y la tabla de verdad de los operdadores logicos que aparece en el libro introduccion a la programacion en c...

haci que ya esta... saludoss y gracias por tomarse la molestia de entrar  a ver mi post...


« Última modificación: 19 Noviembre 2010, 00:51 am por mini_nauta » En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Les presento mi calculadora de ncr!!!
« Respuesta #1 en: 14 Mayo 2010, 23:15 pm »

[ code=c]  [/code ]


En línea

flacc


Desconectado Desconectado

Mensajes: 854


Ver Perfil WWW
Re: Les presento mi calculadora de ncr!!!
« Respuesta #2 en: 15 Mayo 2010, 02:44 am »

gracias... no tenia idea...
En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Les presento mi calculadora de ncr!!!
« Respuesta #3 en: 15 Mayo 2010, 13:27 pm »

Si le quitas las llamadas a System tu aplicación será multiplataforma  ;D
En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Les presento mi calculadora de ncr!!!
« Respuesta #4 en: 15 Mayo 2010, 13:34 pm »

Si le quitas las llamadas a System tu aplicación será multiplataforma  ;D

+1. Estás haciendo:

Código
  1. system("pause>nul");


Esto no es standard, puedes utilizar getchar() de la librería stdio, que la estás utilizando en tu código.

Saludos  :P
« Última modificación: 26 Agosto 2010, 09:56 am por Horricreu » En línea

Og.


Desconectado Desconectado

Mensajes: 822


Aprendiendo de la vida


Ver Perfil
Re: Les presento mi calculadora de ncr!!!
« Respuesta #5 en: 15 Mayo 2010, 16:42 pm »

Deberías de tener la variable y en punto flotante y hacer:
Código
  1. y = (float)nf/(float)x

Así tendrás mas presicion en tu solución.

Saludos.
En línea

|-
flacc


Desconectado Desconectado

Mensajes: 854


Ver Perfil WWW
Re: Les presento mi calculadora de ncr!!!
« Respuesta #6 en: 16 Mayo 2010, 03:54 am »

gracias por los consejos, y eso de los puntos flotantes no lo entendi mucho pero lo probaré..
ojala me pudieran explicar..
saludos y gracias..
En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Les presento mi calculadora de ncr!!!
« Respuesta #7 en: 17 Mayo 2010, 17:34 pm »

Lo que te dice Og. es que la variable que guarda el resultado la declares como float , te mostrara los decimales y será mas presiso ...
En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
flacc


Desconectado Desconectado

Mensajes: 854


Ver Perfil WWW
Re: Les presento mi calculadora de ncr!!!
« Respuesta #8 en: 17 Mayo 2010, 21:38 pm »

gracias... voy a modificar el post con las mejoras que me han dicho...
hasta el momento tengo lo de float pero lo del getchar lo estoy investigando...
cuando lo tenga listo modifico el post..
saludoss y gracias
« Última modificación: 17 Mayo 2010, 22:08 pm por mini_nauta » En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Les presento mi calculadora de ncr!!!(modificado con el nuevo codigo!!!)
« Respuesta #9 en: 18 Mayo 2010, 18:26 pm »

Continua sin ser standard...  >:D

Te dije, que podías utilizar getchar() de la librería stdio y, así no hace falta que uses la maldita conio con su getche() :¬¬

Venga, que te falta un pequeño paso para ser multiplataforma...

Saludos :P

EDITO: también puedes quitar gotoxy() (también de conio) y usar tabuladores y saltos de línea... ahora sí, a por la multiplataforma :laugh:
« Última modificación: 1 Septiembre 2010, 19:24 pm por Horricreu » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines