Вы находитесь на странице: 1из 20

FUNCIONES EN C++

INTRODUCCION
Sin saberlo hemos venido usando funciones en cada uno de nuestros programas, pero estos han sido los predefinidos en el lenguaje c++ , a los que se les denomina funciones de biblioteca. Sin embargo, cada programador puede definir sus propias funciones de acuerdo a sus necesidades. Las funciones que define el programador son conocidas como funciones de usuario. La utilizacin de funciones nos permite dividir un programa extenso en pequeos segmentos que realizan tareas concretas. Muy til cuando dentro de un mismo programa se repite la misma tareas, pues evitara esta repeticin. Sin embargo, es probable que ciertas funciones no sean reutilizables, pero al usarlas se mejora la legibilidad del programa. Las funciones en C++ no se pueden anidar. En otras palabras, una funcin no se puede declarar dentro de otra funcin, por lo que todas las funciones son globales o externas, lo que hace que puedan llamarse desde cualquier parte de un programa.
Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

cuando Dios quiere enviar 1 Regalo lo Envuelve


en 1 problema. Entre + grande sea el problema + grande Es el regalo.

FUNCIONES EN C++
OBJETIVOS:
1. Comprender el desarrollo de un programa utilizando funciones Establecer la diferencia entre la definicin, declaracin y el llamado de una funcin. Comprender el mecanismo utilizado para pasar informacin entre funciones. Conocer y utilizar el paso de valores entre funciones y la devolucin de valores de una funcin. Establecer la diferencia entre el paso de argumentos por valor y por referencia. Conocer la clasificacin de las variables de acuerdo a su mbito y clase de almacenamiento Entender como pasar arreglos a funciones
Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

2.
3.

4.
5.

6.
7.

FUNCIONES
DEFINICION:
Las funciones son una porcion de instrucciones que realizan una tarea especfica. En general toman unos valores de entrada, llamados parmetros y proporcionan un valor de salida o valor de retorno, los valores de E/S pueden no existir PROCESO

PROCESO

PROCESO

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
VENTAJAS
Modularizacin. Consistente en dividir un programa en una serie de mdulos ms pequeos y manejables, llamados funciones. Ahorro de memoria RAM . (variables de una funcin son activadas solamente cuando es llamada la funcin) Ahorro en tiempo de desarrollo. (evita repeticiones). Independencia de datos : Una funcin es capaz de mantener gran independencia con el resto del programa, manteniendo sus propios datos. Menor tamao del archivo fuente y ejecutable. Facilita la depuracin (deteccin y correccin de errores)

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
CONSTRUCCION DE UNA FUNCION
Para poder crear y usar funciones, las funciones deben declararse , definirse y por supuesto ser llamadas. (algo similar a lo que hacemos con una variable)
Una declaracin es simplemente una presentacin. Una definicin contiene las instrucciones con las que realizar su trabajo. Una(s) Llamada(s) ejecucin de las instrucciones que fueron definidas.
1. Hola soy Pintor

2. Pinto sper bien las paredes de una casa o edificio, preparo la pintura, cargo la brocha o el rodillo y la desplazo sobre la pared 3. Cuando quieras que pinte tu casa llamame.

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
CONSTRUCCION DE UNA FUNCION

Masillador

Lijador

Pintor

Masillador Materiales para preparar masilla Cubrir huecos de las paredes

Lijador Materiales para lijar pared. Dejar lisa las paredes

Pintor Materiales para pintar la pared Dejar bien pintadas las paredes

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
ESTRUCTURA DE UNA FUNCION EN C++

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
DECLARACION DE UNA FUNCION C++
Toda funcin debe ser declarada antes de ser utilizada en el programa. Esta se hace mediante el prototipo de la funcin. tipo nombre _funcin (tipo1 , tipo2, tipo3=valor); Ejemplo single salario(int, single); En la lista de argumentos formales o parmetros, basta incluir slo los tipos de datos de dichos argumentos. El prototipo termina con el punto y coma (;). Los valores pueden ser inicializados, si se desea. La declaracin de las funciones mediante los prototipos suele hacerse antes de la funcion main().

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
DEFINICION DE UNA FUNCION C++

