Beruflich Dokumente
Kultur Dokumente
Funciones y Procedimientos
rogramación de
omputadores
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Contenido
1. FUNCIONES
2. PROCEDIMIENTOS
3. PARAMETROS
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
1. Funciones
En Matemáticas g: Naturales Naturales
x x2
f:{a,b,c} {0,1,2}
a 1
b 0
c 2
Funciones en Programación
Proceso que recibe valores de entrada
(parámetros) y retorna un resultado.
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Funciones en Programación
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Ejemplo 1
Calcular el cuadrado de
diez números
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Programa
Función Cuadrado
cuadrado (x)
retornar x*x
fin_funcion
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Programa Funciones y Procedimientos
INICIO
i := 1
i <=10
FIN
leer (A)
escribir (rta)
i := i+1
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Ejemplo 2
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion maximo (par1:entero, MEMORIA PROGRAMA
par2:entero):entero
variables max1:entero A B
inicio
si (par1 >= par2) entonces -2 10
max1 := par1
sino
max1 := par2 max
fin_si 10
retornar max1
fin_funcion
MEMORIA maximo
procedimiento principal()
variables
A, B, max:entero 10
inicio par1 -2 10
par2
leer (A)
leer (B) 10
max := maximo(A,B) max1
escribir (max)
fin_procedimiento
Módulo 5.
Funciones y Procedimientos
Ejemplo 3
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion mult(x1:entero,
x2:entero): entero MEMORIA PROGRAMA
variables z : entero
inicio
z := x1*x2
retornar z a 5 b 9
fin_funcion
procedimiento principal() 4 45
variables c d 180
a, b, c, d :entero
inicio
a := 5 MEMORIA mult
b := 9
c := 4 x1 54 180
x2 45
x2 9
d := mult(a,b)
d := mult(c,d)
escribir (d) zz 45
fin_procedimiento 180
Módulo 5.
Funciones y Procedimientos
Ejemplo 4
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion max_arr
( lista: arreglo [5] de entero,
L1:entero, L2:entero):entero
variables i, temp: entero MEMORIA PROGRAMA
inicio
temp := lista[L1] 2
3
5
4
para (i := L1+1 hasta L2) hacer i 0
1 max 8
si (lista[i]> temp) entonces
temp := lista[i]
fin_si t
fin_para
retornar temp 7 2 8 4 0
fin_funcion
Funciones Recursivas
Función que se define en términos de si misma,
es decir, el resultado de la función depende de
resultados de ella misma en otros valores.
Correcta Incorrecta
Ejemplo 5
Calcular el factorial de un
número.
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion facto
(par:entero):entero
variables z, fact:entero MEMORIA PROGRAMA
inicio
si (par=1 | par=0)
entonces fact := 1 i 0
21 A 0
3 rta 6
1
sino z := facto(par-1)
fact := par*z
fin_si
retornar fact FACTO (3) FACTO
FACTO(2)
(0)
fin_funcion par par
par FACTO
par (1)
procedimiento principal() 3 20 1
variables z zz z
i, A, rta:entero
inicio 2 1
para (i := 0 hasta 1) hacer
fact fact
fact fact
leer (A)
rta :=facto (A) 6 21 1
fin_para
fin_procedimiento
Módulo 5.
Funciones y Procedimientos
2. Procedimientos
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.
Ejemplo 1
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
procedimiento impresion
(t:arreglo [5] de entero)
MEMORIA
MEMORIAPROGRAMA
impresión
variables z:entero
inicio
para (z:= 0 hasta 4) hacer 1i 2
1
0
5
4
3
2 3 4 5
escribir (t[z]) t
fin_para 1 2 3 4 5
fin_procedimiento z 5
4
3
2
1
0
lista
procedimiento principal()
variables
i:entero
lista:arreglo [5] de entero
inicio
para (i := 0 hasta 4) hacer 1 2 3 4 5
leer (lista [i])
fin_para
impresion ( lista )
fin_procedimiento
Módulo 5.
Funciones y Procedimientos
3. Parámetros
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
PROCEDIMIENTO
PRINCIPAL FUNCION
2
a t
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
PROCEDIMIENTO
procedimiento
PRINCIPAL
a: entero act (ref t: entero)
a:=2
f= act(a)
2
a t
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
inicio
....
fin_procedimiento
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Ejemplo
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
PARAMETROS POR REFERENCIA
MEMORIA PROGRAMA
procedimiento triple
(ref num1:entero)
inicio num 12
27
9
4
6
2 i 4
3
2
1
num1 := num1*3
fin_procedimiento
procedimiento principal()
variables MEMORIA triple
i, num: entero 27 6 12
inicio
para (i := 1 hasta 3) hacer
num1 12
4
2
6
27
9
leer (num)
triple (num)
escribir num
fin_para
fin_procedimiento
Módulo 5.
Funciones y Procedimientos
Ejemplo
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
PARAMETROS POR REFERENCIA
procedimiento cambio
(ref n1:entero, ref n2:entero) MEMORIA PROGRAMA
variables t: entero
inicio
t := n1 a 50 b 32
n1 := n2
n2 := t
fin_procedimiento
procedimiento principal()
variables
a, b: entero n1 32
50 n2 32
50
inicio 32 50
a := 50
b := 32 t 50
cambio (a, b)
escribir (a,b) MEMORIA cambio
fin_procedimiento
Módulo 5.
Funciones y Procedimientos
4. Variables Globales y
Locales
• Variables Globales
• Variables Locales
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Variables Locales
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Variables Globales
Variables Globales: son aquellas
definidas al comienzo del programa
(antes de cualquier función o
procedimiento). Se pueden usar dentro
del algoritmo principal y en cada función
y /o procedimiento definido en el
programa
Regla del buen programador:
evitar al máximo el uso de variables globales.
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
procedimiento principal ()
variables
<declaración de variables locales>
inicio
<instrucciones>
fin_procedimiento
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
Ejemplo
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
variables
num1, num2 :entero
resultado:real VARIABLES GLOBALES
Ejemplo
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
procedimiento minimo void minimo(float a, float b,
( a : real, b : real , c : real , float c, float &m)
ref m : real )
inicio {
si (a <=b & a <=c) if (a<=b && a<=c)
entonces {
m = a;
m :=a }
sino else
{
si (b <=a & b<= c) if (b<=a && b<=c)
entonces {
m:= b m = b;
}
sino else
{
m :=c m = c;
fin_si }
fin_si }
fin_procedimiento }
procedimiento principal() int main()
Variables {
x, y, z, menor : entero float x, y, z, menor;
c : carácter char c;
Inicio
Haga do {
escribir(“Digite el primer cout<<"digite el primer número: ";
número:”)
leer(x) cin >> x;
escribir(“Digite el segundo cout<<"digite el segundo número: ";
número:”)
leer(y) cin >> y;
escribir(“Digite el tercer cout<<"digite el tercer número: ";
número:”)
leer(z) cin >> z;
Módulo 5.
Funciones y Procedimientos
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
Funciones y Procedimientos
FIN
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial