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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Calculadora
« en: 28 Octubre 2015, 20:00 pm »

Código
  1.  
Bueno, quisiera una ayuda,
no me da el resultado de la division esta calculadora, le falta una funcion, no se cual es,..quiero el resultado con dos decimales.
ademas quisiera que cuando divida para cero me imprima: imposible realizar operacion.

disculpen el idioma, estudio en italiano.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int somma(int a, int b)
  5. {
  6. int ret;
  7. ret = a + b;
  8. return ret;
  9. }
  10. int sottrai(int a, int b)
  11. {
  12. int ret;
  13. ret = a - b;
  14. return ret;
  15. }
  16. int molt(int a, int b)
  17. {
  18. int ret;
  19. ret = a * b;
  20. return ret;
  21. }
  22. double dividi(int a, int b)
  23. {
  24. double ret;
  25. ret = a/b;
  26. return ret;
  27. }
  28. int main() {
  29. int a,b;
  30. char op;
  31.  
  32.    cout<<"Inserisci il primo numero:";
  33. cin>>a;
  34. cout<<"Inserisci il secondo numero:";
  35. cin>>b;
  36. cout<<"Scegli l'operatore: ";
  37. cin>>op;
  38. switch(op)
  39. {
  40. case '+':{
  41.  
  42.  
  43. cout<<"risultato:"<<a/b<<endl;
  44. break;
  45. }
  46. case '-':{
  47.  
  48.  
  49. cout<<"risultato:"<<a-b<<endl;
  50. break;
  51. }
  52. case '*':{
  53.  
  54. cout<<"risultato:"<<a*b<<endl;
  55. break;
  56. }case '/':{
  57.  
  58.  
  59. cout<<"risultato:"<<a/b<<endl;
  60.  
  61.             break;
  62. }
  63.  
  64.  
  65.    }
  66.  
  67. return 0;
  68. }
  69.  
  70.  


Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 28 Octubre 2015, 20:10 pm por bryanrz96 » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Calculadora
« Respuesta #1 en: 28 Octubre 2015, 20:13 pm »

la división de 2 enteros da por resultado un entero, si quieres que esto no sea así tienes que usar casting de variables

Código
  1. ret = (double)a/b;

esto tornará "a" tipo double antes  de calcularlo, por lo tanto el resultado es el tipo de varibale de mayor precisión

sobre la división entre 0 tienes 2 caminos,
el simple
Código
  1. if(b==0) imprimir ("no puedes dividir entre cero")

el complicado, manejo de excepciones
try - catch


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bryanrz96

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Calculadora
« Respuesta #2 en: 28 Octubre 2015, 20:30 pm »

la división de 2 enteros da por resultado un entero, si quieres que esto no sea así tienes que usar casting de variables

Código
  1. ret = (double)a/b;

esto tornará "a" tipo double antes  de calcularlo, por lo tanto el resultado es el tipo de varibale de mayor precisión

sobre la división entre 0 tienes 2 caminos,
el simple
Código
  1. if(b==0) imprimir ("no puedes dividir entre cero")

el complicado, manejo de excepciones
try - catch

Disculpa donde debo poner
Código
  1. ret = (double)a/b;

No me sale :'(
« Última modificación: 28 Octubre 2015, 20:32 pm por bryanrz96 » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Calculadora
« Respuesta #3 en: 28 Octubre 2015, 20:32 pm »

en la división, linea 25
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bryanrz96

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Calculadora
« Respuesta #4 en: 28 Octubre 2015, 20:59 pm »

en la división, linea 25

Ya lo puse, pero no me viene el resultado, si divido 5/2 me da 2.
que puedo hacer?
En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Calculadora
« Respuesta #5 en: 28 Octubre 2015, 21:25 pm »

muestra como tienes el código en este momento
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bryanrz96

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Calculadora
« Respuesta #6 en: 28 Octubre 2015, 21:30 pm »

muestra como tienes el código en este momento

El codigo esta asi:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int somma(int a, int b)
  5. {
  6. int ret;
  7. ret = a + b;
  8. return ret;
  9. }
  10. int sottrai(int a, int b)
  11. {
  12. int ret;
  13. ret = a - b;
  14. return ret;
  15. }
  16. int molt(int a, int b)
  17. {
  18. int ret;
  19. ret = a * b;
  20. return ret;
  21. }
  22. double dividi(int a, int b)
  23. {
  24. double ret;
  25. ret = (double)a/b;
  26. return ret;
  27. }
  28. int main() {
  29. int a,b;
  30. char op;
  31.  
  32.    cout<<"Inserisci il primo numero:";
  33. cin>>a;
  34. cout<<"Inserisci il secondo numero:";
  35. cin>>b;
  36. cout<<"Scegli l'operatore: ";
  37. cin>>op;
  38. switch(op)
  39. {
  40. case '+':{
  41.  
  42.  
  43. cout<<"risultato:"<<a/b<<endl;
  44. break;
  45. }
  46. case '-':{
  47.  
  48.  
  49. cout<<"risultato:"<<a-b<<endl;
  50. break;
  51. }
  52. case '*':{
  53.  
  54. cout<<"risultato:"<<a*b<<endl;
  55. break;
  56. }case '/':{
  57.  
  58. cout<<"risultato:"<<a/b<<endl;
  59.  
  60.             break;
  61. }
  62.  
  63.  
  64.    }
  65.  
  66. return 0;
  67. }
  68.  

Creo que luego del int main debo declarar una variable, pero no se cual...
y para que me imprima "no es posible efectuar la operacion" cuando divido para cero no se donde poner el If para que actue.
En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Calculadora
« Respuesta #7 en: 28 Octubre 2015, 21:33 pm »

mira tu switch

Código
  1. switch(op)
  2. {
  3. case '+':{//cuando es "+" divides?
  4.  
  5.  
  6. cout<<"risultato:"<<a/b<<endl;//divides directamente en lugar de usar la función?
  7. break;
  8. }
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bryanrz96

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Calculadora
« Respuesta #8 en: 28 Octubre 2015, 21:44 pm »

mira tu switch

Código
  1. switch(op)
  2. {
  3. case '+':{//cuando es "+" divides?
  4.  
  5.  
  6. cout<<"risultato:"<<a/b<<endl;//divides directamente en lugar de usar la función?
  7. break;
  8. }

Si, me he confundido con ese paso.
que funcion puedo usar en ves de la que tengo establecida?
Código
  1. switch(op)
  2. {
  3. case '+':{
  4.  
  5.  
  6. cout<<"risultato:"<<a+b<<endl;
  7. break;
  8. }
En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Calculadora
« Respuesta #9 en: 28 Octubre 2015, 22:49 pm »

tu creaste una serie de funciones con un fin, ese fin es usarlas

ej

Código
  1. case '/':{
  2.  
  3. cout<<"risultato:"<<dividi(a,b)<<endl;
  4.  
  5.             break;
  6. }
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calculadora
Electrónica
Neobius 2 3,271 Último mensaje 11 Noviembre 2005, 17:24 pm
por Neobius
Calculadora
.NET (C#, VB.NET, ASP)
kokokoko 3 1,569 Último mensaje 17 Enero 2012, 17:41 pm
por kokokoko
calculadora en c++
Programación C/C++
anarchy2k1 4 7,070 Último mensaje 25 Marzo 2012, 21:03 pm
por Don Pollo
CALCULADORA
Java
Gabrieldeus 3 1,477 Último mensaje 12 Junio 2016, 15:19 pm
por DarK_FirefoX
Calculadora
Programación C/C++
Ramses_977Alejandre 1 518 Último mensaje 20 Noviembre 2017, 18:15 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines