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
Posição | Palavra | Instrução |
---|---|---|
00 | +1021 | read N |
01 | +2021 | load N |
02 | +4116 | branch negative to 16 |
03 | +4216 | branch zero to 16 |
04 | +2020 | load 2 |
05 | +3322 | multiply I |
06 | +3019 | add 1 |
07 | +3023 | add Y |
08 | +2123 | store Y |
09 | +1123 | write Y |
10 | +2022 | load I |
11 | +3019 | add 1 |
12 | +2122 | store I |
13 | +3121 | subtract N |
14 | +4104 | branch negative to 04 |
15 | +4300 | halt |
16 | +1118 | write -1 |
17 | +4300 | halt |
18 | -0001 | constant -1 |
19 | +0001 | constant 1 |
20 | +0002 | constant 2 |
21 | +0000 | variable N |
22 | +0000 | variable I |
23 | +0000 | variable Y |
Welcome to Simpletron!