ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Funciones


Enviado por   •  24 de Marzo de 2014  •  4.886 Palabras (20 Páginas)  •  187 Visitas

Página 1 de 20

FUNCIONES

Cuando se diseñan programas de cierta complejidad, igual que en todo tipo de diseño, se debe seccionar por partes, cada una de las cuales cumple cierta labor dentro de todo el sistema. Cada una de estas partes puede ser concebida como una entidad propia que se relaciona con las demás a partir de unas especificaciones bien definidas. Para este propósito, los lenguajes de programación tienen las funciones.

Una función es un segmento de código que ocupa una zona de la memoria de programa y que puede ser “invocada” desde cualquier parte del programa y cuantas veces sea necesario, con solo escribir el nombre de la función (y sus respectivos parámetros) ya sea en la función principal o cualquier otra función. La tarea a ejecutar por la función puede ser siempre la misma o puede que su funcionamiento dependa de algunos valores que se le pasan como argumentos (al primer tipo se le denomina función sin parámetros), en lenguaje C a estos argumentos se les denomina parámetros; y en algunos casos la función nos indicará lo que ocurrió dentro de su ejecución retornando algún valor (puede que el fin mismo de la función sea hacer un cálculo y retornar el resultado de dicho cálculo), al tipo de dato que retorna se le denomina en lenguaje C, tipo de retorno.

En los programas que se han escrito hasta ahora ya se han usado algunas funciones (por mencionar algunas piense en printf, scanf, clrscr, getch, sin, cos, etc), solo que estas son funciones propias del lenguaje, es decir su implementación ya hace parte de las librerías propias del lenguaje C y su prototipo está definido en los archivos de cabecera (archivos .h) respectivos.

Del párrafo anterior tenemos que existen tres “momentos”, en el uso y definición de la función que queremos manejar: La primera es la declaración del prototipo de la función, en ella se indica al lenguaje como es su uso: nombre, tipo de dato de cada parámetro (cuando los tiene) y tipo de dato que retorna (la declaración de la función la usa el compilador para detectar posibles errores de sintaxis). La segunda es la implementación en la cual se le dice al lenguaje C las instrucciones que debe ejecutar cada que se invoca dicha función, y la tercera es el uso propiamente dicho y es cuando se quiere que esta función sea ejecutada.

La declaración de la función tiene la siguiente sintaxis:

Tipo de retorno Nombre de la Funcion( tipo parametro1,tipo parámetro 2,..);

El tipo de retorno es uno de los tipos de datos propios del lenguaje C, o un tipo de dato creado por el usuario (por ejemplo una estructura). El nombre de la función es el nombre que identifica a la función y por lo tanto tiene las mismas reglas que los identificadores de variables (no puede exceder 32 caracteres, no puede contener espacios y es sensible a las mayúsculas). En el tipo de cada parámetro se tienen las mismas consideraciones que para el tipo de retorno. Si una función no requiere parámetros simplemente se abren y cierran los paréntesis, o si se quiere, dentro de los paréntesis se utiliza la palabra reservada void.

Cuando se están usando las funciones propias del lenguaje C o funciones escritas por terceros (librerías para propósito específico que pueden encontrarse en Internet u otro recurso), es muy importante saber como se usan a partir de la declaración. Como ejemplo tenemos que la función getch, tiene la siguiente declaración:

char getch (void );

Como ejercicio, escriba como están declaradas las funciones de C que utiliza normalmente en sus programas (clrscr, gotoxy, clrscr, printf, scanf, etc) y compárelas con la declaración (simplemente pida la ayuda sobre la función respectiva para verla).

La definición de la función debe empezar con el prototipo de la función, y para distinguirla de esta, simplemente se debe suprimir el punto y coma al final, y en vez de este se reemplaza por el corchete de abrir bloque (el carácter { ), que indicara que esta empezando la definición de las instrucciones que debe ejecutar el programa cada que se invoca a la función.

El tipo de dato tanto de retorno y el tipo de dato de los parámetros solo se usa en la declaración y la definición de la función, EL TIPO DE DATO DE RETORNO Y/O DE LOS PARAMETROS NO DEBE USARSE CUANDO SE ESTA INVOCANDO A LA FUNCIÓN.

FUNCIONES QUE NO RETORNAN VALORES

En algunos lenguajes se denominan Procedimientos. Para el lenguaje C un procedimiento es una función que no retorna valores, y para este propósito se tiene la palabra reservada void (la traducción literal es vacío). Entonces cuando se diseña un procedimiento, solo basta con poner la palabra reservada void en el espacio en el que se indica el tipo de retorno.

Por ejemplo, es muy usual que cuando estemos desplegando información al usuario en un programa, se utilice el mensaje: “pulse una tecla para continuar”. Entonces podemos escribir una función que realice esta labor. Así, la función podría tener la siguiente declaración:

void EsperarTecla(void);

Y su implementación estar escrita de la siguiente forma:

void EsperarTecla(void)

{

gotoxy(1,25);

printf(“Pulse una tecla para continuar”);

getch( );

}

Entonces cada vez que necesitemos desplegar el mensaje y esperar una tecla, lo único que debemos hacer en nuestro programa es escribir:

EsperarTecla( );

FUNCIONES QUE RETORNAN VALORES

Para escribir este tipo de funciones se debe tener en cuenta el punto en el que función termina de ejecutarse y regresa con el valor de retorno, para lo cual se utiliza la palabra reservada return. De hecho, no necesariamente debe existir un solo return dentro de una función, hay situaciones en las cuales es necesario tener varios retornos de acuerdo al valor de una variable o un cálculo específico.

Por ejemplo, si en un programa tenemos que evaluar varias veces dos números enteros para tomar el mayor de ellos, lo más conveniente sería escribir una función que realice esto y la invocamos cada vez que sea necesario. Así entonces, lo primero sería indicar el prototipo de la función:

int Mayor(int a,int b);

La implementación o definición de la función se escribe de la siguiente forma:

int Mayor(int a, int b)

{ //a todo el código encerrado entre esta llave y la respectiva del cierre se

//le denomina cuerpo de la función

if(a>b) return a;

else return b;

}

...

Descargar como (para miembros actualizados) txt (29 Kb)
Leer 19 páginas más »
Disponible sólo en Clubensayos.com