La definicin de una funcin consta de: La cabecera de la funcin. (por cierto aqu no a el punto y coma) Y el cuerpo de la funcin.
tipo_retorno nombre_funcion (tipo1 arg1, tipo2 arg2, ... ,tipoN argN) { conjunto de instrucciones (cuerpo de la funcin) .. .. return (expresin); //optativo }
Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
DEFINICION DE UNA FUNCION C++
Cada funcin puede disponer de sus propias variables, declaradas al comienzo de su cdigo. Estas variables son del tipo auto, es decir, slo son visibles dentro de la funcin, se crean cada vez que se ejecuta la funcin y permanecen ocultas para el resto del programa. La lista de argumentos, tambin llamados argumentos formales, es una lista de declaraciones de variables, precedidas de su tipo correspondiente y separadas por comas (,). Los argumentos formales son la forma ms natural y directa para que una funcin reciba valores desde el programa que le llama. Si no se desea pasar ningn valor a la funcin se puede poner void en los parntesis. tipo_retorno: cuando una funcin es ejecutada, puede devolver al programa que le ha llamado un valor (el valor de retorno), cuyo tipo debe ser especificado en el encabezamiento de la funcin. Si no se desea que devuelva nada, el tipo

de retorno debe ser void. La sentencia return permite devolver el valor.


Si no se especifica el tipo_retorno, se asume que es int por defecto.
Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
LLAMADA A LA FUNCION C++
La llamada a una funcin se hace incluyendo en su nombre la lista de argumentos actuales cada uno separado por una coma y que puede formar parte de una expresin o sentencia del programa principal o de otra funcin. Los argumentos incluidos en la llamada pueden ser no slo variables y/o constantes, sino tambin expresiones. Debemos recordar que los argumentos formales y los argumentos actuales deben coincidir en el nmero y tipo.

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
EJEMPLO DE FUNCION C++

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
MBITO Y CLASES DE ALMACENAMIENTO
Como ya conocemos las variables pueden ser de diferente tipo de datos. Por ejemplo, una variable puede ser de tipo entero (int) o de tipo carcter (char). Sin embargo, las variables tambin pueden clasificarse de acuerdo a su mbito, es decir, la parte del programa en la que la variable es reconocida. De acuerdo con su mbito, las variables pueden ser locales o globales. Por otro lado, existen los modificadores de tipo o clases de almacenamiento que permiten modificar el mbito y la permanencia de una variable Dentro de un programa. Existen cuatro modificadores de tipo, automtico, externo, esttico y registro, que se corresponden con las palabras reservadas auto, extern, static y register, respectivamente.

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
VARIABLES LOCALES
Las variables que declaramos en la funcin main, estn nicamente asociadas a esta funcin, es decir son variables locales de la funcin main y no se puede acceder a ellas a travs de ninguna otra funcin. Con este mismo fundamento, cualquier variable que declaremos dentro de una funcin, es local a esa funcin, es decir, su mbito esta limitado a dicha funcin. Esto permite que existan variables con el mismo nombre en diferentes funciones y que no mantengan ninguna relacin entre s. Debemos tener en cuenta que cualquier variable declarada dentro de una funcin se considera como una variable automtica (auto) a menos que utilicemos algn modificador de tipo.

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
VARIABLES LOCALES
Una variable se considera automtica porque cuando se accede a la funcin se le asigna espacio en la memoria automticamente y se libera dicho espacio tan pronto se sale de la funcin. Por lo tanto una variable automtica no conserva un valor entre dos llamadas sucesivas a la misma funcin. Con el propsito de garantizar el contenido de las variables automticas, stas deben Inicializarse al entrar a la funcin Para evitar que su valor sea indeterminado. Todas las variables que hemos utilizado en los ejemplos vistos hasta ahora son variables automticas.

La utilizacin de la palabra reservada auto es opcional, aunque normalmente no se utiliza, por ejemplo:

auto int contador; equivale a int contador;


Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
VARIABLES GLOBALES
Contrario al mbito de la variables locales, el mbito de las variables globales se extiende desde el punto en el que se definen hasta el final del programa. La utilizacin de variables globales proporciona un mecanismo de intercambio de informacin entre funciones sin necesidad de utilizar argumentos. Por otra parte, las variables globales mantienen el valor que se les ha asignado dentro de su mbito, incluso despus de finalizar las funciones que modifican dicho valor. Debemos tener en cuenta que el uso de variables globales para el intercambio de informaciones entre funciones puede resultar tiles en algunas situaciones (como cuando se desea transferir ms de un valor desde una funcin), pero su utilizacin podra llevarnos a programas de difcil interpretacin y complejos de depurar.

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

#include <stdio.h> void unaFuncion(); void otraFuncion(); int variable; main() { } variable = 9; printf("El valor de variable es: %d\n", variable); unaFuncion(); otraFuncion(); printf("Ahora el valor de variable es: %d\n", variable); return 0; void unaFuncion() { printf("En la funcin unaFuncion, variable es: %d\n", variable); } void otraFuncion() { variable++; printf("En la funcin otraFuncion, variable es: %d\n",variable); } La salida es: El valor de variable es: 9 En la funcin unaFuncion, variable es: 9 En la funcin otraFuncion, variable es: 10 Ahora el valor de variable es: 10 Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
PASO POR VALOR O POR REFERENCIA
Variable referencia Una referencia o variable referencia en C++ es simplemente otro nombre o alias de una variable. En esencia una referencia acta igual que un puntero (contiene la direccin de un objeto), pero funciona de diferente modo, ya que no se puede modificar la variable a la que est asociada la referencia, pero s se puede modificar el valor de la variable asociada.

Usando variable referencia int i; int &x=i; // x es un alias de i x=40; // i vale 40 Usando punteros int i; int *p=&i; *p=40; //i vale 40

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
PASO POR VALOR O POR REFERENCIA
En C++ el paso por valor significa que al compilar la funcin y el cdigo que llama a la funcin, sta recibe una copia de los valores de los parmetros que se le pasan como argumentos. Las variables reales no se pasan a la funcin, slo copias de su valor. Cuando una funcin debe modificar el valor de la variable pasada como parmetro y que esta modificacin retorne a la funcin llamadora, se debe pasar el parmetro por referencia. En este mtodo, el compilador no pasa una copia del valor del argumento; en su lugar, pasa una referencia, que indica a la funcin dnde existe la variable en memoria. La referencia que una funcin recibe es la direccin de la variable. Es decir, pasar un argumento por referencia es, simplemente, indicarle al compilador que pase la direccin del argumento. Ejemplo: void demo(int &valor) { valor=5; cout<<valor<<endl; } void main() {int n=10; cout<<n<<endl; demo(n); cout<<n<<endl; } La salida de este programa ser: 10 5 5 Una limitacin del mtodo de paso por referencia es que se pueden pasar slo variables a la funcin. No se pueden utilizar constantes ni expresiones en la lnea de llamada a la misma.

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

FUNCIONES
Funciones con nmero de argumentos no especificado
C++ permite declarar una funcin cuyo nmero y tipo de argumentos no son conocidos en el momento de la compilacin. Esta caracterstica se indica con la ayuda del operador especial puntos suspensivos (...) en la declaracin de la funcin. void f1(...); Este formato de prototipo reduce la cantidad de verificacin que el compilador realiza. As, la funcin predefinida printf(), que tiene el prototipo: int printf(char *formato,...); Esto significa que la funcin devuelve un entero y acepta un puntero a un parmetro fijo de caracteres y cualquier nmero de parmetros adicionales de tipo desconocido. Con este prototipo, el compilador verifica en tiempo de compilacin los parmetros fijos, y los parmetros variables se pasan sin verificacin de tipos. El archivo stdarg.h contiene macros que se pueden utilizar en funciones definidas por el usuario con nmero variable de parmetros.

Esta declaracin indica que f1 es una funcin que no devuelve ningn valor y que tomar un nmero variable de argumentos en cada llamada. Si algunos argumentos se conocen, deben situarse al principio de la lista: void f2(int a,float b,...); Los puntos suspensivos indican que la funcin se puede llamar con diferentes conjuntos de argumentos en distintas ocasiones.

Prof: Dr. Patricio Congacha A. e-mail: renovaspc@hotmail.com

Вам также может понравиться