Sie sind auf Seite 1von 2

La programación modular 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. 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 necesite de
otro, puede comunicarse con éste mediante una interfaz de comunicación que también debe estar
bien definida.
Si bien un módulo puede entenderse como una parte de un programa en cualquiera de sus formas y
variados contextos, en la práctica se los suele tomar como sinónimos
de procedimientos y funciones. Pero no necesaria ni estrictamente un módulo es una función o un
procedimiento, ya que el mismo puede contener muchos de ellos. No debe confundirse el término
"módulo" (en el sentido de programación modular) con términos como "función" o "procedimiento",
propios del lenguaje que lo soporte.

 Simplifica el diseño.
 Disminuye la complejidad de los algoritmos.
 Disminuye el tamaño total del programa.
 Ahorra en tiempo de programación porque promueve la
reusabilidad del código.
 Favorece el trabajo en equipo.
 Facilita la depuración y prueba.
 Facilita el mantenimiento.
 Permite la estructuración de librerías específicas.

Recursión es, en ciencias de computación, una forma de atajar y solventar problemas. De hecho,
recursión es una de las ideas centrales de ciencia de computación.1 Resolver un problema mediante
recursión significa que la solución depende de las soluciones de pequeñas instancias del mismo
problema.2
El poder de la recursión evidentemente se fundamenta en la posibilidad de definir un conjunto infinito de
objetos con una declaración finita. Igualmente, un número infinito de operaciones computacionales puede
describirse con un programa recursivo finito, incluso en el caso de que este programa no contenga
repeticiones explícitas."3
La mayoría de los lenguajes de programación dan soporte a la recursión permitiendo a una función
llamarse a sí misma desde el texto del programa. Los lenguajes imperativos definen las estructuras
de loopscomo while y for que son usadas para realizar tareas repetitivas. Algunos lenguajes de
programación funcionales no definen estructuras de loops sino que posibilitan la recursión llamando
código de forma repetitiva. La teoría de la computabilidad ha demostrado que estos dos tipos de
lenguajes son matemáticamente equivalentes, es decir que pueden resolver los mismos tipos de
problemas, aunque los lenguajes funcionales carezcan de las típicas estructuras while y for .

Ejemplos de subrutinas definidas recursivamente (recursión


generativa)[editar]
Factorial[editar]
Un ejemplo clásico de una subrutina recursiva es la función usada para calcular el factorial de
un entero.
Definición de la función:

Pseudocódigo (recursivo):

función factorial:

input: entero n de forma que n >= 0

output: [n × (n-1) × (n-2) × … × 1]

1. if n es 0, return 1
2. else, return [ n × factorial(n-1) ]

end factorial

Das könnte Ihnen auch gefallen