Desenvolva um programa em Simpletron Machine Language, que apresente a média de 2 * k, sendo k = 1, 2, ..., n. 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 o valor 6, ou seja, ((2 * 1) + (2 * 2) + (2 * 3) + (2 * 4) + (2 * 5)) / 5. 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.
| Posição | Palavra | Instrução |
|---|---|---|
| 00 | +1022 | read N |
| 01 | +2022 | load N |
| 02 | +4118 | branch negative to 18 |
| 03 | +4218 | branch zero to 18 |
| 04 | +2124 | store M |
| 05 | +3321 | multiply 2 |
| 06 | +3023 | add S |
| 07 | +2123 | store S |
| 08 | +2022 | load N |
| 09 | +3020 | add -1 |
| 10 | +2122 | store N |
| 11 | +4213 | branch zero to 13 |
| 12 | +4005 | branch to 05 |
| 13 | +2023 | load S |
| 14 | +3224 | divide M |
| 15 | +2123 | store S |
| 16 | +1123 | write S |
| 17 | +4300 | halt |
| 18 | +1120 | write -1 |
| 19 | +4300 | halt |
| 20 | -0001 | constant -1 |
| 21 | +0002 | constant 2 |
| 22 | +0000 | variable N |
| 23 | +0000 | variable S |
| 24 | +0000 | variable M |
Welcome to Simpletron!