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

[SOLUCIONADO] Escriba un C ++ el programa que toma dos operandos y una operación y salidas el resul

Estas en el tema de Escriba un C ++ el programa que toma dos operandos y una operación y salidas el resul en el foro de C/C++ en Foros del Web. Buenas soy nuevo y ando un poco perdido tengo que hacer el siguiente problema: Escriba un C ++ el programa que toma dos operandos y ...
  #1 (permalink)  
Antiguo 14/10/2014, 05:48
 
Fecha de Ingreso: octubre-2014
Ubicación: madrid
Mensajes: 5
Antigüedad: 9 años, 6 meses
Puntos: 0
Escriba un C ++ el programa que toma dos operandos y una operación y salidas el resul

Buenas soy nuevo y ando un poco perdido tengo que hacer el siguiente problema:
Escriba un C ++ el programa que toma dos operandos y una operación y salidas el resultado. Por ejemplo: 98 + 7.8 y 3.2 * 6 Leído la operación en un string .Lea los operandos en las variables de tipo doble. · Requisitos mínimos: Ponga en práctica esto para operaciones llamadas +,-, * y/. · Opcional:? permita al usuario para entrar en la operación que usa palabras clave: más, menos, mul y división con sus significados obvios.? prevenga operaciones ilegales (la división por el cero). Extra: Ponga en práctica cualquier operación adicional.
Meter 2 operaciones con decimales por usuario ejemplo: 100 + 4.6 y la otra 89.7 / 6
  #2 (permalink)  
Antiguo 14/10/2014, 07:10
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

¿Y que llevas hecho hasta ahora?

¿Dónde te has atascado?
  #3 (permalink)  
Antiguo 14/10/2014, 07:13
 
Fecha de Ingreso: octubre-2014
Ubicación: madrid
Mensajes: 5
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

include <iostream>

using namespace std;

