logo3.gif (8200 bytes)

Arriba ] Indice de contenidos ] Introducción ] VARIABLES ] BUCLES ] FUNCIONES ] [ Primer programa ]

Por Alberto Valero para la Web del Programador

ESTRUCTURA DE UN PROGRAMA

En C++ un programa esta constituido por funciones, cada ella realiza una labor determinada, gestionando una serie de datos mediante variables, ya hemos visto que estas variables pueden ser globales al programa, al archivo, o locales a las funciones. También hemos visto que al ejecutarse el programa la primera función que se ejecuta es main, por lo que todos los programas deben tener como mínimo esta función, y desde ella se llamarán a todas las demás. Este modelo de programación se denomina estructurada, porque el programa sigue una serie de pasos secuenciales, en los que se van llamanda a diversas funciones para realizar las tareas que nos interesan, posteriormente, veremos otro tipo de programación, denominada "programación orientada a objetos", que se desvía un poco de la estructurada, pero eso será más adelante.

Como vimos, un programa podía estar formado por varios archivos fuente (archivos cpp), y que el compilador los enlazaba unos con otros, siendo nuestra labor indicarle que variables y funciones eran globales, locales, etc. Según esto, una práctica inteligente sería que en un archivo tuviéramos la función main, y que todas las demás funciones que se utilizaran en el programa las colocáramos en archivos diferentes agrupadas por realizar tareas semejantes. Con esto conseguimos que esas mismas funciones se puedan utilizar en otros programas sin más que incluir esos mismos archivos cpp. (este tipo de programación, aunque sigue siendo estructurada, sigue, sin embargo, la filosofía de la programación orientada a objetos).

    Pero desde luego que la mejor manera de entender esto es realizando un pequeño programa que calcula la integral definida de x^2

PRIMER ARCHIVO CPP - FUNC.CPP

                                            /*** func.cpp ***/
/*archivo en el que declaramos y definimos las funciones que utilizará el programa*/

//declaración de funciones
float f(float);
float min(float,float);
float max(float,float);

//definición de funciones
float f(float x)
{
    return x*x;
}
float min (float a, float b)
{
    float aux=10000000;
    float x;
    for (x=a;x<=b;x+=(b-a)/50)
        if (f(x)<aux) aux=f(x);
    return aux;
}
float max (float a, float b)
{
    float aux=0;
    for (float x=a;x<=b;x+=(b-a)/50)
        if (f(x)>aux) aux=f(x);
    return aux;
}

 

SEGUNDO ARCHIVO CPP- PPAL.CPP

#include <iostream.h>
/** Archivo en el que se encontrará la función main.**/
//incluyo la declaración de las funciones min y max como externas y globales al programa
extern float min(float,float);
extern float max(float,float);

//función ppal del programa
void main (void)
{
    cout<<"Vamos a integrar la función x^2 \n";
    cout<<"Introduce el intervalo que quieras integrar \n";
    float i,f,sumainf=0,sumasup=0;
    cin>>i>>f;
    for(float x=i;x<f;x+=(f-i)/10000)
    {
        sumainf=min(x,x+(f-i)/10000)*(f-i)/10000+sumainf;
        sumasup=max(x,x+(f-i)/10000)*(f-i)/10000+sumasup;
    }
    cout<<"La integral vale "<<(sumasup+sumainf)/2;
}

UTILIZACIÓN DE ARCHIVOS CABECERA

   Otra manera de aprovechar la compilación sepaerada sería la utilización de archivos cabecera (extensión .h) que sería un paso adelante y facilitando y haciendo más cómoda la programación.

    Lo que haríamos sería lo siguiente, introducir las declaraciones de las funciones en un archivo cabecera que luego incluiríamos (#include "miarchivo.h") en los archivos dónde se definieran dichas funciones y en los archivos en los que están se utilizaran, evitando de esta manera tener que repetir la declaración de las funciones cada vez que quisiéramos utilizarlas en un archivo, de esta manera nuestro programa anterior quedaría como sigue...

ARCHIVO DE CABECERA - FUNC.H

//declaración de funciones
float f(float);
float min(float,float);
float max(float,float);

 

ARCHIVO DONDE DEFINIMOS LAS FUNCIONES - FUNC.CPP

//Incluimos el archivo de declaración de las funciones
#include "func.h"

//definición de funciones
float f(float x)
{
    return x*x;
}
float min (float a, float b)
{
    float aux=10000000;
    float x;
    for (x=a;x<=b;x+=(b-a)/50)
        if (f(x)<aux) aux=f(x);
    return aux;
}
float max (float a, float b)
{
    float aux=0;
    for (float x=a;x<=b;x+=(b-a)/50)
        if (f(x)>aux) aux=f(x);
    return aux;
}

 

ARCHIVO CON LA FUNCIÓN MAIN- PPAL.CPP

#include <iostream.h>
/** Archivo en el que se encontrará la función main.**/

//incluyo la declaración de las funciones min y max como externas y globales al programa
#include "func.h"

//función ppal del programa
void main (void)
{
    cout<<"Vamos a integrar la función x^2 \n";
    cout<<"Introduce el intervalo que quieras integrar \n";
    float i,f,sumainf=0,sumasup=0;
    cin>>i>>f;
    for(float x=i;x<f;x+=(f-i)/10000)
    {
        sumainf=min(x,x+(f-i)/10000)*(f-i)/10000+sumainf;
        sumasup=max(x,x+(f-i)/10000)*(f-i)/10000+sumasup;
    }
    cout<<"La integral vale "<<(sumasup+sumainf)/2;
}

Anterior

Este curso esta albergado en La Web del Programador