Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Desenvolva um programa na linguagem de programação SIMPLE, que apresente os n primeiros termos da sequência yk = yk-1 + 2, 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 3 5 7 9. 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 = 3
y3 = y2 + 2 = 5
y4 = y3 + 2 = 7
y5 = y4 + 2 = 9

 

10 input n
15 if n <= 0 goto 50
20 let y = 1
25 print y
30 let n = n - 1
35 if n == 0 goto 60
40 let y = y + 2
45 goto 25
50 let y = -1
55 print y
60 end
Tabela de símbolos
CódigoValor CódigoValor CódigoValor
0010 01n 0215
030 0450 0520
06y 071 0825
0930 1035 1160
1240 132 1445
1555      
[51,  0, (01, 01)] // 10
[62, , (01, 04)] // input
[41, 1, (01, 10)] // n
[10, , (01, 11)] // ENTER
[51, 2, (02, 01)] // 15
[66, , (02, 04)] // if
[41, 1, (02, 07)] // n
[36, , (02, 09)] // <=
[51, 3, (02, 12)] // 0
[65, , (02, 14)] // goto
[51, 4, (02, 19)] // 50
[10, , (02, 21)] // ENTER
[51, 5, (03, 01)] // 20
[63, , (03, 04)] // let
[41, 6, (03, 08)] // y
[11, , (03, 10)] // =
[51, 7, (03, 12)] // 1
[10, , (03, 13)] // ENTER
[51, 8, (04, 01)] // 25
[64, , (04, 04)] // print
[41, 6, (04, 10)] // y
[10, , (04, 11)] // ENTER
[51, 9, (05, 01)] // 30
[63, , (05, 04)] // let
[41, 1, (05, 08)] // n
[11, , (05, 10)] // =
[41, 1, (05, 12)] // n
[22, , (05, 14)] // -
[51, 7, (05, 16)] // 1
[10, , (05, 17)] // ENTER
[51, 10, (06, 01)] // 35
[66, , (06, 04)] // if
[41, 1, (06, 07)] // n
[31, , (06, 09)] // ==
[51, 3, (06, 12)] // 0
[65, , (06, 14)] // goto
[51, 11, (06, 19)] // 60
[10, , (06, 21)] // ENTER
[51, 12, (07, 01)] // 40
[63, , (07, 04)] // let
[41, 6, (07, 08)] // y
[11, , (07, 10)] // =
[41, 6, (07, 12)] // y
[21, , (07, 14)] // +
[51, 13, (07, 16)] // 2
[10, , (07, 17)] // ENTER
[51, 14, (08, 01)] // 45
[65, , (08, 04)] // goto
[51, 8, (08, 09)] // 25
[10, , (08, 11)] // ENTER
[51, 4, (09, 01)] // 50
[63, , (09, 04)] // let
[41, 6, (09, 08)] // y
[11, , (09, 10)] // =
[22, , (09, 12)] // -
[51, 7, (09, 13)] // 1
[10, , (09, 14)] // ENTER
[51, 15, (10, 01)] // 55
[64, , (10, 04)] // print
[41, 6, (10, 10)] // y
[10, , (10, 11)] // ENTER
[51, 11, (11, 01)] // 60
[67, , (11, 04)] // end
[03, , (12, 00)] // ETF