Programacion Modular-Funciones Y Procedimientos
2.3.5.1 Problemas resueltos y prueba de escritorio
Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos:
• Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo.
2.4 Programación Modular
Uno de los métodos másconocidos 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 yvencerás o programación top-down.
Es evidente que si esta metodología nos lleva a tratar con subproblemas, entonces también tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar módulos, de ahí viene el nombre de programación modular. En Pascal disponemos de dos tipos de módulos: los procedimientos y las funciones.
2.4.1 Losprocedimientos
2.4.1.1 Definición
Un procedimiento es un subprograma que realiza una tarea específica. Para invocarlo, es decir, para hacer que se ejecute, basta con escribir su nombre en el cuerpo de otro procedimiento o en el programa principal. Pero, hay que tener muy en cuenta que su declaración debe hacerse antes de que sea llamado por otro módulo.
Una vez que has construido variosprogramillas en Pascal, crear un procedimiento no es nada complicado, pues tiene prácticamente la misma estructura que un programa.
2.4.1.3 Llamadas a Procedimientos
En el caso de los procedimientos será necesario en el programa fuente declararlos como externos. Los parámetros se definirán normalmente. Para ello se suele emplear la directiva EXTERNAL (Turbo Pascal) o en otros casos EXTERN (Turbo C,Pascal IBM).
Es recomendable incluir la directiva {$L modulo.obj} (en Turbo Pascal) para indicar al enlazador el módulo donde están escritos los procedimientos en Ensamblador. Puede variar para otros compiladores. Otra característica a tener en cuenta es el tipo de llamada al procedimiento: lejana o cercana. Esto significa que en el salto variará el segmento de código ( lejana o far ) o no (cercana o near). Es imprescindible conocer esta característica para poder retornar de la llamada correctamente. Suele indicarse con una opción del compilador, aunque se puede forzar con una directiva. En el caso de Turbo Pascal es: {$F+}
2.4.2 Función
2.4.2.1 Definición de Funciones
Una función es un conjunto de instrucciones, con un nombre asociado, que cumple las siguientes características:Tiene uno o más parámetros de entrada.
Tiene un parámetro exclusivamente de salida y de tipo simple (es decir, lo que devuelve). Muchos lenguajes de programación no requieren el hecho de que el parámetro sea simple pero en esta asignatura se considerará la versión más purista.
Todos los valores de entrada son necesarios y suficientes para determinar el valor de salida.
2.4.2.2 Declaraciones defunciones
Antes de empezar a utilizar una función debemos declararla. La declaración de una función se conoce también como prototipo de la función. En el prototipo de una función se tienen que especificar los parámetros de la función, así como el tipo de dato que devuelve.
Los prototipos de las funciones que se utilizan en un programa se incluyen generalmente en la cabecera del programa ypresentan la siguiente sintaxis:
En el prototipo de una función no se especifican las sentencias que forman parte de la misma, sino sus características. Por ejemplo:
En este caso se declara la función cubo que recibe como parámetro una variable de tipo entero (numero) y devuelve un valor del mismo tipo. En ningún momento estamos especificando qué se va a hacer con la variable numero, sólo...
Regístrate para leer el documento completo.