U5 Funciones
U5 Funciones
U5 Funciones
López Macip
U 5 Funciones
CONCEPTO DE FUNCIÓN
Así pues, un programa C se compone de varias funciones, cada una de las cuales
realiza una tarea principal. Por ejemplo, si está escribiendo un programa que
obtenga una lista de caracteres del teclado, los ordene alfabéticamente y los
visualice a continuación en la pantalla, se pueden escribir todas estas tareas en un
único gran programa (función main ( ) ).
Sin embargo, este método no es correcto. El mejor medio para escribir un programa
es escribir funciones independientes para cada tarea que haga el programa. El
mejor medio para escribir el citado programa sería el siguiente:
TecNM Instituto Tecnológico de Orizaba
Cada función realiza una determinada tarea y cuando se ejecuta return se retorna
al punto en que fue llamada por el programa o función principal.
Las funciones en C no se pueden anidar. Esto significa que una función no se puede
declarar dentro de otra función. La razón para esto es permitir un acceso muy
eficiente a los datos. En C todas las funciones son externas o globales, es decir,
pueden ser llamadas desde cualquier punto del programa.
2
Antología de Programación Dr. Armando S. López Macip
Lista de parámetros. Es una lista de parámetros tipificados (con tipos) que utilizan
el formato función. siguiente:
tipo1 parámetrol, tipo2 parámetro2, . . .
}
Cuerpo de la función. Se encierra entre llaves de apertura ({) y cierre ( )). No hay
punto y coma después de la llave de cierre
4
Antología de Programación Dr. Armando S. López Macip
TecNM Instituto Tecnológico de Orizaba
Funciones (I)
Lo vemos con un ejemplo muy simple, una función que denominamos «saludo( )»,
que nos da una idea del funcionamiento general:
1 <script>
2
3 //definimos la función, que en este caso la llamamos saludo()
4
5 function saludo() {
6 document.write("Hola, este es el resultado de la función saludo");
7 }
8
9 //llamamos a la función saludo() para que ejecute sus instrucciones
10
11 saludo();
12
13 </script>
Copia el código en el editor y ejecútalo.
Como puedes ver en ese código de ejemplo, para utilizar una función debemos de
hacer dos cosas:
Declarar la función
Corresponde al bloque: function saludo() {............}
Podemos distinguir los siguientes elementos en este bloque de código que define la
función:
Llamar la función
Vamos a crear una función muy simple que nos dará un resultado dependiendo del
valor que le pasemos. En este caso calculará el volumen de una esfera según el
valor del radio (R). La fórmula de dicho volumen es: 4/3 * π * R3
Nota: el objeto Math de JavaScript nos puede dar el valor del número pi (π) y
también tiene una función para calcular potencias, pero no lo utilizaremos porque
aún no lo hemos visto. Para el nº pi, utilizaremos un valor aproximado de 3,14.
Primero veamos el código de este sencillo script sin emplear ninguna función. En él
solicitamos al usuario que introduzca el valor del radio de la esfera cuyo volumen
desea calcular, hacemos el cálculo y lo mostramos en pantalla:
1 function volEsfera(x) {
2 var volumen = 4/3 * 3.14 * x*x*x; //cálculo del volumen
3 return volumen; //valor que devuelve la función
4}
Para utilizar la función en nuestro código, debemos definirla y luego llamarla de la
siguiente forma:
<script>
function volEsfera(x) {
var volumen = 4/3 * 3.14 * x*x*x;
return volumen;
}
/* Aquí y/o antes de la función, podría ir más código, si el script realiza más cosas.
En el momento en que quisiéramos utilizar la función, la llamaríamos con: volEsfera(argumento) */
8
Antología de Programación Dr. Armando S. López Macip
</script>
Como ves, en este caso hemos declarado la función, no como volEsfera(), sino
como volEsfera(x). Al ‘x’ dentro del paréntesis le llamamos parámetro de la
función (no es necesario que se llame ‘x’, podríamos haberle puesto cualquier otro
nombre) y al valor que le pasamos, en este caso el de la variable ‘radio’, le
llamamos argumento.
1 <script>
2 //introducimos un precio y descuento a un producto
3 var precio = prompt("Introduzca Precio producto (en euros): ");
4 var descuento = prompt("Introduzca descuento (en euros): ");
5
6 //definimos la función calculoPVP, que tiene como parámetros los valores de precio y descuento
7 function calculoPVP(precio, descuento) {
8 var IVA = 1.21;
9 var PVP = (precio - descuento) * IVA; //en la variable PVP hemos almacenado el PVP calculado
10 return PVP; //la función devuelve el valor asignado a la variable PVP
11 }
12
13 document.write("Precio= " + calculoPVP(precio,descuento) + " €");
14 </script>
En estos casos, para devolver el valor calculado por la función se utiliza la palabra
clave ‘return‘. En los dos ejemplos anteriores, nos ha devuelto el valor de la variable
‘volumen’ y el valor de la variable ‘PVP’, respectivamente. En ambos casos los
hemos mostrado por pantalla, pero también podíamos haberlos utilizado para otras
tareas, como por ejemplo realizar otros cálculos a partir de ellos, guardarlos en un
fichero, etc….
Con esta norma, podrían contener valores distintos a pesar de tener el mismo
nombre (aunque esto último deberíamos evitarlo para no crear confusiones
innecesarias en nuestros scripts) y un cambio en una, no nos afectará a la otra,
evitando modificaciones sin darnos cuenta. Por ejemplo, podríamos haber definido
la variable ‘volumen’ en el script del cálculo de la esfera fuera de la función, y a
pesar de tener el mismo nombre, no haber afectado a la variable esfera de dentro
de esa función.
La contraposición a ésto son las variables globales, aquellas que definimos fuera
de las funciones (o dentro de ellas sin la palabra clave ‘var’), que tienen efecto
en todo el script. Se dice por tanto que una variable puede tener ámbito (scope)
local o global.
10
Antología de Programación Dr. Armando S. López Macip
Las funciones ‘empaquetan’ y aislan del resto del programa una serie de
variables e instrucciones de código que realizan alguna tarea específica. Solo se
ejecutan si son llamadas desde el código principal y tras procesar sus
instrucciones, devuelven un resultado a esa parte del código principal que la invocó.
Los valores de esas variables internas (locales) no entran en conflicto con el resto
del programa.
Como curiosidad, según el lenguaje de programación, a las funciones (o a las
estructuras que juegan ese mismo papel) se les puede conocer por otros nombres
como (sub)rutinas, procedimientos o subprogramas.
1
https://www.digitallearning.es/intro-programacion-js/funciones.html