Programación Modular
Programacion Visual
PROF.
DEFINICION
Es un paradigma de programación que consiste en dividir un programa en módulos o
subprogramas con el fin de hacerlo más legible y manejable
Se presenta históricamente como una evolución de la programación estructurada para
solucionar problemas de programación más grandes y complejos de lo que esta puede
resolver.
Al aplicar la programación modular, un problema complejo debe ser dividido en varios
subproblemas más simples, y estos a su vez en otros subproblemas más simples aún. Esto
debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser
resueltos fácilmente con algún lenguaje de programación. Esta técnica se llama refinamiento
sucesivo, divide y vencerás o análisis descendente (Top-Down).
Un 'módulo' es cada una de las partes de un programa que resuelve uno de los subproblemas
en que se divide el problema complejo original. Cada uno de estos módulos tiene una tarea
bien definida y algunos necesitan de otros para poder operar. En caso de que un módulo
características
• Cada módulo deberá tener asignado un nombre propio que le diferencie de
los otros y que será usado para invocarlos.
• Se puede transmitir información entre el módulo principal y el resto de los
módulos a través de parámetros.
• Cada módulo puede ser programado y compilado por separado, y
almacenado posteriormente en librerías.
• Cada módulo consta de dos partes: la cabecera, que es donde aparece el
nombre y los datos que se le pasan o genera, y el cuerpo o estructura
interna, que es donde se desarrolla el código.
Permite trabajar en equipo. Cada programador puede desarrollar un
módulo diferente y posteriormente enlazarlos.
El tamaño del módulo debe encontrarse entre 20 y 200 líneas de código.
Función
Un sub algoritmo función es un sub algoritmo que recibiendo o no datos devuelve un
único resultado. Tienen su origen ligado al concepto matemático de función de una o
más variables. Ejemplo de este tipo de sub algoritmos son las llamadas funciones
internas (sin, cos, abs). Las cuales pueden usarse en expresiones algorítmicas como si se
tratara de variables.
Procedimiento
Es un sub algoritmo que recibiendo o no datos permite devolver varios resultados, un
resultado o ninguno. Un procedimiento está compuesto por un grupo de sentencias a
las que asigna un nombre (identificador o simplemente nombre del procedimiento) y
constituye una unidad de programa. La tarea asignada al procedimiento se ejecutará
siempre que se encuentre el identificador (nombre del procedimiento) en el conjunto
de sentencias que definen el programa.
Parámetros o argumentos
Entre los módulos que componen la estructura completa de un
problema, se establece una serie de comunicaciones a través
de determinadas interfaces (llamadas a los módulos) que
permiten el paso de información de un módulo a otro así como
la trasferencia del control de la ejecución del programa.
Un método puede aceptar información para usarla en su
cuerpo de sentencias. Esta información es suministrada en
forma de literales, variables pasadas al método a través de
su cabecera y cada uno de estos elementos de información
se denomina parámetro.
Parámetros
un aspecto importante, que es necesario conocer en cualquier
lenguaje, es como se realiza el paso de los parámetros actuales a los
formales, a lo que se le conoce comúnmente como el problema del
paso de parámetros. Hay dos posibles formas por valor o por
referencia.
Paso por valor:: Paso por referencia:
Pase de parámetros por valor y por referencia
Dependiendo del tipo de dato que enviemos a la función, podemos diferenciar dos
comportamientos:
•Paso por valor: Se crea una copia local de la variable dentro de la función.
•Paso por referencia: Se maneja directamente la variable, los cambios realizados
dentro de la función le afectarán también fuera.
Tradicionalmente:
•Los tipos simples se pasan por valor: Enteros, flotantes, cadenas, lógicos...
•Los tipos compuestos se pasan por referencia: Listas, diccionarios, conjuntos...
Ejemplo de lenguaje en parámetros por Referencia
En este caso existe un forma de las variables después de haberlas pasado como parámetros en
una función sufran cambios, producto de las operaciones que se realizan dentro de la función,
para mostrar como funciona esta parte se resolverá un problema utilizando paso de parámetros
por referencia.
#include <iostream.h>
void areaTriangulo( int &base, int altura)
base= base * altura / 2;
void main()
int baseT = 3, alturaT = 4;
areaTriangulo(baseT,alturaT);
cout<<"El area del triángolo es: "<<baseT;
}
Ejemplo realizado en C++
Escribir una función que calcule los primeros 10 números primos
#include <iostream.h>
int esPrimo( int nro)
{
for(int i=2; i<= nro/2 ; i++)
if (nro % i == 0)
return 0;
return 1;
}
void main()
{
int nroPrimo = 0, contador = 1;
while( nroPrimo < 10)
{
if (esPrimo(contador))
{
nroPrimo++;
cout<<"El "<<nroPrimo<<"º número primo es: "<<contador<<endl;
}
contador++;
}
}
Clasificación de las Variables
según su alcance
Cuando se consideran varios módulos de software y no
un solo programa principal, se pueden declarar variables
tanto en el contexto global del algoritmo, como de
manera local en cada módulo a lo que se le conoce como
alcance de las variables, en otras palabras esto permite
identificar la zona del programa donde una variable es
accesible “conocida”. Desde este punto de vista, las
variables pueden ser de dos tipos: locales o globales.
Variables Globales
Son las que son accesibles desde cualquier punto del
programa y se pueden usar desde cualquier módulo o
subprograma, esto lleva a considerar que la variable
puede usarse en cualquier parte del programa y su valor
se puede alterar incontroladamente, y si posteriormente
es necesario usar la variable en otra parte del programa
con su valor original, se tendrá un error. El punto donde
se da el error es fácil de localizar, pero no lo es tanto el
origen del mismo.
Variables Locales
Las variables locales sólo existen en un ámbito
determinado del programa, por ejemplo en un
subprograma o en un bloque de sentencias. Solo pueden
ser utilizadas en el módulo donde fueron definidas.
Entonces si son analizados los conceptos de variables
globales y locales, es posible resumir que cuando se usan
variables locales, éstas son independientes de las
globales y de las de otros módulos.