CIMAT Inform atica I para...

36
C++ CIMAT Inform´ atica I para Bachillerato C/C++ Funciones Jos´ e Luis Alonzo Vel´ azquez CIMAT Sesi´ on 11 Jos´ e Luis Alonzo Vel´ azquez Inform´ atica I para Bachillerato

Transcript of CIMAT Inform atica I para...

Page 1: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

CIMAT

Informatica I para BachilleratoC/C++

Funciones

Jose Luis Alonzo Velazquez

CIMAT

Sesion 11

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 2: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

¿Que es una funcion?

Una funcion es un conjunto de lıneas de codigo que realizan unatarea especıfica y puede retornar un valor. Las funciones puedentomar parametros que modifiquen su funcionamiento. Lasfunciones son utilizadas para descomponer grandes problemas entareas simples y para implementar operaciones que soncomunmente utilizadas durante un programa y de esta manerareducir la cantidad de codigo. Cuando una funcion es invocada sele pasa el control a la misma, una vez que esta finalizo con su tareael control es devuelto al punto desde el cual la funcion fue llamada.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 3: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Sintaxis

1 <t i p o> [ c l a s e : : ] <nombre> ( [ Par ametros ] )2 {3 c u er p o ;4 }

Ejemplo

1 // r e g r e s a r e l cuadrado de un numero2 d o u b l e cuadrado ( d o u b l e n )3 {4 r e t u r n n∗n ;5 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 4: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Sintaxis

1 <t i p o> [ c l a s e : : ] <nombre> ( [ Par ametros ] )2 {3 c u er p o ;4 }

Ejemplo

1 // r e g r e s a r e l cuadrado de un numero2 d o u b l e cuadrado ( d o u b l e n )3 {4 r e t u r n n∗n ;5 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 5: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Parametros por valor

La funcion cuadrado() es un clasico ejemplo que muestra el pasode parametros por valor, en ese sentido la funcion cuadrado()recibe una copia del parametro n. En la misma funcion se puedeobservar que se realiza un calculo ( n ∗ n ), sin embargo elparametro original no sufrira cambio alguno, esto seguira siendocierto aun cuando dentro de la funcion hubiera una instruccionparecida a n = n ∗ n; o n∗ = n;.

Ejemplo

1 // r e g r e s a r e l cuadrado de un numero2 d o u b l e cuadrado ( d o u b l e n )3 {4 r e t u r n n∗n ;5 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 6: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Parametros por valor

La funcion cuadrado() es un clasico ejemplo que muestra el pasode parametros por valor, en ese sentido la funcion cuadrado()recibe una copia del parametro n. En la misma funcion se puedeobservar que se realiza un calculo ( n ∗ n ), sin embargo elparametro original no sufrira cambio alguno, esto seguira siendocierto aun cuando dentro de la funcion hubiera una instruccionparecida a n = n ∗ n; o n∗ = n;.

Ejemplo

1 // r e g r e s a r e l cuadrado de un numero2 d o u b l e cuadrado ( d o u b l e n )3 {4 r e t u r n n∗n ;5 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 7: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Ejemplo

1 // r e g r e s a r e l cuadrado de un numero2 d o u b l e cuadrado2 ( d o u b l e &n )3 {4 n ∗= n ;5 r e t u r n n ;6 }

Parametros por referencia

La funcion cuadrado2() es un clasico ejemplo que muestra el pasode parametros por referencia, en ese sentido la funcion cuadrado2()recibe el parametro n. En la misma funcion se puede observar quese realiza un calculo ( n ∗ n ), sin embargo el parametro originalsufrira cambio, esto seguira siendo cierto aun cuando dentro de lafuncion hubiera una instruccion parecida a n = n ∗ n; o n∗ = n;.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 8: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Ejemplo

1 // r e g r e s a r e l cuadrado de un numero2 d o u b l e cuadrado2 ( d o u b l e &n )3 {4 n ∗= n ;5 r e t u r n n ;6 }

Parametros por referencia

La funcion cuadrado2() es un clasico ejemplo que muestra el pasode parametros por referencia, en ese sentido la funcion cuadrado2()recibe el parametro n. En la misma funcion se puede observar quese realiza un calculo ( n ∗ n ), sin embargo el parametro originalsufrira cambio, esto seguira siendo cierto aun cuando dentro de lafuncion hubiera una instruccion parecida a n = n ∗ n; o n∗ = n;.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 9: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Parametros constantes

