|
Ver temas sin respuesta | Ver temas activos
Foros Linux » Desarrollo » Programación
Página 1 de 1
|
[ 12 mensajes ] |
|
| Autor |
Mensaje |
abuelo_dante

Forista Nuevo
Registrado: Mar Abr 05, 2011 7:13 pm Mensajes: 14
|
 Publicado: Mar Abr 05, 2011 7:31 pm |
|
|
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
|
|
|
|
 |
hipersayan_x

Forista Distinguido
Registrado: Jue Abr 26, 2007 11:00 pm Mensajes: 1426
|
 Publicado: Mar Abr 05, 2011 8:08 pm |
|
|
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
|
|
|
|
 |
abuelo_dante

Forista Nuevo
Registrado: Mar Abr 05, 2011 7:13 pm Mensajes: 14
|
 Publicado: Mar Abr 05, 2011 8:35 pm |
|
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);
|
|
|
|
 |
hipersayan_x

Forista Distinguido
Registrado: Jue Abr 26, 2007 11:00 pm Mensajes: 1426
|
 Publicado: Mar Abr 05, 2011 10:24 pm |
|
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
|
|
|
|
 |
abuelo_dante

Forista Nuevo
Registrado: Mar Abr 05, 2011 7:13 pm Mensajes: 14
|
 Publicado: Mié Abr 06, 2011 5:28 pm |
|
|
waaaa, me manda que esta que esta indefinido el simbolo dolar euro y rublo en los mismos renglones
|
|
|
|
 |
hipersayan_x

Forista Distinguido
Registrado: Jue Abr 26, 2007 11:00 pm Mensajes: 1426
|
 Publicado: Mié Abr 06, 2011 5:48 pm |
|
|
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
|
|
|
|
 |
abuelo_dante

Forista Nuevo
Registrado: Mar Abr 05, 2011 7:13 pm Mensajes: 14
|
 Publicado: Mié Abr 06, 2011 5:58 pm |
|
|
pero ya estan declaradas, en la clase convertir, y son privadas
|
|
|
|
 |
hipersayan_x

Forista Distinguido
Registrado: Jue Abr 26, 2007 11:00 pm Mensajes: 1426
|
 Publicado: Mié Abr 06, 2011 6:08 pm |
|
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
|
|
|
|
 |
abuelo_dante

Forista Nuevo
Registrado: Mar Abr 05, 2011 7:13 pm Mensajes: 14
|
 Publicado: Vie Abr 08, 2011 3:10 pm |
|
|
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
|
|
|
|
 |
hipersayan_x

Forista Distinguido
Registrado: Jue Abr 26, 2007 11:00 pm Mensajes: 1426
|
 Publicado: Vie Abr 08, 2011 5:31 pm |
|
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.pdfEditado -- 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
|
|
|
|
 |
abuelo_dante

Forista Nuevo
Registrado: Mar Abr 05, 2011 7:13 pm Mensajes: 14
|
 Publicado: Mié Abr 13, 2011 5:41 pm |
|
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.
|
|
|
|
 |
DaemonuX

Forista Nuevo
Registrado: Mié May 18, 2011 10:21 am Mensajes: 11 Ubicación: Santiago de Chile
|
 Publicado: Mié May 18, 2011 3:16 pm |
|
|
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"
|
|
|
|
 |
|
|
|
Página 1 de 1
|
[ 12 mensajes ] |
|
¿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
|
|