Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: H4ckw1X en 18 Marzo 2017, 18:43 pm



Título: C++ Tablas de multiplicar
Publicado por: H4ckw1X en 18 Marzo 2017, 18:43 pm
Saludos chicos abro este tema solo para ver sus opiniones sobre este código que hice y saber como lo hubieran hecho ustedes acá el código.....

Código
  1. /*
  2. Name: Mostrar_talbas_matematicas
  3. Author: H4ckw1X
  4. Date: 18/03/17 14:35
  5. */
  6.  
  7. #include <iostream>
  8.  
  9. using namespace std;
  10.  
  11. int main(){
  12.  
  13. int menu,i,t,result;
  14. int respuesta=1;
  15.  
  16. while(respuesta!=0){
  17. cout<<"\n*************** Que tabla matematica quiere revisar ***************"<<endl;
  18. cout<<"\n--MENU--"<<endl;
  19. cout<<"\n1.SUMA"<<endl;
  20. cout<<"\n2.RESTA"<<endl;
  21. cout<<"\n3.MULTIPLICACION"<<endl;
  22. cout<<"\n4.DIVICION"<<endl;
  23. cin>>menu;
  24.  
  25. switch(menu){
  26.  
  27. case 1:
  28. if(menu=1);
  29. cout<<"\nEscribre el numero de la tabla"<<endl;
  30. cin>>t;
  31. for(i=0;i<=12;i++){
  32. result=t+i;
  33. cout<<t<<" + "<<i<<" = "<<result<<endl;
  34. }
  35. break;
  36. case 2:
  37. if(menu=2);
  38. cout<<"\nEscribre el numero de la tabla"<<endl;
  39. cin>>t;
  40. for(i=0;i<=12;i++){
  41. result=t-i;
  42. cout<<t<<" - "<<i<<" = "<<result<<endl;
  43. }
  44. break;
  45. case 3:
  46. if(menu=3);
  47. cout<<"\nEscribre el numero de la tabla"<<endl;
  48. cin>>t;
  49. for(i=0;i<=12;i++){
  50. result=t*i;
  51. cout<<t<<" * "<<i<<" = "<<result<<endl;
  52. }
  53. break;
  54. case 4:
  55. if(menu=4);
  56. cout<<"\nEscribre el numero de la tabla"<<endl;
  57. cin>>t;
  58. for(i=0;i<=12;i++){
  59. result=t/i;
  60. cout<<t<<" / "<<i<<" = "<<result<<endl;
  61. }
  62. break;
  63. default:
  64. cout<<"\nOpcion invalida"<<endl;
  65. break;
  66. }
  67.  
  68. cout<<"Desea ver otra tabla s.1/n.0"<<endl;
  69. cin>>respuesta;
  70. }
  71. return 0;
  72. }
  73.  


Título: Re: C++ Tablas de multiplicar
Publicado por: Becerra en 18 Marzo 2017, 19:01 pm
Hola

Así de primeras, estas usando un switch para las opciones y dentro un if, sobra ese if, además, las comprobaciones en el if es con == (doble signo igual), tu estás haciendo una asignación.

Un saludo


Título: Re: C++ Tablas de multiplicar
Publicado por: engel lex en 18 Marzo 2017, 19:08 pm
el caso 4 será poco efectivo

si lo ejecutas te darás cuenta a lo que me refiero

para que se vea bien, result debería ser de tipo float, castear como float la división, debe ser i/t y no t/i

procura hacer un poco mejor la identación

tu haces
Código
  1. int main(){
  2.  
  3. int menu,i,t,result;
  4. int respuesta=1;
  5.  
  6. while(respuesta!=0){
  7. cout<<"\n*************** Que tabla matematica quiere revisar ***************"<<endl;
  8. /* ... */
  9. cin>>menu;
  10.  
  11. switch(menu){
  12.  
  13. case 1:
  14. if(menu=1);
  15. cout<<"\nEscribre el numero de la tabla"<<endl;
  16. cin>>t;
  17. for(i=0;i<=12;i++){
  18.  

yo creo que sería más legible
no ideantas dentro del while, ni el for
Código
  1. int main(){
  2.    int menu,i,t,result;
  3.    int respuesta=1;
  4.  
  5.    while(respuesta!=0){
  6.        cout<<"\n*************** Que tabla matematica quiere revisar ***************"<<endl;
  7.        /* ... */
  8.        cin>>menu;
  9.  
  10.        switch(menu){
  11.  
  12.            case 1:
  13.                if(menu=1);
  14.                cout<<"\nEscribre el numero de la tabla"<<endl;
  15.                cin>>t;
  16.                for(i=0;i<=12;i++){
  17.                    result=t+i;
  18.  


por otro lado los if de las lineas 28, 37,46 y 55, no tienen sentido y en general están mal formulados (usan "=" en lugar de "==") a demás terminan en ";" lo que los finaliza apenas se evalúan quitandole todo el sentido

para mi es preferible correr sobre seguro y el while de la linea 16 no lo haría != 0 sino == 1, porque si la persona marca cualquier cosa que no sea 0 se repetirá y eso no sería correcto (para mi), desde mi punto de vista debería repetirse si y solo si es 1, que es la condición de repetición... pero es decisión de cada quien eso




Título: Re: C++ Tablas de multiplicar
Publicado por: H4ckw1X en 18 Marzo 2017, 19:21 pm
Gracias por sus respuestas me son de gran ayuda soy nuevo en el  mundo de la programación  :D :D :D :D  ;-) ;-)


Título: Re: C++ Tablas de multiplicar
Publicado por: Meta en 18 Marzo 2017, 19:25 pm
Hola:

El Switch sustituye el if, para no poner tantos if, se pone Switch. ;)

https://msdn.microsoft.com/es-es/library/k0t5wee3.aspx

G50bwqLapaM

Por cierto. ¿Qué IDE usas?

Recuerda, no es lomismo IDE que compilador. ;)

Saludos.