COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables

1 COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance...
Author: Gregorio Carmona Domínguez
0 downloads 0 Views

1 COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variablesCOMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables. Pasaje de parámetros por valor Prof. Mireya Morales

2 CONTENIDO Importancia del uso de subalgoritmos o subprogramasDefinición de Funciones Definición de Procedimientos Alcance de las variables: Globales y Locales Comunicación de subprogramas a través del pasaje de parámetros. Paso de parámetros por valor y por referencia.

3 Importancia del uso de subalgoritmos o subprogramasLos subalgoritmos permiten a los programadores desarrollar soluciones de problemas complejos, a través del método descendente (top-down). Representan unidades de programas diseñados para ejecutar una tarea específica. Los subprogramas se escriben 1 sola vez, pero pueden ser referenciados en diferentes puntos de un programa

4 Importancia del uso de subalgoritmos o subprogramasCon el uso de los subprogramas se facilita la localización de un error. Los programas son más fáciles de comprender, debido a la independencia entre las unidades de programas.

5 Importancia del uso de subalgoritmos o subprogramasProblema SP1 SP3 SP2

6 El programa principal invoca al subprogramaPrimera Llamada Programa Subprograma Retorno 1 Segunda Llamada Retorno 2

7 Diferentes niveles de subprogramas1.1 Subprograma1 Programa Subprograma2

8 Funciones Representan rutinas de programas que son invocadas desde algún otro programa. Son referenciadas a través de un nombre y una lista de parámetros actuales o reales.

9 Declaración de Funciones función (lista de parámetros) [declaraciones locales] inicio /*cuerpo de la función*/ devolver () fin_función La llamada es mediante una instrucción con la siguiente estructura: X=nombre_función(lista de parámetros):

10 Ejemplo Declaración de Funcionesf(x)=x/(1 +x*x) función F(x) inicio devolver (x/(1+x*x)) fin_funcion

11 Ejemplo: Valor absoluto de un númeroAlgoritmo Calculo_valor_absoluto var X,Y entero inicio leer X Y=valor_absoluto(X) escribir El valor absoluto de X es Y fin

12 Ejemplo: Valor absoluto de un númeroentero valor_aboluto(entero:N) var Z entero Inicio si N<0 entonces Z= N*(-1) sino Z=N fin_si devolver Z fin_funcion

13 Procedimientos Es un subprograma que ejecuta un proceso específico.Ningún valor está asociado con el nombre del procedimiento. Cuando un procedimiento es invocado se ejecutan las acciones que lo definen y luego se devuelve el control a la instrucciones siguiente a la llamada. A diferencia de las funciones no devuelven valores.

14 Procedimiento Procedimiento nombre [(lista de parámetros formales)] Fin_procedimiento La llamada es mediante una instrucción con la siguiente estructura: [llamar_a] nombre [(lista de parámetros)]

15 Procedimiento. Cálculo de la división de dos números para obtener cociente y restoAlgoritmo calculo_cociente_resto Var M,N,P,Q entero inicio leer M leer N llamar division (M,N,P,Q) fin

16 Procedimiento. Cálculo de la división de dos números para obtener cociente y restoProcedimiento division(entero:D,d,C,R) inicio C = D div d R = D-C*d escribir C,R fin_procedimiento

17 Alcance de Variables Variables locales: Es aquella declarada dentro de un subprograma y es distinta de las variables que tengan el mismo nombre en cualquier parte del programa principal. Cuando se hace referencia a una variable con el mismo nombre que otra dentro de un programa, se refiere a una posición diferente de memoria. Variables Globales: Es aquella que está declarada en el programa principal y se puede referenciar desde cualquier parte del programa, inclusive desde otros subprogramas.

18 A B C D E F

19 Paso de Parámetros Por valor: Se pasa una copia del parámetro original al subprograma llamado. Los cambios a la copia no afectan el valor de la variable original en el lugar donde se hace la llamada. Por referencia: El invocador le da al subprograma llamado la capacidad de acceder directamente a la posición de memoria donde se encuentra el dato y modificarlo si se desea.