Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Desenvolva um programa na linguagem de programação SIMPLE, que apresente o maior número dos n primeiros números fornecidos pelo usuário. O primeiro número fornecido pelo usuário indica a quantidade de números a serem lidos. Por exemplo, caso os números fornecidos pelo usuário sejam 4, 1, 7, 4 e 3, o programa deverá apresentar como resposta o valor 7, que é o maior número entre os quatro números fornecidos pelo usuário. Caso o usuário forneça um valor inválido para n, 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 55
20 input a
25 let n = n - 1
30 if n == 0 goto 60
35 input b
40 if a >= b goto 25
45 let a = b
50 goto 25
55 let a = -1
60 print a
65 end
Tabela de símbolos
CódigoValor CódigoValor CódigoValor
0010 01n 0215
030 0455 0520
06a 0725 081
0930 1060 1135
12b 1340 1445
1550 1665   
[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)] // 55
[10, , (02, 21)] // ENTER
[51, 05, (03, 01)] // 20
[62, , (03, 04)] // input
[41, 06, (03, 10)] // a
[10, , (03, 11)] // ENTER
[51, 07, (04, 01)] // 25
[63, , (04, 04)] // let
[41, 01, (04, 08)] // n
[11, , (04, 10)] // =
[41, 01, (04, 12)] // n
[22, , (04, 14)] // -
[51, 08, (04, 16)] // 1
[10, , (04, 17)] // ENTER
[51, 09, (05, 01)] // 30
[66, , (05, 04)] // if
[41, 01, (05, 07)] // n
[31, , (05, 09)] // ==
[51, 03, (05, 12)] // 0
[65, , (05, 14)] // goto
[51, 10, (05, 19)] // 60
[10, , (05, 21)] // ENTER
[51, 11, (06, 01)] // 35
[62, , (06, 04)] // input
[41, 12, (06, 10)] // b
[10, , (06, 11)] // ENTER
[51, 13, (07, 01)] // 40
[66, , (07, 04)] // if
[41, 06, (07, 07)] // a
[35, , (07, 09)] // >=
[41, 12, (07, 12)] // b
[65, , (07, 14)] // goto
[51, 07, (07, 19)] // 25
[10, , (07, 21)] // ENTER
[51, 14, (08, 01)] // 45
[63, , (08, 04)] // let
[41, 06, (08, 08)] // a
[11, , (08, 10)] // =
[41, 12, (08, 12)] // b
[10, , (08, 13)] // ENTER
[51, 15, (09, 01)] // 50
[65, , (09, 04)] // goto
[51, 07, (09, 09)] // 25
[10, , (09, 11)] // ENTER
[51, 04, (10, 01)] // 55
[63, , (10, 04)] // let
[41, 06, (10, 08)] // a
[11, , (10, 10)] // =
[22, , (10, 12)] // -
[51, 08, (10, 13)] // 1
[10, , (10, 14)] // ENTER
[51, 10, (11, 01)] // 60
[64, , (11, 04)] // print
[41, 06, (11, 10)] // a
[10, , (11, 11)] // ENTER
[51, 16, (12, 01)] // 65
[67, , (12, 04)] // END
[03, , (12, 07)] // ETF