Sie sind auf Seite 1von 6

Tipos de funciones en C++ | Cdigo C++

http://codigoc.org/541-tipos-de-funciones-en-c

Blog

Acerca

Autor

Contacto

Busca

Categoras: Artculos Blog Curso Prctica Programas Teora

Tipos de funciones en C++


Guardado en: Curso el 13 de noviembre del 2010

Este post forma parte del curso:


Etiquetas: funciones

Anterior :: Indice :: Siguiente

Curso Online de HTML 5


Capacityacademy.com/Curso-de-HTML5

Bienvenidos!
Cdigo C++ es un blog sobre programacin en C++. En l encontrars ejemplos, programas y toda clase de ayuda para tus tareas de programacin.

Aprende a programar en HTML 5. 2 pagos de US$ 99 Inscrbete Ahora!

Recibe mis artculos


Va RSS Va email

Para Novatos
Los tipos de funciones en c++ son 4, aunque en realidad son las combinaciones de las 2 cosas que una funcin puede hacer. Si andan perdidos en cuanto a funciones les recomiendo leer mi post anterior: Funciones en C++. Una funcin, como les deca, puede hacer (o no) dos cosas: 1 Recibir datos y 2 Retornar datos. De esto surgen los cuatro tipos de funciones: 1. No reciben ni retornan 2. Reciben y no retornan 3. No reciben y retornan 4. Reciben y retornan Vamos a hacer un programa que sume dos nmeros, usando los cuatro tipos de funciones:
Porqu programar en C++? Hola Mundo en C++ IDE recomendado, Code::Blocks

Problema comn
Tu progama corre pero al presionar enter se cierra sin mostrar los resultados?, slo agrega cin.get();cin.get(); antes de la llave de cierre del main.

Posts Recientes
Diferencias entre C y C++ #define en C++, cmo s y cmo no Nuevo: Curso de C++ Code::Blocks, un IDE moderno para C++ Aprender ingls, en C++!?

No reciben ni retornan
Las ms sencillas. Para usarlas slo tenemos que saber cmo crearlas y cmo llamarlas. Una funcin se crea de esta forma general:
tipo nombre(){}

El tipo se refiere al tipo de dato (int, float, void, char) y en las funciones que no retornan siempre es void. El nombre es el nombre de la funcin: cualquiera que empiece con una letra, que sea significativo y que no sea una palabra reservada. Para llamarlas slo hay que escribir el nombre de la funcin seguido de sus parntesis y un punto y coma (;).
nombre();

As nuestro programa sera:


#include<iostream> using namespace std; void sumar() { int num1, num2, r; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; r = num1 + num2; cout << "La suma es " << r; } int main() { sumar(); }

Tags
while variables tringulos tipos de datos time

string.h signos seno coseno sencillos recursividad recuadros rand punteros promedios primos porcentajes
pascal operadores medio matrices math iostream infinito

if else hanoi gotoxy goto funciones for

fibonacci factorial dev c++ descargas conio.h condiciones

Como ven, todo lo que habramos puesto en nuestro main mejor los pusimos en una funcin y desde el main la llamamos. Una funcin siempre, siempre, siempre tiene que ir antes del main. Una funcin de este tipo que hemos usado muchas veces es getch();

compiladores comentarios

ciclos cadenas bsico

burbuja borland binario ascii arreglos

Comentarios
yuri lozz: necesito de su ayuda tengo que disear un progrma en el cual s[...] Gissela paez: Por Favor quien me ayuda a hacer

Reciben y No Retornan
Cmo haramos para pedir los dos nmeros en el main y que la funcin haga la suma? Para eso tenemos que hacer una funcin capaz de recibir datos, entonces la sintaxis cambia un poco:

1 de 6

10/10/2013 07:16 p.m.

Tipos de funciones en C++ | Cdigo C++

http://codigoc.org/541-tipos-de-funciones-en-c

tipo nombre(tipo_var1 nombre_var1, tipo_var2 nombre_var2){}

