Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 12 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Abr 05, 2011 7:13 pm
Mensajes: 14

Nota Publicado: Mar Abr 05, 2011 7:31 pm 
Arriba  
Estoy haciendo este programa pero me manda 3 errores de sintaxis, quiero ver porque, lo que tiene que hacer el programa es apartir de el numero que se de en "a" convertir ese valor en euros, dolares y rublos, me ayudarian mucho si me explican detalladamente
#include <iostream>
#include <math>
#include <conio>
class convertir{
private:
float dolar;
float euro;
float rublo;
float *cant;
public:
convertir();
convertir(float dolar, float euro, float rublo);
~convertir();
leee_pesos(float a);
void conv_dolar(float cant);
void conv_euro(float cant);
void conv_rublo(float cant);
}dinero;
convertir::convertir(){}

convertir::convertir(float dolar, float euro, float rublo)
{
dolar=euro=rublo=0;
}
convertir::leee_pesos(float a)
{

}
convertir::~convertir()
{ cout<<"Finaliza el programa";
}
void convertir::conv_dolar(float cant)
{
dolar=cant * 13;
}
void convertir::conv_euro(float cant)
{
euro=cant * 18;
}
void convertir::conv_rublo(float a)
{
rublo=a * 3;
cout<<"el peso en rublos es "<<rublo;
}


void main(void)
{
float a,b,c,d;
cout<<"Introdusca la cantidad en pesos";
cin>>a;
dinero.leee_pesos(a);
b=dinero.conv_dolar(float dolar);
c=dinero.conv_euro(float euro);
d=dinero.conv_rublo(float rublo);
cout<<"EL cambio de moneda en Dolar"<<b
<<" euro"<<c
<<" rublo"<<d;
}

:mrgreen: Espero que me ayuden

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mar Abr 05, 2011 8:08 pm 
Arriba  
1) ¿Y cual es es el error que te da?¿Que dice exactamente? copia y pega la salida del compilador.
2) Coloca el código usando la etiqueta code porque así no se lee nada.

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Abr 05, 2011 7:13 pm
Mensajes: 14

Nota Publicado: Mar Abr 05, 2011 8:35 pm 
Arriba  
hipersayan_x escribió:
1) ¿Y cual es es el error que te da?¿Que dice exactamente? copia y pega la salida del compilador.
2) Coloca el código usando la etiqueta code porque así no se lee nada.

Código:
#include <iostream>
#include <math>
#include <conio>
class convertir{
     private:
    float dolar;
    float euro;
    float rublo;
    float *cant;
     public:
     convertir();
     convertir(float dolar, float euro, float rublo);
     ~convertir();
     leee_pesos(float a);
     void conv_dolar(float dolar , float cant);
     void conv_euro(float cant, float euro);
     void conv_rublo(float cant, float rublo);
}dinero;
convertir::convertir(){}

convertir::convertir(float dolar, float euro, float rublo)
{
dolar=euro=rublo=0;
}
convertir::leee_pesos(float a)
{
cant=&a;
}
convertir::~convertir()
{ cout<<"Finaliza el programa";
}
void convertir::conv_dolar(float cant)
{
dolar=cant * 13;
}
void convertir::conv_euro(float cant, float euro)
{
euro=cant * 18;
}
void convertir::conv_rublo(float cant, float rublo)
{
rublo=cant * 3;
}


void main(void)
{
float a,b,c,d;
cout<<"Introdusca la cantidad en pesos";
cin>>a;
dinero.leee_pesos(a);
b=dinero.conv_dolar(float dolar);
c=dinero.conv_euro(float euro);
d=dinero.conv_rublo(float dolar);
cout<<"EL cambio de moneda en Dolar"<<b
    <<"                        euro"<<c
    <<"                       rublo"<<d;
}

expresion de sintaxis en las ultimas lineas donde esta "b,c y d"

Editado -- Mar Abr 05, 2011 8:35 pm --

perdon mas espesifico es en estas 3 lineas
b=dinero.conv_dolar(float dolar);
c=dinero.conv_euro(float euro);
d=dinero.conv_rublo(float dolar);

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mar Abr 05, 2011 10:24 pm 
Arriba  
Así es lo correcto:

Código:
b=dinero.conv_dolar(dolar);
c=dinero.conv_euro(euro);
d=dinero.conv_rublo(dolar);

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Abr 05, 2011 7:13 pm
Mensajes: 14

