Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Funciones y Procedimientos
rogramacin de
omputadores
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Contenido
1. FUNCIONES
2. PROCEDIMIENTOS
3. PARAMETROS
4. VARIABLES GLOBALES Y LOCALES
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
1. Funciones
En Matemticas
g: Naturales Naturales
x
x2
f:{a,b,c} {0,1,2}
a
1
b
0
c
2
h: Reales x Reales Reales
(a,b)
a2+2*b
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Funciones en Programacin
Proceso que recibe valores de entrada
(parmetros) y retorna un resultado.
funcion <nombre> (par1:tipo1,...parn:tipon): tipo
variables
<declaraciones>
inicio
< instrucciones >
retornar <expresin>
fin_funcion
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Funciones en Programacin
h: Reales x Reales Reales
(a,b)
a2+2*b
funcion h ( a : real, b : real): real
variables
inicio
retornar a*a+2*b
fin_funcion
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Ejemplo 1
Calcular el cuadrado de
diez nmeros
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Programa
funcion cuadrado ( x : entero): entero
inicio
retornar x*x
fin_funcion
procedimiento principal()
variables
A, rta, i :entero
inicio
para (i := 1 hasta 10) hacer
leer (A)
rta := cuadrado ( A )
escribir (rta)
fin_para
fin_procedimiento
Declaracin de
Funcin
Llamado a
funcin
Mdulo 5.
Funciones y Procedimientos
Funcin Cuadrado
cuadrado (x)
retornar x*x
fin_funcion
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Programa
Mdulo 5.
Funciones y Procedimientos
INICIO
i := 1
i <=10
FIN
leer (A)
rta :=cuadrado (A)
escribir (rta)
i := i+1
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Ejemplo 2
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
MEMORIA PROGRAMA
-2
10
max
10
MEMORIA maximo
par1
-2
max1
par2
10
10
10
Mdulo 5.
Funciones y Procedimientos
Ejemplo 3
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
funcion mult(x1:entero,
x2:entero): entero
variables z : entero
inicio
z := x1*x2
retornar z
fin_funcion
procedimiento principal()
variables
a, b, c, d :entero
inicio
a := 5
b := 9
c := 4
d := mult(a,b)
d := mult(c,d)
escribir (d)
fin_procedimiento
MEMORIA PROGRAMA
45
d 180
MEMORIA mult
9
x1 54 180
x2 45
x2
zz 45
180
Mdulo 5.
Funciones y Procedimientos
Ejemplo 4
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
funcion max_arr
( lista: arreglo [5] de entero,
L1:entero, L2:entero):entero
variables i, temp: entero
inicio
temp := lista[L1]
para (i := L1+1 hasta L2) hacer
si (lista[i]> temp) entonces
temp := lista[i]
fin_si
fin_para
retornar temp
fin_funcion
procedimiento principal()
variables
i, max:entero
t:arreglo [5] de entero
inicio
para (i := 0 hasta 4) hacer
leer (t[i])
fin_para
max := max_arr(t,0,4)
fin_procedimiento
MEMORIA PROGRAMA
2
3
5
4
0
1
max
2 8 4
MEMORIA max_arr
L1 0
8 4
lista
i
L2 4
temp
7
8
4
2
1
5
3
Mdulo 5.
Funciones y Procedimientos
Funciones Recursivas
Funcin que se define en trminos de si misma,
es decir, el resultado de la funcin depende de
resultados de ella misma en otros valores.
Correcta
Incorrecta
sisi xx11
sisi xx11
11
11
f f( (xx) )
f f((xx))
o.c.
o.c.
f f( (xx11) )**xx o.c.
f f((xx11))**xx o.c.
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Ejemplo 5
Calcular el factorial de un
nmero.
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
funcion facto
(par:entero):entero
variables z, fact:entero
inicio
si (par=1 | par=0)
entonces fact := 1
sino z := facto(par-1)
fact := par*z
fin_si
retornar fact
fin_funcion
procedimiento principal()
variables
i, A, rta:entero
inicio
para (i := 0 hasta 1) hacer
leer (A)
rta :=facto (A)
fin_para
fin_procedimiento
MEMORIA PROGRAMA
i 0
21
0
3
rta
par
par
par
3
z
20
zz
fact
6
fact
fact
21
6
1
FACTO
par (1)
1
z
fact
1
Mdulo 5.
Funciones y Procedimientos
2. Procedimientos
Porciones de cdigo similares que no calculan
un valor si no que por ejemplo, presentan
informacin al usuario, leen una coleccin de
datos o calculan ms de un valor.
procedimiento <nombre>(par1:tipo1, ...parn:tipon)
variables
<declaraciones>
inicio
< Instrucciones >
fin_procedimiento
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Ejemplo 1
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
procedimiento impresion
(t:arreglo [5] de entero)
variables z:entero
inicio
para (z:= 0 hasta 4) hacer
escribir (t[z])
fin_para
fin_procedimiento
procedimiento principal()
variables
i:entero
lista:arreglo [5] de entero
inicio
para (i := 0 hasta 4) hacer
leer (lista [i])
fin_para
impresion ( lista )
fin_procedimiento
MEMORIA
MEMORIAPROGRAMA
impresin
1i
2
1
0
5
4
3
2
t
3
z
5
4
3
2
1
0
lista
1 2 3 4 5
Mdulo 5.
Funciones y Procedimientos
3. Parmetros
Parmetros por Valor
Parmetros por Referencia
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
PROCEDIMIENTO
PRINCIPAL
a: entero
FUNCION
a:=2
f= facto(a)
2
a
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
PROCEDIMIENTO
PRINCIPAL
a: entero
procedimiento
act (ref t: entero)
a:=2
f= act(a)
a
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Mdulo 5.
Funciones y Procedimientos
Ejemplo
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
MEMORIA PROGRAMA
num 12
27
9
4
6
2
4
3
2
1
MEMORIA triple
27 6 12
num1
12
4
2
6
27
9
Mdulo 5.
Funciones y Procedimientos
Ejemplo
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
MEMORIA PROGRAMA
50
n1 32
50
b 32
n2 32
50
32 50
t
50
MEMORIA cambio
Mdulo 5.
Funciones y Procedimientos
4. Variables Globales y
Locales
Variables Globales
Variables Locales
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Variables Locales
Variables Locales: son aquellas definidas dentro
de
cada
funcin
o
procedimiento.
Sus
modificaciones slo son vlidas en la funcin o
procedimiento en que se han definido.
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Variables Globales
Variables Globales: son aquellas
definidas al comienzo del programa
(antes
de
cualquier
funcin
o
procedimiento). Se pueden usar dentro
del algoritmo principal y en cada funcin
y /o procedimiento definido en el
programa
Regla del buen programador:
evitar al mximo el uso de variables globales.
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
Mdulo 5.
Funciones y Procedimientos
Ejemplo
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
variables
num1, num2 :entero
resultado:real
VARIABLES GLOBALES
num1
25
num2
32
resultado
28.5
VARIABLES LOCALES
x1 25
x2 32
promedio 28.5
Mdulo 5.
Funciones y Procedimientos
Ejemplo
Construir un programa que reciba 3
valores y devuelva el mnimo valor. El
programa debe permitir al usuario
repetir el proceso, si quiere utilizar
ms datos.
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
procedimiento minimo
{
if (a<=b && a<=c)
entonces
m :=a
m = a;
else
sino
m:= b
sino
else
m :=c
m = c;
}
fin_si
fin_si
fin_procedimiento
m = b;
}
}
procedimiento principal()
Variables
x, y, z, menor : entero
c : carcter
int main()
{
float x, y, z, menor;
char c;
Inicio
Haga
do {
escribir(Digite el primer
nmero:)
leer(x)
cin >> x;
escribir(Digite el segundo
nmero:)
leer(y)
cin >> y;
escribir(Digite el tercer
nmero:)
leer(z)
cin >> z;
Mdulo 5.
Funciones y Procedimientos
minimo(x, y, z, menor)
minimo(x, y, z, menor);
leer(c)
cin >> c;
mientras (c =s | c =S)
fin_procedimiento
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial
Mdulo 5.
Funciones y Procedimientos
FIN
Gracias por la atencin
prestada
Facultad Ingeniera
Departamento de Ingeniera de Sistemas e Industrial