Sie sind auf Seite 1von 12

Instituto superior nueva visión

Técnico superior en enfermería

Integrantes:

Mercedes Cedeño. 4 753 577

Celideth Rodriguez. 4 788 1143

Agripina Santos. 4-802-698

Gabriela Montezuma. 12-703-119

Eliana Guzmán. 1-731-1070

Arelis Aguirre. 4 760 1356

Grupo.A-17

Tema. Funciones

Profe. Agustin Vega Mayorga

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.

Las partes de una función

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:

Insertar un signo igual (=).

Seleccionar una función (SUM, por ejemplo, es el nombre de la función para la


adición).

Introducir los argumentos de la fórmula, es decir, los datos que se usarán para hacer
el cálculo.

Las funciones de hojas de cálculo se categorizan según su función. Haga clic en


una categoría para explorar sus funciones. O pulse Ctrl+F para buscar una función
escribiendo las primeras letras o una palabra descriptiva. Para obtener información
detallada sobre una función, haga clic en su nombre en la primera columna.

 Nuestras 10 funciones más populares


 Funciones de compatibilidad
 Funciones de cubo
 Funciones de base de datos
 Funciones de fecha y hora
 Funciones de ingeniería
 Funciones financieras
 Funciones de información
 Funciones lógicas
 Funciones de búsqueda y referencia
 Funciones matemáticas y trigonométricas
 Funciones estadísticas
 Funciones de texto
 Funciones definidas por el usuario instaladas con complementos
 Funciones web

Funciones con paso de parámetros por valor

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:

1. Evaluación de las expresiones utilizadas como parámetros reales.


2. Activación de la función. A su vez, esta fase posee otras:
a. Reserva de espacio para los valores proporcionados por la función, si
los hay.
b. Almacenamiento de la dirección de retorno.
c. Reserva de espacio para parámetros formales.
d. Reserva de espacio para las demás variables locales, si las hubiere.
e. Copia de los valores de los parámetros reales ya evaluados al principio
en el espacio reservado para parámetros formales.
3. Ejecución. Se ejecutan las distintas sentencias de que consta el cuerpo de la
función, haciendo uso de la información aportada por los parámetros reales
y almacenados previamente en los parámetros formales.
4. Retorno. También esta fase posee otras:
a. Almacenamiento del resultado de evaluar la expresión que acompaña
a return en el espacio reservado en 2(a).
b. Liberación del espacio reservado para los parámetros formales y otras
variables locales, si las hay
c. Salto a la dirección de retorno, almacenada en 2(b). Esta activación
de la función ha concluido. Obsérvese que posiblemente hayan
quedado en la pila los valores para los cuales se reservó espacio en
2(a).
Este proceso, relativamente complejo, se realiza con notable velocidad en el
procesador, que cuenta con instrucciones especializadas para muchas de las fases
que se han mencionado. Pero ciertamente la fase de activación y retorno supone
un tiempo muerto, en el sentido de que sólo se efectúan cálculos en la fase de
ejecución propiamente dicha. Es bueno, entonces reducir el número de llamadas a
función cuando el tiempo necesario para las fases 1, 2 y 4 es comparable con el
tiempo dedicado a la fase 3.

Los compiladores, consciente de esto, admiten como opción la creación de


funciones online.
Veamos un ejemplo de llamada a una función en el cual se pueden ver todas las
fases, aunque solo sea a través de sus efectos. Evidentemente, la activación real
de una función sólo puede seguirse en directo mediante un depurador que nos
permita seguir la ejecución desde el nivel del lenguaje ensamblador, ejecutando una
tras otra las instrucciones del lenguaje máquina. Esta tarea sobrepasa los límites de
este curso, pero puede realizarse con relativa facilidad desde un IDE.
FUNCIONES CON PASO DE PARÁMETROS POR REFERENCIA

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:

En QB siempre se pasan los parámetros a funciones y subrutinas internas por


referencia. Por eso en los casos problemáticos es necesario hacer una copia del
valor de la variable recibida.

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:

Por valor (no anda en QB):

Function FijateSiEsCincoVal(ByVal x)
Por referencia (explícitamente, tampoco anda en QB)

Function FijateSiEsCincoRef(ByRef x)

Por referencia (automáticamente, única opción en QB):

Function FijateSiEsCincoVal( x)

Pascal:

El Pascal pasa normalmente los parámetros a funciones y subrutinas internas por


valor. Se puede pedir que los pase por referencia agregando var antes de los
nombres de los parámetros.

Por valor:

Function FijateSiEsCincoVal(x:Integer):Integer;

Por referencia:

Function FijateSiEsCincoRef(var x:Integer):Integer;

C/C++:

Las distintas versiones de C pasan normalmente los parámetros a funciones y


