![]() |
Índex |
Es a dir, que quan fem un programa, hem de plantejar-nos la divisió en mòduls que han de contenir un cert tipus de funcions, per tal de treballar-los per separat i de manera independent.
Exemple: Ens plantegem fer un programa d'introducció de dades
i llistats per portar la matrícula dels alumnes del centre.
Les tasques principals que ha de realitzar aquest programa són
les següents:
Podem agrupar aquestes tasques en tres mòduls diferents:a) Afegir alumne
b) Editar alumne
c) Esborrar alumne
d) Llistats per nom
e) Llistats per curs
f) Llistats per grup
g) Creació de fitxers
h) Obertura de fitxers
i) Sortir del programa
Mòdul de fitxers | Mòdul d'edició de dades | Mòdul de llistats |
Creació de fitxers
Obertura de fitxers Sortir del programa |
Afegir alumne
Editar alumne Esborrar alumne |
Llistats per nom
Llistats per curs Llistats per grup |
Normalment necessitarem també funcions que haurem de fer ús des de tots els mòduls. Aquestes funcions a la seva vegada formaran mòduls. Un exemple pot ser el conjunt d'instruccions que permeten posar dades en pantalla. Aquest serà un nou mòdul.
També és convenient pensar que el programa ha de tenir només un punt d'entrada, que en C és la funció main. Podem pensar en un mòdul especial que s'encarregui de presentar els menús en pantalla i faci la distribució de les crides a les funcions a mesura que l'usuari faci demandes.
Així el nostre programa tindrà, en aquest cas, cinc mòduls
molt bé diferenciats:
Mòduls per al nostre programa |
1. Mòdul de fitxers
2. Mòdul d'edició de dades 3. Mòdul de llistats 4. Mòdul de la funció principal 5. Mòdul de funcions de presentació i presa de dades en pantalla |
Nota: En el nostre exemple hem fet un estudi de modularització atenent al criteri de tipus de grans tasques que han de realitzar aquest mòduls. Els criteris de modularització poden ser molt diferents segons l'equip de treball que realitzi el treball de programació. Un cas extrem és el de fer un mòdul per a cada funció que tindrà el programa.
Dins d'un projecte es poden incloure fitxers amb extensió .cpp o fitxers amb extensió .obj.
Com que disposem d'un fitxer de biblioteca que es diu subru.cpp que té un arxiu de capçalera que es diu subru.h podem crear un primer projecte de la forma següent:
PRSUBRU.PRJ
SUBRU.CPP SUBRU.H PRINCIPA.CPP |
PRSUBRU.EXE | PRINCIPA.OBJ
SUBRU.OBJ |
Observa que el programa executable té el nom del projecte.
Nota: Per a fer ús del mòdul de programació subru.cpp has de canviar tres paràmetres a l'entorn del desenvolupament del Borland C++:
Si ens fixem en el quadre adjunt veurem que el fitxer de capçalera
subru.h conté les declaracions de les funcions del mòdul
subru.cpp. Així en el mòdul prova.cpp hem fet un #include
<subru.h> que permet compilar sense errors aquest mòdul:
subru.h | prova.cpp |
#include <stdio.h>
#include <conio.h> #include <ctype.h> #include <stdlib.h> #include <string.h> #include <bios.h> #include <dos.h> #include <alloc.h> #if !defined(_SUBRU_H)
int Boolean; struct Menu
struct PullDown
struct CadenaPantalla
void EsperaTecla(int mensaje);
|
#include "subru.h"
int main(void)
BorraPantalla('²',GREEN,RED,0);
return 0;
|
Segons veiem en el fitxer prova.cpp hem posat #include <subru.h>
que ens permet fer ús de totes les funcions declarades en aquest
fitxer de capçalera.
També podem fer ús de les estructures declarades, les
constants CIERTO i FALSO, i també hem de pensar que l'include
del fitxer prova.cpp fa innecessari que escriguem tots els includes del
fitxer subru.h i podem fer també ús de totes les funcions
dels arxius de capçalera escrits.