Page 61 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 61
2.3 PROGRAMACIÓN MODULAR 37
Hay que destacar que este algoritmo aún no está terminado. Puede ser, por ejemplo,
que el usuario dé por error un incremento que sea mayor que el intervalo, como por
ejemplo, tf – ti = 5 y dt = 20. Entonces, habrá que poner, en el programa, trampas para
detectar tales errores y que el usuario pueda corregirlos.
2.3 PROGRAMACIÓN MODULAR
Imaginemos qué difícil sería estudiar un libro que no tuviera capítulos, ni secciones, ni
párrafos. Dividir una tarea o una materia complicada en partes más accesibles es una
manera de hacerla más fácil. Siguiendo esta misma idea, los programas de computación
se dividen en subprogramas más pequeños, o módulos que pueden desarrollarse y pro-
barse por separado. A esta forma de trabajar se le llama programación modular.
La principal cualidad de los módulos es que son tan independientes y autosuficien-
tes como sea posible. Además, en general, están diseñados para llevar a cabo una función
específica y bien definida, y tienen un punto de entrada y un punto de salida. Los mó-
dulos a menudo son cortos (50 a 100 instrucciones) y están bien enfocados.
En los lenguajes estándar de alto nivel como Fortran 90 y C, el principal elemento
de programación usado para representar módulos es el procedimiento. Un procedimien-
to es un conjunto de instrucciones para computadora que juntas realizan una tarea dada.
Se emplean comúnmente dos tipos de procedimientos: funciones y subrutinas. Las
primeras normalmente dan un solo resultado, mientras que las últimas dan varios.
Además, hay que mencionar que gran parte de la programación relacionada con paque-
tes de software como Excel y MATLAB implica el desarrollo de subprogramas. Así, los
macros de Excel y las funciones de MATLAB están diseñadas para recibir información,
llevar a cabo un cálculo y dar un resultado. De manera que el pensamiento modular también
es consistente con la manera en que se programa en ambientes de paquetes.
La programación modular tiene diversas ventajas. El uso de unidades pequeñas e
independientes hace que la lógica subyacente sea más fácil de seguir y de entender,
tanto para el que desarrolla el módulo como para el usuario. Se facilita el desarrollo
debido a que se puede perfeccionar cada módulo por separado. En proyectos grandes,
varios programadores pueden trabajar por separado las diferentes partes individuales.
En el diseño modular también la depuración y la prueba de un programa se simplifican
debido a que los errores se pueden encontrar con facilidad. Por último, es más sencillo
el mantenimiento y la modificación del programa. Esto se debe principalmente a que se
pueden desarrollar nuevos módulos que desarrollen tareas adicionales e incorporarlos
en el esquema coherente y organizado que ya se tiene.
Aunque todas esas ventajas son razones suficientes para usar módulos, la razón más
importante, relacionada con la solución de problemas numéricos en ingeniería, es que
permiten tener una biblioteca de módulos útiles para posteriores usos en otros programas.
Ésta será la filosofía de la presente obra: todos los algoritmos serán presentados como
módulos.
El procedimiento anterior se ilustra en la figura 2.7 que muestra una función desa-
rrollada para usar el método de Euler. Observe que esa función y las versiones previas
difieren en cómo manipulan la entrada y la salida (input/output). En las versiones ante-
riores directamente la entrada viene (mediante el INPUT) del usuario, y la salida va
(mediante el DISPLAY) al usuario. En la función, se le da la entrada a ésta mediante su
lista de argumentos FUNCTION
6/12/06 13:43:43
Chapra-02.indd 37
Chapra-02.indd 37 6/12/06 13:43:43