subrutinas internas por valor. Se puede pedir que los pase por referencia
utilizando &. Otra forma de lograr lo mismo es usando punteros, para manejar la
dirección de memoria de las variables directamente.

Por valor:

int FijateSiEsCincoVal(int x);

Por referencia:

int FijateSiEsCincoRef(int &x);

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 ( )

Otro ejemplo clásico es el de intercambiar el valor de dos variables (como


el Swap de QB). Por ahora éste queda de ejercicio.

Funciones recursiva

La recursividad es una técnica muy empleada en la programación informática y


consiste en que una función se llame a sí misma. El ejemplo es la función que
calcula la factorial de un número. Es la llamada condición de salida, y es esencial
para impedir que la función se esté llamando a sí misma eternamente
Es el tipo de función de programación más compleja. Una función común es llamada
desde otra función; pero es posible crear funciones que puedan llamarse a sí
mismas, las funciones recursivas. Una función puede ser recursiva tanto de forma
directa es decir si es llamada a sí misma o de forma indirecta si llama a una función
que luego la llama. Existen algunos problemas que pueden ser resueltos de forma
más eficiente utilizando funciones recursivas.
Una función recursiva puede dar origen a un problema en programación, la
recursión infinita, que es cuando una función se llama a sí misma infinitas veces.
Esto detiene el normal funcionamiento de un programa. Para que esto no suceda
una función recursiva debe ser muy bien pensada

. 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.

Si la función es llamada con un caso más complejo, las sucesivas llamadas a sí


mismas irán virtualmente descomponiendo ese caso hasta llegar a un caso base,
para luego determinar el resultado final de la función.

En lógica matemática y computación, las funciones recursivas o también conocidas


como funciones recursivas-μ son una clase de funciones de los números
naturales en los números naturales que son computables en un sentido intuitivo.
De hecho, en teoría de la computabilidad se demuestra que las funciones recursivas
son precisamente las funciones que pueden ser calculadas con el formalismo de
cómputo más general conocido como lo son las máquinas de Turing.

Las funciones recursivas están relacionadas con las funciones primitivas


recursivas y su definición inductiva se construye basándose en la de las funciones
primitivas recursivas (estas se obtienen por medio de recursión primitiva y
composición de funciones iniciales). No toda función recursiva es primitiva recursiva
ESTRUCTURA DE REPETICION

Una estructura de repetición, también llamada lazo o bucle, hace Posible la


ejecución repetida de secciones específicas de código.

Hay dos tipos básicos de estructuras de repetición, cuya diferencia

Principal radica en cómo se controlan las mismas:

• Repetición controlada por contador o bucle DO iterativo:

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.

• Repetición controlada por expresión lógica o bucle WHILE:

Un bloque de sentencias se ejecuta un número indefinido de veces, hasta que


se satisface alguna condición establecida por el usuario, lo cual desde el punto
de vista de la programación, equivale a que una cierta expresión lógica tome
el valor .TRUE
Esta estructura ejecuta las acciones del cuerpo del bucle un numero especifico
de veces, y de modo automático controla el numero de iteraciones o pasos.

for( <expr1> ; <expr2> ; <expr3> ) <bloque de instrucciones>

<expr1> es evaluada una vez antes de entrar al ciclo. Es utilizada para


inicializar los datos del ciclo.

<expr2> es evaluada antes de cada ciclo. Es utilizada para decidir si el ciclo


continúa o termina.

<expr3> es evaluada al final de cada ciclo. Es utilizada para asignar el nuevo


valor a los datos del ciclo.
Excel: funciones en macros

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.

En general, los nombres de las funciones en el código de una macro deben


escribirse en inglés. Por ejemplo, en el caso de esta consulta
sería: Range(“C4”).Formula = “=COUNTIF(A2:A13,C1)”.
COUNTIF es el nombre que recibe en inglés la función CONTAR.SI. Para conocer
estos nombres, lo más simple es escribir la función en una hoja luego de activar el
grabador de macros con las opciones [Herramientas/Macro/Grabar nueva
macro] o, si trabajamos en Excel 2007/2010, con el botón [Grabar macro] dentro
de la ficha [Programador].
Pero si, por alguna razón, preferimos el código en nuestro idioma, tenemos otra
posibilidad: usar la propiedad FormulaLocal, en vez de Formula. En el caso del
ejemplo anterior sería Range(“C4”).FormulaLocal = “=CONTAR.SI(A2:A13;C1)”.
Nótese que no solo el nombre de la función está en castellano, sino que además los
argumentos se separan con punto y coma, tal como indica la sintaxis en ese idioma.

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.

La fórmula de la celda [C4] cuenta cuántas veces aparece Juan en la lista de


la izquierda.