Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Aprendiendo clases....ayuda, por favor

Estas en el tema de Aprendiendo clases....ayuda, por favor en el foro de C/C++ en Foros del Web. La actividad q debo realizar es esta: "Diseñe una clase cilindro q modele un cilindro. El objetivo es emplear esa clase para calcular el volumen ...
  #1 (permalink)  
Antiguo 05/04/2009, 09:51
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Aprendiendo clases....ayuda, por favor

La actividad q debo realizar es esta:
"Diseñe una clase cilindro q modele un cilindro. El objetivo es emplear esa clase para calcular el volumen del cuerpo conociendo el radio y la altura del mismo. Proponga métodos para asignar los datos del problema a través de parámetros, calcular el volumen y mostrar el resultado.
Escriba un programa C++ q utilice la clase cilindro. Defina 2 instancias llamadas c1 y c2. El objeto c1 debe utilizar datos q se ingresan interactiva mente; para c2, utilice 5.3 cm y 10.2 cm para el radio y la altura respectivamente."

Esta fue mi solución, (el compilador no arroja errores al compilar), pero sin embargo no devuelve bien los resultados.

#include <iostream>
#include <math.h>
using namespace std;
class cilindro{
float radio, altura, volumen;
public:
cilindro (float a, float b) {altura=a, radio=b;};
void calculo_volumen (void);
float mostrar_volumen (void) {return volumen;};
};
void cilindro::calculo_volumen (void){
volumen = M_PI*(pow(radio,2))*altura;
}

int main(int argc, char *argv[]) {
float radio, altura;
cout<<"Ingrese radio"<<endl;
cin>>radio;
cout<<"Ingrese altura"<<endl;
cin>>altura;
cilindro c1(altura, radio);
cilindro c2(10.2, 5.3);
cout<<"El volumen 1 es:"<<c1.mostrar_volumen ()<<endl;
cout<<"El volumen 2 es:"<<c2.mostrar_volumen ()<<endl;
return 0;
}




///Dandole como valores aleatorios a c1 5 de radio y 10 de altura

el resultado q imprime para ambas instancias es:

El volumen 1 es: NaN

El volumen 2 es: 3.21401e-39


Si me pueden ayudar con esto les agradecería infinitamente....
salu2
Damian
P/D: Soy nuevo en el sitio :P
  #2 (permalink)  
Antiguo 05/04/2009, 10:19
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Aprendiendo clases....ayuda, por favor

¿Y cuando se llama al metodo calculo_volumen? Tal vez quieras hacerlo en el constructor.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 05/04/2009, 11:16
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Aprendiendo clases....ayuda, por favor

Cita:
Iniciado por Eternal Idol Ver Mensaje
¿Y cuando se llama al metodo calculo_volumen? Tal vez quieras hacerlo en el constructor.
Estoy trabajando con unos apuntes de la facu, y ya había un problema similar hecho, pero era para calculo de area y con un solo contructor, y en ningun momento el constructor llama al metodo calculo_area...
De todas formas gracias
salu2
  #4 (permalink)  
Antiguo 05/04/2009, 11:25
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Aprendiendo clases....ayuda, por favor

Bien, entonces llamalo desde el programa sino siempre vas a tener resultados erroneos cuando llames a mostrar_volumen (volumen tiene un valor indefinido, podrias inicializarlo a 0 en el constructor).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 05/04/2009, 12:57
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Aprendiendo clases....ayuda, por favor

Cita:
Iniciado por Eternal Idol Ver Mensaje
Bien, entonces llamalo desde el programa sino siempre vas a tener resultados erroneos cuando llames a mostrar_volumen (volumen tiene un valor indefinido, podrias inicializarlo a 0 en el constructor).
Ahi me parece q estamos llegando a algo..jaja...
como harías para ponerlo dentro del constructor, reicen empiezo con clases, y realmente solo se lo basico....
Gracias
  #6 (permalink)  
Antiguo 05/04/2009, 14:56
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Aprendiendo clases....ayuda, por favor

En realidad esto fue lo que te dije desde el principio pero bueno ...

Código:
cilindro (float a, float b) 
{
  altura = a;
  radio = b;
  calculo_volumen();
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 06/04/2009, 21:34
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Aprendiendo clases....ayuda, por favor

Gracias. Ahora lo pruebo y cualquier cosa despues te cuento q salio.
salu2
  #8 (permalink)  
Antiguo 07/04/2009, 01:08
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Aprendiendo clases....ayuda, por favor

De nadas, yo lo probe antes de subirlo aca.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:07.