Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenidos
1. Introduccin al concepto de subrutina o subprograma. 2. Definicin de funcin C++. 3. Estructura de una funcin. a) Nombre de una funcin b) Tipo de retorno (tipo del valor devuelto) c) Valor retorno d) Lista de parmetros - Paso por valor - Paso por referencia 4. Los arrays y las estructuras como parmetros. 5. Declaracin de funciones: Prototipos.
1
Funciones Introduccin
En la mayora de los casos, un determinado problema complejo lo podemos (y debemos) dividir en problemas ms sencillos. Estos subproblemas se conocen en el contexto de la programacin como Mdulos o subprogramas.
Tcnica de diseo conocida como
TOP DOWN
Se tratar de descomponer el problema original en partes. Se pueden codificar de forma independiente e incluso por diferentes personas. El problema final queda resuelto y estructurado en forma de mdulos, lo que hace ms sencilla su lectura y mantenimiento.
2
La solucin a ste problema se poda descomponer en cuatro partes diferentes: Ventajas: - ahorro de espacio. - ms fcil entender lo que hace el algoritmo. - ms fcil de codificar.
3
Calcular la media Determinar cuntos son mayores que la media Visualizar los datos mayores que la media Fin
Funciones Subprogramas
Un subprograma es una serie de instrucciones escritas independientemente del programa principal. Este subprograma est ligado al programa principal mediante un proceso de transferencia/retorno.
Programa Principal Transferencia El control de ejecucin se pasa al subprograma en el momento en que se requieren sus servicios. Transferencia/retorno de control y datos Retorno
4
Subprograma
ncia transfere
retorno
1.- Aislar mejor los problemas 2.- Escribir programas ms rpido 3.- Programas ms fciles de mantener (ms legibles y ms cortos)
5
C++ nos permite definir nuestras propias funciones. Pocas veces veremos un programa que no use funciones. Una funcin "especial" y que se usa siempre es la funcin main.
8
Tipo_resultado: Es el tipo de dato que devuelve la funcin. Expresin: valor que devuelve la funcin. Lista de parmetros: aparecen con su tipo. La funcin utiliza stos valores en el cuerpo.
9
visualizar_tabla_1 ,
Es muy importante en la fase de diseo de un algoritmo, utilizar nombres que nos permitan intuir la tarea que realizan las funciones, sobre todo a la hora de mantener y modificar programas.
11
Si se nos pide un cambio en algn punto del programa, por la forma de imprimir la matriz, qu funcin hemos de modificar?
12
Funciones que realizan operaciones con los argumentos o manipulan datos y devuelven un valor. Dicho valor, puede ser el resultado de esas operaciones un indicador de si la manipulacin de los datos ha sido exitosa o no.
sim pl e s
Tip
Un tipo struct
13
os
Funciones Estructura de una funcin: Valor de retorno Una funcin solo puede devolver un valor. El valor se devuelve mediante la sentencia return
return <expresin> ;
1. C++ comprueba la compatibilidad de tipos, (no se puede devolver un valor de tipo int, si el tipo de retorno es struct ). 2. Una vez que se ejecuta sta sentencia, termina la ejecucin de la funcin. 3. Una funcin puede tener cualquier nmero de sentencias return, pero al menos debe haber una. . Cuando se ejecuta return se sale de la funcin. 4. El valor devuelto puede ser: una constante, variable una expresin.
16
void main() { bool resultado; resultado = funcion (-5); resultado = funcion (5); }
17
18
resultado = suma (6 , 8 ); Cuando se llama a una funcin, puede haber una variable que guarde el valor que devolver la funcin, es decir, llamaremos a la funcin mediante una sentencia de asignacin.
19
20
a aux
10
1000
Cdigo de la Funcin cubo
res num
1000
10 Cdigo del Programa principal
* El programa principal se interrumpe para comenzar la ejecucin de la funcin * Se reserva memoria para el cdigo de la funcin, para las variables locales y para los parmetros.
21
MEMORIA
Funciones Estructura de una funcin: Lista de parmetros 2. Paso de parmetros por referencia
void cubo (int & a) { int aux; aux = a*a*a ; a = aux; return; }
...
aux
1000
Cdigo de la Funcin cubo
... void main() { int num = 10; cubo ( num ); cout << num; }
num a
1000 10
Cdigo del Programa principal
Con & el compilador no reserva memoria para los parmetros, sino que utiliza la misma porcin de memoria. Por tanto los cambios afectan a la variable MEMORIA
22
Funciones Estructura de una funcin: Lista de parmetros Paso de parmetros por valor
- Cuando se llama a la funcin, se pasa solo el valor de la variable. - Este mtodo tambin se llama paso por copia. - El compilador hace una copia de los parmetros. Esto implica que cualquier modificacin en el valor de los parmetros no se mantiene cuando termina la funcin. - Utilizaremos ste mtodo cuando no necesitemos que se modifiquen los parmetros con los que se llama. La mayora de los ejemplos que hemos visto hasta ahora, utilizan parmetros por valor.
23
Funciones Estructura de una funcin: Lista de parmetros Paso de parmetros por referencia
- Tambin se llama paso por direccin. - Cuando se llama a la funcin, se pasa la direccin de memoria donde se encuentra almacenada la variable parmetro. - El compilador no hace copia, no reserva memoria para los parmetros. - Usaremos ste mtodo cuando necesitamos que la funcin modifique el valor de los parmetros y que devuelva el valor modificado. Para pasar un parmetro por referencia, hay que poner el operador de direccin & detrs del tipo del parmetro.
void cubo (int & a) { . }
24
Las estructuras como parmetros: Las estructuras, si son muy grandes, se pasan por referencia haciendo uso del operador & como es habitual para el resto de parmetros.
26
Prototipo
El prototipo, informa de la existencia de la funcin, el tipo de datos que devuelve y los parmetros que tiene definidos.
Codificacin
27
3. Las constantes, variables y tipos de datos declarados en el cuerpo de la funcin son locales a la misma y no se pueden utilizar fuera de ella. 4. El cuerpo de la funcin encerrado entre llaves, no acaba en ;.
28