que se mueva un letrero con FOR![...] dorkam: Buenas!! Estoy aprendiendo C++ por mi cuenta y es dificil encontr[...] jenifer: necesito saber como utilizar el while para que me imprima Hola 10[...]

tipo y nombre se refieren a lo mismo y como no retorna el tipo siempre es void. Dentro del parntesis tenemos otros aspectos: tipo_var1 se refiere al tipo de la variable que nuestra funcin va a recibir. nombre_var1 se refiere al nombre de esa variable. Si queremos recibir una variable hasta ah es suficiente, si queremos otra variable ponemos una coma (,) y declaramos la siguiente variable. Para llamar la funcin hay que poner la variables que vamos a enviar dentro del parntesis en el mismo orden en que las declaramos en la funcin:
nombre(var1, var2);

Links tiles
C plus plus C++ Reference El rincon del C

Archivo
septiembre 2011 agosto 2011 julio 2011 mayo 2011

Nuestro programa quedara as:


#include<iostream> using namespace std; void sumar(int num1, int num2) { int r; r = num1 + num2; cout << "La suma es " << r; } int main() { int num1, num2; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; sumar(num1, num2); }

Sitios Amigos
Ejemplos de Java

abril 2011 febrero 2011 enero 2011 diciembre 2010 noviembre 2010 octubre 2010 septiembre 2010 agosto 2010 noviembre 2009 octubre 2009 septiembre 2009 agosto 2009

Pedimos los dos nmeros en el main, los enviamos a la funcin, sta los suma y los muestra. Una funcin de este tipo que hemos usado muchas veces es el odiado por muchos, amados por otros, gotoxy(x,y);

Retornan y No Reciben
Y si ahora queremos lo contrario? Pedir los nmeros en la funcin, pero mostrar el resultado en el main. Para eso necesitamos una funcin que retorne. Recibir es enviar datos del main a la funcin. Retornar es enviar datos de la funcin al main. Para retornar datos hay que hacer dos cosas: no usar void como tipo y usar return. De forma general:
tipo nombre() { return var; }

El tipo tiene que ser del tipo de variable que queremos retornar, si nuestra variable retorna una variable int, pues el tipo de la funcin es int. Para indicar qu variable estamos retornando usaremos la palabra return seguido de la variable. Usualmente esto va al final de la funcin. Para llamar a la funcin hay que preparar un colchn en donde caiga la variable que est retornando.
var = nombre();

La variable que est retornando nuestra funcin se va a almacenar en la variable var. Este es un buen momento para recordarles que las variables declaradas entre dos llaves {} nicamente existen entre esas dos llaves. O sea que la variable var de la funcin no es la misma que la variable var de la funcin; sin embargo la var del main est adquiriendo el valor de la var del main. Un poco confuso lo se, no se preocupen. Nuestro programa quedara as:
#include<iostream> using namespace std; int sumar() { int num1, num2, r; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; r = num1 + num2; return r; } int main() { int r; r = sumar(); cout << "La suma es " << r; }

2 de 6

10/10/2013 07:16 p.m.

Tipos de funciones en C++ | Cdigo C++

http://codigoc.org/541-tipos-de-funciones-en-c

A alguien se le ocurre una funcin conocida de este tipo?

Reciben y Retornan
Ahora queremos que nuestra funcin nicamente sume, el main se va a encargar de pedir los nmeros y sumar los resultados. Para eso necesitamos que nuestra funcin reciba las variables y adems retorne el resultado. Wow! Es acaso eso posible? Claro que s. Es slo cuestin de combinar las funciones que reciben y no retornan con las que retornan y no reciben. Nuestro programa quedara as:
#include<iostream> using namespace std; int sumar(int num1, int num2) { int r; r = num1 + num2; return r; } int main() { int num1, num2, r; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; r = sumar(num1, num2); cout << "La suma es " << r; }

Las funciones de la librera math.h son en su mayora de este tipo. sqrt(); pow(); sin(); En principio puede parecer que las funciones sirven nicamente para organizar el cdigo, lo cual es cierto, pero no slo eso. Se imaginan si tuviramos que escribir todo el cdigo detrs de un simple gotoxy();? Ah verdad Bueno, no me iba a quedar tranquilo si no les mostraba la versin optimizada de la ltima funcin:
#include<iostream> using namespace std; int sumar(int num1, int num2) { return num1 + num2; } int main() { int num1, num2; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; cout << "La suma es " << sumar(num1, num2); }

