• Domingo 15 de Diciembre de 2024, 22:32

Autor Tema:  Problema Con C++  (Leído 1756 veces)

hdtano

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problema Con C++
« en: Domingo 4 de Enero de 2004, 00:03 »
0
Bueno, despues de 6 meses, ahora me decidi a agarrar enserio C++, ,el tema es el siguiente, me olvide, como hacer para que al final de la aplicacion le preguunte al usuario si quiere repetir alguna otra operacion. Y comience todo de nuevo. Ya se que es muy estupida mi duda, pero me olvide  :(

Aca dejo el codigo, probe con un do while, pero cuando le doy a 'Y', me hace un bucle interminable, y pasa la pantalla a full.
Aca dejo el codigo.
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{

   float num1, num2, resul;
   char operacion;
   

   cout << "\t\t\t***************************\n";
   cout << "\t\t\t********CALCULADORA********\n";
   cout << "\t\t\t***************************\n\n";
   
   cout << "\t\t\t* Introduzca el primero numero: ";
   cin >> num1;
   
   cout << "\t\t\t* Introduzca el segundo numero: ";
   cin >> num2;
   
   cout << "\t\t\t* Que operacion desea realizar: ";
   cin >> operacion;
   
   switch(operacion)
   {
         case 'm':
         resul = num1 * num2;
         cout << "\t\t\t* El resultado fue: " << resul << endl;
         break;
         
         case 'd':
         resul = num1 / num2;
         cout << "\t\t\t* El resultado fue: " << resul << endl;
         break;
         
         case 's':
         resul = num1 + num2;
         cout << "\t\t\t* El resultado fue: " << resul << endl;
         break;
         
         case 'r':
         resul = num1 - num2;
         cout << "\t\t\t* El resultado fue: " << resul << endl;
         break;
   }
     
   system("pause");    
   return 0;
}


Salu2 y gracias.

hdtano

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema Con C++
« Respuesta #1 en: Lunes 5 de Enero de 2004, 00:38 »
0
Bueno,  tengo el siguiente problema, ante todo, ahora estoy jugando un poco con funciones, ,cambie todo, el tema es que mi idea es si el usuario al ingresar el primer numero pone -999 (momentaneamente), el programa tendria que salir, pero ocurre con cualquier numero que ponga, ya no se me ocurre que puede ser.

Salu2


********************************************************************
#include <iostream>
#include <C:\Projecto1\Funciones.h>

using namespace std;

int main()
{

  float a, b, resul;
  string multi, division, suma, resta;
  int respuesta;
  char formulas;
 
  do
  {
  cout << "Ingrese un numero(-999 para salir): ";
  cin >> a;
 
  if (a == -999);
  { break; }
 
  cout << "Ingrese otro numero: ";
  cin >> b;
 
  cout << "Que operacion quiere realizar: ";
  cin >> formulas;
 
  switch(formulas)
  {
     case 'S': case 's':
     resul = Suma(a,B);
     break;
     
     case 'R': case 'r':
     resul = Resta(a,B);
     break;
     
     case 'D': case 'd':
     resul = Division(a,B);
     break;
     
     case 'M': case 'm':
     resul = Multi(a,B);
     break;
  }
   
  cout << "La formula dio: "<< resul << endl;
   
  }while ( a != -999);
 

  return 0;
}

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Problema Con C++
« Respuesta #2 en: Lunes 5 de Enero de 2004, 13:34 »
0
Hola, segun creo, cualquier numero que sea negativo te ejecutaria lo que esta dentro del bucle, porque no intentas comparar pero con caracteres:

 char a;

/* antes tenes que leer el teclado */

if(a != "-999")

   Lo mismo con el bucle while, creo que al ser un tipo de entero negativo el if trabaja mal, no se realmente porque, solo se que las veces que he intentado hacer eso nunca logro hacerlo andar. Prueba como te dije, buscare alguna solucion mas eficaz. Saludos  :hola:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Problema Con C++
« Respuesta #3 en: Lunes 5 de Enero de 2004, 18:58 »
0
Si el código que has presentado en la página es el correcto hay un fallo en la sentencia if (a == -999);
El punto y coma del final lo tienes que eliminar, si aun así no funciona en vez de hacer break haz un return.
Un saludo.
No hay tonto más molesto que el ingenioso.

hdtano

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema Con C++
« Respuesta #4 en: Lunes 5 de Enero de 2004, 21:48 »
0
hice lo que me dijiste carmamezo, pero me hace un bucle infinito.
Y despues lo que dice jonathan, no lo puedo hacer, ya que a y b, los uso para almacenar los numeros float que el usuario ingrese.

Salu2

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Problema Con C++
« Respuesta #5 en: Lunes 5 de Enero de 2004, 22:13 »
0
Hola, pues te entiendo, como consejo seria bueno que en vez de poner case 's': case 'S'...dos veces pogas:

case 's'|'S': /* seria lo mismo pero queda mejor */

   Te pido si es posible, que postees el codigo de funcion.h, ya que segun parece ahi esta el problema, aveces pasa que la funcion a la que llamas te retorna un valor que hacer que el bucle desde donde se llama la llame una y otra vez... espero tu code. Saludos :hola:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Problema Con C++
« Respuesta #6 en: Miércoles 7 de Enero de 2004, 19:53 »
0
Prueba a ver este código si te funciona, he realizado algún que otro cambio sin importancia... Si funciona sigue a partir de él realizando cada vez cosas más complejas. Un saludo
Código: Text
  1.  
  2. #include &#60;iostream&#62;
  3. #include &#60;C:&#092;Projecto1&#092;Funciones.h&#62;
  4. #include &#60;stdlib.h&#62; //funcion tolower
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.  
  11. float a, b, resul;
  12. char formulas;
  13.  
  14. do
  15. {
  16.  
  17. cout &#60;&#60; &#34;Ingrese un numero(-999 para salir): &#34;;
  18. cin &#62;&#62; a;
  19.  
  20. if (a != -999);
  21. {
  22.     cout &#60;&#60; &#34;Ingrese otro numero: &#34;;
  23.     cin &#62;&#62; b;
  24.  
  25.     cout &#60;&#60; &#34;Que operacion quiere realizar: &#34;;
  26.     cin &#62;&#62; formulas;
  27.     formulas=tolower(formulas); //convierte el texto a minusculas
  28.  
  29.     switch(formulas)
  30.     {
  31.     case 's':
  32.   resul = a+b;
  33.   break;
  34.  
  35.     case 'r':
  36.   resul = a-b;
  37.   break;
  38.  
  39.     case 'd':
  40.   resul = a/b;
  41.   break;
  42.  
  43.     case 'm':
  44.   resul = a*b;
  45.   break;
  46.     }
  47.  
  48.     cout &#60;&#60; &#34;La formula dio: &#34;&#60;&#60; resul &#60;&#60; endl;
  49. }
  50.  
  51. }while ( a != -999);
  52.  
  53.  
  54. return 0;
  55. }
  56.  
  57.  
No hay tonto más molesto que el ingenioso.