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

Fuciones Y Procedimiento


Enviado por   •  19 de Octubre de 2011  •  3.398 Palabras (14 Páginas)  •  411 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)

...

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