10
Funciones Roberto Carlos Abreu D´ ıaz Outline Funciones Caso de Estudio Estructura de una Funci´ on Llamada a funciones ´ Ambito Call stack Funciones Roberto Carlos Abreu D´ ıaz January 27, 2010

Funciones

  • Upload
    rcad

  • View
    625

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Funciones

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

Page 2: Funciones

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

Page 3: Funciones

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

Page 4: Funciones

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

Page 5: Funciones

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!

Page 6: Funciones

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

Page 7: Funciones

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 ;}

Page 8: Funciones

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)!

Page 9: Funciones

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?

Page 10: Funciones

Funciones

Roberto CarlosAbreu Dıaz

Outline

Funciones

Caso de Estudio

Estructura de unaFuncion

Llamada a funciones

Ambito

Call stack

Call stack