Los parametros usados por una funcion pueden declararse comoconstantes ( const ) al momento de la declaracion de la funcion.Un parametro que ha sido declarado como constante significa quela funcion no podra cambiar el valor del mismo ( sin importar sidicho parametro se recibe por valor o por referencia ).

Ejemplo

1 i n t f u n c i o n X ( c o n s t i n t n ) ;2 v o i d p r i n t s t r ( c o n s t c h a r ∗ s t r ) ;

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 10: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Parametros constantes

Los parametros usados por una funcion pueden declararse comoconstantes ( const ) al momento de la declaracion de la funcion.Un parametro que ha sido declarado como constante significa quela funcion no podra cambiar el valor del mismo ( sin importar sidicho parametro se recibe por valor o por referencia ).

Ejemplo

1 i n t f u n c i o n X ( c o n s t i n t n ) ;2 v o i d p r i n t s t r ( c o n s t c h a r ∗ s t r ) ;

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 11: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Parametros con valor por defecto

Los parametros usados por una funcion pueden declararse con unvalor por defecto. Un parametro que ha sido declarado con valorpor defecto es opcional a la hora de hacer la llamada a la funcion.

Ejemplo

1 v o i d s a l u d o ( c h a r ∗ mensaje = ” Hola s u d a f r i c a 2010 ” ) ;2

3 l a misma puede s e r i n v o c a d a como :4

5 s a l u d o ( ) ; // s i n par ametro6 s a l u d o ( ” Sea u s t e d b i e n v e n i d o a C++” ) ; // con par ametro

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 12: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Parametros con valor por defecto

Los parametros usados por una funcion pueden declararse con unvalor por defecto. Un parametro que ha sido declarado con valorpor defecto es opcional a la hora de hacer la llamada a la funcion.

Ejemplo

1 v o i d s a l u d o ( c h a r ∗ mensaje = ” Hola s u d a f r i c a 2010 ” ) ;2

3 l a misma puede s e r i n v o c a d a como :4

5 s a l u d o ( ) ; // s i n par ametro6 s a l u d o ( ” Sea u s t e d b i e n v e n i d o a C++” ) ; // con par ametro

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 13: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Funciones sobrecargadas

C++, a diferencia del C estandar, permite declarar funciones conel mismo nombre y a esto se conoce como sobrecarga defunciones. Las funciones sobrecargadas pueden coincidir en tipo,pero al menos uno de sus parametros tiene que ser diferente. Entodo caso, si usted trata de declarar funciones sobrecargadas quecoincidan en tipo y numero de parametros el compilador no se lopermitira. Para poner un ejemplo vamos a considerar el caso de dosfunciones cuyo nombre sera divide, ambas regresaran el cociente dedos numeros, salvo que una de ellas operara sobre numeros enterosy la otra lo hara sobre numeros reales ( de punto flotante ).

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 14: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Observacion

Nota: cuando en los programas se hace una llamada a una funcionsobrecargada, el compilador determina a cual de las funcionesinvocar en base al tipo y numero de parametros pasados a lafuncion.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 15: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Ejemplo

1 #i n c l u d e <s t d i o . h>2 #i n c l u d e < s t d l i b . h>3

4 u s i n g namespace s t d ;5 // d i v i d e e n t e r o s6 i n t d i v i d e ( i n t a , i n t b ) {7 p r i n t f ( ” d i v i s i o n e n t e r a ” ) ;8 i f ( b !=0){9 r e t u r n a/b ;

10 } e l s e {11 r e t u r n 0 ;12 }13 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 16: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Ejemplo

1 // d i v i d e r e a l e s2 d o u b l e d i v i d e ( d o u b l e a , d o u b l e b ) {3 p r i n t f ( ” d i v i s i o n e n t e r a ” ) ;4 i f ( b !=0){5 r e t u r n a/b ;6 } e l s e {7 r e t u r n 0 ;8 }9 }

10 // punto de prueba11 i n t main ( ) {12 p r i n t f ( ” %d” , d i v i d e ( 1 0 , 3) ) ;13 p r i n t f ( ” %l f ” , d i v i d e ( 1 0 . 0 , 3 . 0 ) ) ;14 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 17: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Numero variable de parametros

