proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
funciones
1. UTN - FRTInformática II - UTN - FRTInformática II -
UTN – Facultad Regional Tucumán
Informática II
Funciones
Prof. Ing. Oscar Gálvez
A.T.P. Ing. César Ovejero
Subprogramas en C
3. UTN - FRTInformática II - UTN - FRTInformática II - 1. ¿Qué es una función?
3
Función:Secuenciadeinstrucciones agrupadas bajo
un mismo nombrequerealizan unatareadeterminada.
Lafunción seejecutarátantas veces como selallame
mediantesu nombre.
Ventajas:
Facilitalareutilización decódigo, aumentandolaproductividad
del programador.
Descomposición de un problema en subproblemas más
sencillos → sedisminuyelacomplejidaddel problema.
El uso de funciones mejora la estructura del programa,
haciéndolomáslegibleyentendible.
4. UTN - FRTInformática II - UTN - FRTInformática II - 2. Definición
4
Ladefinición deunafunción constade:
Cabecera. Indica el tipo devuelto por la función (puede ser
nulo: void), su nombre y los argumentos que recibe (puede
norecibir ninguno).
Cuerpo. Bloquedeinstrucciones delafunción.
Sintaxis:
tipo nombre(argumentos)
{
/*
/*
declaración de variables locales */
instrucciones */
return exprexión;
}
5. UTN - FRTInformática II - UTN - FRTInformática II - 3. Paso de Parámetros
5
En ladefinición delafunción seespecificalalistade
parámetros o argumentos querecibey su(s) tipo(s).
Puedenotener ningúnargumento
Lasintaxis delalistadeargumentos es:
(tipo1 argumento1, tipo2 argumento2, ...)
Al invocar (llamar) alafunción seledeben pasar
tantos argumentos como recibay del tipo correcto.
Existen dos formas depaso deparámetros:
Por valor. Se pasa como parámetro un valor (puede ser una
constante, unavariable, el resultadodeunaoperación…).
Por referencia. Se pasa como parámetro la dirección en
memoria de una variable. Esta variable podrá ser modificada
desdedentro delafunción.
6. UTN - FRTInformática II - UTN - FRTInformática II - 4. Devolución de Resultados
6
Una función puede devolver un valor como
resultado. El valor devuelto será del tipo definido en
lacabeceradelafunción.
Si el tipoespecificadoesvoid, lafunciónnodevolveránada(esloque
normalmentesellamaunprocedimiento).
Si el tipoespecificadonoesvoid, lafuncióndeberáobligatoriamente
devolver unvalor deretorno.
Lainstrucción paradevolver el valor deretorno es:
return valor;
Si no se devuelve ningún valor no es necesario que
aparezca return, aunque puede usarse para evitar
quesesigan ejecutando instrucciones delafunción:
return;
7. UTN - FRTInformática II - UTN - FRTInformática II - 5. Llamada
7
Para que se ejecute una función, esta debe ser
invocada mediante su nombre, seguido por los
argumentos entreparé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 algunaexpresión.
variable = función2();
8. UTN - FRTInformática II - UTN - FRTInformática II - 6. Declaración
8
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
desu uso, sirveademá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 queseincluyen en los programas:
#include <stdio.h>
9. UTN - FRTInformática II - UTN - FRTInformática II - Ejemplo
9
#include <stdio.h>
/* Declaración de la función suma */
int suma(int
int main()
a, int b);
{ /* Llamada a la función suma */
printf("3
return 0;
+ 5 = %dn", suma(3, 5));
}
/* Definición de la función
b)
suma */
int suma(int
{
return a + b;
a, int
}
10. UTN - FRTInformática II - UTN - FRTInformática II -
10
Ejemplo (II)
#include <stdio.h>
/* Declaración y definición
nombre[])
de saluda */
void saluda(char
{
printf("Hola, %s.n", nombre);
}
int main()
{ /* Invocación del
saluda("Juan");
saluda("Luisa");
return 0;
procedimiento saluda */
}