Programación Estructurada PROGRAMACIÓN ESTRUCTURADA Sesión No. 5 Nombre: Funciones Contextualización La programación estructural, tienen como una característica principal el desarrollo de las instrucciones línea a línea, y es bastante practico para programas cortos, pero en muchas acciones, la tarea a realizar es mucho mas compleja y la lectura en el código secuenciado se convierte en un problema estructural que suele perder a los programadores al momento de realizar depuración de código. Existe un método de anidación de instrucciones que realizan acciones especificas de un programa completo, el ordenamiento de estas acciones es conveniente incluso para ejecutar una acción varias veces a lo largo del programa. Estos grupos de código son conocidos como funciones. 1 PROGRAMACIÓN ESTRUCTURADA Introducción al Tema La identificacion o abstraccion de las operaciones requeridas para el desarrollo de un programa que suelen repetirce a lo largo del programa pueden ayudar a optimizar el codgo y a especializar lineas de codigo que ejecutan una tarea especifica. Las funciones permiten estos beneficios de optimizacion y especializacion de lineas de codigo. El simple echo de invocar el nombre de la funcion en la linea donde le corresponde ejecutarse emulara la impresión de las lineas en esa seccion, asi, se puede optimizar el codigo haciendo bloques especificos de tareas concretas que se deben realizar para que el programa cumpla su objetivo global. En el lenguaje C, como ya se ha comentado anteriormente, la funcion principal yamada main puede invocar a otras funciones para ejecutar tareas especificas según la necesidad del codigo mismo. 2 PROGRAMACIÓN ESTRUCTURADA Explicación 3.1 Definición de Funciones En el lenguaje C, la técnica de programación modular se implementa mediante la utilización de funciones. Una función permite agrupar un conjunto de instrucciones en un bloque que típicamente realizará una tarea elemental. En la resolución de un problema es necesario identificar previamente las tareas elementales que debe realizar el programa y, posteriormente, estas se implementarán como funciones. Todo programa en C contiene una función principal o función main, la cual es la encargada de llevar el control de ejecución de programa (secuencia de ejecución de instrucciones) y de llamar a ejecución a las funciones pertinentes en puntos del programa donde se necesiten. Un programa siempre empieza a ejecutarse desde a función main, siendo éste el modulo o función principal del programa (raíz de la estructura arbórea de la que dependen todas las demás funciones). Para que una función se ejecute, debe ser siempre llamada desde la funcion main. A una función que llama a otra se le denomina función invocadora y a la función llamada función invocada. Cuando una función invocada (F1) realiza una llamada a otra función (F2), se transfiere el control de ejecución F1 a F2, lo que requiere decir que la función que pasa ahora a ejecutarse es F2. Adicionalmente, F1 puede trasferir ciertos datos a la función F2 en el momento de realizar la llamada. A estos datos se les denomina argumentos de entrada de la función F2. La estructura de una función en C se divide en dos partes: • La cabecera de la función • El cuerpo de la función 3 PROGRAMACIÓN ESTRUCTURADA • TipoDato: representa el tipo de dato del valor que devuelve la función (int, float, char). En caso de que la función no devuelva ningún resultado, en este parámetro debe especificarse la palabra void. • NombreDeFuncion: denota el nombre con el que debe llamarse a la función. • Argumentos: conjunto de tuplas (tipo_dato nombre_variable) separados por comas, a los que se denominan argumentos finales, estos permiten la transferencia de información a la función desde el punto de programa donde es invocada. El cuerpo de la función se encuentra encerrado entre llaves y está formado por tres partes, la primera contiene la declaración de las variables que se va a emplear en la función, la segunda un conjunto de instrucciones que realizan la tarea para la cual se diseñó la función, empleando (si procede) los datos almacenados en los argumentos formales de la cabecera y el valor de retorno de la funcion, es decir, el valor esperado. El control de esa ejecución del programa se pasará automáticamente a la función invocadora una vez se hayan terminado de ejecutar las instrucciones que forman el cuerpo de la función invocada. Las ventajas de la implementacion de las funciones son: • Se puede llamar una función desde diferentes partes de un programa • Se puede transferir un conjunto de datos distinto cada vez que se llama a la función, obteniendo resultados diferentes en cada uno de los casos. 4 PROGRAMACIÓN ESTRUCTURADA • Los programas son más sencillos de implementar y corregir, puesto que son tareas básicas compuestas de unas pocas líneas de instrucciones. • Se puede crear un conjunto de funciones genéricas que puedan ser utilizadas como librería por diferentes programas, permitiendo así la reutilización del código. 5 PROGRAMACIÓN ESTRUCTURADA Ejemplo en lenguaje C: Calcular el cubo de un numero entero. #include<stdio.h> #include<math.h> int cubo(int); main () { int a; printf(“Ingrese un entero: ”); scanf(” %d”, &a); printf(“El cubo de %d es: %d\n”, a, CalculaCubo(a)); Se invoca funcion getch(); } /* Definicion de la funcion CalculaCubo */ int CalculaCubo (int x) { int cubo; cubo = x*x*x; return cubo; } Descripción del programa: 1. Se pide al usuario un numero entero para calcular el cubo de este. 2. Se imprime el valor del cubo invocando a CalculaCubo. a la funcion llamada 6 PROGRAMACIÓN ESTRUCTURADA 3. En la funcion se realiza la operación y se regresa el resultado obtenido, el cual, sera impreso en pantalla. Conclusión La utilidad de las funciones es enorme cuando existen programas muy extensos donde se debe ejecutar una misma tarea varias veces, disminullendo lineas de codigo y permitiendo que las correcciones sobre la misma se hagan en una sola seccion. Recuerda que las funciones pueden ser llamadas varias veces a lo largo del programa, en el ejemplo anterior, podriamos haber calculado el cubo del cubo del cubo de un entero si llamaramos 3 veces a la misma funcion pasandole como argumento el resultado de la priemera funcion. Algo asi: Int cubo1 = calculaCubo(a); Int cubo2 = calculaCubo(cubo1); Int cubo3 = calculaCubo(cubo2); Printf(“/nEl cubo del cubo del cubo es:%d”,cubo3 ); 7 PROGRAMACIÓN ESTRUCTURADA Para aprender más A continuación encontraras un link a un video donde con ejemplos podrás comprender mejor el uso de las funciones en el lenguaje C https://www.youtube.com/watch?v=e2FF_SYyYik 1 1 Video tomado de YouTube en https://www.youtube.com/watch?v=e2FF_SYyYik. la siguiente dirección: 8 PROGRAMACIÓN ESTRUCTURADA Actividad de Aprendizaje Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar la siguiente actividad. Instrucciones: Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar la siguiente actividad. Instrucciones Describe la estructura de una función en C así como las partes en las que se divide. Escribe un ejemplo de un básico sobre funciones en C Convertir en imagen en formato JPG la estructura de la función en C Convertir en imagen en formato JPG el ejemplo realizado Subirlo a la plataforma de la asignatura Esta actividad te ayudará a comprender la estructura de una función del lenguaje C, así como su correcta utilización, lo cual te facilitará a entender las siguientes sesiones. Esta actividad representa el 5% de tu calificación y se tomará en cuenta lo siguiente: Tus datos generales. Título. La descripción de la función C y el ejemplo básico de sus funciones Ortografía y redacción. Referencias bibliográficas 9 PROGRAMACIÓN ESTRUCTURADA Bibliografía Cobo A; (s/f). Programar C desde un punto de vista científico, Madrid: Vision Libros Harvey, M; (2004), C / C++ y Java cómo programar, México: Pearson Educación. Jordá, P; (s/f). Diseño e implementación de programas en lenguaje C, Valencia: Libro Docente. Oviedo, R; (2004), Lógica de programación, Bogotá: Ecoe Ediciones 10