Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: UV09 en 14 Julio 2013, 18:40 pm



Título: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: UV09 en 14 Julio 2013, 18:40 pm
Calcule la suma, la resta, la multiplicación y la división de 2 números introducidos por el usuario.  Tomar en cuenta el error de división por cero.  Imprimir los resultados.


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: SrCooper en 14 Julio 2013, 18:45 pm
Escribe lo que llevas escrito, donde te has atascado, que problema tienes, etc. Resolvemos dudas, pero no hacemos tareas  :P

Un saludo


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: αиσиyмσυรCร en 14 Julio 2013, 19:11 pm
Bueno yo lo haría asi:
Código:
#include <stdio.h>

main(){

int x, y;
int calculo;

printf("Introduce el primer numero => ");
scanf("%d", &x);
printf("Introduce el segundo numero => ");
scanf("%d", &y);
calculo=x+y;
getchar();
printf("La suma del primer numero y el segundo es => %d", calculo);
calculo=x-y;
getchar();
printf("La resta del primer numero y el segundo es => %d", calculo);
calculo=x*y;
getchar();
printf("La multiplicacion del primer numero y el segundo es => %d \n", calculo);

if (y!=0) {
   calculo=x/y;
   printf("La division del primer numero y el segundo es => %d", calculo);
}
else printf("No se puede dividir por 0!!");
getchar();

}

Y como dice SrCooper
Escribe lo que llevas escrito, donde te has atascado, que problema tienes, etc. Resolvemos dudas, pero no hacemos tareas  :P

Un saludo

Yo te lo respondo porque estoy aprendiendo C y me venia bien para practicar y encontré la forma de hacerlo rápidamente espero a verte ayudado y te puse el código porque es tu primer tema que hiciste cosa que creo que no se fijo SrCooper jeje

Un saludo αиσиyмσυรCร


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: UV09 en 14 Julio 2013, 19:35 pm
Gracias gracias por el dato, estoy en el desarrollo de este problema! pensaba postearlo pero el programa me marca muchos errores!
Que sepan que recién comienzo a aprender C++

Saludos amigo y muchas gracias, αиσиyмσυรCร.
Y a SrCooper, me imagine que alguien me diría eso jaja, saludos!


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: flony en 14 Julio 2013, 21:40 pm
Código:
#include <iostream>

using namespace std;
int main()
{
float a, b, rdo;
cout<<"ingrese los numeros a y b:"<<endl;
cin>>a;
cin>>b;
rdo=a+b;
cout<<"la suma es "<< rdo<<endl;
rdo=a-b;
cout<<"la resta de a -b es"<<rdo<<endl;
rdo=a*b;
cout<<"la multiplicacion de a*b es "<<rdo<<endl;
rdo=a/b;
cout<<"la divicion de a/b es 2"<<rdo<<endl;
rdo=b/a;
cout<<"la divicion de b/a es "<<rdo<<endl;
system("PAUSE");
return 0;
}
en visual studio 2012 las operaciones printf y scanf del archivo cabecera <stdio.h> están casi olvidadas debido a problemas con el buffer y otras cosas así que los "maestros de windows" decidieron unilateralmente descartarlas, para usarlas deben ser s_printf
para mi particularmente me es lo mismo...pero si usas c++ la cabecera <iostream> es mas segura pero deberas usar cin y cout  para I/O datos


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: SrCooper en 14 Julio 2013, 21:42 pm
Esta bien, no me fije en que era tu primer tema. Aquí te escribo como lo haría yo, utilizando funciones de C++, porque anonymous uso funciones de C  :xD

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.  float a, b;
  6.  float suma, resta, multiplicacion, division;
  7.  
  8.  cout << "Introduzca dos numeros" << endl;
  9.  cin >> a;
  10.  cin >> b;
  11.  
  12.  suma = a+b;
  13.  resta = a-b;
  14.  multiplicacion = a*b;
  15.  if (b == 0) division = 0;
  16.  else division = a/b;
  17.  
  18.  cout << "La suma es: " << suma << ", la resta es: " << resta
  19.       << ", la multiplicacion es: " << multiplicacion
  20.       << " y la division es: " << division << endl;
  21.  
  22.  return 0;
  23. }

