Funciones Chávez
Funciones Chávez
Funciones Chávez
SUBPROGRAMAS
Un ordenador digital
es como el cálculo.
Puede dividir un problema
en partes tan pequeñas
como desee.
Van Doren
6.1. FUNCIONES
y = f(x)
f(x) = 3x - 2
f(12,18) = 6
f(40,60) = 20
*Es una colección de programas y subprogramas normalizados y probados con los que se puede resolver
problemas específicos (Lopezcano, 1998: 322).
los programas. Estas atienden necesidades generales y suelen agruparse dependiendo del
dominio en que pueden ser utilizadas, por ejemplo: matemáticas, cadenas, fechas, archivos.
Funciones externas. También se conocen como funciones definidas por el usuario y son
todas aquellas escritas por el programador para atender necesidades particulares en sus
aplicaciones.
Una función tiene dos partes: la definición y la implementación, algunos autores, como
Joyanes (1996: 167) y Galve et al (1993: 30), las denominan cabecera y cuerpo
respectivamente. En un programa, por ejemplo en lenguaje C, la definición de la función le
proporciona al compilador información sobre las características que tiene la función cuya
implementación aparecerá más adelante. Esto ayuda a verificar la corrección del programa.
Definición de la función. Ésta incluye tres elementos que son explícitos en las notaciones
pseudocódigo y diagramas de Nassi-Shneiderman, más no en los diagramas de flujo, estos
son:
a. El tipo de retorno
b. El identificador o nombre de la función
c. La lista de parámetros
Hasta hace algunos años era común definir una función de la forma:
Ejemplo:
Esta instrucción define la función llamada factorial la que recibe un número entero como
parámetro y lo almacena en la variable n y devuelve como resultado un número entero.
Tipo_retorno identificador(parámetros)
*API es una sigla de las palabras en Inglés Application Programming Interface, en Español: Interfaz para
programación de aplicaciones o conjunto de herramientas para desarrollar un programa.
Ejemplos:
Entero factorial(entero n)
Real potencia(entero base, entero exponente)
Boobleano esprimo(entero n)
Parámetros. Dado que una función se especializa en desarrollar una tarea, que por lo
general es un cálculo, no se puede esperar que también se encargue de la lectura e
impresión de datos; por eso, es necesario suministrarle los datos que ésta requiere para
desarrollar el cálculo, a estos datos que se le entregan se les denomina parámetros.
En este orden de ideas, los parámetros son los datos que se le envían a la función para
que desarrolle la tarea para la que fue diseñada. Por ejemplo, si se diseña una función para
calcular el factorial, es necesario pasarle como parámetro el número para el cual se desea
encontrar el factorial; si se diseña una función para calcular una potencia, es preciso que se
le proporcione la base y el exponente.
Se está expresando que la función potencia recibirá dos datos de tipo entero y los
almacenará en las variables: base y exponente.
En diagrama de flujo, una función no tiene una definición explícita. No obstante, en este
documento, se la diferencia de un programa en cuanto incluye un símbolo de entrada/salida
para recibir los parámetros y otro para devolver el resultado, como se aprecia en la figura
106.
Figura 106. Diagrama de flujo de una función
Inicio
Cuerpo de la función
Retornar fac
Fin
Este ejemplo tiene como propósito mostrar la estructura de una función, haciendo evidente
su definición, parámetros, implementación y retorno.
La función sumar recibe dos parámetros enteros, los suma y devuelve el resultado, como
se muestra en el cuadro 83.
Las variables que se declaran en el cuerpo de una función son de ámbito local y por tanto
sólo se puede acceder a ellas dentro de la función. En cuanto la ejecución termina, las
variables dejan de existir.
Diseñar una función para calcular en factorial de un número entero positivo. Se sabe que
el factorial de 0 es 1 y el factorial de cualquier número n mayor 0 es el producto de los
números entre 1 y n.
La función factorial requiere un parámetro: el número, y devuelve otro número: el factorial,
en su implementación incluye un ciclo en el que se calcula el producto desde 1 hasta n, como
se muestra en el pseudocódigo del cuadro 84.
1 Entero factorial(entero n)
2 Entero fac = 1, con
3 Para con = 1 hasta n hacer
4 fac = fac * con
5 Fin para
6 Devolver fac
7 Fin factorial
Nombre_función(parámetros)
Ejemplo:
Sumar(123, 432)
Factorial(5)
El resultado devuelto por una función puede almacenarse en una variable, puede ser enviado
directamente a un dispositivo de salida o puede utilizarse como argumento para otra función,
como se muestra en las expresiones a, b y c, respectivamente.
a. x = factorial(8)
b. Escribir “Factorial de 8:”, factorial(8)
c. sumar(factorial(3), factorial(4))
Diseñar el algoritmo principal y las funciones necesarias para realizar las operaciones
aritméticas: suma, resta, multiplicación y división de dos números.
Para solucionar este ejercicio es necesario diseñar cuatro funciones, una para cada
operación, y un programa principal que invoque la función que corresponda según el
requerimiento del usuario. Como cada función se encarga exclusivamente de hacer el
cálculo, el programa principal debe encargarse de leer los números, la operación a realizar y
mostrar el resultado.
Las funciones y el programa para este ejercicio se presentan en los cuadros 85, 86, 87 y
88. La función sumar ya se diseñó y aparece en el cuadro 83 por ello no se incluye.
1 Inicio
2 Entero x, y, opc
3 Leer x, y
4 Escribir “1. Sumar 2. Restar 3. Multiplicar 4. Dividir”
5 Leer opc
6 Según sea opc hacer
7 1: Escribir “sumatoria = “, sumar(x,y)
8 2: Escribir “Diferencia = “, restar(x,y)
9 3: Escribir “Producto = “, multiplicar(x,y)
10 4: Si y = 0 entonces
11 Escribir “Error, divisor = 0”
12 Si no
13 Escribir “Cociente = “, dividir(x,y)
14 Fin si
15 Fin según sea
16 Fin suma