Repblica Bolivariana de Venezuela
Ministerio de Poder Popular para la Educacin Universitaria
Universidad Politcnica Territorial del Estado Lara
Andrs Eloy Blanco
PNF Informtica
Trayecto I Perodo 2
Unidad Curricular: Algortmica y Programacin
PROGRAMACIN MODULAR
Material con fines didcticos, compilado por:
MSc. Ing. Sullin Santaella
Barquisimeto, Septiembre 2013
INTRODUCCIN
Uno de los problemas habituales del programador ocurre cuando los
programas alcanzan un tamao considerable en cuanto a lnea de cdigo. El
problema se puede volver tan complejo que fuera inabordable.
Para mitigar este problema apareci la programacin modular. En ella el
programa se divide en mdulos de tamao manejable. Cada mdulo realiza
una funcin muy concreta y se pueden programar de forma independiente. Se
basa en concentrar los esfuerzos en resolver problemas sencillos y una vez
resueltos, el conjunto de esos problemas soluciona el problema original.
En definitiva la programacin modular implementa el paradigma divide y
vencers, tan importante en la programacin. El programa se descompone en
mdulos. Los mdulos se puede entender que son pequeos programas.
Reciben datos y a partir de ellos realizan un clculo o una determinada tarea.
Una vez el mdulo es probado y validado se puede utilizar las veces que haga
falta en el programa sin necesidad de tener que volver a programar.
Tcnicas de Diseo
Top Down: Tambin conocida como de arriba-abajo y consiste en
establecer una serie de niveles de mayor a menor complejidad (arribaabajo) que den solucin al problema. Este diseo consiste en una serie
de
descomposiciones
sucesivas
del
problema inicial, que
recibe el
refinamiento progresivo del repertorio de instrucciones que van a formar
parte del programa.
La utilizacin
de la tcnica
de diseo
Top-Down tiene
los
siguientes objetivos bsicos:
- Simplificacin del problema y de los subprogramas de cada descomposicin.
- Las diferentes partes del problema pueden ser programadas de modo
independiente e incluso por diferentes personas.
- El programa final queda estructurado en forma de bloque o mdulos lo
que hace ms sencilla su lectura y mantenimiento.
La programacin modular est basada en la tcnica de diseo
descendente (Top-Dow), que como ya vimos consiste en dividir el problema
original en diversos subproblemas que se pueden resolver por separado, para
despus recomponer los resultados y obtener la solucin al problema.
Ejemplo:
NOTAS ALUMNOS
INSCRIBIR ALUMNOS
LISTAR ALUMNOS
ENCONTRAR ALUMNOS
INCLUIR ALUMNOS
IMPRIMIR ALUMNOS
BUSCAR ALUMNOS
Un subproblema se denomina mdulo y es una parte del problema que
se puede resolver de manera independiente. Que un mdulo sea
independiente nos permite, por un lado, concentrarnos en su resolucin
olvidndonos del resto del problema, y por otro lado, permite reutilizar la
solucin obtenida para otra parte del programa u otro programa distinto.
Cada mdulo se codifica dentro del programa como un subprograma, es
decir, una seccin de cdigo independiente que realiza una tarea especfica
dentro del programa.
Un
subprograma
es
una
serie
de
instrucciones
escritas
independientemente del programa principal. Este subprograma est ligado al
programa principal mediante un proceso de transferencia/retorno.
Definicin de FUNCIN
C++ es un lenguaje modular, y por esta razn, se puede dividir en varios
mdulos, cada uno de los cuales realiza una tarea determinada. Cada mdulo
es un subprograma llamado funcin que es un miniprograma dentro de un
programa. Es un conjunto de sentencias que se pueden llamar desde
cualquier parte del programa.
Las funciones sirven para: realizar tareas concretas y simplificar el
programa; sirven para evitar escribir el mismo cdigo varias veces; permiten
aislar mejor los problemas; escribir programas ms rpido y programas ms
fciles de mantener (ms legibles y ms cortos).
En una funcin hay que distinguir dos aspectos fundamentales:
La definicin de la funcin: Es la especificacin de los parmetros de entrada
y salida y las sentencias de la funcin.
La llamada a la funcin: Es una sentencia que pasa el control del programa a
la funcin. Cuando la funcin acaba su ejecucin, el control vuelve a la
sentencia siguiente a la llamada.
Estructura de una funcin
Las funciones trabajan con dos tipos de datos:
1. Variables locales: declaradas en el cuerpo de la funcin. Estas variables
solo son conocidas dentro de la funcin y se crean y se destruyen con la
funcin.
2. Parmetros: Los parmetros permiten la comunicacin de la funcin con el
resto del programa mediante transferencia de datos. Una funcin puede
necesitar o devolver datos. A estos datos se les denomina parmetros. Los
parmetros pueden ser de entrada o de salida. Los parmetros que se
incluyen en la definicin de la funcin se denominan parmetros formales. Los
parmetros que se pasan a la funcin en la llamada se denominan parmetros
reales.
mbito de los Identificadores (Variables o Constantes)
Un identificador declarado en una funcin es accesible nicamente
desde esa funcin y todos los bloques incluidos en l (se considera local a
esa funcin). Un parmetro formal se considera tambin una declaracin local
al bloque de la funcin.
Los identificadores declarados fuera de cualquier bloque se consideran
globales y pueden ser utilizados desde cualquier punto del programa.
Ejercicios resueltos
1. Funcin que No reciben ni retornan parmetros, para sumar dos nmeros
enteros.
#include<iostream>
using namespace std;
void sumar()
{
int num1, num2, r;
cout << "Numero 1: "; cin >> num1;
cout << "Numero 2: "; cin >> num2;
r = num1 + num2;
cout << "La suma es " << r;
}
int main()
{
sumar();
}
2. Funcin que Reciben y No Retornan parmetros, para sumar dos nmeros
enteros.
#include<iostream>
using namespace std;
void sumar(int num1, int num2)
{
int r;
r = num1 + num2;
cout << "La suma es " << r;
}
int main()
{
int num1, num2;
cout << "Numero 1: "; cin >> num1;
cout << "Numero 2: "; cin >> num2;
sumar(num1, num2);
}
3. Funcin que Retornan y No Reciben parmetros, para sumar dos nmeros
enteros.
#include<iostream>
using namespace std;
int sumar()
{
int num1, num2, r;
cout << "Numero 1: "; cin >> num1;
cout << "Numero 2: "; cin >> num2;
r = num1 + num2;
return r;
}
int main()
{
int r;
r = sumar();
cout << "La suma es " << r;
}
4. Funcin que Reciben y Retornan parmetros, para sumar dos nmeros
enteros.
#include<iostream>
using namespace std;
int sumar(int num1, int num2)
{
int r;
r = num1 + num2;
return r;
}
int main()
{
int num1, num2, r;
cout << "Numero 1: "; cin >> num1;
cout << "Numero 2: "; cin >> num2;
r = sumar(num1, num2);
cout << "La suma es " << r;
}
Ejercicio Propuesto
5. Escribir un programa que, utilizando funciones con parmetros, lea desde
el teclado las unidades y el precio que quiere comprar, y segn las unidades
introducidas le haga un descuento o no (cuando las unidades excedan media
docena se aplicar 4% y el 10% cuando excedan la docena).
Se recomienda realizar todos los ejercicios practicados
utilizando funciones con y sin parmetros.
Referencias
Barber, F.
y Ferrs, R. TEMA 5: Subprogramas, Programacin Modular.
[Documento
en
lnea].
Disponible:
[Link]
[Consulta: 2013, Agosto 20].
Garca, Y. (2009). Programacin Modular. Funciones en C++. [Documento en
lnea].
Disponible:
[Link]
[Consulta: 2013, Agosto 20]
10