programación en C++ desde cero.
y entérate de las novedades o deja un comentario.
Ültima modificación: 13-07-2018.
Visitas este mes: 1
Visitas el mes pasado:
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:
En los distintos manuales incluimosm más webgrafía especifica de cada sección.
Si este sitio te parece interesante puedes contribuir con una pequeña aportación.
Las acciones son funciones que no tienen retorno. Es decir, las acciones son todas las funciones de tipo void.
Las llamamos acciones, y las distinguimos del resto de funciones porque este tipo de funciones no tienen retorno y se utilizan para realizar tareas que pueden ser mas o menos comunes dentro del programa, pero no necesitan retornar nada, sino que simplemente realizan su tarea y al acabar vuelven al flujo normal del programa.
Aunque las acciones son funciones que no tienen retorno, esto no es del todo cierto, ya que utilizando el paso de argumentos por referencia, se pueden crear variables que sirvan expecíficamente para "retornar" valores, tal como veremos más adelante.
Como hemos indicado, una acción es una función de tipo "void", y que no tiene retorno, simplemente ejecuta las sentencias que tiene y después vuelve al programa principal. Veamos un ejemplo:
#include<iostream> using namespace std; void operar(int x, int y); int main (){ int a, b; cout << "Escribe dos numeros : " << endl; cin >> a >> b; operar(a,b); } void operar(int x, int y){ cout << "Tus numeros son " << x << " y " << y << endl; cout << "Suma : " << x+y << endl; cout << "Resta : " << x-y << endl; cout << "Multiplicacion : " << x*y << endl; }
Es la propia función la que realiza el trabajo de devolver el resultado en la pantalla. Observa cómo al no tener retorno, la función es del tipo "void", y al hacer la llamada a la función, ésta no se le asigna a ninguna variable, y que no hay nada que retornar.
Supongamos que queremos hacer una función parecida a la anterior, pero en lugar de mostrar los resultados en pantalla, nos devuelve los resultados al flujo principal del programa, para después desde ahí mostrarlos o utilizarlos para otras cosas.
El primer problema que tenemos es el de querer retornar más de un valor. Una función sólo puede tener un valor de retorno, por lo que si queremos retornar suma, resta y multiplicación de dos números, una solución sería utilizar tres funciones, y cada una de ellas retorna un resultado.
Sin embargo la solución más común es pasar tres variables por referencia, en las cuales gurdaremos el valor de las operaciones, veamos el procedimiento:
En el flujo principal del programa, además de las dos variables en las que recoremos los números que nos da el usuario, declaramos tres variables en las que recogeremos los resultados:
int main (){ int a, b, mult, resta, suma ; ... }
A continuación después de la función main escribimos la definición de la función para operar con los números:
void operar(int x, int y, int &s, int &:r, int &m) { m = x*y; r = x-y; s = x+y; }
Los dos primeros parámetros de la función se pasan por valor, y son los números con los que operaremos. Los otros tres parámetros se pasan por referencia, y modifican las variables que les pasamos para guardar en ellas los resultados.
Observa cómo en realidad estamos utilizando una acción o función tipo void.
Lo siguiente es declarar la función en la cabecera del programa. La cabecera del programa será la siguiente:
#include<iostream> using namespace std; void operar(int x, int y, int &s, int &r, int &m);
Ahora nos queda completar la función principal o main. para ello después de la línea en la que hemos declarado las variables, escribiremos varias acciones: le pedimos al usuario que escriba dos números y los recogemos. Después llamamos a la función:
int main (){ int a, b, mult, resta, suma ; cout << "Escribe dos numeros : " << endl; cin >> a >> b; operar(a, b, suma, resta, mult); .... }
Ahora sólo nos queda mostrar los resultados en pantalla, ya que tras la llamada a la función, las variables que hemos pasado por referencia se han modificado y contienen los resultados de las operaciones. Acabamos por tanto de escribir la función main la cual quedará así:
int main (){ int a, b, mult, resta, suma ; cout << "Escribe dos numeros : " << endl; cin >> a >> b; operar(a, b, suma, resta, mult); cout << "Tus numeros son " << a << " y " << b << endl; cout << "Suma : " << suma << endl; cout << "Resta : " << resta << endl; cout << "Multiplicacion : " << mult << endl; }
Veamos ahora el programa completo, el cual será el siguiente:
#include<iostream> using namespace std; void operar(int x, int y, int& s, int& r, int& m); int main (){ int a, b, mult, resta, suma ; cout << "Escribe dos numeros : " << endl; cin >> a >> b; operar(a, b, suma, resta, mult); cout << "Tus numeros son " << a << " y " << b << endl; cout << "Suma : " << suma << endl; cout << "Resta : " << resta << endl; cout << "Multiplicacion : " << mult << endl; } void operar(int x, int y, int &s, int &r, int &m) { m = x*y; r = x-y; s = x+y; }
Observa cómo en realidad lo que hemos hecho mediante la función no es retornar valores, sino modificar las variables que ya teníamos para obtener los valores que calcula la función.
El "retorno" de valores por referencia no excluye el poder retornar valores mediante la instrucción return. Podemos usar una función normal en la que retornemos un valor mediante la instrucción return y modificar otros valores mediante el paso de valores por referencia.
En la página siguiente veremos si puede haber varias funciones con el mismo nombre, y qué pasa en este caso.
Sugerencias:
aprendeweb@aprende-web.net. Envia un
Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog
Más sobre anyelguti en http://anyelguti.16mb.com