"Siempre programo como si la persona que mantendrá mi código fuera un psicópata que sabe donde vivo."
::Martin Golding::
Ejercicios de programación
1. En este ejemplo vamos a crear y usar un archivo de cabecera (se guardan con la extensión *.h). Ahí escribiremos las variables, constantes y funciones.
//archivo: funciones.h
#ifndef __CABECERA_H
#define __CABECERA_H
#define MAX 3 //podemos crear una variable constante con valor de 3
#define PULSACIONES (e) (220-e)/15 //una función para calcular las pulsaciones de una persona
using std::cout;
using std::endl;
//también podemos escribir funciones de manea tradicional
void mensaje(){
cout<<"Este es un simple mensaje"<<endl;
}
#endif /*__CABECERA_H*/
¿Cómo se puede usar?
Creamos un archivo llamado prueba.cpp y declaramos el archivo de cabecera funciones.h.
//archivo:prueba.cpp
#include "funciones.h"
#include "iostream"
using namespace std;
int main(){
int numeros[MAX];
numeros[0]=9;
numeros[1]=21;
numeros[2]=54; //al tratar de recorrer el vector provoca un bug
mensaje();
//obtener pulsaciones de una persona de 43 años de edad
cout<<"Pulsaciones: "<<PULSACIONES(43)<<endl;
return 0;
}
2. Al programar en C++ tenemos la ventaja de la programación funcional y la orientada a objetos, en este ejemplo escribiremos:
- Un archivo (funcional.cpp) que usa funciones para obtener el perímetro y área de un circulo
- Un archivo de cabecera que contendrá las funciones: perimetro() y area()
- Otro archivo (objeto.cpp) que instancia una clase que posee los métodos para obtener lo mismo
#ifndef __CABECERA_H
#define __CABECERA_H
#define PI 3.14159
double perimetro(double d){
return PI*d;
}
double area(double r){
return PI*(r*r);
}
#endif /*__CABECERA_H*/
//funcional.cpp
#include "iostream"
#include "funciones.h"
using namespace std;
int main(){
double radio=0.0,diametro=0.0;
cout<<"Introduce radio: ";
cin>>radio;
cout<<"Introduce diametro: ";
cin>>diametro;
cout<<"diametro: "<<perimetro(diametro)<<" , area: "<<area(radio)<<endl;
return 0;
}
//objeto.cpp
#include "iostream"
using namespace std;
class Circulo{
private:
double radio;
double diametro;
public:
static const double PI=3.1459;
Circulo(){cout<<"objeto circulo creado"<<endl;}
virtual ~Circulo(){cout<<"objeto circulo destruido"<<endl;}
void setRadio(double r){this->radio=r;}
double getRadio(){return this->radio;}
void setDiametro(double d){this->diametro=d;}
double getDiametro(){return this->diametro;}
double calc_diametro(){return this->diametro*PI;}
double calc_area(){return PI*(this->radio*this->radio);}
};
int main(){
Circulo circulo=Circulo();
double radio=0.0,diametro=0.0;
cout<<"Introduce radio: "<<endl;
cin>>radio;
cout<<"Introduce diametro: "<<endl;
cin>>diametro;
circulo.setRadio(radio);
circulo.setDiametro(diametro);
cout<<"diametro: "<<circulo.calc_diametro()<<" , area: "<<circulo.calc_area()<<endl;
return 0;
}
Esto esto por hoy.
Links
http://foro.elhacker.net/programacion_c/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html