1 / 16

Funciones “En C”

Funciones “En C”. Semestre de Otoño 2006. Claudio Gutiérrez-Soto. Aprendizajes Esperados. Contextualización de las funciones Definición de Funciones. Funciones.

danno
Télécharger la présentation

Funciones “En C”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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<stdio.h> #include<conio.h> 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<stdio.h> #include<conio.h> 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<stdio.h> #include<conio.h> 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.

More Related