miércoles, 30 de julio de 2014

Programando en C++ ... no. 4

"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
//archivo de cabecera: funciones.h
#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


No hay comentarios:

Publicar un comentario