Curso programación desde 0 – Tema 7 – Funciones

En este tema vamos a
introducirnos en el concepto de las funciones, algo elemental para cualquier
lenguaje de programación; una función no es más que un conjunto de órdenes, las
cuales se suelen usar en distintos puntos de un programa, así que al agruparlas
en una función evitamos repetir el código.
Una función puede devolver un
resultado
, o solo realizar una serie de operaciones, también admite que se le
pasen una serie de parámetros (variables) o ejecutarla sin ellas, todo esto
depende del caso, vamos a ver algunos ejemplos.
La estructura de una función sería
algo de este estilo:
Función NombreDeLaFuncion (parametro1, parámetro2,….) {
                Operaciones;
                Operaciones;
                …..
}
                 Y ya esta así de sencillo, eso sería una
función; una función sencilla sería algo así:
Función EscribeMensaje () {
Muestra “Hola esta es mi primera Función”;
}
                En esta
función escribiremos cada vez que la llamemos; lo cual se haría simplemente tecleando EscribeMensaje (); dentro de nuestro código, y lo que nos
hará esta función es que cada vez que la llamemos, nos escriba en pantalla Hola
esta es mi primera Función.
Esta función no recibe ningún
parámetro, ni tampoco devuelve ningún resultado, solo ejecuta una operación
, la
cual consiste en escribir un mensaje.
Otro ejemplo un poco más complejo seria este:
Función EscribeMensaje (mensaje) {
Muestra mensaje;
}
Esta funcion está esperando un parámetro, el cual se llama
mensaje, y lo que hará será escribir en pantalla ese mensaje, si la llamamos
del siguiente modo:
MuestraMensaje (“Hola esta es mi primera Función”);
Nos dará el mismo resultado que antes, con la salvedad de
que cada vez que la llamemos podremos mandarle un mensaje distinto, el cual sera mostrado.
                Este
ejemplo es muy sencillo, y poco práctico, aunque por su simplicidad es el mejor
modo de entender que es una función.
                Ahora
vamos a ver otra función prácticamente igual de sencilla, pero que nos devuelva
un resultado.
Función JuntandoTextos (Mensaje) {
Mensaje = Mensaje + “ Nuevo
Texto”;
return Mensaje;
}
Bien vamos a ver unas cuantas
cosas un poco complejas, que están escritas en el ejemplo anterior; podemos ver
como a la variable Mensaje, la sumamos una cadena de texto, y lo volvemos a
guardar en la variable Mensaje; esto es totalmente valido
, y si tenemos una variable
Mensaje, fuera de la función, esa variable es distinta a la que está dentro; es
decir podemos tener 2 variables con el mismo nombre, una dentro y otra fuera de
la función, las 2 son distintas, y totalmente ajenas, la una a la otra
, podemos
cambiar el valor de una que no afectara a la otra.

                Otro
detalle importante de la función anterior es que en la última línea tenemos el
texto return Mensaje, la palabra return es común para casi todos los lenguajes, he decidido usarla así,
por su semejanza al castellano, y por que al ser algo “estándar”, es bueno que
lo veáis ya, después de esta introducción sigo con lo que estamos haciendo, en
esa línea, retornamos (devolvemos) el valor de Mensaje, si nuestro programa
fuera algo así:
Var Mensaje texto;
Mensaje = “Hola estoy mandando un texto”;
Var MensajeAMostrar = JuntandoTextos(Mensaje);
Muestra Mensaje;
Muestra MensajeAMostrar;
Mensaje = mensaje + “ Otro Texto”;
Muestra Mensaje;
Función JuntandoTextos(Mensaje){
Mensaje = Mensaje + “ Nuevo
Texto”;
return Mensaje;
}
Podemos ver que tenemos la función declarada al final del
código, en la mayoría de lenguajes se puede hacer así, en otros hay que hacer
las declaraciones antes de llamar a la función
, pero bueno eso ya son características
de cada lenguaje, lo importante aquí es ver que tenemos en el mismo código, por
un lado el programa, y por otro lado la declaración de la función, por lo que
queda más separado, claro, y fácil de mantener, las funciones pueden
declararse, al final, principio o entre medias del código, eso depende de las
características del lenguaje, y de la necesidad de cada programa; tambien utilizaremos muy a menudo funciones que esten almacenadas en otros archivos distintos al que contiene el programa.

En este programa comenzamos declarando una variable, a la
que en la siguiente línea le asignamos un valor, en la tercera línea,
declaramos otra variable y en la misma línea le asignamos el valor de la
función, pasándole como parámetro la variable Mensaje, el valor que almacenara
la variable MensajeAMostrar será: Hola estoy mandando un texto Nuevotexto
En la 4 línea mostramos el valor de la variable Mensaje, lo
cual nos dará como resultado: Hola estoy mandando un texto.
En la 5 línea mostramos el valor de la variable
MensajeAMostrar, lo cual nos mostrara: Hola estoy mandando un texto Nuevo texto
En la sexta línea cambiamos el valor de la variable Mensaje,
y en la séptima lo mostramos, lo cual nos mostrara Hola estoy mandando un texto
Otro texto ; ya que como hemos explicado anteriormente la variable Mensaje de
fuera de la función es independiente a la variable Mensaje de dentro


Ahora vamos a ver otro ejemplo de funciones, quizás un poco más
útil, ya que lo que hemos hecho hasta ahora no nos ha servido para demasiado.
Función Operaciones(Numero1, Numero2){
Var Resultado;
Resultado = Numero1 + Numero2;
Muestra Resultado;
Resultado = Numero1 – Numero2
Muestra Resultado;
Resultado  = Numero1 * Numero2
Muestra Resultado;
Resultado  = Numero1 / Numero2
Muestra Resultado;
}
                Cada
vez que llamemos a esta función con 2 variables, nos mostrara en pantalla los 4
resultados posibles, uno tras otro, nos dará la suma, la resta, la división y
la multiplicación de ambos números, tan solo escribiendo una llamada a la
función como podría ser Operaciones(8, 26);
Un Ejercicio interesante seria hacer un programa que recorra
todos los números del 1 al 10 y que por cada número nos diga si es par o es
impar.
Recuerda que el mejor modo para la corrección es publicarlo
como comentario debajo del ejercicio, así tú y todos tus compañeros podréis
aprender y ayudaros los unos a los otros, pero estoy disponible en el email: [email protected]


Resto de temas:
Tema 8 – Programación Orientada a Objetos POO
Tema 7 – Funciones (Tema actual)
Tema 6 – Bucles Repetitivos
Tema 5 – Usando condicionales
Tema 4 – Arrays
Tema 3 – Pensando con variables
Tema 2 – Pensando como Programadores
Tema 1 – ¿Que es la programacion?