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 + (3 * k2 + 3 * k + 1), sendo k = 1, 2, 3, ..., 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 8 27 64 125. 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 + (3 * 1 * 1 + 3 * 1 + 1) = 8
y3 = y2 + (3 * 2 * 2 + 3 * 2 + 1) = 27
y4 = y3 + (3 * 3 * 3 + 3 * 3 + 1) = 64
y5 = y4 + (3 * 4 * 4 + 3 * 4 + 1) = 125

 

Programa em Simpletron Machine Language que apresenta os n primeiros termos da sequência yk+1 = yk + (3 * k2 + 3 * k + 1), sendo k = 1, 2, 3, ..., n e y1 = 1
PosiçãoPalavraInstrução
00+1024read N
01+2024load N
02+4119branch negative to 19
03+4219branch zero to 19
04+2023load 3
05+3326multiply K
06+2125store A
07+3326multiply K
08+3025add A
09+3022add 1
10+3027add Y
11+2127store Y
12+1127write Y
13+2026load K
14+3022add 1
15+2126store K
16+3124subtract N
17+4104branch negative to 04
18+4300halt
19+1121write -1
20+4300halt
21-0001constant -1
22+0001constant 1
23+0003constant 3
24+0000variable N
25+0000variable A
26+0000variable K
27+0000variable Y
Welcome to Simpletron!