0% encontró este documento útil (0 votos)
41 vistas32 páginas

Programacion Modular

La programación modular es un enfoque que divide problemas complejos en subproblemas más manejables, facilitando así el desarrollo y mantenimiento del software. Cada módulo es autónomo y puede ser editado sin afectar al resto del programa, permitiendo una mejor organización y reutilización del código. Aunque ofrece ventajas como facilidad de depuración y mantenimiento, también presenta desventajas como un mayor uso de memoria y la falta de algoritmos formales de modularidad.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas32 páginas

Programacion Modular

La programación modular es un enfoque que divide problemas complejos en subproblemas más manejables, facilitando así el desarrollo y mantenimiento del software. Cada módulo es autónomo y puede ser editado sin afectar al resto del programa, permitiendo una mejor organización y reutilización del código. Aunque ofrece ventajas como facilidad de depuración y mantenimiento, también presenta desventajas como un mayor uso de memoria y la falta de algoritmos formales de modularidad.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PROGRAMACION

MODULAR
Qué es programación modular?
Uno de los métodos más conocidos para
resolver un problema es dividirlo en
problemas más pequeños, llamados
subproblemas. De esta manera, en lugar
de resolver una tarea compleja y tediosa,
resolvemos otras más sencillas y a partir
de ellas llegamos a la solución. Esta
técnica se usa mucho en programación
ya que programar no es más que
resolver problemas, y se le suele
llamar diseño descendente, metodología
del divide y vencerás o
programación top-down.
Programación Modular 5
Recuerda: El módulo es Es una técnica utilizada para el
un bloque de
sentencias que desarrollo de software, donde se
resuelve un problema divide el programa en muchos
particular. componentes o bloques pequeños
autónomos llamados módulos, que
son manejables, lógicos y
funcionales

Cada módulo contiene todo lo necesario para


cumplir con su propia funcionalidad y se puede
editar o modificar sin que se vea afectado el
resto del proyecto.
Características de la programación modular
 Cada módulo deberá tener asignado un nombre propio que le diferencie de los otros y

5
que será usado para invocarlos.
 Él módulo principal debe indicar la solución completa del problema.
 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.
 Debe existir conexión entre los módulos.
 Las funciones de los módulos no interfieren en el funcionamiento de otros
programas.
 Debe existir independencia total entre ellos, es decir, que no necesitan
colaboración de otros.
 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.
 Un módulo solo puede tener una entrada y solo puede tener una salida.
 Un módulo debe representar por sí mismo una estructura coherente y resolver
una parte bien definida del problema.
 Los módulos pueden ejecutarse unos a continuación de otros o pueden ser
llamados en momentos determinados para su ejecución.
Ventajas de la Programación Modular
5
• Un programa modular es más fácil de escribir y depurar (ejecutar, probar
y poner a punto).

• Se puede profundizar en las pruebas parciales de cada módulo mucho


más de lo que se hace un programa mayor.

• Un programa modular es fácil de mantener y modificar.

• Un programa modular es fácil de controlar.

• El desglose de un problema en módulos permite encomendar los


módulos más complejos a los programadores más experimentados y los
más sencillos a los programadores más noveles.

• Posibilita el uso repetitivo de las rutinas en el mismo o en diferentes


programas.
Desventajas de la Programación Modular 5

• No se dispone de algoritmos formales de


modularidad, por lo que a veces los programadores
no tienen claras las ideas de los módulos.

• La programación modular requiere más memoria y


tiempo de ejecución.
PROGRAMACION MODULAR
Programación modular 5
Se logra manteniendo una interfaz de módulo permanente que usan los demás
componentes del software para así poder acceder a las funciones de cada módulo.

(Top-Down)
EJEMPLO PRACTICO 5
Se logra manteniendo una interfaz de módulo permanente que usan los demás
componentes del software para así poder acceder a las funciones de cada módulo.
EJEMPLO PRACTICO
El problema con el que nos encontramos es que
5
La respuesta es
simple: cuando es necesitamos saber si un determinado número es par o
divisible por 2 y el impar.
resto es cero. Pseudocódigo
Algoritmo testParImpar
Escribir "Indique un número: "
Leer numero
Si ((numero % 2) = =0)
Verdad
Escribir número, " es par"
Falso
Escribir número, " no es par"
Fin Si
FinAlgoritmo
m
DEFINICION DE MODULO FUNCIONES
� Plantilla (formato)
TipoDato Nombre_Módulo (Lista de argumentos) 5
Inicio
Definiciones
Cuerpo del módulo (instrucciones)
[Retornar Expresión]
FinMódulo

Donde Lista de argumentos=TipoAcceso TipoDato Parametro1,


TipoAcceso TipoDato Parametro2, TipoAcceso TipoDato
Parametro3

TipoAcceso puede ser Entrada o Salida o Entrada/Salida


Ejemplo de // En esta función se devuelve el factorial de un número y recibe como
parámetro Numero
Función Entero Factorial (Entrada Entero Numero)
Inicio
Fact=1
5
For(I=2; I<=Numero;++I)
{
Fact=Fact*I
}
Retornar Fact
FinFactorial

En este caso si en el algoritmo principal llamamos a Factorial,


debemos asignarlo a una variable por ejemplo:

Algoritmo VerFactorial
Inicio
FactorialNumero=Factorial(5) Llamada Escritura en
Imprimir FactorialNumero Pantalla
Fin Factorial(5) 120
Definición de Módulos: Procedimientos
� Plantilla (formato) 5
Nombre_Módulo (Lista de argumentos)
Inicio
Definiciones
Cuerpo del módulo (instrucciones)
FinMódulo

