[c++] Suma, resta, multiplicacion y division

Iniciado por dani__, 14 Febrero 2011, 15:50 PM

0 Miembros y 1 Visitante están viendo este tema.

dani__

Bueno aqui les dejo un programa muy sencillo (estoy empezando) que realiza las operaciones de suma, resta, multiplicacion y division.

Es muy sencillo solo he utilizado cout, cin, estructuras if y otra funcion a parte de main().

//Realiza operaciones basicas con dos numeros: suma, resta, multiplicacion y division.

#include <iostream>

int elegir_operacion();

int main()
{
    int elegir=0, numero1, numero2, resultado, parar;
    float resultado_exacto;

    elegir = elegir_operacion();

    if (elegir==1 or elegir==2 or elegir==3 or elegir==4)
    {
                  std::cout << "Primer numero ";
                  std::cin >> numero1;
                  std::cout << "Segundo numero ";
                  std::cin >> numero2;
                 
                  if (elegir == 1)
                  {
                  resultado = numero1 + numero2;
                  std::cout << std::endl << std::endl << "Resultado: " << resultado;
                  }
                 
                  if (elegir == 2)
                  {
                  resultado = numero1 - numero2;
                  std::cout << std::endl << std::endl << "Resultado: " << resultado;
                  }
                 
                  if (elegir == 3)
                  {
                  resultado = numero1 * numero2;
                  std::cout << std::endl << std::endl << "Resultado: " << resultado;     
                  }
                 
                  if (elegir == 4)
                  {
                             int resto=0;
                               resultado = numero1 / numero2;
                               resto = numero1 % numero2;
                               if (resto != 0)
                               resultado_exacto = (float) numero1 / numero2;
                               // (float) fuerza a que la division devuelva un numero decimal
                               std::cout << std::endl << "Resultado exacto: " << resultado_exacto << std::endl;
                               std::cout << std::endl << std::endl << "Resultado: " << resultado;
                               std::cout << "         Resto: " << resto;
                  }
                 

    }
    else
        std::cout << std::endl << std::endl << "Error: selecciona una operacion valida." << std::endl;
    std::cin >> parar;
    return 0;
}

int elegir_operacion()
{
    int elegir_provisional;
    std::cout << "Elige una de estas funciones:" << std::endl << "1. Sumar" << std::endl << "2. Restar" << std::endl << "3. Multiplicar"
    << std::endl << "4. dividir" << std::endl;
    std::cin >> elegir_provisional;
    return elegir_provisional;
}

Nobody12

El programa está muy bien  ;) , simplemente un consejo.
En vez de estar poniendo continuamente std::, podrías poner en la cabecera "using namespace std;", y es más cómodo   :)
   

dani__

Cita de: valenciano013 en 14 Febrero 2011, 15:59 PM
El programa está muy bien  ;) , simplemente un consejo.
En vez de estar poniendo continuamente std::, podrías poner en la cabecera "using namespace std;", y es más cómodo   :)
   

Gracias lo aplicare a partir de ahora.

Una pregunta me he dado cuenta que puse "or" en vez de "||" ¿que me aconsejarias utilizar?

Fastolfe

Esta bien el programa, pero una sugerencia: en lugar de usar tanto if usa un switch.
Y si creas una función para sumar, otra para restar, etc. mejor todavia. Pero para estar empezando está muy bien. Creo que no hay diferencia entre usar "or" y "||".

Sigue aprendiendo C++ ;)

Garfield07

Me gusta más C

#include <stdio.h>

int main ()
{
int num1, num2;
float opc;

printf (Menu:\n1. Suma\n2. Resta\n3. Multiplicacion\n4. Division\nOpcion:);
scanf ("%d", &opc);
if (opc < 1 || opc > 4)
{
printf (Opcion incorrecta...\n\n);
return 1;
}
printf ("\nNumero 1: ");
scanf ("%f", &opc);
printf ("Numero 2: ");
scanf ("%f", &opc);

switch (opc)
{
case 1: printf ("Respuesta --> %f", num1+num2); break;
case 2: printf ("Respuesta --> %f", num1-num2); break;
case 3: printf ("Respuesta --> %f", num1*num2); break;
case 4: printf ("Respuesta --> %f", num1/num2); break;
}
return 0;
}



Suerte!


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

~ Yoya ~

Te recomiendo que te vayas acostumbrando al POO de C++. Esa fue una de las razones porque me quede con C++.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

dani__

Cita de: ~ Yoya ~ en 14 Febrero 2011, 19:32 PM
Te recomiendo que te vayas acostumbrando al POO de C++. Esa fue una de las razones porque me quede con C++.

No he llegado todavia a POO se cosas muy elementales puesto que empece hace unos meses y el libro que tenia no lo entendia bien y ahora me coji un libro de la biblioteca y voy bien

dani__

Cita de: Fastolfe en 14 Febrero 2011, 17:01 PM
Esta bien el programa, pero una sugerencia: en lugar de usar tanto if usa un switch.
Y si creas una función para sumar, otra para restar, etc. mejor todavia. Pero para estar empezando está muy bien. Creo que no hay diferencia entre usar "or" y "||".

Sigue aprendiendo C++ ;)

No se usar switch. ¿Tu crees que es conveniente dividir cada bloque if en funciones? A mi me parecen pocas lineas de codigo y ademas muy simples.
He leido sobre las inline ¿Es conveniente acostumbrarme a usar estas en funciones cortas?

Nobody12

Cita de: dani__ en 14 Febrero 2011, 16:30 PM
Una pregunta me he dado cuenta que puse "or" en vez de "||" ¿que me aconsejarias utilizar?

Yo personalmente prefiero utilizar ||. La verdad es que nunca lo había visto como "or".
Aunque realmente creo que no importa cuál de los 2 uses.

Cita de: dani__ en 14 Febrero 2011, 19:55 PM
He leido sobre las inline ¿Es conveniente acostumbrarme a usar estas en funciones cortas?

Ésto te lo digo por lo que yo sé:

Las funciones en línea (inline) sirven para aumentar la velocidad del programa, y son convenientes de utilizar cuando se recurre muchas veces a una misma función y su código es pequeño.
Lo malo es que si se llama a una función inline por ejemplo 10 veces en el programa, el compilador inserta diez copias de la función en el programa. Entonces el tamaño del programa aumenta bastante.

                                     
                                                     Ventajas                                     Desventajas

Funciones en línea                      Rápidas de ejecutar                         Tamaño grande

Funciones fuera de línea           Tamaño pequeño                            Lentas de ejecutar     
 

leogtz

Cita de: valenciano013 en 14 Febrero 2011, 15:59 PM
El programa está muy bien  ;) , simplemente un consejo.
En vez de estar poniendo continuamente std::, podrías poner en la cabecera "using namespace std;", y es más cómodo   :)
   

Poniendo using namespace std se incluyen cosas que posiblemente no se vayan a utilizar.

Mejor es especificar solo lo que vamos a usar:

Código (cpp) [Seleccionar]
using std::cout;
using std::endl;

...
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com