La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Procedimientos y Funciones

Presentaciones similares


Presentación del tema: "Procedimientos y Funciones"— Transcripción de la presentación:

1 Procedimientos y Funciones
Subprogramas Procedimientos y Funciones Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II

2 Programación Modular subprogramas
Funciones Procedimientos Ámbito de las variables Paso de parámetros: por valor - por referencia Sintaxis de la transmisión de parámetros Recursividad Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II

3 Introducción a los subalgoritmos o subprogramas
Un programa se subdivide en otras mas pequeños. Método Top-Down design Programa principal resuelve problema principal Subprograma, recibe dato, procesa y devuelve resultado. Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Programa Principal Subprograma 1 Subprograma 1 Subprograma 1 Programa “llama” al subprograma. Subprograma ejecuta tarea y “devuelve” ctrol al programa Programa Llamada 1 Subprograma Llamada 2 Retorno 2 Retorno 1

4 √ x - √y Tener en cuenta Funciones
Una función es una operación que toma uno o mas valores llamados argumentos y produce un valor denominado resultado. F(x)= x 1+x3 En este ejemplo vemos una función un solo argumento (X), pero las funciones pueden tener mas de un argumento, pero el valor de respuesta es uno solo, independientemente de la cantidad de argumentos. Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II F(x, y)= X - y √ x - √y Tener en cuenta Cada función se evoca usando su nombre en una expresión con los argumentos actuales o reales encerrados entre paréntesis. La expresión que invoca a la función debe tener una lista de argumentos que deberán coincidir en cantidad, tipo y orden con los de la función que fue definida. Las funciones son diseñadas para realizar tareas especificas: tomar una lista de valores – llamados argumentos – y devolver un unico valor.

5 Declaración de las funciones e invocación de las mismas
La declaración de una función requiere una serie de paso que la definen. Por ser un subprograma tiene una cabecera, un cuerpo y un fin de función <tipo_de_funcion> función <nombre_fun> (lista de parámetros) {declaraciones locales} Inicio <acciones> //cuerpo de la función devolver (<expresión>) Fin _ función Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Los argumentos de la declaración de las funciones se denominan: parámetros formales y pueden ser nombres de variables, de otras funciones o procedimientos y solo se utilizan en el cuerpo de la función. Los argumentos utilizados en la llamada de la función se denominan parámetros actuales, y pueden ser constantes, variables, expresiones, valores de funciones o nombre de funciones o procedimientos Invocando a las funciones: nombre _ función (lista de parámetros actuales) Nombre _ función función que llama Lista de parámetros actuales constantes, variables, expresiones, valores, nombres de funciones o expresiones

6 Declaración de las funciones e invocación de las mismas
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 las acciones de la función 3) Se devuelve el valor de la función al nombre de la función y se retorna al punto de llamada Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Ejemplo de función: Algoritmo que contiene y utiliza unas funciones (seno y coseno) a las que les podemos pasar el ángulo en grados Real función coseno (E real : g) Inicio devolver (cos (g * 2 * /360)) Fin _ función Algoritmo Sen_cos_en_grados Var real : g Inicio escribir (‘Deme angulo en grados’) leer(g) escribir (seno (g)) escribir (coseno (g)) fin Real función seno (E real : g) Inicio devolver (sen (g * 2 * /360)) Fin _ función

7 Procedimientos (subrutinas)
Es un subprograma que ejecuta un proceso especifico. La declaración de un procedimientos es similar a la de la función. Procedimiento nombre {(lista de parámetros formales)} ……………… <acciones> Fin_procedimiento Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Parámetros formales tienen el mismo significado que en la funciones; los parámetros variables, están precedidos por la palabra var, por el cual se determina que ellos obtendrán resultados del procedimiento en lugar de los valores actuales asociados a ellos. El procedimiento se llama de la siguiente manera: {llamar_a} nombre (lista de parámetros actuales) Importante: Las funciones devuelven un valor, los procedimientos 0, 1 o n valores y en forma de lista de parámetros. El procedimiento se declara = que una función, pero su nombre no esta asociado a Ninguno de los resultados que obtiene.