En C,C++ se pueden crear funciones que operen sobre una listavariable de parametros, es decir, en donde el numero deparametros es indeterminado. En esta seccion se mostrara unejemplo de la manera en que podemos crear funciones paramanejar tales asuntos, y para ello haremos uso de tres macrossoportadas por C++:

1 va list puntero de argumentos

2 va start inicializar puntero de argumentos

3 va end liberar puntero de argumentos

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 18: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Numero variable de parametros

La sintaxis que usaremos para declarar funciones con lista deparametros variables es:

1 1) t i p o nombre func ion ( . . . )2 2) t i p o nombre func ion ( i n t num , . . . )

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 19: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Ejemplo

donde:

1 tipo es el tipo regresado por la funcion

2 nombrefuncion es el nombre de la funcion

3 int num es el numero de parametros que la funcion procesara

4 ... esta notacion se emplea para indicar que el numero deparametros es variable

Nota: observe que la primera forma de declaracion es realmentevariable el numero de parametros a procesar y en estos casos sedebe establecer el mecanismo para determinar cuando se haprocesado el ultimo de los argumentos, en el segundo tipo dedeclaracion el numero total de parametros a procesar es igual alvalor del parametro num.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 20: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Ejemplo

1 #i n c l u d e <s t d i o . h>2 #i n c l u d e <s t d a r g . h>3 u s i n g namespace s t d ;4 // Esta f u n c i o n o p e ra s o b r e una l i s t a v a r i a b l e de

