La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.

Presentaciones similares


Presentación del tema: "Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto."— Transcripción de la presentación:

1 Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto

2 Aprendizajes Esperados Contextualización de las funciones Definición de Funciones

3 Funciones Sea C(x) una definición de la complejidad de un problema x y E(x) una función que define el esfuerzo (en tiempo) requerido para resolver un problema x. Para dos problemas, p1 y p2, si C(p1) > C(p2)1.a se deduce que E(p1) > E(p2)1.b

4 Funciones Para un caso general, este resultado es intuitivamente obvio. Se tarda más tiempo en resolver un problema difícil. Se ha encontrado otra propiedad interesante, a partir de la experimentación sobre la resolución humana de problemas. Se trata de lo siguiente: C(p1 + p2) > C(p1) + C(p2)1.c

5 Funciones La ecuación 1.c indica que la complejidad de un problema compuesto por p1 y p2 es mayor que la complejidad total cuando se considera cada problema por separado. Considerando la desigualdad 1.c y la condición implicada por las desigualdades 1.a y 1.b, se deduce que : E(p1+p2) > E(p1) + E(p2)1.d

6 Funciones Esto nos lleva a una conclusión del tipo “Divide y Vencerás". Por consiguiente deberemos considerar las funciones como “Cajas Negras", las cuales se encargaran de ejecutar una tarea especifica. Por lo tanto deberemos concentrarnos en el "Diseño Global de Programa" en lugar de los detalles.

7 Funciones La estructura de una función es como sigue: tipo_de_funcion nombre_de_la_funcion(argumentos) { Cuerpo de la Función return(variable ó valor); /* opcional sólo cuando la función es de tipo void*/ }

8 Funciones Donde el tipo_de_funcion corresponde al tipo de datos que retorna ó devuelve dicha función, la cual puede ser del tipo entero ( int ), flotante (float), carácter (char )

9 Funciones argumentos: corresponde a valores recibidos por la función, los cuales también se deben definir de un tipo determinado, como si se tratase de una definición de variable común y corriente, cabe destacar además que no necesariamente una función debe recibir un valor, si no que esta puede estar vacía. La estructura de los argumentos pueden ser: nombre_de_la_funcion(tipo_dato arg1,tipo_dato arg2,...,tipo_dato argN)

10 Funciones ó también: nombre_de_la_funcion(arg1, arg2,..., argN) tipo_dato arg1,tipo_dato arg2,...,tipo_dato argN; { Cuerpo de la Función return(variable ó valor); }

11 Ejemplo Crear un programa que sume dos valores utilizando una función llamada suma, la cual recibe como argumentos de tipo entero.

12 Ejemplo #include int suma(int a,int b); void main() { int a,b,result; clrscr( ); printf("Ingrese el primer valor \n"); scanf("%d",&a); printf("Ingrese el segundo valor \n"); scanf("%d",&b); result=suma(a,b); //se ingresan las variables //adecuadas como parámetros y el valor devuelto por //la función es asignada a la variable result. printf("El resultado es : %d \n",result); } int suma(int a,int b) { return(a+b); }

13 Otro Forma #include int suma(int a,int b); void main() { int a,b,result; clrscr( ); printf("Ingrese el primer valor \n"); scanf("%d",&a); printf("Ingrese el segundo valor \n"); scanf("%d",&b); result=suma(a,b); printf("El resultado es : %d \n",result); } int suma(int a,int b) { int result; result=a+b; return(result); }

14 Ejercicio Crear un programa que calcule la potencia utilizando funciones

15 Solución #include float potencia(int base, int exp); void main( ) { int a,b; float pot; clrscr( ); printf("Ingrese el valor de la base \n"); scanf("%d",&a); printf("Ingrese el valor del exponente \n"); scanf("%d",&b); pot=potencia(a,b); printf("El resultado es: %f \n",pot); } float potencia(int base, int exp) { int i; float pot; if(exp>=0) for(i=1,pot=1.0 ; i<=exp ; i++) pot=pot*base; else{ for(i=1,pot=1.0 ; i<= (-1*exp) ; i++) pot=pot*base; pot=1/pot; } return(pot); }

16 Conclusiones La idea general es poder resolver el problema abstrayéndose de la implementación. Es mejor dividir el problema, en pequeños subproblemas y luego resolver dichos subproblemas. (Dividir para Vencer) Las funciones reciben argumentos. Dichos argumentos se utilizan como variables que sólo existen en el cuerpo de esa función. Las funciones son del tipo, de acuerdo al valor que retornan.


Descargar ppt "Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto."

Presentaciones similares


Anuncios Google