8 Procedimientos (subrutinas)
ejemplos El siguiente ejercicio, busca realizar la división de dos números obtener el cociente y el resto: Programa principal: Algoritmo Aritmética Var entero: M, N, P, Q, S, T Inicio leer (M, N) llamar_a división (m, N, P, Q) escribir (P, Q) llamar_a división (M * N – 4, N + 1,S, T) escribir (S, T) fin Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Procedimiento división (E entero: Dividendo, Divisor; S entero: cociente, Resto) Inicio Cociente Dividendo div Divisor Resto Dividendo – Cociente * Resto Fin_procedimiento

9 Sustitución de Argumentos y parámetros
La lista de parámetros formales (en el procedimiento) o actuales (en la llamada), se conoce como lista de parámetros y estos pueden ser de los siguientes tipos: (E) Entrada (S) Salida (E/S) Entrada / Salida Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Cuando se llama al procedimiento, cada parámetro formal toma como valor inicial el valor del correspondiente parámetro actual.

10 Sustitución de Argumentos y parámetros
(Ejemplo) Algoritmo que transforma un numero introducido por el teclado en notación decimal a romana. El numero será entero y positivo y no excederá de 3000 Procedimiento Programa Principal Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Algoritmo romanos Var n, r, digito:entero Inicio repetir escribir (“deme numero”) leer (n) hasta_que (n >= 0 ) y (n <= 3000) r = n digito = r div 1000 r = 5 mod 1000 calccifrarom (digito, ‘M’, ‘ ‘, ‘ ‘ ) digito = r div 100 r = r mod 100 calccifrarom (digito, ‘C’, ‘D ‘, ‘M ‘ ) digito = r div 10 r = r mod 10 calccifrarom (digito, ‘X’, ‘L ‘, ‘C ‘ ) digito = r calccifrarom (digito, ‘I’, ‘V ‘, ‘X ‘ ) fin Procedimiento calccifraron (E entero: digito; E carácter: v1, v2, v3 var entero: J inicio si digito = 9 entonces escribir (V1, V3) si_no SI digito > 4 entonces escribir (v2) desde j=1 hasta digito – 5 hacer escribir (v1) fin_desde si digito = 4 entonces escribir (v1, v2) desde j= 1 hasta digito hacer fin_si Fin_procedimiento

11 Ámbito de las Variables: Locales y Globales
Variable Local: es aquella variable que esta declarada y definida en un subprograma y actúa dentro de su entorno y es distinta de otra variable declarada de la misma manera en cualquier otra parte del programa principal. El significado de una variable se confina al procedimiento en el que esta declarado. Variable Global: aquella declarada para el programa principal, del que dependen todos los subprogramas. Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Programa Demo Tipo X, X1 Ámbito de X Procedimiento B Tipo Z, Z1,…… Ámbito de Z Procedimiento C Tipo W, W1,…… Ámbito de W

12 Ámbito de las Variables: Locales y Globales
(continuación) El ámbito de un identificador es la parte del programa donde se conoce el identificador. Las variables definidas en un ámbito son accesibles en el mismo, es decir en todos los procedimientos interiores Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II

13 Ámbito de las Variables: Locales y Globales
(ejemplos) La función signo realiza la siguiente tarea: dado un numero real x, si x es 0, entonces se devuelve un ; si x es positivo, se devuelve 1, y si x es negativo, se devuelve un valor -1 La declaración de la función es: Entero función signo (E real: x) Var entero:s Inicio si x = 0 entonces s =0 si x > 0 entonces s = 1 si x < 0 entonces s = -1 devolver (s) Fin_funcion Ahora veremos un programa donde se invoca a la función signo: Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Algoritmo SIGNOS Var entero: a, b, c real: x, y, z Inicio x = 5.4 a = signo (x) y = 0 b = signo (y) z = c = signo (z-9) Escribir (`las respuestas son:`, a, ‘ ‘ ,b, ‘ ‘ , c) fin Resultados: X = 5, x es el parámetro actual de la 1ra llamada a la función signo a = signo (5.4) a toma el valor de 1 Y = 0 b = signo (0) b toma el valor de 0 z = c = signo ( ) c toma el valor de -1

14 Comunicación con subprogramas- Paso de parámetros
La comunicación entre subprogramas se hace por medio de los parámetros. Los parámetros actuales son “sustituidos” o “utilizados” en lugar de los parametros formales. Las clases de parámetros son: (E) Entrada (S) Salida (E/S) Entrada – Salida Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Modo de correspondencia: Posicional: Haciendo una concordancia entre los parámetros formales y los reales según su posición en la lista. Fi se corresponde con Ai. Donde i = 1, 2, …..n Por nombre explicito: la llamada se indica por la correspondencia entre los parámetros reales y formales El método que usaremos es el Posicional Losa pasos de parámetros que usaremos serán dos: Por valor Por referencia

15 Paso de parámetros: Por Valor – Por Referencia
Paso Por Valor Introducción: Los parámetros formales reciben como valores iniciales los valores de los parámetros actuales y con ello se ejecutan las acciones descritas en el subprograma. No se hace diferencia entre un argumento que es variable, constante o expresión, dado que solo importa el valor del argumento. Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II A 5 B 7 Llamar_a PROC (A, , B * ) Procedimiento PROC (E entero: X, Y, Z ) Valor del primer parámetro: A = 5 Valor del segundo parámetro: constante = 18 Valor del tercer parámetro: expresión B * = 25

16 Paso de parámetros: Por Valor – Por Referencia
Paso Por Referencia Cuando los parámetros sirven como salida, en otras palabras, se devuelven resultados al programa que lo llamó, este método se llama paso por referencia. La unidad que llama pasa a la unidad que llamada la dirección del parámetro actual Las llamadas por referencia es muy útil en el caso de programas donde se necesita la comunicación del valor en ambas direcciones Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Comparación de los métodos de paso por parámetros Algoritmo DEMO Var entero: A,B,C Inicio A= 3 B= 5 C= 17 llamar_a SUBR (A, A, A+B, C) escribir(C) fin Solo por valor: No se trasmite ningún resultado. C no varia C = 17 Valor_resultado: X=A= 3 Y=A= 3 Z=A+B= 8 V=C= 17 A=3 B=5 C=17 resultado Al ejecutar el procedimiento quedara: x = x + 1 = = 4 V = y + z = = 11 Procedimiento SUBR( entero: x, y; E entero:z; enteros:v) Inicio x = x + 1 v = y + z Fin_procedimiento Observación: el parámetro v pasa el valor del resultado v a su parámetro actual correspondiente, c. Por consiguiente C = 11.

17 Recursividad Un subprograma puede llamar a otro subprograma y este a otro, y así sucesivamente. En otras palabras los subprogramas se pueden anidar. Ej: A llamar_a B, B llamar_a C, C llamar_a D El retorno será: D retornar_a C, C retornar_a B, B retornar_a A Una función o procedimiento que se puede llamar a si mismo, se llama recursivo. La recursividad puede ser utilizada como alternativa a la repetición o estructuras repetitivas. Es importante que se debe tener en cuenta que debe tener una condición de terminación. Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II Representación grafica tomando el caso de n = 3 Ejemplo: Entero función factorial (E entero: n) //calculo recursivo del factorial Inicio si n = 0 entonces devolver (1) si_no devolver (n * factorial (n-1)) fin_si Fin_funcion N es 3 FACTORIAL * FACTORIAL (2) Retorno N es 2 FACTORIAL * FACTORIAL (1) Retorno N es 1 FACTORIAL * FACTORIAL (0) Retorno N es 0 FACTORIAL 3 Retorno

18 F . I . N DE PROCEDIMIENTOS Y FUNCIONES
Instituto Superior de Formación Docente N 49 – Prof. Pujol – Programacion II


Descargar ppt "Procedimientos y Funciones"

Presentaciones similares


Anuncios Google