29
Funciones Ing. Manuel Castañeda

0. Funciones

Embed Size (px)

DESCRIPTION

funciones en c :3

Citation preview

  • 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.