1 / 24

Unidad 1

Funciones. Unidad 1. Objetivos del Aprendizaje. Explicar la naturaleza y usos de las funciones. Describir algunas funciones incorporadas de C y explicar cómo se usan. Identificar las diferentes partes del encabezado de una función. Describir los diferentes tipos de argumentos.

crete
Download Presentation

Unidad 1

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 Unidad 1

  2. Objetivos del Aprendizaje • Explicar la naturaleza y usos de las funciones. • Describir algunas funciones incorporadas de C y explicar cómo se usan. • Identificar las diferentes partes del encabezado de una función. • Describir los diferentes tipos de argumentos. • Definir los prototipos de funciones y sus usos. • Explicar cómo usar las funciones para solucionar problemas.

  3. Introducción • Una función es un programa autocontenido que lleva a cabo una tarea específica. • Un programa en C es realmente una colección de una o más funciones. • Así, main() es en efecto una función. • Todos los programas en C deben tener una función main. • Los programas en C se inician con la ejecución de la función main. • Una función toma cero o más entradas, lleva a cabo una tarea específica y retorna un solo valor como resultado.

  4. Funciones Incorporadas en C • Las funciones incorporadas son aquellas que son parte de la librería estándar de C. • Son diferentes a las funciones definidas por el usuario las cuales son diseñadas y escritas por el programador para un uso específico en las aplicaciones. • Algunas funciones incorporadas en C son: • printf • scanf • toupper • sqrt

  5. Más acerca de Funciones • Una función tiene las siguientes características : • Tiene un nombre único o un identificador. • Trabaja con cero o más entradas (parámetros). • Las funciones también se pueden invocar dentro de otras funciones y se conoce como llamara una función (calling). • La función invocada desde otra función se conoce como la función llamada (called). • La función llamada ejecuta las sentencias que son parte de la función, llevando a cabo la tarea deseada y retorna a la función que la invocó. • La ejecución se reanuda en la sentencia que sigue inmediatamente después a la llamada de la función.

  6. Características de las Funciones en C • Algunas características relacionadas con Funciones • en C son: • Se pueden crear funciones definidas por el usuario. • Ofrece diferentes mecanismos para: • Pasar entradas a la función. • Aceptar las entradas para luego procesarlas. • Retornar un solo valor como resultado. • Controlar tareas internas involucradas en el proceso de invocar, transferir el control, ejecutar y retornar a la función que la invocó.

  7. Ventajas de las Funciones • Permite descomponer un programa grande en partes más pequeñas, manejables y autocontenidas, y el proceso se denomina modularización. • La modularización se puede lograr en C sólo a través de las funciones. • Se logra una claridad lógica de los programas al descomponerlo en pequeñas unidades. • Ayudan a evitar repetir la programación de las mismas instrucciones que necesitan otros programas o partes de un programa. • Ayuda a los programadores a construir sus propios conjuntos de funciones en una librería personalizada. • Permiten que porciones del programa que son dependientes de la máquina sean separadas de las otras para facilitar la portabilidad de los programas.

  8. Partes de una Función • Una función tiene dos partes principales: • Encabezado de la función. • Cuerpo de la función. • El encabezado de función tiene: • Especificación del tipo del valor a ser retornado por la función. • Un nombre de función, que sigue las reglas para crear un identificador. • Un conjunto de argumentos, datos pasados como entrada a la función, que están separados por comas. • El conjunto de argumentos en un encabezado de función es opcional. • Si una función no toma ninguna entrada, el encabezado tendrá un nombre de función seguido por().

  9. Partes de una Función...2 • El cuerpo de la funciónes el conjunto de sentencias encerradas entre llaves { }. • El conjunto de sentencias define la tarea que lleva a cabo la función. • El cuerpo de la función puede contener los siguientes tipos de sentencias: • Sentencias Declarativas. • Sentencias de Asignación. • Sentencias Compuestas. • Llamadas a Funciones.

  10. Uso de Funciones en la Solución de Problemas • El cuerpo puede contener cero o más sentencias return. • Las sentencia return ayudan a pasar el valor del resultado único al programa que hizo la llamada. • Ejemplo: nombreFuncion(){ sentencias; return; } • La sentencia return causa que el programa que llama inicie la ejecución a partir de la sentencia que sigue inmediatamente después a la llamada de la función.

  11. Funciones y Sentencias return • Las funciones con tipo de retorno void no necesitan tener la sentencia return explícitamente. • La sentencia return en este caso se mantiene por dos razones: • La sentencia return se usa cuando hay múltiples condiciones verificadas en una función y la función debe finalizar su ejecución, cuando una de sus condiciones se satisface. • Se considera una buena práctica de programación insertar una sentencia returnaún cuando hay un solo punto de retorno en la función.

  12. Funciones...Ejemplo 1 • Determinar el Máximo de Dos Números Enteros: /* Versión 1 */ int max(int x, int y){ if(x >= y) return (x); else return (y); } /* Versión 2 */ int max(int x, int y){ int maximo; if(x >= y) maximo=x; else maximo=y; return maximo; } • La función llamada max retorna int como resultado. • El cuerpo de la función verifica cuál de las variables es mayor y retorna el valor.

  13. Funciones...Ejemplo 2 • Determinar si un Entero es Impar: int esImpar(int x){ if(x % 2 != 0) return (1); else return (0); } • Verifica si el residuo de la división entre 2 es 0. • Si el residuo no es 0 entonces es un número impar y retorna el valor de verdadero. • En C el valor de 1 se considera VERDADERO y el valor 0 FALSO.

  14. Funciones...Ejemplo 3 • Convertir un Carácter de Minúscula a Mayúscula. char min_a_may(char en){ if(en >= 'a' && en <= 'z'){ return (en - 'a' + 'A'); } else{ return(en); } } • Proponer una Segunda Versión para dicha coversión.

  15. Funciones ... Ejemplo 4 • Determinar el Factorial de un Entero. int factorial(int x){ int k,fact; fact = 1; if(x == 0 || x == 1) return (1); else{ for(k = 2; k <= x; k++) fact = fact * k; return (fact); } }

  16. Clases de Almacenamiento • En C se puede especificar una clase de almacenamiento en la declaración. • Las clases de almacenamiento se usan en C para definir la visibilidad y el tiempo de vida de las variables. • El formato es: <clase-de-almac><tipo-dato>nom-var; • C tiene cuatro clases de almacenamiento: automatic extern register static

  17. Clase de Almacenamiento tipo automatic • Las variables definidas dentro de una función se denominan variables locales • Por defecto las variables locales corresponde a la clase de almacenamiento automatic. int f1(){ int i; /* Variable automatic */ float f; sentencia1; sentencia2; … sentencian; }

  18. Clase de Almacenamiento tipo register • La clase de almacenamiento register asigna memoria en los registros de alta-velocidad de la CPU . • Se usa para sugerirle al compilador que una variable local automática sea guardada en un registro del procesador, en vez de la memoria regular. int f1(register int a}{ register int i; … }

  19. Clase de Almacenamiento tipo static • La clase de almacenamiento static le informa al compilador que los valores almacenados en las variables están disponibles entre llamadas a funciones. main(){ int i; /* El bucle invoca la función generarIdno */ for(i = 1; i <= 10; i++) printf("idno es %d\n", generarIdno()); }  /* La función generarIdno inicia aquí */ generarIdno(){ static int idno = 0; return ++idno; }

  20. Clase de Almacenamiento tipo extern • Las variables cuya definición está fuera de cualquier función (incluyendo la función main())pertenecen a la clase de almacenamiento extern. • Las variables de tipo extern son visibles a través del programa, a partir del punto en que son definidas hasta el final del ámbito establecido para ellas. • Cualquier cambio que se haga a los valores de las variables de tipo extern afectan al resto del programa. • ¿Se puede tener una variable declarada comoextern en otro archivo? • La respuesta es sí.

  21. Clase de Almacenamiento tipo extern...2 /* Archivo1.c */ int k, m; main(){ … } /* Archivo3.h */ /* Los prototipos de funciones están en éste archivo */ int f1(); int f2(); /* Archivo2.c*/ int k,j; extern int m; int f1(){ … } int n; int f2(){ … }

  22. Archivos de Encabezados (header) • Los archivos de Encabezados (header) centralizan las definiciones y declaraciones. • Permite tener una sola copia mientras se desarrolla el programa facilitando el mantenimiento.  • En el ejemplo, el contenido común se coloca en Archivo3.h conocido como un archivo headerque se incluye a través de la sentencia #include “Archivo3.h” en los archivos Archivo1.c y Archivo2.c. • El mecanismo de cómo compilar y cargar un programa en C que reside en varios archivos fuente varía de un sistema a otro. • En UNIX, el comando cc realiza el enlace: cc Archivo1.c Archivo2.c Archivo3.h

  23. Resumen • Se explicó la naturaleza y uso de las funciones. • Se describieron algunas funciones incorporadas de C y cómo se usan. • Se identificaron las diferentes partes del encabezado de una función. • Se estudiaron los diferentes tipos de argumentos. • Se definió el concepto de prototipos de funciones y y se estableció sus usos. • Se estudiaron los tipos de almacenamiento. • Se discutió las ventajas de los archivos de encabezado.

  24. Resumen • Explicar el concepto de recursión. • Discutir las diferentes condiciones que deben ser satisfechas para que las funciones recursivas trabajen correctamente. • Describir cómo una función recursiva trabaja cuando se ejecuta. • Definir el rol de la pila en la ejecución de las funciones recursivas.

More Related