Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - bananakatana

#1
Hola a todos. Tengo que hacer un ejercicio que utilice una función recursiva en C++, pero no tengo la más mínima idea de cómo encarar el programa. El programa tiene que hacer operaciones matemáticas básicas (sumas, restas y multiplicaciones, nada más) utilizando el siguiente formato:
Por el canal de entrada: + 4 3
Entonces, se debería hacer la operación "4+3" y debería devolver 8.
Si ponemos: * 8 + 4 3
La operación es "8*(4+3)" y su solución es 56.
Otro ejemplo: * - 2 8 + 4 3
Sería "(2-8)*(4+3)" y el resultado sería -42.

No sé ni cómo comenzar, he pensado en utilizar una función tal que así:

#include <iostream>
using namespace std;

int operacion(bool suma, bool resta, bool mult) {
    int resul;
    char op;
    if (cin >> op) {
        if (op == '+') suma = true;
        else if (op == '-') resta = true;
        else if (op == '*') mult = true;
        else {
            if (suma) resul = op - '0' + operacion(suma, resta, mult);
            if (suma) resul = op - '0' - operacion(suma, resta, mult);
            if (mult) resul = op - '0' * operacion(suma, resta, mult);
        }
    } else return 0;
}

Evidentemente no funciona, ni de cerca. Primero, no sé dónde inicializar "resul", ni tampoco sé cómo desarrollar las operaciones del tipo "* -" como el de "* - 2 8 + 4 3", ni cómo tratar las restas... En fin, que no tengo ni p**a idea.

Una cosa, no tengo permitida la utilización de vectores (por supuesto tampoco strings), ni structs.

Un saludo y gracias de antemano.