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

Declaracion de funciones


Enviado por   •  22 de Octubre de 2013  •  5.515 Palabras (23 Páginas)  •  305 Visitas

Página 1 de 23

1.INTRODUCCION

La forma más razonable de encarar el desarrollo de un programa complicado es aplicar lo que se ha dado en llamar "Programación Top - Down" .

Esto implica que, luego de conocer cual es la meta a alcanzar, se subdivide esta en otras varias tareas concurrentes, por ejemplo :

Leer un teclado, procesar datos, mostrar los resultados .

Luego a estas se las vuelve a dividir en otras menores :

Y así se continúa hasta llegar a tener un gran conjunto de pequeñas y simples tareas, del tipo de "leer una tecla" ó "imprimir un caracter".

Luego sólo resta abocarse a resolver cada una de ellas por separado.

De esta forma el programador, sólo se las tendrá que ver con diminutas piezas de programa, de pocas lineas, cuya escritura y corrección posterior es una tarea simple.

Tal es el criterio con que está estructurado el lenguaje C, donde una de sus herramientas fundamentales són las funciones. Todo compilador comercial trae una gran cantidad de Librerias de toda índole, matematicas, de entrada - salida, de manejo de textos, de manejo de gráficos, etc, que solucionan la mayor parte de los problemas básicos de programación .

Sin embargo será inevitable que en algún momento tenga que crear mis propias funciones, las reglas para ello son las que desarrollaremos en este capítulo .

Comencemos con algunos conceptos básicos: para hacer que las instrucciones contenidas en una función, se ejecuten en determinado momento, no es necesario más que escribir su nombre como una linea de sentencia en mi programa. Convencionalmente en C los nombres de las funciones se escriben en minúscula y siguen las reglas dadas anteriormente para los de las variables, pero deben ser seguidos, para diferenciarlas de aquellas por un par de paréntesis .

Dentro de estos paréntesis estarán ubicados los datos que se les pasan a las funciones. Está permitido pasarles uno, ninguno ó una lista de ellos separados por comas, por ejemplo: pow10( a ), getch(), strcmp( s1, s2 ) .

Un concepto sumamente importante es que los argumentos que se les envían a las funciones son los VALORES de las variables y NO las variables mismas. En otras palabras, cuando se invoca una función de la forma pow10( a ) en realidad se está copiando en el "stack" de la memoria el valor que tiene en ese momento la variable a, la función podrá usar este valor para sus cálculos, pero está garantizado que los mismos no afectan en absoluto a la variable en sí misma.

Como veremos más adelante, es posible que una función modifique a una variable, pero para ello, será necesario comunicarle la DIRECCION EN MEMORIA de dicha variable .

Las funciones pueden ó no devolver valores al programa invocante. Hay funciones que tan sólo realizan acciones, como por ejemplo clrscr(), que borra la pantalla de video, y por lo tanto no retornan ningun dato de interés; en cambio otras efectuan cálculos, devolviendo los resultados de los mismos.

La invocación a estos dos tipos de funciones difiere algo, por ejemplo escribiremos :

clrscr() ;

c = getch() ;

donde en el segundo caso el valor retornado por la función se asigna a la variable c. Obviamente ésta deberá tener el tipo correcto para alojarla .

2. DECLARACION DE FUNCIONES

Antes de escribir una función es necesario informarle al Compilador los tamaños de los valores que se le enviarán en el stack y el tamaño de los valores que ella retornará al programa invocante .

Estas informaciones están contenidas en la DECLARACION del PROTOTIPO DE LA FUNCION.

Formalmente dicha declaración queda dada por :

tipo del valor de retorno nombre_de_la_función(lista de tipos de parámetros)

Pongamos algunos ejemplos :

float mi_funcion(int i, double j ) ;

double otra_funcion(void) ;

otra_mas(long p) ;

void la_ultima(long double z, char y, int x, unsigned long w) ;

El primer término del prototipo da, como hemos visto el tipo del dato retornado por la función; en caso de obviarse el mismo se toma, por omisión, el tipo int. Sin embargo, aunque la función devuelva este tipo de dato, para evitar malas interpretaciones es conveniente explicitarlo .

Ya que el "default" del tipo de retorno es el int, debemos indicar cuando la función NO retorna nada, esto se realiza por medio de la palabra VOID ( sin valor).

De la misma manera se actúa, cuando no se le enviarán argumentos.

Más adelante se profundizará sobre el tema de los argumentos y sus características.

La declaración debe anteceder en el programa a la definición de la función. Es normal, por razones de legibilidad de la documentación, encontrar todas las declaraciones de las funciones usadas en el programa, en el HEADER del mismo, junto con los include de los archivos *.h que tienen los prototipos de las funciones de Librería.

Si una ó más de nuestras funciones es usada habitualmente, podemos disponer su prototipo en un archivo de texto, e incluirlo las veces que necesitemos, según se vio en capítulos previos.

3. DEFINICION DE LAS FUNCIONES

La definición de una función puede ubicarse en cualquier lugar del programa, con sólo dos restricciones: debe hallarse luego de dar su prototipo, y no puede estar dentro de la definición de otra función ( incluida main() ). Es decir que a diferencia de Pascal, en C las definiciones no pueden anidarse.

NOTA: no confundir definición con llamada; una función puede llamar a tantas otras como desee .

La definición debe comenzar con un encabezamiento, que debe coincidir totalmente con el prototipo declarado para la misma, y a continuación del mismo, encerradas por llaves se escribirán las sentencias que la componen; por ejemplo:

#include <stdio.h>

float mi_funcion(int i, double j ); /* DECLARACION observe que termina en ";" */

main()

...

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