Donde Lista de argumentos=Tipo Parametro1, Tipo


Parametro2, Tipo Parametro3

TipoAcceso puede ser Entrada o Salida o


Entrada/Salida
Ejemplo de Procedimiento
// En este procedimiento se imprimen los factoriales del 1 a
MaxFactorial, donde MaxFactorial es el parámetro que recibe
ImprimeFactoriales (Entrada Entero MaxFactorial)
Inicio
5
Fact=1
For(I=1;I<=MaxFactorial;I++)
{
Fact=Fact*I
}

Imprimir Fact

FinImprimeFactoriales

En este caso si en el algoritmo principal llamamos a


Imprimefactorial, sucederá lo siguiente:

Algoritmo VerFactorial
Inicio
Lee Num //supongamos que Num=6
ImprimeFactoriales(Num)
Fin
Como invocar métodos funciones y procedimientos:
 El nombre debe coincidir exactamente al momento de invocar, pues es la única
forma de identificarlo.
 Para invocar los módulos se deben enviar los parámetros de la forma correcta.
 Al momento de enviar los parámetros actuales deben coincidir el orden, el
5
número y el tipo de los parámetros manteniendo el mismo orden en el que fueron
declarados.
 Si una función no recibe parámetros, simplemente no se coloca nada al interior
de los paréntesis, pero siempre se deben poner los paréntesis.
 Cada parámetro enviado va separado por comas.
 Los argumentos de una función también tienen un tipo y un nombre que los
identifica. El tipo del argumento puede ser cualquiera y no tiene relación con el
tipo del método.
 Al recibir un argumento nada obliga a hacer uso de éste al interior del método, sin
embargo para qué recibirlo si no se va a usar.
 Invocar una función sigue siendo una sentencia común Java, así que debe
finalizar con ';’.
 Una función puede llamar a otra dentro de sí misma o incluso puede ser enviada
como parámetro a otra.
 El valor retornado por un método o función puede ser asignado a una variable del
mismo tipo, pero no se puede hacer esto con un procedimiento, pues no retorna
valor alguno.
VARIABLES GLOBALES Y LOCALES
 Las variables globales son las que se declaran en el programa principal, se
pueden utilizar a lo largo del programa entero. En esencia, su ámbito es global
al programa “tienen vida” a lo largo del programa.
 Las variables globales se crean declarándolas fuera de cualquier modulo y a
diferencia de las locales, su valor está disponible tanto en el cuerpo del
programa principal como en el de cualquiera de los subprogramas declarados.
 Una variable local es la que está declarada dentro de un módulo o
subprograma. Lo que la caracteriza es que su valor sólo está disponible
mientras se ejecuta el modulo o subprograma.
 El programa principal no tiene conocimiento alguno de las variables locales
creadas en sus módulos.
 Las variables locales “tienen vida o existen” solo durante la ejecución del
bloque de código en el que se han declarado, una variable local se crea al
entrar a un bloque y se destruye al finalizar el bloque.
 Se debe tomar en cuenta que las variables locales tienen preferencia sobre las
variables globales. Las variables globales deben evitarse en el módulo, puesto
que de esta manera la función es independiente del programa principal.
 La independencia permite que sea más fácil hacer cambios al programa, que el
módulo pueda ser reutilizado en otros programas y que sea más fácil trabajar
en equipo.
PROGRAMACION MODULAR
import [Link]; static void suma(int x,int y)
Public class Suma { {
public static void main(String[] args)
{ int res;
int a,b,res; res=x+y;
Scanner k=new Scanner([Link]); [Link](res); }
[Link]("Introducir el primer static void resta(int x,int y)
Numero: ");
a=[Link](); {
[Link]("Introducir el int res;
segundo Numero: "); res=x-y;
b=[Link](); [Link](res); }
[Link]("La suma es: ");
suma(a,b); static void multiplicacion(int x,int y)
[Link]("La resta es"); {
resta(a,b); int res;
[Link]("La multiplicación res=x*y;
es");
multiplicacion(a,b);
[Link](res); }
} }
}
import [Link]; switch(op)
public class Menu{ { static void suma(int x,int y){
public static void main(String[] args) { case 1: int res;
menu(); [Link]("La suma es: "); res=x+y;
} suma(a,b); [Link](res); }
static void menu() break;
{ case 2: static void resta(int x,int y){
int op; [Link]("La resta es"); int res;
int a,b,res; resta(a,b); res=x-y;
Scanner k=new Scanner([Link]); break; [Link](res); }
[Link]("Introducir el primer case 3: static void multiplicacion(int x,int y){
Numero: "); [Link]("La multiplicacion es"); int res;
a=[Link](); multiplicacion(a,b); res=x*y;
[Link]("Introducir el segundo break;
Numero: "); [Link](res); }
case 4:
b=[Link](); [Link]("La division es");
do static void division(int x,int y){
division(a,b); int div;
{ [Link]("**************"); break;
[Link]("1.-Suma"); div=x/y;
case 5: [Link](div); }
[Link]("2.-Resta"); [Link]("El modulo es");
[Link]("3.-Multiplicacion"); modulo(a,b);
[Link]("4.-Division"); static void modulo(int x,int y){
break; int mod;
[Link]("5.-Modulo"); default:
[Link]("6.-Salir"); mod=x%y;
[Link]("\n eleccion incorrecta"); [Link](mod); }
Scanner lee=new Scanner([Link]); }
op=[Link](); }
}while(op!=7);
}

También podría gustarte