Вы находитесь на странице: 1из 5

La Programacin: Iniciate en un mundo apasionante

4. Funciones y programas

Mdulo 4. Funciones y programas

Hasta ahora los bloques de cdigo que hemos escrito los ejecutamos slo una vez, o varias veces seguidas si
estamos en un bucle. En este mdulo vamos a ver cmo podemos llamar al cdigo de un bloque en distintos
puntos de nuestro programa, sin que ello suponga tener que volver a escribir todas esas lneas. Para conseguir
este objetivo tenemos las funciones.

Funciones
Una funcin recibe unos parmetros de entrada, ejecuta una serie de

Ejemplo 1: declaracin de una funcin

instrucciones con esos parmetros y nos da un resultado.

function puntua (mano){

Por ejemplo, dada una mano de cartas podemos construir una funcin

var total = 0;

puntua que calcule la puntuacin obtenida en la mano de cartas. En este

for(var i=0; i<mano.length; i=i+1){


total = total + mano[i]

caso, recibimos las cartas como parmetro de la funcin. La lgica de


la funcin itera (recorre) las cartas para calcular la puntuacin, que es

el resultado que devuelve nuestra funcin. Encapsulando este cdigo

return total;

en una funcin, cada vez que queramos calcular el valor de una mano

de cartas, en vez de tener que volver a escribir todo el cdigo anterior,


hacemos una llamada a nuestra funcin puntua pasndole la mano a

Hemos declarado la funcin de nombre puntua, usando

puntuar.

la palabra clave function para indicar que


estamos declarando una funcin.

Mdulo 4. Funciones y programas

A continuacin del nombre van entre parntesis los parmetros, que

Para ejercitar la funcin tendremos que invocarla. Esto se hace

pueden ser desde ninguno hasta cuantos queramos. En este caso

mediante el nombre de la funcin puntua seguido de los parmetros

es slo uno: lo llamamos mano y corresponde a una coleccin de

que le pasamos entre parntesis. En este caso, le pasamos una

nmeros con las puntuaciones de una mano de cartas. En el cuerpo de

coleccin de nmeros que corresponde a la mano de cartas, y la

la funcin, que va entre llaves { }, calculamos el valor total de la mano

funcin calcula el resultado que almacenamos luego en una variable

acumulando el valor de cada nmero de la coleccin en una variable

resultado. Podemos invocarla de nuevo con otros parmetros, en

total. Como puedes ver, dentro del cuerpo de la funcin accedemos

este caso con otra mano de cartas, y sigue calculando el resultado de

a los parmetros mediante el nombre que le pusimos al comienzo.

forma adecuada.

Para terminar la funcin devuelve usando la palabra return el valor


acumulado en total. Esto es slo la declaracin de la funcin, y si
lo ejecutamos en la consola no har nada. Slo hemos declarado la
existencia de esta nueva funcin, pero para poner a funcionar el cdigo
que hemos creado, tendremos que invocar la funcin.

Ejemplo 2: llamada a una funcin


var mano = [10, 9, 8, 7, 8]
var resultado = puntua(mano);
var otra_mano = [1, 3, 5, 7, 8]
var otro_resultado = puntua(otra_mano);

Mdulo 4. Funciones y programas

Las funciones nos sirven adems para definir el mbito (en ingls
scope) de las variables. Si declaramos una variable dentro de una
funcin, no ser accesible desde fuera del cuerpo de esa funcin. Lo
mismo sucede con los parmetros.

Ejemplo 3: mbito de las variables


var carta = "1c";
function imprimeCarta(miCarta){
var texto = "Mi carta es " + miCarta;
console.log(texto);
}
imprimeCarta(carta);

En este caso, la variable texto y el parmetro miCarta slo sern


accesibles desde dentro del cuerpo de la funcin. Si intentamos
acceder a ellas desde fuera, obtendremos un error.

Mdulo 4. Funciones y programas

Programas
Un programa se compone de la ejecucin de un conjunto de

En este programa, reutilizamos la funcin puntua del ejercicio anterior

instrucciones de cdigo para desarrollar un trabajo concreto. Para

y declaramos una nueva imprimePuntuacion que imprime por pantalla

estructurar el cdigo de nuestro programa podemos utilizar funciones,

la puntuacin total. Adems, hemos creado una funcin principal

siendo una de ellas la principal que orquesta la utilizacin de las dems.

programa que utiliza al resto de funciones para completar el trabajo


de puntuar una mano de cartas e imprimir su resultado.

Ejemplo 4: un programa
function imprimePuntuacion(puntuacion){
console.log("La puntuacin es " + puntuacion);
}

function programa(){
var mano = [10, 9, 8, 7, 8]
var resultado = puntua(mano);
imprimePuntuacion(resultado);
}

programa();

Вам также может понравиться