int main() {
int firstnum; int seconnum;
float operation;
int plus, minus, mul, div;


cout << "Enter operate ";
cin >> firstnum >> operation >> seconnum;

if (operation = + || plus ) {
plus = firstnum + seconnum;
cout << "The sum is: " << plus << endl;

aqui estoy perdido... aunque tengo que meter 2 opericones por usuario, ahi solo hay una
  #4 (permalink)  
Antiguo 14/10/2014, 07:37
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

Ese código ni tan siquiera compila:
  • Los includes van precedidos SIEMPRE de una almohadilla: #include
  • "float operation;". Si tu intención es almacenar un operador en esta variable debería ser de tipo char o string... no float. El tipo float está pensado para almacenar números decimales con precisión simple, no permite almacenar caracteres.
  • En el código "if (operation = + || plus )" tienes que tener en cuenta lo siguiente:
    • "if ( X = Y )", estás haciendo una igualdad, no una comparación.
    • "+", si tu intención es saber si el operador introducido es una suma tienes que comparar cadenas, un '+' sin comillas es una instrucción y eso no se puede comparar con nada.
    • "if ( X || plus )", ahí "plus" no está inicializado por lo que el resultado de esta condición es aleatorio.

Todo esto condensado en tu código da como resultado algo tal que:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.   int firstnum; int seconnum;
  7.   string operation;
  8.   int plus, minus, mul, div;
  9.  
  10.   cout << "Enter operate ";
  11.   cin >> firstnum >> operation >> seconnum;
  12.  
  13.   if (operation == "+" ) {
  14.     plus = firstnum + seconnum;
  15.     cout << "The sum is: " << plus << endl;
  16.   }
  17. }

Y a continuación un ejemplo del funcionamiento del código:

Código bash:
Ver original
  1. Enter operate 4 + 8
  2. The sum is: 12
  #5 (permalink)  
Antiguo 14/10/2014, 09:12
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

La pregunta no merecia tal respuesta...


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #6 (permalink)  
Antiguo 14/10/2014, 09:30
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

Sin código tiendo a no responder... eso sí, me he limitado a comentar el código que ha puesto.

No soy partidario de hacerle la tarea a nadie.
  #7 (permalink)  
Antiguo 14/10/2014, 10:00
 
Fecha de Ingreso: octubre-2014
Ubicación: madrid
Mensajes: 5
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

Gracias por la ayuda.
Porque no me sale la suma al final?

#include <iostream>

using namespace std;

int main() {
float firstnum; float seconnum;
string operation;
string plus;string minus;string mul; string div;

cout << "Introduce operacion ";
cin >> firstnum >> operation >> seconnum;

if (operation == "+"||"plus" ) {
plus = firstnum + seconnum;
cout << "The sum is: " << plus << endl;
}
}
  #8 (permalink)  
Antiguo 14/10/2014, 10:20
 
Fecha de Ingreso: octubre-2014
Mensajes: 23
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

Hola.
Fíjate qué tipo de dato tienen plus, minus, mul, div.

Lo que no entiendo es cómo funciona el dato o clase string para que no de ningún error al compilar, aunque no esté bien escrito..

Por cierto, si se pulsa el botón # cuando se va a escribir código, resalta las palabras con colores y se lee mejor.
  #9 (permalink)  
Antiguo 14/10/2014, 11:13
 
Fecha de Ingreso: octubre-2014
Ubicación: madrid
Mensajes: 5
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

por que no me hace la resta?

#include <iostream>

using namespace std;

int main() {
float firstnum; float seconnum;
string operation;
float plus ;float minus ;float mul ; float div ;
plus = '+';
minus = '-';
mul = '*';
div = '/';

cout << "Introduce operacion ";
cin >> firstnum >> operation >> seconnum;

if (operation == "+"||"plus" ) {
plus = firstnum + seconnum;
cout << "The sum is: " << plus << endl;
return 0;
}
else (operation == "-" || "minus");
minus = firstnum - seconnum;
cout << "the minus is: " << minus << endl;
}
  #10 (permalink)  
Antiguo 14/10/2014, 11:21
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

Cita:
Iniciado por juantxo84 Ver Mensaje
Gracias por la ayuda.
Porque no me sale la suma al final?

#include <iostream>

using namespace std;

int main() {
float firstnum; float seconnum;
string operation;
string plus;string minus;string mul; string div;

cout << "Introduce operacion ";
cin >> firstnum >> operation >> seconnum;

if (operation == "+"||"plus" ) {
plus = firstnum + seconnum;
cout << "The sum is: " << plus << endl;
}
}
El mejor consejo que te puedo dar visto tu nivel en C++ es que consigas con cierta urgencia un buen manual de C++ y aprendas al menos lo más básico, ya que la dirección que estás cogiendo ahora mismo te va a ocasionar más disgustos que otra cosa. Hazme caso.

PD1.: (no se por que te has emperrado en poner "plus" dentro del if). "plus" es un string y comparar un booleano con un string no parece una buena idea salvo que estés muy seguro de lo que estás haciendo, que no es tu caso.

PD2.: plus es de tipo string... y le estás asignando la suma de dos decimales... dado que la clase string no dispone de un método que permita convertir números a string lo que sucede es que su valor binario se está truncando a char y este es el valor que se inserta en el string... prueba a poner como sumandos 60 y 5... verás como te sale una 'A'.

--------------------------------

Editado: He visto que has escrito nueva respuesta paralela a la mía.

No te funciona por lo que te he comentado... te emperras en poner "plus" y "minus" dentro de los if y no entiendo el motivo... no es necesario.
  #11 (permalink)  
Antiguo 14/10/2014, 11:39
 
Fecha de Ingreso: octubre-2014
Mensajes: 23
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

Código:
#include <iostream>

using namespace std;

int main() {
float firstnum; float seconnum;
string operation;
float plus ;float minus; float mul; float div;
plus = '+';
minus = '-';
mul = '*';                             // Esto de no es nada sensato porque son floats no chars
div = '/';

cout << "Introduce operacion ";
cin >> firstnum >> operation >> seconnum;

if (operation == "+"||"plus" ) {          // Querrás escribir o + o plus, operation=="+" || operation="plus" 
plus = firstnum + seconnum;         // Como lo tenías siempre te daba 1 ya que, o (0 o 1) o 1 es 1
cout << "The sum is: " << plus << endl;
return 0;                                            // Mejor poner el return 0; al final
}
else (operation == "-" || "minus");       // No se escriben los dos puntos, si no else { }, else no lleva 
minus = firstnum - seconnum;           // condicion.. Existe el else if () { }, el cual seria mas  
cout << "the minus is: " << minus << endl; //  apropiado
}
Fíjate bien en el ejemplo de antes de eferion. Escribe if(operation=="+" || operation="plus") en vez de if(operation=="+"), cambias los int por float y añades el resto de operaciones con else if(){ }. Y después estaría bien un bucle para que cerrase la calculadora cuando indicases.

Última edición por alexpglez98; 14/10/2014 a las 11:48
  #12 (permalink)  
Antiguo 15/10/2014, 12:08
 
Fecha de Ingreso: octubre-2014
Ubicación: madrid
Mensajes: 5
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

gracias por la ayuda

Última edición por juantxo84; 15/10/2014 a las 14:44
  #13 (permalink)  
Antiguo 15/10/2014, 14:44
 
Fecha de Ingreso: octubre-2014
Mensajes: 23
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Escriba un C ++ el programa que toma dos operandos y una operación y salid

Está bastante guay. Si me permites te hago dos sugerencias.
La primera es sobre una manera de ahorrar escribir, que aunque está perfecto tal y como lo has escrito, creo que puede ser más legible así:
Código C++:
Ver original
  1. float firstnum, seconnum, thirnum, fournum;
  2. string operation, operation2;
  3. float plus, minus, mul, div;
o incluso:
Código C++:
Ver original
  1. float firstnum, seconnum, thirnum, fournum, plus, minus, mul, div;
  2. string operation, operation2;
Yo quitaría lo de la segunda operación y haría un bucle que preguntase por la operación a resolver y escribiese el resultado. Y cuando en la respuesta no pusiese ningún dato, ya no preguntase más y acabase el programa.
Te lo menciono por si quieres ponértelo como reto. ;)

Saludos

Etiquetas: c++, 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 12:52.