2.4 Diseño algorítmico de funciones
2.4 Diseño algorítmico de funciones
Introduccion
La programación modular permite la
descomposición de un problema en un conjunto de subproblemas independientes
entre sí, más sencillos de resolver y que pueden ser tratados separadamente
unos de otros.
Módulo
Uno de los elementos principales de programación utilizados en la representación de cada módulo es la subrutina. Una subrutina es un conjunto de instrucciones de cómputo que realizan una tarea. Un programa principal llama a estos módulos a medida que se necesitan. Un módulo es un segmento, rutina, subrutina, subalgoritmo, procedimiento o función, que puede definirse dentro de un algoritmo con el fin de ejecutar una tarea específica y puede ser llamada o invocada desde el algoritmo principal cuando sea necesario. Los módulos son independientes en el sentido de que ningún módulo puede tener acceso directo a cualquier otro módulo, con excepción del módulo al que llama y sus propios submódulos. Sin embargo, los resultados producidos por un módulo pueden ser utilizados por cualquier otro módulo cuando se transfiera a ellos el control. Los módulos tienen una entrada y una salida. Se pueden tomar decisiones dentro de un módulo que tenga repercusión en todo el flujo, pero el salto debe ser únicamente hacia el programa principal. Al descomponer un programa en módulos independientes más simples se conoce también como el método de "Divide y vencerás".
El problema
principal es denominado controlador o conductor (drive) y la solución de los subproblemas son conocidos como procedimientos (subrutinas) o funciones.
Se dice que el
programa principal invoca al subprograma, el subprograma ejecuta la tarea y
luego devuelve el control al programa.
Un
subprograma puede llamar a su vez a sus propios subprogramas
FUNCIONES
La función es una estructura autónoma similar a los módulos. La diferencia radica en que la función se usa para devolver un solo valor de un tipo de dato simple a su punto de referencia. La función se relaciona especificando su nombre en una expresión, como si fuera una variable ordinaria de tipo simple. Las funciones se dividen en estándares y definidas por el usuario.
- Estándar: Son funciones proporcionadas por cualquier lenguaje de programación de alto nivel, y se dividen en aritméticas y alfabéticas.
- Definidas por el usuario: son funciones que puede definirlas el programador con el propósito de ejecutar alguna función específica, y que por lo general se usan cuando se trata de hacer algún cálculo que será requerido en varias ocasiones en la parte principal del algoritmo.
Declaración
de funciones
Consta de una cabecera,
seguido de la palabra (función) y del nombre del argumento de la función
después ira el cuerpo que es una serie de acciones cuya ejecución hará que se
asigne un valor al nombre de la función, esto determina el resultado que ha de
devolver al programa.
Invocación de
las funciones.
Una función
puede ser llamada de la siguiente forma:
Nombre_funcion:
función que llama
Lista de
parámetros actuales: constantes variables , expresiones.
Cada vez que se
llama a una función desde el algoritmo principal se establece una correspondencia
entre los parámetros formales y los parámetros actuales.
Una llamada a la
función implica los siguientes pasos:
1._A cada
parámetro formal se le asigna el valor real de su correspondiente parámetro actual.
2._Se ejecuta el
cuerpo de acciones de la función .
3._Se devuelve
el valor de la función y se retorna al punto de llamada.
ÁMBITO: VARIABLES LOCALES Y
GLOBALES,
Según el lugar donde son declaradas puede haber dos tipos de variables.
Globales: las variables permanecen activas durante todo el programa. Se crean al iniciarse éste y se destruyen de la memoria al finalizar. Pueden ser utilizadas en cualquier procedimiento o función.
Locales: las variables son creadas cuando el programa llega a la función o procedimiento en la que están definidas. Al finalizar la función o el procedimiento, desaparecen de la memoria. Si dos variables, una global y una local, tienen el mismo nombre, la local prevalecerá sobre la global dentro del módulo en que ha sido declarada. Dos variables locales pueden tener el mismo nombre siempre que estén declaradas en funciones o procedimientos diferentes.
COMUNICACIÓN CON SUBPROGRAMAS:
.
Parámetros por Valor
Son los parámetros que pueden recibir valores pero que no pueden devolverlos. Es una variable global que se conecta con una variable local mediante el envío de su valor, después de lo cual ya no hay relación. Lo que le sucede a la variable local no afectará a la global. Cuando un parámetro actual se pasa por valor, el subprograma hace una copia del valor de éste en una posición de memoria idéntica en tamaño pero distinta en ubicación a la del parámetro actual y la asigna al parámetro formal correspondiente. Como el subprograma trabaja a partir de sus parámetros formales, si durante la ejecución se modifica el valor de un parámetro formal correspondiente a un paso por valor, el contenido de la posición de memoria del parámetro actual no se verá alterado.
Son los parámetros que pueden recibir valores pero que no pueden devolverlos. Es una variable global que se conecta con una variable local mediante el envío de su valor, después de lo cual ya no hay relación. Lo que le sucede a la variable local no afectará a la global. Cuando un parámetro actual se pasa por valor, el subprograma hace una copia del valor de éste en una posición de memoria idéntica en tamaño pero distinta en ubicación a la del parámetro actual y la asigna al parámetro formal correspondiente. Como el subprograma trabaja a partir de sus parámetros formales, si durante la ejecución se modifica el valor de un parámetro formal correspondiente a un paso por valor, el contenido de la posición de memoria del parámetro actual no se verá alterado.
Parámetros por Variable
Son los que pueden recibir y devolver valores. Son variables globales que se conectan con una local a través de su contenido; al establecerse dicha conexión las variables se convierten en sinónimos, lo que afecte a la variable local le sucederá a la
variable global
Son los que pueden recibir y devolver valores. Son variables globales que se conectan con una local a través de su contenido; al establecerse dicha conexión las variables se convierten en sinónimos, lo que afecte a la variable local le sucederá a la
variable global
No comments