martes, 30 de abril de 2013

Programas en C++

Puesto que hacer programas en C y en C++ es una de mis diversiones favoritas voy a dedicar este blog, elcantodelmirlo2, a poner mis programitas, que van señalando también mis progresos y comprensión del lenguaje. Empecemos hoy con el último alumbramiento. En él empleo clases, que además manejan tres variables. Se trata de calcular el peso de un cilindro en función del radio, la altura y la densidad. Son dos programas, uno el principal y otro la clase. Ha funcionado.
Programa principal. Se llama clases33.cpp:


#include<iostream>
#include "cili.h"
using namespace std;
int main()
{
double r, h, ro;
cout<<"Dame el radio de la base (mts.): ";cin>>r;
cout<<"Dame la altura (mts.): ";cin>>h;
cout<<"Dame la densidad (gr/cm3): ";cin>>ro;
Cilindro unObjeto(r,h,ro);
double arealat = unObjeto.arealCilindro();
double areatotal = unObjeto.areatCilindro();
double volumen = unObjeto.volCilindro();
double peso = unObjeto.pesoCilindro();
cout<<"El área lateral del cilindro es "<<arealat<<" mets2"<<endl;
cout<<"El área total del cilindro es "<<areatotal<<" mts2"<<endl;
cout<<"El volumen del cilindro es "<<volumen<<" mts3"<<endl;
cout<<"El peso del cilindro es "<<peso<<" newtons o "<<peso/9.81<<" kilopondios"<<endl;
return 0;
}

Y éste es la clase, se llama cili.h:

//Esta clase calcula el peso de un cilindro en función de tres variables, radio, altura y densidad. Emplea dos constantes.
class Cilindro
{
private:
double radio;
double altura;
double densidad;
const static double pi=3.1415926;
const static double g=9.81;
public:
Cilindro (double r, double h, double ro){
radio=r;
altura=h;
densidad=ro;
}
double areabCilindro(){
double areabase = pi*radio*radio;
return areabase;
}
double volCilindro(){
double volumen = areabCilindro()*altura;
return volumen;
}
double arealCilindro(){
double area = 2*pi*radio*altura;
return area;
}
double areatCilindro(){
double areatot = arealCilindro()+2*areabCilindro();
return areatot;
}
  double pesoCilindro(){
double peso = 1000*densidad*g*volCilindro();
return peso;
}
};