funciones

10

Click here to load reader

Transcript of funciones

Page 1: funciones

UTN - FRTInformática II - UTN - FRTInformática II -

UTN – Facultad Regional Tucumán

Informática IIFunciones

Prof. Ing. Oscar Gálvez

A.T.P. Ing. César Ovejero

Subprogramas en C

Page 2: funciones

UTN - FRTInformática II - UTN - FRTInformática II -

1.¿Quées una función?2.Definición.3.Paso deparámetros.4.Devolución de resultados.5.Llamada.6.Declaración.

2

Contenidos

Page 3: funciones

UTN - FRTInformática II - UTN - FRTInformática II - 1. ¿Qué es una función?

3

Función: Secuenciade instrucciones agrupadas bajoun mismo nombrequerealizan unatareadeterminada.Lafunción seejecutará tantas veces como se la llamemediantesu nombre.Ventajas:

Facilita la reutilización decódigo, aumentando laproductividaddel programador.Descomposición de un problema en subproblemas mássencillos → sedisminuye lacomplejidad del problema.El uso de funciones mejora la estructura del programa,haciéndolo más legible yentendible.

Page 4: funciones

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 sernulo: void), su nombre y los argumentos que recibe (puedenorecibir ninguno).Cuerpo. Bloque de instrucciones de la función.

Sintaxis:tipo nombre(argumentos)

{

/*

/*

declaración de variables locales */

instrucciones */

return exprexión;

}

Page 5: funciones

UTN - FRTInformática II - UTN - FRTInformática II - 3. Paso de Parámetros

5

En ladefinición de la función seespecifica la listadeparámetros o argumentos querecibey su(s) tipo(s).

Puede no tener ningún argumentoLasintaxis de la listadeargumentos es:

(tipo1 argumento1, tipo2 argumento2, ...)

Al invocar (llamar) a la función se ledeben pasartantos argumentos como recibay del tipo correcto.Existen dos formas depaso deparámetros:

Por valor. Se pasa como parámetro un valor (puede ser unaconstante, unavariable, el resultado deunaoperación …).Por referencia. Se pasa como parámetro la dirección enmemoria de una variable. Esta variable podrá ser modificadadesdedentro de la función.

Page 6: funciones

UTN - FRTInformática II - UTN - FRTInformática II - 4. Devolución de Resultados

6

Una función puede devolver un valor comoresultado. El valor devuelto será del tipo definido enlacabecerade la función.

Si el tipoespecificadoesvoid, la funciónnodevolverá nada(es loquenormalmentese llamaunprocedimiento).Si el tipoespecificadonoesvoid, la funcióndeberáobligatoriamentedevolver unvalor deretorno.

La instrucción paradevolver el valor deretorno es:return valor;

Si no se devuelve ningún valor no es necesario queaparezca return, aunque puede usarse para evitarquesesigan ejecutando instrucciones de la función:

return;

Page 7: funciones

UTN - FRTInformática II - UTN - FRTInformática II - 5. Llamada

7

Para que se ejecute una función, esta debe serinvocada mediante su nombre, seguido por losargumentos entreparéntesis.

nombre(arg1, arg2, ...);

Los parámetros pueden ser variables, constantes,expresiones o el resultado de llamadas a otrasfunciones.Si la función invocada devuelve un valor, este podráser almacenado en una variable o utilizado comooperando en algunaexpresión.

variable = función2();

Page 8: funciones

UTN - FRTInformática II - UTN - FRTInformática II - 6. Declaración

8

La declaración de una función consiste en escribir sucabecera seguida de un punto y coma. El nombre de losargumentos 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 tipodevuelto).Si la definición de una función aparece en el programa antesdesu 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 quehay en las cabeceras quese incluyen en los programas:

#include <stdio.h>

Page 9: funciones

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 = %d\n", suma(3, 5));

}

/* Definición de la función

b)suma */

int suma(int

{

return a + b;

a, int

}

Page 10: funciones

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 */

}