Documente Academic
Documente Profesional
Documente Cultură
Fibof(n)
Función fib(n)
Si
SI: n < 2 entonces y =n n<2
Si no: y = fib(n-1)+fib(n-2) No
Como funciona: Y = Fibof(n-1)
Y=n
F(4) +Fibof(n-2)
F(3) + F(2)
F(2) + F(1) + F(2) + F(1)
Serie de Fibonacci en su Inicio
forma matricial:
Ingrese n
Crear A(n)
Definimos una matriz de n A(1)=0
elementos: A(2)=1
i=3
Creamos los dos primero
elementos: A(i)=A(i-1)+A(i-2)
i=i+1
F(1)=0
si
F(2)=1 i<n+1
no
F(n) = F(n-1)+F(n-2)
A
Fin
Inicio
Serie de Fibonacci
dinámica
Ingrese n
Fin
Programación estructurada:
% === Maximo Montalvo ===
% Programación estructurada
% usamos bucle for para resolver.
disp('=== Serie de Fibonacci===')
% Ingrese el elemento a calcular:
n = input('Ingrese en numero mayor que 2')
% inicializamos las variables:
A(1)=0;
A(2)=1;
I(1)=1;
I(2)=2;
% Bucle for para el calculo de la serie:
for i=3:n
A(i)=A(i-1)+A(i-2);
I(i)=i;
end
% Displayamos los resultados:
disp('Elemento Serie')
AF =[I' A']
Programación dinámica.
% === Maximo Montalvo ===
% Aplicamos programación dinámica:
n = input('Ingrese un numero')
if n<3
f = n-1;
else
f1 = 0;
f2 = 1;
for i =3:n+1
f = f1 + f2;
f2 = f1;
f1 = f;
end
end
fprintf('Fib de %d es % d\n', n,f)
Scilab programación estructurada
// === Maximo Montalvo ===
// Programación estructurada
// usamos bucle for para resolver.
disp('=== Serie de Fibonacci===')
// Ingrese el elemento a calcular:
n = input('Ingrese en numero mayor que 2')
// inicializamos las variables:
A(1)=0;
A(2)=1;
I(1)=1;
I(2)=2;
// Bucle for para el calculo de la serie:
for i=3:n
A(i)=A(i-1)+A(i-2);
I(i)=i;
end
// Displayamos los resultados:
disp('Elemento Serie')
AF =[I A];
disp(AF)
Scilab programación Dinámica
// === Maximo Montalvo ===
// Aplicamos programación dinámica:
n = input('Ingrese un numero')
if n<3
f = n-1;
else
f1 = 0;
f2 = 1;
for i =3:n+1
f = f1 + f2;
f2 = f1;
f1 = f;
end
end
A = [n, f]
disp('Elemento serie')
disp(A)
Búsqueda
Algoritmos de ordenación.
i=1
Recuerde que n es el tamaño del vector:
i>n-1 FIN
i=i+1
Entrada: 9 2 1 4
2 9 1 4
2 1 9 4 j=1
j>n-1
2 1 4 9
j=j+1
1 2 4 9
1 2 4 9
NO
A(j)>A(j+1)
1 2 4 9
1 2 4 9 SI
1 2 4 9
Aux = A(j)
A(j) = A(j+1)
1 2 4 9 A(j+1) = Aux
1 2 4 9
Ordenación Scilab
// Metodo de la burbuja:
clear
A = input ('ingrese en vector')
n = length(A);
for i=1:n-1
for j=1:n-1
if A(j)>A(j+1)
Aux = A(j);
A(j)=A(j+1);
A(j+1)=Aux;
end
end
end
disp(A)
Explicación del método
Como el tamaño de A es
de 4, el bucle for va de 1
a 3 tres veces en total 9
pasadas.
Vemos como va
ordenando pasada a
pasada con simples
comparaciones.
Ordenación en Matlab
% Método de la burbuja:
clear
A = input ('ingrese un vector')
n = length(A);
for i=1:n-1
for j=1:n-1
if A(j)>A(j+1)
Aux = A(j);
A(j)=A(j+1);
A(j+1)=Aux;
end
disp(A)
end
end
disp(A)
Tarea
Elaborar diagramas de flujo y programas para ordenamiento de pequeñas matrices usando los
siguientes métodos:
Burbuja 2, incluyendo un for anidado con menor numero de ejecuciones.
Uso de banderas.
Método de inserción.
Elaborar un programa del factorial que sea mejor que el auto recursivo usando programación
dinámica, como el caso de la serie de Fibonacci.