:D

Posts Relacionados
Funciones en C++ Funcin delay() en C++ Cmo pasar una matriz o arreglo como parmetro a una funcin Ordenar arreglo de manera ascendente o descendente (burbuja)
Zemanta
39 Comentarios Funciones en C++ Cmo pasar una matriz o arreglo como parmetro a una funcin Funcin delay() en C++ Ordenar arreglo de manera ascendente o descendente (burbuja)

Posts Relacionados:

Tienes algo que decir?... adelante, ya hay 39 comentarios en Tipos de funciones en C++
enero 27, 2011 a las 9:09 pm flony dice: me encanta tu blog lo leo cada vez que puedo y lo de las funciones me quedo clarisimo Responder

THEbatzuk dice: Muchas gracias, es un placer ayudar.

enero 29, 2011 a las 10:52 am

Responder

3 de 6

10/10/2013 07:16 p.m.

Tipos de funciones en C++ | Cdigo C++

http://codigoc.org/541-tipos-de-funciones-en-c

isaias dice: hola amigo(a) es interesante lo que haces.

julio 22, 2011 a las 11:40 pm

Responder

Jesus dice: hola amigo me super super ayudaste! gracias por esta info.

agosto 17, 2011 a las 1:30 pm

Responder

THEbatzuk dice: De nada :)

agosto 18, 2011 a las 7:18 pm

Responder

septiembre 13, 2011 a las 10:36 am Enrique dice: Pongo exactamente lo que dice ahi, en un fichero en blanco y no funciona, da muchos errores no se si es que el que hizo el post esta oviando alguna cosa, que por supuesto yo no se,,, Responder

THEbatzuk dice: Qu IDE estas utilizando?

septiembre 16, 2011 a las 12:53 pm

Responder

alexander dice: enrique en eves de cout usa printf (); has de usar devc++.

noviembre 24, 2011 a las 1:33 pm

Responder marzo 12, 2012 a las 9:03 pm miguel espinosa dice: quisiera saber porque los ficheros.exe que genera el devc++ el antivirus los reconoce como virus troyano generic24. Muchas gracias Responder abril 25, 2012 a las 8:11 am Wuinki dice: excelente hermano que mejor explicacin que esta muy bueno tu blog. felicitaciones. tengo rato buscando explicacin y esta es la mejor. Responder

michel vs dice: buenisimo muchas graciass

mayo 7, 2012 a las 7:05 pm

Responder

Bryan dice: Buenisimo, encontre todo lo que buscaba..! Muchas Gracias(:

mayo 16, 2012 a las 5:30 pm

Responder junio 25, 2012 a las 5:16 pm paul dice: me podrias ayudar si lo pasas a java en el programa eclipse?? es una tarea q me urge!! Responder

Juvenal jardim dice: increble explicacin te felicito

julio 3, 2012 a las 2:02 pm

Responder

luisana almeida dice: gracias x sta informacion!!! es Buena

julio 16, 2012 a las 1:47 pm

Responder

jhon quispe dice: lo mximo muy buenos tus ejemplos

agosto 23, 2012 a las 7:58 pm

Responder octubre 14, 2012 a las 7:35 pm Alfredo dice: Hola men me gusto mucho tu blog es muy interesante la informacion que pusiste quisiera saber donde puedo encontrar ejercicios sobre esto no podrias darme tu email para hablar mas claramente Gracias :D Responder

Daniel dice: que IDE gratis me recomiendan

octubre 15, 2012 a las 4:32 pm

Responder

michael dice: wxdev c++

noviembre 5, 2012 a las 9:04 pm

Responder

Samuel dice:

noviembre 2, 2012 a las 3:19 pm

4 de 6

10/10/2013 07:16 p.m.

Tipos de funciones en C++ | Cdigo C++

http://codigoc.org/541-tipos-de-funciones-en-c

:D CADA DIA APRENDO MAS GRACIAS A TISIGUE CON ESE ENTUSIASMO ;)


