Tema 7

Anuncio
Tema 7
Funciones
Contenidos
1. ¿Qué es una función?
2. Definición.
3. Paso de parámetros.
4. Devolución de resultados.
5. Llamada.
6. Declaración.
2
1. ¿Qué es una función?
Función: Secuencia de instrucciones agrupadas bajo
un mismo nombre que realizan una tarea determinada.
La función se ejecutará tantas veces como se la llame
mediante su nombre.
Ventajas:
Facilita la reutilización de código, aumentando la productividad
del programador.
Descomposición de un problema en subproblemas más
sencillos → se disminuye la complejidad del problema.
El uso de funciones mejora la estructura del programa,
haciéndolo más legible y entendible.
3
2. Definición
La definición de una función consta de:
Cabecera. Indica el tipo devuelto por la función (puede ser
nulo: void), su nombre y los argumentos que recibe (puede
no recibir ninguno).
Cuerpo. Bloque de instrucciones de la función.
Sintaxis:
tipo nombre(argumentos)
{
/* declaración de variables locales */
/* instrucciones */
return exprexión;
}
4
3. Paso de Parámetros
En la definición de la función se especifica la lista de
parámetros o argumentos que recibe y su(s) tipo(s).
Puede no tener ningún argumento
La sintaxis de la lista de argumentos es:
(tipo1 argumento1, tipo2 argumento2, ...)
Al invocar (llamar) a la función se le deben pasar
tantos argumentos como reciba y del tipo correcto.
Existen dos formas de paso de parámetros:
Por valor. Se pasa como parámetro un valor (puede ser una
constante, una variable, el resultado de una operación …).
Por referencia. Se pasa como parámetro la dirección en
memoria de una variable. Esta variable podrá ser modificada
desde dentro de la función.
5
4. Devolución de Resultados
Una función puede devolver un valor como
resultado. El valor devuelto será del tipo definido en
la cabecera de la función.
Si el tipo especificado es void, la función no devolverá nada (es lo que
normalmente se llama un procedimiento).
Si el tipo especificado no es void, la función deberá obligatoriamente
devolver un valor de retorno.
La instrucción para devolver el valor de retorno es:
return valor;
Si no se devuelve ningún valor no es necesario que
aparezca return, aunque puede usarse para evitar
que se sigan ejecutando instrucciones de la función:
return;
6
5. Llamada
Para que se ejecute una función, esta debe ser
invocada mediante su nombre, seguido por los
argumentos entre paréntesis.
nombre(arg1, arg2, ...);
Los parámetros pueden ser variables, constantes,
expresiones o el resultado de llamadas a otras
funciones.
Si la función invocada devuelve un valor, este podrá
ser almacenado en una variable o utilizado como
operando en alguna expresión.
variable = función2();
7
6. Declaración
La declaración de una función consiste en escribir su
cabecera seguida de un punto y coma. El nombre de los
argumentos no es necesario, tan sólo su tipo.
Es conveniente declarar las funciones antes de utilizarlas.
Esto permite que el compilador dé error si no se utilizan bien
(comprobará el tipo y número de argumentos y el tipo
devuelto).
Si la definición de una función aparece en el programa antes
de su uso, sirve además como declaración.
Las declaraciones de las funciones de las librerías estándar
(además de otras cosas como constantes, tipos, ...) es lo que
hay en las cabeceras que se incluyen en los programas:
#include <stdio.h>
8
Ejemplo
#include <stdio.h>
/* Declaración de la función suma */
int suma(int a, int b);
int main()
{ /* Llamada a la función suma */
printf("3 + 5 = %d\n", suma(3, 5));
return 0;
}
/* Definición de la función suma */
int suma(int a, int b)
{
return a + b;
}
9
Ejemplo (II)
#include <stdio.h>
/* Declaración y definición de saluda */
void saluda(char nombre[])
{
printf("Hola, %s.\n", nombre);
}
int main()
{ /* Invocación del procedimiento saluda */
saluda("Juan");
saluda("Luisa");
return 0;
}
10
Descargar