You are on page 1of 13

Universidad Nacional Mayor de San Marcos

Universidad del Per, Decana de Amrica

Facultad de Ciencias Matemticas

E.A.P. Matemtica

CURSO: PROGRAMACION DE
COMPUTADORAS I

Prof. Luis Vicente Bazalar Guerrero

Funciones
Matemticamente una funcin es una operacin que toma uno o ms valores
llamados argumentos y produce un valor denominado resultado (valor de la
funcin para los argumentos dados). Todos los lenguajes de programacin
tienen funciones incorporadas o intrnsecas y funciones definidas por el
usuario.

Por ejemplo:

x
f x
2
1 x

Donde f es el nombre de la funcin y x es el argumento. Para evaluar f


debemos darle un valor real o actual a x.

Funciones
Una funcin puede tener varios argumentos, por ejemplo:

f x, y

x y
x y

es una funcin con dos argumentos. Sin embargo, solamente un nico valor
se asocia con la funcin para cualquier par de valores dados a los argumentos.
Cada lenguaje de programacin tiene sus propias funciones incorporadas,
que se utilizan escribiendo sus nombres con los argumentos adecuados en
expresiones.
Cada funcin se evoca utilizando su nombre en una expresin con los
argumentos actuales o reales encerrados entre parntesis.

Funciones
Las funciones incorporadas al sistema se denominan funciones o internas o
intrnsecas y las funciones definidas por el usuario, funciones externas.
Cuando las funciones estndares o internas no permiten realizar el tipo de
clculo deseado es necesario recurrir a las funciones externas que puede ser
definidas por el usuario mediante una declaracin de funcin.

A una funcin no se le llama explcitamente, sino que se le invoca o referencia


mediante un nombre y una lista de parmetros actuales. El algoritmo o
programa llama o invoca a la funcin con el nombre de esta ltima en una
expresin seguida de una lista de argumentos que deben coincidir en
cantidad, tipo y orden con los de la funcin que fue definida. La funcin
devuelve un nico valor.
Las funciones son diseadas para realizar tareas especficas: tomar una lista
de valores, llamados argumentos y devolver un nico valor.

Funciones
Declaracin de Funciones
La declaracin de una funcin requiere una serie de pasos que la definen. Una
funcin como tal subprograma tiene una constitucin similar a los
algoritmos, por consiguiente, constar de una cabecera que comenzar con el
tipo del valor devuelto por la funcin, seguido de la palabra funcin y del
nombre y argumentos de dicha funcin. A continuacin ir el cuerpo de la
funcin, que ser una serie de acciones o instrucciones cuya ejecucin har
que se asigne un valor al nombre de la funcin. Esto determina el valor
particular del resultado que da de devolverse al programa llamador.

Los argumentos de la declaracin de la funcin se denominan parmetros


formales, ficticios o mudos (dummy), son los nombres de variables, de otras
funciones o procedimientos y que slo se utilizan dentro del cuerpo de la
funcin. Los argumentos utilizados en llamada a la funcin se denominan
parmetros actuales, que a su vez pueden ser constantes, variables,
expresiones, valores de funciones o nombres de funciones o procedimientos.

Funciones
Invocacin las funciones
Cada vez que se llama a una funcin desde el algoritmo principal se establece
automticamente una correspondencia entre los parmetros formales y los
parmetros actuales. Debe haber exactamente el mismo nmero de
parmetros actuales que de parmetros formales en la declaracin de la
funcin y se presupone una correspondencia uno a uno de izquierda a
derecha entre los parmetros formales y los actuales.

Una llamada a la funcin implica los siguientes pasos:


1. A cada parmetro formal se le asigna el valor real de su correspondiente
parmetro actual.
2. Se ejecuta el cuerpo de acciones de la funcin.
3. Se devuelve el valor de la funcin al nombre de la funcin y se retorna al
punto de llamada.

Funciones
Ejemplo:
Realizar el pseudocdigo donde se utilice una funcin llamada potencia para
el clculo de N elevado a A. Los nmeros A y N debern ser positivos y
enteros.

Funciones
Ejemplo:
Realizar el pseudocdigo donde una utilice una funcin llamada cubo para el
clculo de x elevado al cubo. El nmero x es positivo y entero.
La salida del algoritmo sera:
2 al cubo es 8
3 al cubo es 27

Funciones
Variables Globales y Locales
Las variables utilizadas en los programas principales y subprogramas se
clasifican en dos tipos:

-Variables Globales: es aquella que est declarada para el programa o


algoritmo principal, del que dependen todos los subprogramas.
- Variables Locales: es aquella que est declarada y definida dentro de un
subprograma, en el sentido de que est dentro de ese subprograma y es
distinta de las variables con el mismo nombre declaradas en cualquier parte
del programa principal. El significado de una variable se confina al
procedimiento en el que est declarada.
Cuando otro subprograma utiliza el mismo nombre se refiere a una posicin
diferente en memoria. Se dice que tales variables son locales al programa en
el que estn declaradas.

Funciones
Variables Locales y Globales
El uso de variables locales tiene muchas ventajas. En particular, se hace a los
subprogramas independientes, con la comunicacin entre el programa
principal y los subprogramas manipulados estructuralmente a travs de la
lista de parmetros. Para utilizar un procedimiento slo necesitamos conocer
lo que hace y no tenemos que estar preocupados por su diseo, es decir, cmo
estn programados.

Esta caracterstica hace posible dividir grandes proyectos en piezas ms


pequeas independientes. Cuando diferentes programadores estn
implicados, ellos pueden trabajar independientemente.
A pesar del hecho importante de los subprogramas independientes y las
variables locales, la mayora de los lenguajes proporcionan algn mtodo
para tratar ambos tipos de variables.

Funciones
Comunicacin con Subprogramas: Paso de Parmetros
Existen diferentes mtodos para la transmisin o el paso de parmetros a
subprogramas. Es preciso conocer el mtodo adoptado por cada lenguaje, ya
que la eleccin puede afectar a la semntica del lenguaje. Dicho de otro
modo, un mismo programa puede producir diferentes resultados bajo
diferentes sistemas de paso de parmetros.

Los parmetros pueden ser clasificados como:


Entradas: Proporcionan valores desde el programa que llama y que se utilizan
dentro de un procedimiento. En los subprogramas funcin, las entradas son
los argumentos en el sentido tradicional.
Salidas: Producen los resultados del subprograma; de nuevo si se utiliza el
caso una funcin este devuelve un valor calculados por dicha funcin,
mientras que con procedimientos pueden calcularse cero, una o varias salidas.
Entradas/Salidas: Un solo parmetro se utiliza para mandar argumentos a un
programa y para devolver resultados.

Funciones
Comunicacin con Subprogramas: Paso de Valor
El paso por valor se utiliza en muchos lenguajes de programacin. La razn
de su popularidad es la analoga con los argumentos de una funcin, donde
los valores se proporcionan en el orden de clculo de resultados. Los
parmetros se tratan como variables locales y los valores iniciales se
proporcionan copiando los valores de los correspondientes argumentos.

Los parmetros formales, reciben como valores iniciales los valores de los
parmetros actuales y con ello se ejecutan las acciones descritas en el
subprograma.
No se hace diferencia entre un argumento que es variable, constante o
expresin, ya que slo importa el valor del argumento.

Funciones
Comunicacin con Subprogramas: Paso por Referencia
En numerosas ocasiones se requiere que ciertos parmetros sirvan como
parmetros de salida, es decir, se devuelvan los resultados a la unidad o
programas que llama.

Este mtodo se denomina paso por referencia o tambin de llamada por


direccin o variable.
La unidad que llama pasa a la unidad llamada la direccin del parmetro
actual (que est en el mbito de la unidad llamante). Una referencia al
correspondiente parmetro formal se trata como una referencia a la posicin
de memoria, cuya direccin se ha pasado. Entonces una variable pasada como
parmetro real es compartida, es decir, se puede modificar directamente por
el subprograma.
Los parmetros valor y parmetros variable se suelen definir en la cabecera
del subprograma.

You might also like