Un saludo


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: flony en 14 Julio 2013, 21:51 pm
tu code tuvo en cuenta la divicion en cero es mejor que mi code  :rolleyes:


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: SrCooper en 14 Julio 2013, 22:03 pm
tu code tuvo en cuenta la divicion en cero es mejor que mi code  :rolleyes:

Jajajaja Lo sé, he estado trabajando más de 10 horas seguidas para hacer el código, pero al final he conseguido solucionar este problema (IRONÍA)

Un saludo


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: αиσиyмσυรCร en 14 Julio 2013, 23:34 pm
Yo hice el código en C si jejeje creí que eran similares C y C++ en ese caso lo siento y yo tuve también en cuenta la división entre 0 :D Yo estoy aprendiendo y me vino bien para practicar.

PD: flony lee todo el problema que se planteo jejeje concretamente lo de:
Citar
Tomar en cuenta el error de división por cero.

Por cierto de mi código en C a C++ no varia mucho solo ciertas cosas y no sabia lo de visual basic de los problemas con printf y scanf gracias aprendí algo :D y bueno yo he llegado a compilar codigos de C como C++ y me los hacia bien jeje pro eso pense lo que pensé :P

Un saludo


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: SrCooper en 14 Julio 2013, 23:40 pm
En realidad las funciones que tu utilizas también se puden utilizar en C++, solo que es más efectivo utilizar la librería iostream y las funciones cout y cin.

Un saludo


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: αиσиyмσυรCร en 15 Julio 2013, 00:08 am
En realidad las funciones que tu utilizas también se puden utilizar en C++, solo que es más efectivo utilizar la librería iostream y las funciones cout y cin.

Un saludo

"El fin justifica los medios" como decía Maquiavelo da igual como lo hagas el caso es que hace la misma función y sin errores :P

Un saludo αиσиyмσυรCร


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: UV09 en 22 Julio 2013, 02:37 am
#include "stdafx.h"
#include "iostream"

using namespace System;
using namespace std;

class PROCESOS
{
private: int a, b, r;
public:
    void asignar1(int y)
    {
        a = x;
    }
    void asignar2(int z)
    {
        b = y;
    }
    void suma()
    {
        r = a + b;
        cout<<"La suma de " <<a <<" y " <<b <<" es " <<r <<"\n";
    }
    void resta()
    {
        r = a - b;
        cout<<"La resta de " <<a <<" y " <<b <<" es " <<r <<"\n";
    }
    void multi()
    {
        r = a * b;
        cout<<"La multiplicacion de " <<a <<" y " <<b <<" es " <<r <<"\n";
    }
    void div()
    {
        if (b != 0)
        {
            r = a / b;
            cout<<"La divicion de " <<a <<" y " <<b <<" es " <<r <<"\n";
        }
        else
        {
            cout<<"ERROR :(" <<"\n";
            cout<<"No existe la divicion por " <<b <<"\n";
        }
    }

};
int main(array<System::String ^> ^args)
{
    int j, k;
    PROCESOS objFUN;
    cout<<"Introduce 2 numeros\n";
    cin>>j;
    cin>>k;
    objFUN.asignar1(j);
    objFUN.asignar2(k);
    objFUN.suma();
    objFUN.resta();
    objFUN.multi();
    objFUN.div();
    system("PAUSE");
    return 0;
}


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: eferion en 22 Julio 2013, 10:12 am
Por lo que he visto en tu código, la variable r no tiene razón de ser.

Es una variable que guarda un resultado temporal que no tiene sentido más allá de la función en la que defines su valor. Es decir, si haces una suma, en r guardas el resultado... pero ese resultado no se vuelve a usar para nada... en cuanto hagas otra operación, ese valor se pierde y nadie va a suspirar por el.

En estos casos es mejor reducir su ámbito de uso y declarar variables dentro de las funciones que las necesiten.

Saber declarar cada variable dentro de un ámbito correcto es bastante importante, aunque eso es algo que irás aprendiendo con el tiempo.

Además te faltaría definir el constructor de la clase. ¿ Qué sucede si se te olvida llamar a asignar1 y/o asignar2 antes de realizar alguna operacion? Pruébalo, verás que los resultados serán raros raros. Los constructores te ayudan a evitar ese tipo de problemas.

La declaración que haces del main es un poco rara... es una sintaxis propia del visual studio 12???

Dicho lo dicho, yo dejaría tu código así:

Código
  1. #include "stdafx.h"
  2. #include "iostream"
  3.  
  4. using namespace System;
  5. using namespace std;
  6.  
  7. class PROCESOS
  8. {
  9. private:
  10.    int a, b;
  11. public:
  12.  
  13.    PROCESOS( )
  14.    {
  15.      a = 0;
  16.      b = 0;
  17.    }
  18.  
  19.    void asignar1(int y)
  20.    {
  21.        a = x;
  22.    }
  23.    void asignar2(int z)
  24.    {
  25.        b = y;
  26.    }
  27.    void suma()
  28.    {
  29.        int r = a + b;
  30.        cout<<"La suma de " <<a <<" y " <<b <<" es " <<r <<"\n";
  31.    }
  32.    void resta()
  33.    {
  34.        int r = a - b;
  35.        cout<<"La resta de " <<a <<" y " <<b <<" es " <<r <<"\n";
  36.    }
  37.    void multi()
  38.    {
  39.        int r = a * b;
  40.        cout<<"La multiplicacion de " <<a <<" y " <<b <<" es " <<r <<"\n";
  41.    }
  42.    void div()
  43.    {
  44.        if (b != 0)
  45.        {
  46.            int r = a / b;
  47.            cout<<"La divicion de " <<a <<" y " <<b <<" es " <<r <<"\n";
  48.        }
  49.        else
  50.        {
  51.            cout<<"ERROR :(" <<"\n";
  52.            cout<<"No existe la divicion por " <<b <<"\n";
  53.        }
  54.    }
  55.  
  56. };
  57. int main(array<System::String ^> ^args)
  58. {
  59.    int j, k;
  60.    PROCESOS objFUN;
  61.    cout<<"Introduce 2 numeros\n";
  62.    cin>>j;
  63.    cin>>k;
  64.    objFUN.asignar1(j);
  65.    objFUN.asignar2(k);
  66.    objFUN.suma();
  67.    objFUN.resta();
  68.    objFUN.multi();
  69.    objFUN.div();
  70.    system("PAUSE");
  71.    return 0;
  72. }


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: 0xDani en 22 Julio 2013, 15:06 pm
@SrCooper, cout y cin son objetos, no funciones  ;)


Título: Re: Ayuda con este problema en C++ (Utilizando Visual Studio 12')
Publicado por: z3nth10n en 22 Julio 2013, 15:55 pm
Ale, he aquí mi code ;D

Código
  1. #include <iostream>
  2. #include <conio.h>
  3.  
  4. using namespace std;
  5.  
  6. main(){
  7.  
  8. float x, y;
  9. float suma, resta, multiplicacion, division;
  10.  
  11. cout << "Introduzca el primer numero: ";
  12. cin >> x;
  13. cout << "Introduzca el segundo numero: ";
  14. cin >> y;
  15.  
  16. suma=x+y;
  17. resta=x-y;
  18. multiplicacion=x*y;
  19. division=x/y;
  20.  
  21. cout << "La suma es: " << suma << endl;
  22. getch();
  23. cout << "La resta es: " << resta << endl;
  24. getch();
  25. cout << "La multiplicacion es: " << multiplicacion << endl;
  26. getch();
  27. cout << "La division es: " << division << endl;
  28. getch();
  29.  
  30. return 0;
  31.  
  32. }

Ya se que me he saltado las reglas del: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html) (Punto 4)

Pero me la pela un poco xD >:D
PD: Estoy aprendiendo C++ gracias a estas dudas yo tmb aprendo.
PDS: El code es un remix de todos los vuestros xD