Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dani__ en 14 Febrero 2011, 15:50 pm



Título: [c++] Suma, resta, multiplicacion y division
Publicado por: dani__ en 14 Febrero 2011, 15:50 pm
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().

Código:
//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;
}


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: Nobody12 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   :)
   


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: dani__ en 14 Febrero 2011, 16:30 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?


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: 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++ ;)


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: Garfield07 en 14 Febrero 2011, 19:29 pm
Me gusta más C
Código
  1. #include <stdio.h>
  2.  
  3. int main ()
  4. {
  5. int num1, num2;
  6. float opc;
  7.  
  8. printf (Menu:\n1. Suma\n2. Resta\n3. Multiplicacion\n4. Division\nOpcion:);
  9. scanf ("%d", &opc);
  10. if (opc < 1 || opc > 4)
  11. {
  12. printf (Opcion incorrecta...\n\n);
  13. return 1;
  14. }
  15. printf ("\nNumero 1: ");
  16. scanf ("%f", &opc);
  17. printf ("Numero 2: ");
  18. scanf ("%f", &opc);
  19.  
  20. switch (opc)
  21. {
  22. case 1: printf ("Respuesta --> %f", num1+num2); break;
  23. case 2: printf ("Respuesta --> %f", num1-num2); break;
  24. case 3: printf ("Respuesta --> %f", num1*num2); break;
  25. case 4: printf ("Respuesta --> %f", num1/num2); break;
  26. }
  27. return 0;
  28. }
  29.  
  30.  

Suerte!


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: ~ 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++.


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: dani__ en 14 Febrero 2011, 19:51 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


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: dani__ en 14 Febrero 2011, 19:55 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?


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: Nobody12 en 14 Febrero 2011, 20:47 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.

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     
 


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: leogtz en 14 Febrero 2011, 22:48 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
  1. using std::cout;
  2. using std::endl;
  3.  
...


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: anonimo12121 en 15 Febrero 2011, 00:09 am
UN regalo- raiz
Código:
#include <iostream>
using namespace std;
int raiz(int base,int exp){
    int t=base;
    for(int i=1;i<exp;i++)t=t*base;
    return t;
}
int main(int *argc,char *argv[]){
    int a;
    cout << raiz(2,3);
    cin.get();
    return 0;
   
}


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: Fastolfe en 15 Febrero 2011, 22:39 pm
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?

Ya aprenderás a usarlo entonces xD. Para un programa como este no es necesario hacer funciones, pero según vayas haciendo programas más complejos te facilitarás las cosas. Y sobre las inline ya te ha respondido valenciano013


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: anonimo12121 en 16 Febrero 2011, 00:18 am
Ya aprenderás a usarlo entonces xD. Para un programa como este no es necesario hacer funciones, pero según vayas haciendo programas más complejos te facilitarás las cosas. Y sobre las inline ya te ha respondido valenciano013
No hace falta pero te sirve para practicar usando clases funciones y herencias...


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: komiki007 en 24 Agosto 2011, 15:47 pm
Pero un programa mas sencillo seria esto:

#include<iostream>
using namespace std;
int main(){
    string st;
    while (cin>>st){
          int a,b;
          cin>>a>>b;
          if (st=="suma") cout<<"La suma es "<<a+b<<".";
          else if (st=="resta") cout<<"La diferencia es "<<a-b<<".";
               else if (st=="multiplica") cout<<"El producto es "<<a*b<<".";
                    else if (st=="divide") cout<<"El cociente es "<<a/b<<".";
          cout<<endl<<endl;
          }
}


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: Danyel_Casvill en 24 Agosto 2011, 17:22 pm
Hola!!

Aamm, me quedo la duda, ustedes como lo harian con switch??

Código
  1. #include <iostream>
  2.  
  3. using std::cout;
  4. using std::cin;
  5.  
  6. int main()
  7. {
  8.    int r,a,b;
  9.    cout<<"Elija la opcion a realizar:\n";
  10.    cout<<"1.Suma\n"<<"2.Resta\n"<<"3.Multiplicacion\n"<<"4.Division\n";
  11.    while(r){
  12.    cin>>r;
  13.    switch(r)
  14.    {
  15.        case 1:
  16.        {cout<<"SUMA:\n"<<"Ingrese un numero:";cin>>a;
  17.        cout<<"Ingrese otro numero:";cin>>b;
  18.        cout<<"Resultado:"<<a+b;
  19.        break;}
  20.  
  21.        case 2:
  22.        {cout<<"RESTA:\n"<<"Ingrese un numero:";cin>>a;
  23.        cout<<"Ingrese otro numero:";cin>>b;
  24.        cout<<"Resultado:"<<a-b;
  25.        break;}
  26.  
  27.         case 3:
  28.        {cout<<"MULTIPLICACION:\n"<<"Ingrese un numero:";cin>>a;
  29.        cout<<"Ingrese otro numero:";cin>>b;
  30.        cout<<"Resultado:"<<a*b;
  31.        break;}
  32.  
  33.         case 4:
  34.        {cout<<"DIVISION:\n"<<"Ingrese un numero:";cin>>a;
  35.        cout<<"Ingrese otro numero:";cin>>b;
  36.        cout<<"Resultado:"<<a/b;
  37.        break;}
  38.        default:
  39.        {
  40.            cout<<"Error 4320.";
  41.            return 0;
  42.            break;
  43.        }
  44.    }
  45.    cout<<"\n\nElija la opcion a realizar:\n";
  46.    }
  47. }
  48.  

Y otra cosa.... Que es preferible usar para el salto de linea, \n o endl.

Saludos. ;D


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: nadin en 2 Junio 2013, 02:27 am
Tengo que disenar un programa en ensamblador que interactue con una funcion escrita en C. la funcion en C se encargara de realizar una multiplicacion con dos parámetros y devolvera su resultado al programa en ensamblador.

como hago?

Gracias


Título: Re: [c++] Suma, resta, multiplicacion y division
Publicado por: dorkam en 6 Junio 2013, 03:08 am
Hola!!


Y otra cosa.... Que es preferible usar para el salto de linea, \n o endl.

Saludos. ;D

Hola, yo tambien estoy recien empezando con C++ pero segun tengo entendido \n viene del C y en C++ seria endl.

Saludos