0. Funciones
-
Upload
cristina-villeda -
Category
Documents
-
view
10 -
download
2
description
Transcript of 0. Funciones
-
Funciones
Ing. Manuel Castaeda
-
Funciones
En la mayora de los casos aquellos programas que estn diseados para resolver problemas de la vida real son mucho mas grande que los que se presentan como ejemplo.
-
Funciones
Sera lgico pensar en utilizar la tcnica de divide y vencers, es decir la mejor forma de desarrollar y mantener un programa grande es construirlo a partir de piezas menores o mdulos, siendo cada una de ellas ms fcil de manipular que el programa original.
-
Funciones
En C los mdulos se llaman funciones.
Por lo general en C, los programas se escriben combinando nuevas funciones que el programador escribe, con funciones prediseadas", disponibles en la biblioteca estndar de C.
Poco a poco iremos conociendo mas funciones de dicha biblioteca
-
Funciones
La biblioteca estndar de C contiene una amplia coleccin de funciones para llevar a cabo clculos matemticos comunes, manipulaciones con cadenas, manipulaciones con caracteres, entrada/salida, y muchas otras operaciones tiles.
Esto facilita la tarea del programador, porque estas funciones proporcionan muchas de las capacidades que los programadores requieren.
-
Funciones
Funciones definidas por el programador
Se puede escribir funciones para definir tareas especficas, que puedan ser utilizadas en muchos puntos de un programa.
Los enunciados que definen la funcin se escriben slo una vez, quedando los enunciados ocultos de otras funciones
-
Funciones
Las funciones se invocan mediante una llamada a funcin. La llamada a funcin especifica el nombre de la misma y proporciona informacin (en forma de argumentos), que la funcin llamada necesita a fin de llevar a cabo su tarea designada. Las funciones en C son como en clculo para un valor o varios valores independientes tendremos un correspondiente valor dependiente, aunque hay funciones que no necesariamente regresan algn valor
-
Funciones
Las funciones necesitan:
Ser declaradas (prototipo de una funcin)(no es obligatorio pero si aconsejable)
Ser definidas (escribir el cdigo que ejecutar)
Ser llamadas(invocarlas dndole los argumentos que necesita)
-
Funciones
Definicin de una funcin
Sintaxis
Tipo nombre(tipo1 arg1, tipo2 arg2, ...,tipo NargN)
{
/*CUERPO DE LAFUNCION*/
}
-
Funciones
Definicin de una funcin Se debe especificar que tipo de dato retornar la funcin (valor dependiente). Si no se necesita que la funcin regrese algn valor, se especifica un tipo void Si no tiene argumento en algunos compiladores, tambin se especifica void Ej void funcion(void)
-
Funciones
Definicin de una funcin
Entre llaves se pondr el cuerpo de la funcin y la terminaremos con la palabra reservada return que nos regresar el valor que necesitemos segn sea el caso.
En C no se pueden anidar funciones
Lo mas comn es definir las funciones despus de la funcin principal main()
-
Funciones
Prototipo de una funcin Tipo nombre(tipo1 arg1, tipo2 arg2, ...,tipo NargN);
Ser el mismo encabezado que en la definicin pero ahora en vez de { } escribimos ; Permite la comprobacin de errores entre las llamadas a una funcin y la definicin correspondiente. Lo mas comn es escribir el prototipo antes de la funcin main
-
Funciones
Ejemplo float potencia(float x, int y); /*prototipo*/ float potencia(float x, int y) /*definicion*/ { int i; float prod=1; for(i=0; i
-
Funciones
Llamadas a una funcin Para llamar a una funcin se especifica el nombre de la misma y los argumentos que recibe nombre(3,4); Argumentos formales. Son lo declarados en la definicin Argumentos reales. Son los que se pasan cuando se llama a la funcin
-
Funciones
Llamadas a una funcin Argumento real En la llamada, debe existir un argumento por cada argumento formal declarado Pueden ser: - Constantes - Variables simples - Expresiones
-
Funciones
Llamadas a una funcin Argumento real Deben ser del mismo tipo de dato que el argumento formal declarado Cuando se pasa valor a una funcin se copia el argumento real en el formal Se puede modificar el argumento formal dentro de la funcin, pero el valor del argumento real no cambiar, pues solo se trabajo con una copia, a esto se le llama paso de argumentos por valor
-
Funciones
Proceso
de la llamada
-
Funciones Ejemplo. Programa que cuenta los caracteres introducidos desde el teclado hasta que se presiona enter
#include #include int cuenta_caracteres(void); //prototipo main()//inicia main { int num_car; num_car=cuenta_caracteres();//llamada a la funcin printf("Hay %d caracteres\n",num_car); system("pause"); }//fin de main int cuenta_caracteres(void)//declaracin de funcin { char c; int cont=0; c=getchar(); while(c!='\n') { cont=cont+1; c=getchar(); } return cont; }
-
Funciones
Recursividad
No se permite la anidacin de funciones, es decir declarar una funcin dentro de otra
Pero si se puede llamar a si misma de forma repetida hasta que se cumpla alguna condicin
-
Funciones
Recursividad, ejemplo El factorial de un nmero es 1 si n=0 y n*f(n-1) si n > 0 Entonces : long int factorial(int n) { if(n
-
Funciones
Macros
La sentencia #define se puede utilizar para definir
Una macro es un identificador equivalente a una expresin, sentencia o grupos de sentencias
-
Funciones Macros, ejemplo #include #include #define maximo(a,b) ((a>b)?a:b) main() { int x,y; int max; printf("Introduzca dos numeros:"); scanf("%d %d",&x,&y); max=maximo(x,y); /*uso de la macro*/ printf("Elmaximoes%d\n",max); system("pause"); }
-
Funciones
Macros,
No puede haber espacios entre el identificador y el parntesis izquierdo #define maximo(a,b) ((a>b)?a:b)
Una macro no es una funcin
El preprocesador sustituye todas las referencias a la macro que aparezcan en el cdigo antes de realizar la compilacin
-
Funciones
Macros, main() { Int x,y; Int max; printf("Introduzca dos numeros:"); scanf("%d %d",&x,&y); max= ((x>y)?x:y); //en vez de maximo(a,b) printf("Elmaximoes%d\n",max); }
-
Funciones
Macros,
Con las macros se gana velocidad pues no se producen llamadas a una funcin
Se tiene mayor cdigo objeto
Sin embargo, normalmente las funciones no son tan pequeas como lo sera una macro, debido a esos casos es ms comn el uso de funciones
-
Descripcin de Funciones de Bibliotecas
Contiene macros as como informacin para aadir diagnsticos que ayudan a la depuracin de programas. Contiene prototipos de funcin para funciones que prueban caracteres en relacin con ciertas propiedades, y prototipos de funciones que pueden ser utilizadas para la conversin de minsculas a maysculas y viceversa.
Define macros que son tiles para la informacin de condiciones de error.
-
Descripcin de Funciones de Bibliotecas
Contiene los lmites de tamao de punto flotante del sistema.
Incluye los lmites de tamao integral del sistema. Contiene los prototipos de funcin y otra informacin que le permite a un programa ser modificado en relacin con la localizacin actual en la cual se est ejecutando. La nocin de localizacin le permite al sistema de cmputo manejar diferentes reglas convencionales para la expresin de datos como son fechas, horas, monedas y nmeros grandes en diferentes reas del mundo.
-
Descripcin de Funciones de Bibliotecas
Contiene prototipos para funciones matemticas de biblioteca. Contiene prototipos para funciones que permiten pasar por alto la secuencia usual de llamadas de funcin y regreso. Contiene prototipos de funcin y macros para manejar varias condiciones que pudieran ocurrir durante la ejecucin de un programa.
Define macros para manejar con una lista de argumentos a una funcin cuyo nmero y cuyo tipo son desconocidos.
-
Descripcin de Funciones de Bibliotecas
Contiene definiciones comunes de tipos utilizados en C para ejecutar ciertos clculos.
Contiene prototipos para las funciones de biblioteca de entrada y salida estndar y la informacin que stas utilizan.
Contiene prototipos de funcin para las conversiones de nmeros a texto y de texto a nmeros, para la asignacin de memoria, para nmeros aleatorios y otras funciones de utilera. Contiene prototipos para las funciones de procesamiento de cadenas.
Contiene prototipos de funcin y tipos para manipular hora y fecha.