La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Funciones y recursividad

Presentaciones similares


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

1 Funciones y recursividad
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Funciones. Funciones y recursividad

2 Programación, Algoritmos y Estructuras de Datos
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Funciones. Definición Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Propiedades: Pueden tomar parámetros que modifiquen su funcionamiento. Los mismos pueden ser pasados por valor o por referencia para permitirle a la función (o no) modificar las variables que se le pasan. Son utilizadas para descomponer grandes problemas en tareas simples o para reemplazar tareas repetitivas y así reducir el código. Cuando se llama a la función, se le pasa el control a la misma y una vez que la función termina se retorna el control al punto desde donde se llamo.

3 Programación, Algoritmos y Estructuras de Datos
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Funciones. Pasaje de parámetros por valor En este caso, los parámetros que recibe la función son copias de los valores de las variables con las que se realiza el llamado. Esto permite que la función opere con dichos valores pero no podrá modificar las variables originales. Las funciones solo pueden retornar un valor mediante el comando return. Si se necesita retornar mas valores es necesario usar pasaje por referencia. float absoluto(float numero); int main(void) { float valor,resultado; valor=-5; resultado=absoluto(valor); printf("\nel valor absoluto es:%f",resultado); return(0); } float absoluto(float numero) if(numero<0) numero=-numero; return(numero); Se llama a la función pasándole -5 como parámetro. Dentro de la función el parámetro se pasa a llamar «numero» y toma el valor -5 Notar que cuando se cambia el valor de ¨numero¨, el valor de ¨valor¨ permanece inalterado (es una copia!) Cuando se realiza el return, se coloca el valor de ¨numero¨ dentro de ¨resultado¨. (notar que ambos son tipo float)

4 Programación, Algoritmos y Estructuras de Datos
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Funciones. Pasaje de parámetros por referencia Se dice que un parámetro es pasado por referencia cuando se pasa la dirección de una variable. Al conocer la dirección, la función es capaz de leer y modificar la variable. void suma_imaginarios(int real1,int img1,int real2,int img2,int *real_resp,int *img_resp); int a=1,b=2,c=3,d=4,resp1,resp2; int main(void) { suma_imaginarios(a,b,c,d,&resp1,&resp2); printf("\n\n %d+%di + %d+%di = %d+%di",a,b,c,d,resp1,resp2); return(0); } void suma_imaginarios(int real1,int img1,int real2,int img2,int *real_resp,int *img_resp) *real_resp=real1+real2; *img_resp=img1+img2; return; La función tiene 2 parámetros por referencia donde la misma guarda el resultado. Al llamar a la función le paso la dirección de las variables pasadas por referencia además de las pasadas por valor. Como la función conoce la dirección de las variables, en el mismo momento que se modifica ¨real_resp¨ se cambia ¨resp1¨ Nota: el pasaje de parámetros por referencia es especialmente útil cuando se necesita devolver múltiples resultados en una función.

5 Programación, Algoritmos y Estructuras de Datos
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Funciones. Arreglos y funciones Para operar sobre arreglos se utiliza una combinación de pasaje por valor y referencia. Primero se pasa la dirección del comienzo del arreglo y además se pasa el tamaño del arreglo por valor. Dirección del primer elemento pasada por referencia C[0] -45 C[1] 6 Cantidad de elementos del arreglo para que la función sepa hasta que dirección puede avanzar C[2] C[3] 72 C[4] 1543 C[5] -89

6 Programación, Algoritmos y Estructuras de Datos
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Recursividad Definición Se dice que una función es recursiva cuando existe algún llamado a si misma dentro del código. Estas funciones no pueden llamarse a si mismas de manera infinita por lo que es necesario que se cuente con una condición de salida la cual termine con la recursividad.

7 1!=1 N!=(N-1)! x N N!=1x2x3……….xN 3!=1x2x3 4!=1x2x3x4 =3! x 4
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Recursividad. Càlculo del factorial de un nùmero N!=1x2x3……….xN 3!=1x2x3 4!=1x2x3x4 =3! x 4 3! 1!=1 N!=(N-1)! x N

8 Programación, Algoritmos y Estructuras de Datos
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 5. Tema: Recursividad fac (4) { ….. res=fac (n-1)*n; return(res); } #include <stdio.h> int fac(int n); int main(void) { printf("%d", fac(4)); return(0); } int fac(int n) int res; if(n==1) return(1); else res=fac (n-1)*n; return(res); fac(3) { ….. res=fac (n-1)*n; return(res); } 6 * 4 2 * 3 fac(2) { ….. res=fac (n-1)*n; return(res); } 1 * 2 fac(1) { ……. return(1); …….. } 1


Descargar ppt "Funciones y recursividad"

Presentaciones similares


Anuncios Google