Universidad Digital del Estado de Hidalgo
Licenciatura en Ingeniería de Software
Asignatura: Programación Estructurada
Unidad 3. Estructuras de repetición
Fibonacci
Ejemplo. Se realizo un programa para generar N elementos de la sucesión de Fibonacci (0, 1,
1, 2, 3, 5, 8, 13,…). Se realiza el pseudocódigo y el programa para representarlo.
El planteamiento del algoritmo correspondiente se hace a partir del análisis de la sucesión, en la
que se puede observar que un tercer valor de la serie está dado por la suma de los dos valores
previos, de aquí que se asignan los dos valores para sumar (0, 1), que dan la base para obtener
el siguiente elemento que se busca, además, implica que el ciclo se efectué dos veces menos.
Las variables que se requieren para la solución de este problema se muestran en la siguiente
tabla (Delgado & Velázquez, 2018).
Nombre de la variable Descripción Tipo
A, B Valores iniciales o previos Entero
C Valor generado Entero
M Contador del ciclo Entero
Número de elementos de
N Entero
la serie
Se requiere entonces pedir un número máximo de iteraciones para sacar la sumatoria, entonces
pensemos en el 9 y se guardara en N.
Bien los primeros números serán 0 y 1 siempre, entonces guardaremos en:
A=0;
B=1;
1) Iniciemos un ciclo para obtener la suma de C, con el resultado modificaremos el valor de
B y éste a su vez modifica A, el ciclo como tope tendrá el número máximo de iteraciones
menos dos, debido a que anteriormente ya se establecieron los valores de 0 y 1,
entonces:
2) C = A + B;
C = 0 + 1➔ C=1
A continuación, actualizamos los contenidos de las variables A y B con los nuevos valores, ahora
3) A=B
4) B=C
Es decir;
A=1
B=1
Regresamos al paso 1 donde se debe de preguntar si se ha llegado hasta el número máximo de
iteraciones en caso de que aún no se llegue al tope y se realiza
C=2
Aplicamos 3 y 4:
A=1
B=2
Regresamos al paso 1 donde se debe de preguntar si se ha llegado hasta el número máximo de
iteraciones en caso de que aún no se llegue al tope entonces se repite:
C=3
Aplicamos 3 y 4:
A=2
B=3
Y así se actualizan los datos:
Pseudocódigo Código
1. Inicio #include <conio.h>
2. Leer N #include <stdio.h>
3. Hacer A = 0 void main()
4. Hacer B = 1 {
5. Escribir A, B clrscr(); //limpiamos pantalla cada que se ejecuta el
7. Desde M = 1 hasta M<N-2 programa
Hacer C = A + B /*Se definen las variables como se indicó en el diseño*/
Escribir C int N;
Hacer A = B int A;
Hacer B = C int B;
Fin Desde int C=0; //Se inicializa a cero el acumulador, recuerda
n que es una buena práctica realiza
//la inicialización a cero
printf("Teclea el número de iteraciones para la serie
\n");
scanf("%d",&N); // Se guarda en esta variable el
número de veces que el for trabajará.
A=0;// se inicializan variables
B=1;
printf("%d, %d",A,B); //Se imprimen los valores
iniciales 0,1
/*Cuerpo del ciclo donde se actualizan las variables el
seguimiento del código lo puedes verificar con la prueba
de escritorio que se muestra más adelante*/
for(int M=1; M<=N-2; M++){
C = A + B;
printf(", %d",C);
A = B;
B = C;
}
getch();
}
Una manera de comprobar el código es hacer su seguimiento, con una prueba de escritorio.
A B N M M <= N-2 C
0 1 9 1 True 1
1 1 9 2 True 2
1 2 9 3 True 3
2 3 9 4 True 5
3 5 9 5 True 8
5 8 9 6 True 13
8 13 9 7 True 21
9 8 False