Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejercicio en c++, consultas

Estas en el tema de Ejercicio en c++, consultas en el foro de C/C++ en Foros del Web. Hola foreros, Estoy haciendo un ejercicio en c++, que pide al usuario que introduzca un número, el operador de la operación (+,-,* y /) y ...
  #1 (permalink)  
Antiguo 03/11/2013, 08:55
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 15 años, 7 meses
Puntos: 0
Ejercicio en c++, consultas

Hola foreros,
Estoy haciendo un ejercicio en c++, que pide al usuario que introduzca un número, el operador de la operación (+,-,* y /) y por último el segundo número.

Por lo que he definido las siguientes variables:

Código:
 double  operand1, operand2;
char  operation;
Hazto seguido, se le pide al usuario que introduzca valores a dichas variables, de la siguiente manera:

Código:
	cout << "Introduce un número, una operación y otro número: ";
	cin >> operand1 >> operation >> operand2;

Hasta que el primer número, no sea 0, el programa pedirá secuencialmente un número:
Código:
	while (operand1 != 0) {
 
		
	}
Y dentro de este while, van las condiciones necesarias para llevar a cabo la operación:

Código:
	while (operand1 != 0) {

		if (operation == '+', operation == '-', operation == '*', operation == '/') {
		
			cout << "Estos son los números que has introducido: " << operand1 << operation << operand2 << endl;
			cout << "Aquí va el resultado de la operación: " << operand1 operation operand2;
		
		}
		

	}
¿Por qué el if no funciona?
¿Es posible que siendo el operador un char, realice la operación? O cómo se debería de poner para que se convierta en una +, -, * o /.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 03/11/2013, 09:31
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Ejercicio en c++, consultas

así vas volver loco al if XDD
haz 4 ifs envés de eso que has puesto XDD
O mejor usa switch ^^
  #3 (permalink)  
Antiguo 03/11/2013, 09:41
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ejercicio en c++, consultas

El problema, es que no me funciona la operación...
operand1 operation operand2

Me aparece un error
  #4 (permalink)  
Antiguo 03/11/2013, 09:42
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Ejercicio en c++, consultas

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5.  
  6. int main ()
  7. {
  8.     int operand1, operand2;
  9.     operand1 = operand2 = 0;
  10.     char operation;
  11.     cin >> operand1 ;
  12.     cin >> operation;
  13.     cin >> operand2 ;  
  14.     switch ( operation ){
  15.    
  16.     case '+':
  17.             cout << "Estos son los números que has introducido: " << operand1 << operation << operand2 << endl;
  18.             cout << "Aquí va el resultado de la operación: " << operand1 + operand2;
  19.             break;
  20.     case '-':
  21.             cout << "Estos son los números que has introducido: " << operand1 << operation << operand2 << endl;
  22.             cout << "Aquí va el resultado de la operación: " << operand1 - operand2;
  23.             break;         
  24.     case '*':
  25.             cout << "Estos son los números que has introducido: " << operand1 << operation << operand2 << endl;
  26.             cout << "Aquí va el resultado de la operación: " << operand1 * operand2;
  27.             break;
  28.     case '/':
  29.             cout << "Estos son los números que has introducido: " << operand1 << operation << operand2 << endl;
  30.             cout << "Aquí va el resultado de la operación: " << operand1 / operand2;
  31.             break;
  32.      default:
  33.             break;     
  34.      }
  35.     //system ("pause>nul");
  36.     return 0;
  37. }
  #5 (permalink)  
Antiguo 03/11/2013, 09:47
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Ejercicio en c++, consultas

Cita:
Iniciado por designermaster Ver Mensaje
El problema, es que no me funciona la operación...
operand1 operation operand2

Me aparece un error
Yo entiendo lo que quieres hacer pero de esa forma no se si puede ser.
La cosa es que eh visto algo asi como lo que tu intentas hacer pero no me recuerdo muy bien como era.

es que cout pide << entre las variables.
A lo mejor seria con printf o yo que se XDD
Pero si con case puedes hacerlo sin que te pelee tu maestro pues dale, tampoco hay que complicarse tanto XDD
  #6 (permalink)  
Antiguo 03/11/2013, 09:56
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ejercicio en c++, consultas

Esque no hemos visto switch... jejeje. Tiene que haber alguna forma de hacerlo con lo otro, pero no me funciona....
  #7 (permalink)  
Antiguo 03/11/2013, 10:50
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Ejercicio en c++, consultas

Bueno pues haz lo mismo pero con if
Código C++:
Ver original
  1. if (operation == '+' ){
  2.    cout << "Estos son los números que has introducido: " << operand1 << operation << operand2 << endl;
  3.    cout << "Aquí va el resultado de la operación: " << operand1 + operand2;
  4. }
Haces eso 4 veces y listo, pero cambia los operadores.
Ya no se que decirte si no te gusta la solucion pues nada, a ver si alguien deja alguna idea mejor. Lo doy por terminado.
Suerte!
  #8 (permalink)  
Antiguo 03/11/2013, 19:00
Avatar de omar10594  
Fecha de Ingreso: junio-2013
Ubicación: Mexico
Mensajes: 26
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Ejercicio en c++, consultas

Puedes usar ifs anidados para hacer solamente la operacion y al final la presentas, asi el codigo te queda mas corto... algo como esto

Código C++:
Ver original
  1. int operand1=0, operand2=0;
  2.     char operation;
  3.     float resultado;
  4.     cin >> operand1 >> operation >> operand2 ;
  5.     if ( operation == '+' )
  6.         resultado = operand1 + operand2;
  7.     else
  8.         if ( operation == '-')
  9.             resultado = operand1 - operand2;
  10.         else
  11.             if ( operation == '*' )
  12.                 resultado = operand1 * operand2;
  13.             else
  14.                 if( operation == '/')
  15.                     resultado = operand1 / operand2;
  16.     cout << "Estos son los numeros que has introducido: " << operand1 << operation << operand2 << endl;
  17.     cout << "Aqui va el resultado de la operacion: " << resultado;

La verdad es que nunca he programado en C++ asi que espero y sea correcto, esto, solo se hacerlo en C, pero basicamente es lo mismo, en vez de printf y scanf se usa cin y cout (al menos en este programa seria lo unico diferente a mi parecer0).

Última edición por omar10594; 04/11/2013 a las 01:01

Etiquetas: ejercicio, funcion, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:48.