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
10 Ejemplo Declaración de Funcionesf(x)=x/(1 +x*x)
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)]
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.