Desenvolva um programa na linguagem de programação SIMPLE, que apresente a somatória dos termos da série de Fibonacci. A série de Fibonacci é formada pela sequência 1, 1, 2, 3, 5, 8, 13, 21, 34, .... A série de Fibonacci é de grande importância matemática, e a lei básica é que a partir do terceiro termo, todos os termos são a soma dos dois últimos termos. O número de termos será fornecido pelo usuário, devendo ser um valor inteiro e positivo. Por exemplo, caso o número de termos fornecido pelo usuário seja 7, o programa deverá apresentar como resposta o valor 33, ou seja, 1 + 1 + 2 + 3 + 5 + 8 + 13. Caso o usuário forneça um valor inválido para o número de termos, o programa deverá apresentar como resposta o valor -1. Posteriormente, apresente a identificação de todos os tokens utilizados na elaboração do programa.
10 input n
15 if n <= 0 goto 65
20 let a = 0
25 let b = 1
30 let s = 0
35 if n == 0 goto 70
40 let s = s + b
45 let b = b + a
50 let a = b - a
55 let n = n - 1
60 goto 35
65 let s = -1
70 print s
75 end
Código | Valor | Código | Valor | Código | Valor | ||
---|---|---|---|---|---|---|---|
00 | 10 | 01 | n | 02 | 15 | ||
03 | 0 | 04 | 65 | 05 | 20 | ||
06 | a | 07 | 25 | 08 | b | ||
09 | 1 | 10 | 30 | 11 | s | ||
12 | 35 | 13 | 70 | 14 | 40 | ||
15 | 45 | 16 | 50 | 17 | 55 | ||
18 | 60 | 19 | 75 |
[51, 00, (01, 01)] // 10
[62, , (01, 04)] // input
[41, 01, (01, 10)] // n
[10, , (01, 11)] // ENTER
[51, 02, (02, 01)] // 15
[66, , (02, 04)] // if
[41, 01, (02, 07)] // n
[36, , (02, 09)] // <=
[51, 03, (02, 12)] // 0
[65, , (02, 14)] // goto
[51, 04, (02, 19)] // 65
[10, , (02, 21)] // ENTER
[51, 05, (03, 01)] // 20
[63, , (03, 04)] // let
[41, 06, (03, 08)] // a
[11, , (03, 10)] // =
[51, 03, (03, 12)] // 0
[10, , (03, 13)] // ENTER
[51, 07, (04, 01)] // 25
[63, , (04, 04)] // let
[41, 08, (04, 08)] // b
[11, , (04, 10)] // =
[51, 09, (04, 12)] // 1
[10, , (04, 13)] // ENTER
[51, 10, (05, 01)] // 30
[63, , (05, 04)] // let
[41, 11, (05, 08)] // s
[11, , (05, 10)] // =
[51, 03, (05, 12)] // 0
[10, , (05, 13)] // ENTER
[51, 12, (06, 01)] // 35
[66, , (06, 04)] // if
[41, 01, (06, 07)] // n
[31, , (06, 09)] // ==
[51, 03, (06, 12)] // 0
[65, , (06, 14)] // goto
[51, 13, (06, 19)] // 70
[10, , (06, 21)] // ENTER
[51, 14, (07, 01)] // 40
[63, , (07, 04)] // let
[41, 11, (07, 08)] // s
[11, , (07, 10)] // =
[41, 11, (07, 12)] // s
[21, , (07, 14)] // +
[41, 08, (07, 16)] // b
[10, , (07, 17)] // ENTER
[51, 15, (08, 01)] // 45
[63, , (08, 04)] // let
[41, 08, (08, 08)] // b
[11, , (08, 10)] // =
[41, 08, (08, 12)] // b
[21, , (08, 14)] // +
[41, 06, (08, 16)] // a
[10, , (08, 17)] // ENTER
[51, 16, (09, 01)] // 50
[63, , (09, 04)] // let
[41, 06, (09, 08)] // a
[11, , (09, 10)] // =
[41, 08, (09, 12)] // b
[22, , (09, 14)] // -
[41, 06, (09, 16)] // a
[10, , (09, 17)] // ENTER
[51, 17, (10, 01)] // 55
[63, , (10, 04)] // let
[41, 01, (10, 08)] // n
[11, , (10, 10)] // =
[41, 01, (10, 12)] // n
[22, , (10, 14)] // -
[51, 09, (10, 16)] // 1
[10, , (10, 17)] // ENTER
[51, 18, (11, 01)] // 60
[65, , (11, 04)] // goto
[51, 12, (11, 09)] // 35
[10, , (11, 11)] // ENTER
[51, 04, (12, 01)] // 65
[63, , (12, 04)] // let
[41, 11, (12, 08)] // s
[11, , (12, 10)] // =
[22, , (12, 12)] // -
[51, 09, (12, 13)] // 1
[10, , (12, 14)] // ENTER
[51, 13, (13, 01)] // 70
[64, , (13, 04)] // print
[41, 11, (13, 10)] // s
[10, , (13, 11)] // ENTER
[51, 19, (14, 01)] // 75
[67, , (14, 04)] // end
[03, , (14, 07)] // ETF