Nota Publicado: Mié Abr 06, 2011 5:28 pm 
Arriba  
waaaa, me manda que esta que esta indefinido el simbolo dolar euro y rublo en los mismos renglones

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mié Abr 06, 2011 5:48 pm 
Arriba  
Y si, obvio, tenes que declarar esas variables al principio de main o antes de usarlas y asignarles un valor.

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Abr 05, 2011 7:13 pm
Mensajes: 14

Nota Publicado: Mié Abr 06, 2011 5:58 pm 
Arriba  
pero ya estan declaradas, en la clase convertir, y son privadas

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mié Abr 06, 2011 6:08 pm 
Arriba  
Las variables son locales al bloque a menos que se las declare como globales.
Las propiedades dolar, euro y rublo de la clase convertir son locales a la clase convertir, y son distintas de las variables dolar, euro y rublo de la función main y son locales a dicha función.

https://secure.wikimedia.org/wikibooks/ ... _una_clase

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Abr 05, 2011 7:13 pm
Mensajes: 14

Nota Publicado: Vie Abr 08, 2011 3:10 pm 
Arriba  
eso si lo entendi, pero entonces como le haria para que llamen los datos que se sustituieron en las funciones conv dolar, conv euro, conv rublo, y que los pongan en main

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Vie Abr 08, 2011 5:31 pm 
Arriba  
El creador del C++ de debe estar agarrando la cabeza, leyendo detenidamente tu código, todo el código esta mal diseñado.
Por ejemplo, esta es tu implementación de conv_rublo:

Código:
d = dinero.conv_rublo(float dolar);


Y esta es su definición:

Código:
void convertir::conv_rublo(float cant, float rublo)
{
rublo=cant * 3;
}


Cuando debería ser:

Código:
d = dinero.conv_rublo(dolar);


Y así su definición:

Código:
float convertir::conv_rublo(float dolar)
{
    return dolar * 3;
}


Se que mi respuesta puede parecer hostil, no es mi intención, pero es que son muy notorios los errores de concepto.
Aquí dejo un muy buen manual de C++:

http://mat21.etsii.upm.es/ayudainf/apre ... ualcpp.pdf

Editado -- Vie Abr 08, 2011 8:31 pm --

Y ya que estamos, a lo de arriba se le llama pasar variables por valor, también se pueden pasar valores por referencia, muy poco practico para este caso pero posible.
Implementación:

Código:
dinero.conv_rublo(dolar, &rublo);


Y así su definición:

Código:
float convertir::conv_rublo(float dolar, float *rublo)
{
    *rublo = dolar * 3;
}


No es lo correcto, pero se parece mas a lo que quisiste hacer.
Luego haciendo:

Código:
cout << rublo;


Ya sea por valor o por referencia ambos devuelven el mismo valor de la conversión :)

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Abr 05, 2011 7:13 pm
Mensajes: 14

Nota Publicado: Mié Abr 13, 2011 5:41 pm 
Arriba  
Código:
#include <iostream>
#include <math>
#include <conio>
class convertir{
     private:
    float dolar;
    float euro;
    float rublo;
    float *cant;
     public:
     convertir();
     convertir(float dolar, float euro, float rublo);
     ~convertir();
     leee_pesos(float a);
     conv_dolar(float);
     conv_euro(float);
      conv_rublo(float);
}dinero;
convertir::convertir(){}

convertir::convertir(float dolar, float euro, float rublo)
{
dolar=euro=rublo=0;
}
convertir::leee_pesos(float a)
{
dolar =euro=rublo=a;

}
convertir::~convertir()
{ cout<<"Finaliza el programa";
}
convertir::conv_dolar(float dolar)
{
return (dolar * 13);
}
convertir::conv_euro(float euro)
{
return (euro * 18);
}
convertir::conv_rublo(float rublo)
{
return (rublo* 3);
}


void main()
{
float dolar, euro, rublo;
float a,b,c,d;
cout<<"Introdusca la cantidad en pesos";
cin>>a;
dinero.leee_pesos(a);
b=dinero.conv_dolar(dolar);
c=dinero.conv_euro(euro);
d=dinero.conv_rublo(rublo);
cout <<b
     <<c
     <<d;
getch();
}

ya lo cambie pero a la hora de introducir el valor de pesos y que haga las operaciones me da 000, pero antes me dice que el programa no es seguro de abrir.

 Perfil Email  

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Mié May 18, 2011 10:21 am
Mensajes: 11
Ubicación: Santiago de Chile

Nota Publicado: Mié May 18, 2011 3:16 pm 
Arriba  
esta excelente el manual XD
ya conocía estos manuales de aprenda como si estuviera en primero, pero nunca había visto un de C++

_________________
"Lo que creamos o lo que pensemos no tiene mayor importancia si no hacemos algo al respecto"

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 12 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO