ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Fuciones Y Procedimiento

jelopez19 de Octubre de 2011

3.398 Palabras (14 Páginas)443 Visitas

Página 1 de 14

1

FUNCIONES Y PROCEDIMIENTOS

OBJETIVOS

• Aprender a resolver problemas grandes y complejos dividiendo un problema en

subproblemas a través del uso de procedimientos y funciones.

• Distinguir entre parámetros de entrada (valor) y parámetros de salida (referencia).

• Analizar las diferencias entre funciones y procedimientos.

• Aprender a escribir funciones recursivas.

• Distinguir entre variables locales y variables globales.

1. FUNCIONES

El concepto de función en programación se fundamenta en el concepto de función matemática1

Una función, desde el punto de vista de la programación, se define como un proceso que recibe

valores de entrada (llamados parámetros) y el cual retorna un valor resultado. Adicionalmente,

las funciones son subprogramas dentro de un programa, que se pueden invocar (ejecutar) desde

cualquier parte del programa, es decir, desde otra función, desde la misma función o desde el

programa principal, cuantas veces sea necesario.

Las funciones se usan cuando existen dos o más porciones de algoritmo dentro de un programa

que son iguales o muy similares, por ejemplo, en un algoritmo se puede emplear varias veces

una porción de algoritmo que eleva a una potencia dada un número real. De esta manera

conviene definir una función que al ser invocada ejecute dicho código, y en el lugar donde

estaba la porción de algoritmo original, se hace un llamado (ejecución) de la función creada.

En el seudolenguaje una función se declara de la siguiente manera:

funcion <nombre> ( param1 : tipo1 , ..., paramn : tipon ) : tipo

variables

<declaraciones>

inicio

<instrucciones>

retornar <expresión>

fin_funcion

Donde,

• <nombre>: representa el nombre de la función

• parami: representa el parámetro i-ésimo de la función.

• tipoi: representa el tipo del i-ésimo parámetro de la función.

1 Una función es una relación que asocia con cada elemento de un conjunto llamado el dominio, uno y solo

un elemento de otro conjunto llamado el codominio. La relación puede ser establecida mediante una tabla,

un proceso o un cálculo.

f:Dom ⇒ Codom

x ⇒ f(x)

Ejemplo 1. f:{a,b,c} ⇒ {0,1,2}

a ⇒ 1

b ⇒ 0

c ⇒ 2

Ejemplo 2. g: Naturales ⇒ Naturales

x ⇒ x2

Ejemplo 3. h: Reales x Reales ⇒ Reales

( a , b ) ⇒ a2+2*b.

2

• tipo: representa el tipo de dato que retorna la función.

• <declaraciones>: representa el conjunto de variables definidas para la función (diferentes a

los parámetros).

• <instrucciones>: representa el conjunto de instrucciones que realiza la función.

• <expresión>: representa el valor que retorna la función.

EJEMPLOS

Ejemplo 1. La función h que en matemáticas se define como sigue:

h: Reales x Reales ⇒ Reales

(a , b) ⇒ a2+2*b

En programación se define así:

funcion h ( a : real, b : real): real

inicio

retornar a*a + 2*b

fin_funcion

Ejemplo 2. La función minimo que en matemáticas se define como sigue:

minimo: Reales x Reales x Reales ⇒ Reales

minimo( a , b , c ) = a ,si a b y a c

minimo( a , b , c ) = b ,si b a y b c

minimo( a , b , c ) = c ,si c a y c b

En programación se define así:

funcion minimo( a : real, b : real , c : real ): real

inicio

si (a <=b & a <=c) entonces

retornar a

sino

si (b <=a & b<=c)entonces

retornar b

sino

retornar c

fin_si

fin_si

fin_funcion

1.1 FUNCIONES RECURSIVAS

Una función recursiva es una función que se define en términos de si misma, es decir, que el

resultado de la función depende de resultados obtenidos de evaluar la misma función con otros

valores.

Se debe tener mucho cuidado en la definición de funciones recursivas, pues si no se hace bien,

la función podría requerir de un cálculo infinito o no ser calculable. Observe las siguientes

definiciones, una correcta y la otra incorrecta:

DEFINICIÓN RECURSIVA CORRECTA

3

Está bien definida porque se puede calcular el valor de la función para cualquier valor que tome

x. Por ejemplo si x = 3.5 se tiene que f(3.5) = 13.125 ya que:

f(3.5) = f(3.5-1.0)* 3.5 = f(2.5) * 3.5

f(2.5) = f(2.5-1.0)*2.5 = f(1.5) * 2.5

f(1.5) = f(1.5-1.0)*1.5 = f(0.5) * 1.5

f(0.5) = 1.0 (pues 0.5 <= 1.0) y de esta manera, el cálculo de la función se devuelve.

f(1.5) = f(0.5)*1.5 = 1.0 * 1.5 = 1.5

f(2.5) = f(1.5)*2.5 = 1.5 * 2.5 = 3.75

f(3.5) = f(2.5)* 3.5 = 3.75 * 3.5 = 13.125

DEFINICIÓN RECURSIVA INCORRECTA

Está mal definida porque no se puede calcular el valor de la función para cualquier valor que

tome x. Por ejemplo, si x = 3.5 se tiene que f(3.5) no se puede calcular ya que:

f(3.5) = f(3.5+1.0)* 3.5 = f(4.5) * 3.5

f(4.5) = f(4.5+1.0)*4.5 = f(5.5) * 4.5

f(5.5) = f(5.5+1.0)*5.5 = f(6.5) * 5.5

f(6.5) = …… y nunca se termina este proceso

Una función recursiva es aquella que para calcular su valor en un dato dado, generalmente

necesita ser calculada en uno u otros valores. Un punto de ruptura de la recursión es un valor

del parámetro para el cual la función no tiene que ser calculada de nuevo en otros valores.

EJEMPLOS

Ejemplo 1. La función factorial que en matemáticas se define como sigue:

factorial : Entero + ⇒ Entero +

factorial(n) = 1, si n 1

factorial(n) = n * factorial(n-1), si n >1

Punto de ruptura: cuando n es igual a uno (1)

ALGORITMO:

funcion factorial ( n : entero ) : entero

inicio

si (n <=1) entonces

retornar 1

sino

retornar factorial(n-1) * n

fin_si

fin_funcion

Ejemplo 2. La función fibonacci que en matemáticas se define como sigue:

fibonacci : Entero → Entero

4

fibonacci(0)=0

fibonacci(1)=1

fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), para n>1

Punto de ruptura: cuando n es menor o igual a uno (1)

ALGORITMO:

funcion fibonacci( n : entero ) : entero

inicio

si (n =0 | n = 1) entonces

retornar n

sino

retornar fibonacci(n-1) + fibonacci(n-2)

fin_si

fin_funcion

Ejemplo 3. suma_rara : Entero x Entero ⇒ Entero

suma_rara( n , m ) = n , si n>0 y m 0

suma_rara( n , m ) = m , si n 0 y 0 m

suma_rara( n , m ) = suma_rara(n-2,m-3)+suma_rara(m-2,n-3)+ m + n, en otro caso.

Puntos de ruptura: cuando m es menor o igual a cero (0), y cuando n es menor o igual a cero

(0).

ALGORITMO:

funcion suma_rara( n : entero, m : entero ) : entero

inicio

si (n > 0 &m <=0) entonces

retornar n

sino

si (n <=0 & 0 <=m) entonces

retornar m

sino

retornar suma_rara(n-2,m-3)+suma_rara(m-2,n-3)+m+n

fin_si

fin_si

fin_funcion

2. PROCEDIMIENTOS

En muchos casos existen porciones de código similares que no calculan un valor si no que por

ejemplo, presentan información al usuario, leen una colección de datos o calculan más de un

valor. Como una función debe retornar un único valor2 este tipo de porciones de código no se

podrían codificar como funciones. Para superar este inconveniente se creó el concepto de

2 Una función puede retornar más de un valor si ella usa parámetros por referencia. En este texto los

parámetros por referencia sólo se usarán en los procedimientos ya que, es una muy mala técnica de

programación el uso de parámetros por referencia en funciones. Esta consideración se hace pues, desde el

punto de vista matemático, una función no puede modificar los valores de los parámetros.

5

procedimiento. Un procedimiento se puede asimilar a una función que puede retornar más de

un valor mediante el uso de parámetros por referencia3.

Los procedimientos se usan para evitar duplicación de código y conseguir programas más cortos.

Son también una herramienta conceptual para dividir un problema en subproblemas logrando de

esta forma escribir más fácilmente programas grandes y complejos.

En el seudolenguaje un procedimiento se define de la siguiente manera

procedimiento <nombre> ( param1: tipo1, ..., paramn : tipon)

variables

<declaraciones>

inicio

<instrucciones>

fin_procedimiento

Donde:

• <nombre>: representa el nombre del procedimiento.

• parami: representa el parámetro i-ésimo del procedimiento.

• tipoi: representa el tipo del i-ésimo parámetro del procedimiento.

• <declaraciones>: representa el conjunto de variables definidas para el procedimiento

(diferentes a los parámetros).

• <instrucciones>: representa el conjunto de instrucciones que realiza el procedimiento.

3. PARAMETROS POR VALOR Y POR REFERENCIA

3.1 Parámetros por valor

Los parámetros convencionales

...

Descargar como (para miembros actualizados) txt (26 Kb)
Leer 13 páginas más »
Disponible sólo en Clubensayos.com