Funciones

Preview:

Citation preview

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Funciones

Roberto Carlos Abreu Dıaz

January 27, 2010

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

FuncionesCaso de EstudioEstructura de una FuncionLlamada a funcionesAmbitoCall stack

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Funciones

I Entrada, procesamiento, SalidaI Se pueden llamar (”ejecutar”) un sin numero de veces.I Relativamente independientes del resto del codigoI Sinonimos: sub-programas, procedimientos, metodos,

funciones, rutinas

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Caso de Estudio

Ejemplo de Kernighan y Ritchie

I Si tenemos que disenar y escribir un programa queimprima cada lınea de la entrada si esta contiene algunpatron de caracteres.

I El codigo serıa algo ası:while (haya mas lıneas)if (la lınea contiene el patron)imprımela

I Aunque podamos escribir todo el codigo en el main(),separar el codigo en varias funciones trae consigo susventajas

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Continuacion...

Ejemplo de Kernighan y Ritchie (2)

I ”haya mas lıneas” es una funcion que lee datos tipocadena de la entrada

I ”(if) la lınea contiene el patron” es una funcion quebusca la ocurrencia de patrones de textos

I ”imprımela” es ya el printf!

I ¡Si queremos cambiar el patron de busqueda solotendrıamos que cambiar la funcion encargada de eso!

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Estructura de una Funcion

I La lista de parametros es separada por coma

I Si la funcion no devuelve datos, el tipo de dato es: void

I La palabra reservada return se utiliza para devolver elresultado

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Ejemplo!

Codigo

i n t f a c t o r i a l ( i n t n ){

i f ( n <= 2)return n ;

i n t p r o d u c t o = n ;

whi le ( n > 1)p r o d u c t o ∗= −−n ;

return p r o d u c t o ;}

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Llamada a funciones

I ¡Ya lo hemos hecho! printf!

I Si la funcion devuelve un resultado . . . la llamada a lafuncion es una expresion valida!

I Ejemplo: factorial(5) + factorial(6)!

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Ambito

I Las funciones pueden acceder a las variables globales

I Pero no pueden acceder a las variables de otras variables

I ¿Por que?

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Call stack

Recommended