Desenvolva um programa na linguagem de programação SIMPLE, que apresente os n primeiros termos da sequência yk+1 = yk + (2 * k + 1), sendo k = 1, 2, ..., n e y1 = 1. 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 5, o programa deverá apresentar como resposta a sequência de valores 1 4 9 16 25. 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.
y1 = 1
y2 = y1 + (2 * 1 + 1) = 4
y3 = y2 + (2 * 2 + 1) = 9
y4 = y3 + (2 * 3 + 1) = 16
y5 = y4 + (2 * 4 + 1) = 25
10 input n
15 if n <= 0 goto 55
20 let y = 0
25 let k = 0
30 if k >= n goto 65
35 let y = y + 2 * k + 1
40 print y
45 let k = k + 1
50 goto 30
55 let y = -1
60 print y
65 end
| Código | Valor | Código | Valor | Código | Valor | ||
|---|---|---|---|---|---|---|---|
| 00 | 10 | 01 | n | 02 | 15 | ||
| 03 | 0 | 04 | 55 | 05 | 20 | ||
| 06 | y | 07 | 25 | 08 | k | ||
| 09 | 30 | 10 | 65 | 11 | 35 | ||
| 12 | 2 | 13 | 1 | 14 | 40 | ||
| 15 | 45 | 16 | 50 | 17 | 60 |
[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
[35, , (02, 09)] // <=
[51, 03, (02, 12)] // 0
[65, , (02, 14)] // goto
[51, 04, (02, 19)] // 55
[10, , (02, 21)] // ENTER
[51, 05, (03, 01)] // 20
[63, , (03, 04)] // let
[41, 06, (03, 08)] // y
[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)] // k
[11, , (04, 10)] // =
[51, 03, (04, 12)] // 0
[10, , (04, 13)] // ENTER
[51, 09, (05, 01)] // 30
[66, , (05, 04)] // if
[41, 08, (05, 07)] // k
[35, , (05, 09)] // >=
[41, 01, (05, 12)] // n
[65, , (05, 14)] // goto
[51, 10, (05, 19)] // 65
[10, , (05, 21)] // ENTER
[51, 11, (06, 01)] // 35
[63, , (06, 04)] // let
[41, 06, (06, 08)] // y
[11, , (06, 10)] // =
[41, 06, (06, 12)] // y
[21, , (06, 14)] // +
[51, 12, (06, 16)] // 2
[23, , (06, 18)] // *
[41, 08, (06, 20)] // k
[21, , (06, 22)] // +
[51, 13, (06, 24)] // 1
[10, , (06, 25)] // ENTER
[51, 14, (07, 01)] // 40
[64, , (07, 04)] // print
[41, 06, (07, 10)] // y
[10, , (07, 11)] // ENTER
[51, 15, (08, 01)] // 45
[63, , (08, 04)] // let
[41, 08, (08, 08)] // k
[11, , (08, 10)] // =
[41, 08, (08, 12)] // k
[21, , (08, 14)] // +
[51, 13, (08, 16)] // 1
[10, , (08, 17)] // ENTER
[51, 16, (09, 01)] // 50
[65, , (09, 04)] // goto
[51, 09, (09, 09)] // 30
[10, , (09, 11)] // ENTER
[51, 04, (10, 01)] // 55
[63, , (10, 04)] // let
[41, 06, (10, 08)] // y
[11, , (10, 10)] // =
[22, , (10, 12)] // -
[51, 13, (10, 13)] // 1
[10, , (10, 14)] // ENTER
[51, 17, (11, 01)] // 60
[64, , (11, 04)] // print
[41, 06, (11, 10)] // y
[10, , (11, 11)] // ENTER
[51, 10, (12, 01)] // 65
[67, , (12, 04)] // end
[03, , (12, 07)] // ETF