numeros e n t e r o s5 i n t suma ( i n t num , . . . ) {6 i n t t o t a l = 0 ;7 v a l i s t a r g p t r ;8 v a s t a r t ( a r g p t r , num ) ;9 w h i l e ( num > 0 ) {

10 t o t a l += v a a r g ( a r g p t r , i n t ) ;11 num−−;12 }13 va end ( a r g p t r ) ;14 r e t u r n ( t o t a l ) ;15 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 21: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Continuacion Ejemplo

1 i n t main ( ) {2 p r i n t f ( ” %d” , suma ( 4 , 100 , 200 , 300 , 400) ) ;3 r e t u r n 0 ;4 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 22: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Figura : Repaso de funciones

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 23: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Problema para clase

Hacer un programa que tenga una funcion que multiplique 4numeros dados por el usuario, y imprima el resultado en pantalla.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 24: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Declaracion de funciones

Antes de escribir una funcion es necesario informarle al Compiladorlos tamanos de los valores que se le enviaran en el stack y eltamano de los valores que ella retornara al programa invocante .Estas informaciones estan contenidas en la declaracion delprototipo de la funcion. Formalmente dicha declaracion quedadada por :

1 t i p o d e l v a l o r de r e t o r n o n o m b r e d e l a f u n c i o n ( l i s t ade t i p o s de p a r a m e t r o s )

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 25: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Ejemplo

1 f l o a t m i f u n c i o n ( i n t i , d o u b l e j ) ;2

3 d o u b l e o t r a f u n c i o n ( v o i d ) ;4

5 o t r a m a s ( l o n g p ) ;6

7 v o i d l a u l t i m a ( l o n g d o u b l e z , c h a r y , i n t x , u n s i g n e dl o n g w) ;

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 26: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Observaciones

El primer termino del prototipo da, como hemos visto el tipo deldato retornado por la funcion; en caso de obviarse el mismo setoma, por omision, el tipo int. Sin embargo, aunque la funciondevuelva este tipo de dato, para evitar malas interpretaciones esconveniente explicitarlo .

Ya que el “default” del tipo de retorno es el int, debemos indicarcuando la funcion NO retorna nada, esto se realiza por medio de lapalabra VOID (sin valor). De la misma manera se actua, cuandono se le enviaran argumentos. Mas adelante se profundizara sobreel tema de los argumentos y sus caracterısticas.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 27: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Observaciones

El primer termino del prototipo da, como hemos visto el tipo deldato retornado por la funcion; en caso de obviarse el mismo setoma, por omision, el tipo int. Sin embargo, aunque la funciondevuelva este tipo de dato, para evitar malas interpretaciones esconveniente explicitarlo .

Ya que el “default” del tipo de retorno es el int, debemos indicarcuando la funcion NO retorna nada, esto se realiza por medio de lapalabra VOID (sin valor). De la misma manera se actua, cuandono se le enviaran argumentos. Mas adelante se profundizara sobreel tema de los argumentos y sus caracterısticas.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 28: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Observaciones

La declaracion debe anteceder en el programa a la definicion de lafuncion. Es normal, por razones de legibilidad de la documentacion,encontrar todas las declaraciones de las funciones usadas en elprograma, en el HEADER del mismo, junto con los include de losarchivos *.h que tienen los prototipos de las funciones de Librerıa.

Si una o mas de nuestras funciones es usada habitualmente,podemos disponer su prototipo en un archivo de texto, e incluirlolas veces que necesitemos, segun se vera mas adelante.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 29: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Observaciones

La declaracion debe anteceder en el programa a la definicion de lafuncion. Es normal, por razones de legibilidad de la documentacion,encontrar todas las declaraciones de las funciones usadas en elprograma, en el HEADER del mismo, junto con los include de losarchivos *.h que tienen los prototipos de las funciones de Librerıa.

Si una o mas de nuestras funciones es usada habitualmente,podemos disponer su prototipo en un archivo de texto, e incluirlolas veces que necesitemos, segun se vera mas adelante.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 30: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Definicion de las funciones

La definicion de una funcion puede ubicarse en cualquier lugar delprograma, con solo dos restricciones: debe hallarse luego de dar suprototipo, y no puede estar dentro de la definicion de otra funcion( incluida main() ). Es decir que a diferencia de Pascal, en C lasdefiniciones no pueden anidarse.

NOTA

No confundir definicion con llamada; una funcion puede llamar atantas otras como desee. La definicion debe comenzar con unencabezamiento, que debe coincidir totalmente con el prototipodeclarado para la misma, y a continuacion del mismo, encerradaspor llaves se escribiran las sentencias que la compone.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 31: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Definicion de las funciones

La definicion de una funcion puede ubicarse en cualquier lugar delprograma, con solo dos restricciones: debe hallarse luego de dar suprototipo, y no puede estar dentro de la definicion de otra funcion( incluida main() ). Es decir que a diferencia de Pascal, en C lasdefiniciones no pueden anidarse.

NOTA

No confundir definicion con llamada; una funcion puede llamar atantas otras como desee. La definicion debe comenzar con unencabezamiento, que debe coincidir totalmente con el prototipodeclarado para la misma, y a continuacion del mismo, encerradaspor llaves se escribiran las sentencias que la compone.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 32: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

1 #i n c l u d e <s t d i o . h>2 /∗ D e c l a r a c i o n o b s e r v e que t e r m i n a en ” ; ” ∗/3 f l o a t m i f u n c i o n ( i n t i , d o u b l e j ) ;4 i n t main ( ) {5 f l o a t k ;6 i n t p ;7 d o u b l e z ;8 . . . . . . . . . . .9 k = m i f u n c i o n ( p , z ) ; /∗ LLAMADA a l a f u n c i o n ∗/

10 . . . . . . . . . . .11 }12 /∗ f i n de l a f u n c i o n main ( ) ∗/13 /∗ D e f i n i c i o n o b s e r v e que NO l l e v a ” ; ” ∗/

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 33: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

1 f l o a t m i f u n c i o n ( i n t i , d o u b l e j ) {2 f l o a t n ;3 . . . . . . . . . . . . . . . . . . .4 p r i n t f ( ” %d” , i ) ; /∗ LLAMADA a o t r a f u n c i o n ∗/5 . . . . . . . . . . . . . . . . . . .6 r e t u r n ( 2 ∗ n ) ; /∗ RETORNO d e v o l v i e n d o un v a l o r f l o a t

∗/7 }

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 34: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Problema para clase

Hacer una funcion que manda llamar otra funcion que a su vesmanda llamar otra funcion.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 35: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Problema extra clase

Utilizar un archivo header y ver como funciona para poder usarloen varios proyectos.

Jose Luis Alonzo Velazquez Informatica I para Bachillerato

Page 36: CIMAT Inform atica I para Bachilleratopepe/cursos/informatica_bachillerato_2015/slides/slide_11.pdfreducir la cantidad de c odigo. Cuando una funci on es invocada se le pasa el control

C++

FuncionesFunciones sobrecargadasDeclaracion de funcionesDefinicion de las funciones

Como Programar en C/C++, Deitel (Prentice Hall), 2daEdicion.

Programming Principles and Practice Using C++, BjarneStroustrup.

http://www.codeblocks.org

http://www.wxwidgets.org

Jose Luis Alonzo Velazquez Informatica I para Bachillerato