Académique Documents
Professionnel Documents
Culture Documents
Algoritmos y programas
Ejemplos para introducir las funciones
Informtica
Grado en Fsica
Universitat de Valncia
Francisco.Grimaldo@uv.es
Ariadna.Fuertes@uv.es
1
El algoritmo de Euclides:
Variables:
a, b, r : enteros
Inicio
Hacer1
Leer(a, b)
Mientras ( a<=0 OR b<=0)
Si a>b entonces
r a%b
Sino
r b%a
Fin_Si
Hacer2
ab
br
r a%b
Mientras ( r0 )
Escribir (a)
FIN
Variables:
a, b : enteros
Inicio
Hacer1
Leer(a, b)
Mientras ( a<=0 OR b<=0)
Mientras ( a b ) hacer
Si a>b entonces
aa-b
Sino
bb-a
Fin_Si
Fin_Mientras
Escribir (a)
FIN
5
Mdulo que
resuelve el
algoritmo de
Euclides para 2
nmeros Vamos
a hacer una Funcin
para ello.
Y un procedimiento
para la lectura de
nmeros
Variables:
a, b, N, i : enteros
Inicio
Hacer1
Leer(N,a, b)
Mientras1 ( a<=0 OR b<=0 OR N<2)
i2
Hacer2
Mientras ( a b ) hacer
Si a>b entonces
aa-b
Sino
bb-a
Fin_Si
Fin_Mientras
Hacer3
Leer (b)
Mientras3 ( b<=0)
ii+1
Mientras2 ( i <= N)
Escribir (a)
FIN
m.c.d.(a,b)
Variables:
a, b, res : enteros
Inicio
Proc_Leer(a)
Proc_Leer(b)
Fun_mcd a
FIN_FUNCION
PROCEDIMIENTO Proc_Leer (ref x:entero)
Inicio
Hacer
Leer (x)
Mientras ( x<=0 )
FIN_PROCEDIMIENTO
10
Funcin Fun_mcd(a,b):
Programa principal:
I
Proc_Leer (a)
Proc_Leer (b)
res (a*b)/Fun_mcd(a,b)
escribir (res)
a b?
a<b?
No
No
Fun_mcd a
a a-b
b b-a
Procedimiento Proc_Leer(x):
Leer (x)
x<=0?
No
11
C = C m ,n
n
m
m
m!
= C (m, n) = =
n n!(m n)!
Variables:
m, n, res : enteros
Inicio
Fac f
FIN_FUNCION
PROCEDIMIENTO Proc_Leer (ref x:entero)
Inicio
Hacer
Leer (x)
Mientras ( x<=0 )
FIN_PROCEDIMIENTO
FIN
Proc_Leer(m)
Proc_Leer(n)
Si1 m>=n AND m>0 entonces
res Fac(m) / (Fac(n)*Fac(m-n))
Sino
res -1
Fin_Si1
Si2 (res = -1)
Escribir (No es posible)
Sino
Escribir (res)
Fin_Si2
13
Programa principal:
Funcin Fac(x):
Proc_Leer (m)
Proc_Leer (n)
f1
ii+1
i <= x?
ff*i
No
S
res Fac(m)/(Fac(n)*Fac(m-n))
No
Fac f
res -1
i2
res = -1?
escribir(no puedo)
No
escribir (res)
F
14
Programa: e (1/3)
x
i= 0
xi
i!
Programa: e (2/3)
x
Programa principal de ex
Variables:
x, n, i : enteros
sum :real
Inicio
Proc_Leer(x)
Proc_Leer(n)
sum 1
Desde i1 hasta n hacer
sum sum + Pot(x,i) / Fac(i)
ii+1
Fin_Desde
Si n=0 entonces
Escribir (no hay aproximacin)
sino
Escribir (sum)
FIN
PROCEDIMIENTO Proc_Leer (ref x:entero)
Inicio
Hacer
Leer (x)
Mientras ( x<0 )
FIN_PROCEDIMIENTO
16
Programa: e (3/3)
x
Organigramas:
Proc_Leer (x)
Proc_Leer (n)
res 1
sum 1
i1
i1
ii+1
i i +1
i <= e?
No
Pot res
Programa principal:
res res * b
i <= n?
sum sum+Pot(x,i)/Fac(i)
No
n = 0?
No
escribir (sum)
17
18
Pseudocdigo de la
funcin Factorial
(bucle decreciente):
Pseudocdigo de la
funcin Factorial
en modo recursivo:
Fac f
FIN_FUNCION
Fac f
FIN_FUNCION
19