Funciones Introducción Cuando un programa comienza a ser largo y complejo no es apropiado tener todas las instrucciones en un solo bloque, ya que no es fácil entender lo que hace el programa debido a que se intenta abarcar toda la solución a la vez. Además suelen aparecer secciones de código similares entre sí a lo largo de todo el programa lo que hace que el programa se vuelva aún más difícil de entender y modificar. Los lenguajes de alto nivel proporcionan herramientas para solucionar estos problemas permiten estructurar el programa principal compuesto de subprogramas (funciónes y procedimientos) que resuelven partes del problema principal. A su vez, cada uno de estos subprogramas puede estar resuelto por otro conjunto de subprogramas etc... Los procedimientos y las funciones son los mecanismos de estructuración que permiten ocultar los detalles de la solución de un problema y resolver una parte de dicho problema en otro lugar del código. El lenguaje C utiliza bibliotecas de funciones con el fin de realizar un algunas operaciones cálculos de uso común. C además permite que el programador defina sus propias funciónes para determinadas tareas. Función: es un bloque de instrucciones que realiza tareas bien definidas. Todo programa en C consta de una o más funciónes. La ejecución de un programa en C siempre comienza por la función. Cuando se ejecuta una función el control pasa al punto donde esta inicia. Una vez finalizada su ejecución, se devuelve el control al punto desde el que se hizo la llamada a la función. Procedimientos: Se llama así, en lenguaje Pascal, a un subprograma que ejecuta unas ciertas acciones sin que valor alguno de retorno esté asociado a su nombre. En otras palabras: Un procedimiento es una función que NO devuelve valores. Partes de una Función 1. Prototipo de la función 2. Definición de la función 3. Llamada a la función 1) PROTOTIPO DE UNA FUNCIÓN. tiene la sintaxis: tipo nombre(parámetro 1, parámetro 2, ...parámetro N ); donde : tipo: es el tipo de valor devuelto por la función. Los procedimientos son tipo void. nombre: es el nombre de la función parámetros: conjunto de argumentos, separados por comas y encerrados entre paréntesis. Los parámetros son opcionales, en caso de que no se especifiquen, enseguida del nombre de la función se escribe un par de paréntesis vacíos. El prototipo de la función va seguido de ; 2) DEFINICIÓN DE LA FUNCIÓN: La definición de la función se hace después de cerrar la llave de main. Esta formado por las siguientes partes: a) Encabezado de la función. Es igual al prototipo pero no termina con ; b) Cuerpo de la función. Entre llaves se declaran las variables locales y luego se escriben las instrucciones. El cuerpo de la función termina con la sentencia return() que marca el final de la función. Sólo se puede incluir una expresión (variable u operación) en la sentencia return. Ing. Alma Leticia Palacios Guerrero E:\lety\Programacion estructurada\Funciones.doc Funciones 3) LLAMADA A LA FUNCIÓN. Es la ejecución de la Función. La función se realiza en el momento en que desde el programa principal se hace referencia a su nombre. #include<stdio.h> #include<conio.h> void cuadro (int,int,int,int,int); int suma(int , int ); //Prototipo void main() { int x1,y1,x2,y2,a,b,c; clrscr(); printf("Coordenadas de la esquina superior izquierda"); scanf("%d,%d",&y1,&x1); printf("Coordenadas de la esquina inferior derecha"); scanf("%d,%d",&y2,&x2); clrscr(); cuadro (y1,x1,y2,x2,RED); // Llamada a la funcion gotoxy(20,10);printf("Primer Numero:");scanf("%d",&a); gotoxy(20,11);printf("Segundo Numero:");scanf("%d",&b); c=suma(a,b); clrscr(); cuadro(15,8,35,12,MAGENTA); gotoxy(20,10);printf("La suma es %d",c); getch(); } void cuadro(int coli, int reni, int colf, int renf,int color) { int i; textcolor(color); for (i=coli;i<=colf;i++) { gotoxy(i,reni); cprintf("%c",219); gotoxy(i,renf); cprintf("%c",219); } for (i=reni;i<=renf;i++) { gotoxy(coli,i); cprintf("%c",219); gotoxy(colf,i); cprintf("%c",219); } } int suma(int n1, int n2) { int resp; resp=n1+n2; return(resp); } Ing. Alma Leticia Palacios Guerrero E:\lety\Programacion estructurada\Funciones.doc