Académique Documents
Professionnel Documents
Culture Documents
Integrantes:
Grupo.A-17
Tema. Funciones
2018
FUNCIONES
Una función es una fórmula predefinida que realiza los cálculos utilizando valores
específicos en un orden particular. Una de las principales ventajas es que ahorran
tiempo porque ya no es necesario que la escribas tú mismo.
Cada función tiene una sintaxis, un orden específico que debe seguirse para obtener
el resultado correcto. La sintaxis básica para crear una fórmula con una función es:
Introducir los argumentos de la fórmula, es decir, los datos que se usarán para hacer
el cálculo.
Por valor significa que la función o subrutina recibe sólo una copia del valor que
tiene la variable, o sea que no la puede modificar. Paso de parámetros por valor.
¿Qué sucede internamente cuando se produce una llamada a una función? El
proceso consta de varias fases sucesivas:
En la mayoría de los lenguajes hay dos formas de pasar las variables a una función,
por valor o por referencia.
Por valor significa que la función (o subrutina) recibe sólo una copia del valor que
tiene la variable, o sea que no la puede modificar.
Por referencia significa que se pasa la posición de memoria donde esta guardada
la variable, por lo que la función puede saber cuánto vale, pero además puede
modificarla de cualquier manera.
Sin embargo, toda esta diferencia queda escondida casi totalmente por el
compilador, por lo que uno puede pasarse media vida programando sin darse
cuenta de esto.
En Quick Basic (QB/QBasic/...) sólo se puede pasar las variables por referencia. En
muchos otros lenguajes (C++/Pascal/Delphi/VB/ ...) se puede elegir, según se
necesite. Como todo esto está escondido por los compiladores entonces en general
uno no se preocupa demasiado (a menos que se estén llamando a rutinas externas,
por ejemplo, de Windows). Lo grave es que en algunos casos produce errores muy
difíciles de detectar.
QB:
Recién en VB5 y VB6 se puede usar la palabra ByVal para pedir que los parámetros
se pasen por valor, y también se puede usar ByRef para indicar explícitamente que
se los quiere pasar por referencia. En este caso se pueden escribir:
Function FijateSiEsCincoVal(ByVal x)
Por referencia (explícitamente, tampoco anda en QB)
Function FijateSiEsCincoRef(ByRef x)
Function FijateSiEsCincoVal( x)
Pascal:
Por valor:
Function FijateSiEsCincoVal(x:Integer):Integer;
Por referencia:
C/C++:
Por valor:
Por referencia:
Ejemplos:
Para ver el tipo de cosas que se pueden hacer y el tipo de cosas raras que pueden
aparecer les ponemos dos ejemplos.
Fijate Si es Cinco
Hay una función que se fija si el número es igual a cinco. Pero después de fijarse lo
cambia por un numero al azar destruyendo completamente el valor de la variable.
Esto es parecido a lo que pasa al calcular el DCM en algunas de las funciones que
vimos. La diferencia es que acá alteramos a propósito el valor de los parámetros,
en cambio en el otro caso las cuentas auxiliares eran las que sin querer afectaban
los números.
Incrementar Variable
Este ejemplo es un poco más útil y sirve para incrementar en uno el valor de una
variable (de la misma manera que el inc de Pascal o el ++ de C). En este caso se
modifican a propósito los valores para obtener el efecto buscado.
Intercambiar Variables ( )
Funciones recursiva
. Principalmente una función recursiva debe saber resolver el caso más simple,
llamado caso base. Si la función es llamada con el caso base, inmediatamente
retorna el resultado quiere decir que no necesita volver a llamarse a sí misma para
poder resolverlo.
Un bloque de sentencias se ejecuta una vez para cada uno de los valores que
va tomando un contador. Se ejecuta un número específico de veces, siendo el
número de repeticiones conocido antes de que empiece la ejecución de tal
bucle.
En Excel queremos hacer una macro que escriba la función CONTAR en una celda,
tomando los datos de otras celdas y rangos. El problema es que cuando la
ejecutamos, en la celda, aparece el error #¿NOMBRE? Aquí veremos cómo
podemos resolver este problema.
Este botón inicia el grabador de macros en Excel 2007. Está dentro de la ficha
[Programador].
Las dos instrucciones de esta macro son equivalentes. El uso de la propiedad
FormulaLocal permite escribir el nombre de la función en nuestro idioma.