Responder

fer dice: eres chingon

noviembre 30, 2012 a las 5:39 pm

Responder diciembre 2, 2012 a las 11:39 am Fernando dice: Primera vez que veo tu pagina, y me parece genial, no pares y continua con muchas mas instrucciones, sirven de mucho. Responder

anthony dice: hola..!! buena tu explicacion

diciembre 5, 2012 a las 8:39 am

Responder

Nelly dice: :)

mayo 29, 2013 a las 5:15 pm

Responder

diciembre 6, 2012 a las 8:37 am elias dice: hola amigo una pregunta en el caso de las librerias yo estoy usando stdio y conio esto varia en la codificacion y si este fuera el caso, como tendria que ser el ejercicio te agradesco de ante mano y felicidades Responder

jessica rivadeneira dice: gracias es justo lo q yo estab buskndo gracias jjjj

enero 3, 2013 a las 7:26 am

Responder

luis dice: disculpe que signifca en c++ ||

enero 18, 2013 a las 8:25 am

Responder

angela sabogal dice: gracias, lo necesitaba y me sacaste de la duda

febrero 8, 2013 a las 6:00 am

Responder febrero 11, 2013 a las 11:26 pm fredy dice: Hoy estuve repasando unos ejercicios y me surgi una duda: Como le hago para que una funcin me retorne un arreglo y as lo pueda usar en la funcin main, al igual que una funcin reciba un arreglo de la funcin main? Ya lo intente y no me sale :( Responder

Liseth dice: Excelente tu blog!! Te felicito!

marzo 7, 2013 a las 8:32 am

Me ha ayudado bastante durante mi iniciacin en la programacin aunque si es complicado. Podras recomendarme algn manual o instructivo sobre el uso de las funciones en C++? Muchas gracias.
Responder marzo 18, 2013 a las 6:10 pm eduardo dice: Muchas gracias que manera de explicar, una forma muy didactica ya que tiene los ejemplos, no lo habia encontrado asi en ninguna parte. Responder abril 24, 2013 a las 6:33 pm Lucho! dice: hola, quera saber como hago para tomar solo una variable de las que retorna mi funcion, ejemplo:

void declarar() { int a=0; int b=232; } de esa funcion quiero igualar una variable x a la variable b que tiene adentro. Gracias.
Responder mayo 7, 2013 a las 11:06 am koompy dice: hola hola pues esta muy bien este bolg ya que puede ayudar a mucha gente sobre dudas al respecto , gracias Responder

Daniel dice: No entendi nada de esto :(

mayo 9, 2013 a las 9:07 am

Responder

5 de 6

10/10/2013 07:16 p.m.

Tipos de funciones en C++ | Cdigo C++

http://codigoc.org/541-tipos-de-funciones-en-c

Luer dice: Me ayudaste a comprender bastante, muchas gracias!!

mayo 19, 2013 a las 9:27 pm

Responder mayo 27, 2013 a las 3:48 pm manuel cardenas dice: que te puedo desir son buenos pero le hace como faltica unas videos donde se haga mas esplisito lo que tratan de dar a entender ok espero sirva de algo esta propuesta ok Responder

robi dice: muy util esta pagina, sigue asi!!

mayo 29, 2013 a las 9:18 am

Responder mayo 29, 2013 a las 5:13 pm Simon N dice: Me gustaria que pusieras mas ejemplos, es que a penas estoy aprendiendo y se me complican las funciones Responder

Nelly dice: pon mass ejempoislkjdshkbvdsjhbdvs

mayo 29, 2013 a las 5:16 pm

Responder

Hola, escribe aqu tu comentario:

Nombre

Website (no es necesario)

Mail (no se publicar)

Enviar comentario

Notificarme cuando alguien publique un comentario en este post.


Cdigo C++ 2010 | Gestionado con Wordpress | Bajo una licencia Creative Commons Poltica de privacidad

6 de 6

10/10/2013 07:16 p.m.