Título: Retorno Publicado por: FKT en 2 Septiembre 2015, 19:55 pm Nunca he sabido como funciona exactamente lo de que la función retorne un valor, sé que cuando el programa le dice que cuando la función termine envié un 0 para que sepa si el programa se ha ejecutado sin errores pero como funciona ? Igual parece una pregunta exageradamente absurda.
El 0 que retorna la función main() se retorna hacia main() o ese 0 que hace? esque me gusta aprender las cosas desde la raíz. ;D Título: Re: Retorno Publicado por: ivancea96 en 2 Septiembre 2015, 21:09 pm Si bien main es un retorno, es el último retorno en el que debas pensar. No funciona igual que una función normal.
Practica con funciones normales primero. Si sigues queriendo ver lo del main, imagínate al sistema operativo llamando a la función main() de tu programa. Como si fuera una función normal. Título: Re: Retorno Publicado por: FKT en 2 Septiembre 2015, 21:19 pm Si bien main es un retorno, es el último retorno en el que debas pensar. No funciona igual que una función normal. Practica con funciones normales primero. Si sigues queriendo ver lo del main, imagínate al sistema operativo llamando a la función main() de tu programa. Como si fuera una función normal. Entiendo... entonces si hablamos de funciones normales? Título: Re: Retorno Publicado por: ivancea96 en 3 Septiembre 2015, 00:24 am Las funciones cogen unos parámetros (si hay), los procesan, y retornan un resultado (salvo que sea void).
Código Ahora "n" es igual a lo que retornó esa función, es decir, la raiz cuadrada de 2. Título: Re: Retorno Publicado por: FKT en 3 Septiembre 2015, 12:55 pm Las funciones cogen unos parámetros (si hay), los procesan, y retornan un resultado (salvo que sea void). Código Ahora "n" es igual a lo que retornó esa función, es decir, la raiz cuadrada de 2. Asi? Primero aclaro que nunca he usado funciones ( aparte de main() ), solo he leido y como se usan, así que sera la primera subfunción que hago. Código
Bueno espero que el número de errores sea mínimo ;D Creo que lo he echo bien pero una cosa que he echo porque he visto que todos lo hacen así es que en la subfunción ponen parametros como por ejemplo en mi caso los enteros: Código Porque no se ponen dentro de la función poniendo: Código
O si así no es posible porque en parámetros no se pone la variable que se va ha usar como resultado también? (espero haberme explicado bien). Título: Re: Retorno Publicado por: ivancea96 en 3 Septiembre 2015, 13:46 pm Los parámetros, se le pasan a la función, y son esos entre los paréntesis. Tu código sería así:
Código
Ahí lo que ocurre es que esos dos valores se les pasa a la función. Así que en tu función, y rtepito, SOLO DENTRO de tu función, las variables numero1 y numero2 seran iguales a primerNumero y a segundoNumero, respectivamente. Una vez ahí, tras toda la lógica que quieras, se retorna un valor. Un valor, no una variable. Si pones "return retornoDeSuma;", se retornará el valor de la variable retornoDeSuma. Una vez la función ha retornado, donde antes tenias "funcion(...)", ahora "tienes" el valor de retorno. Incluso puedes poner: Código Título: Re: Retorno Publicado por: FKT en 3 Septiembre 2015, 17:36 pm Es verdad... me he dejado los parametros cuando asigno el retorno de la funcón a "resultadoSuma".
Una vez ahí, tras toda la lógica que quieras, se retorna un valor. Un valor, no una variable. Si pones "return retornoDeSuma;", se retornará el valor de la variable retornoDeSuma. Entiendo que devuelve un valor pero el valor no se tiene que guardar en una variable para usarla en la función principal? y si no es así como en el return de una funcion como la del ejemplo que se pone? Título: Re: Retorno Publicado por: ivancea96 en 3 Septiembre 2015, 20:29 pm Puedes poner:
Código
Título: Re: Retorno Publicado por: FKT en 4 Septiembre 2015, 10:30 am Puedes poner: Código
Vale, pero he leído que en programas largos es mejor meter el valor que va ha retornar en una variable, es así? Título: Re: Retorno Publicado por: ivancea96 en 4 Septiembre 2015, 11:10 am Depende. En un programa largo, el retorno puede acabar como el resultado de una multiplicacion, de una suma, o del retorno de otra función. Guardar porque sí, al final es una asignación extra.
Título: Re: Retorno Publicado por: FKT en 5 Septiembre 2015, 09:29 am Depende. En un programa largo, el retorno puede acabar como el resultado de una multiplicacion, de una suma, o del retorno de otra función. Guardar porque sí, al final es una asignación extra. Perdona, he planteado mi pregunta más o menos mal. La repito He leído que es mejor gurdar el valor en una variable y retornar su valor en funciones complejas y largas es así ?* Título: Re: Retorno Publicado por: ivancea96 en 5 Septiembre 2015, 13:55 pm Depende. Depende de lo que haga la función, depende del algoritmo, depende del significado del retorno...
Título: Re: Retorno Publicado por: Eleкtro en 6 Septiembre 2015, 16:37 pm La próxima vez, cuando formules una pregunta de programación, y más si lo haces en una sección de programación GENERAL, cómo mínimo ten la consideración de especificar a que lenguaje te refieres en tu comentario.
Saludos! |