Nuevo

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.

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

No comments