Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Desenvolva um programa em Simpletron Machine Language, 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.

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

 

Programa em Simpletron Machine Language que apresenta os n primeiros termos da sequência yk+1 = yk + (2 * k + 1), sendo k = 1, 2, ..., n e y1 = 1
PosiçãoPalavraInstrução
00+1021read N
01+2021load N
02+4116branch negative to 16
03+4216branch zero to 16
04+2020load 2
05+3322multiply I
06+3019add 1
07+3023add Y
08+2123store Y
09+1123write Y
10+2022load I
11+3019add 1
12+2122store I
13+3121subtract N
14+4104branch negative to 04
15+4300halt
16+1118write -1
17+4300halt
18-0001constant -1
19+0001constant 1
20+0002constant 2
21+0000variable N
22+0000variable I
23+0000variable Y
Welcome to Simpletron!