Defina um conjunto de instruções para o Computador Simplificado (CS) realizar a operação pot( ), ou seja, calcular o valor de x elevado na y. Considere que a máquina de calcular do CS possui apenas as quatro operações aritméticas básicas e que y . Os valores de x e y são lidos da bandeja de cartões (nesta ordem) e apenas o resultado final da operação deve ser impresso.
Passo 1
Beleza, o enunciado pede pra gente escrever um “programa” para o Computador Simplificado (CS) que leia dois números, e , e calcule usando só soma, subtração, multiplicação e divisão. Isso é conteúdo de programação de baixo nível (instruções, registradores, laços). A gente vai precisar entender o que é potência (repetição de multiplicações) e como montar um loop no CS.
Passo 2
Antes de mais nada, o que é ?
Por definição:
Então, pra calcular x^y num CS que não tem instrução direta de potência, a gente faz um loop que multiplica por x, y vezes.
Passo 3
Vamos usar quatro registradores do CS:
• R0 para guardar x
• R1 para guardar y
• R2 para acumular o resultado (vai começar em 1)
• R3 como contador do loop
O plano é:
Ler R0, R1
Inicializar R2 = 1 e R3 = R1
Enquanto R3 > 0, fazer R2 ← R2 × R0 e descontar 1 de R3
No fim, R2 tem x^y
Passo 4
Agora o código no estilo CS (pseudo-assembly), com comentários:
READ R0 ; lê x
READ R1 ; lê y
LOAD R2, 1 ; R2 = 1 (acumulador do resultado)
MOVE R3, R1 ; R3 = y (contador)
LOOP:
MUL R2, R0 ; R2 = R2 * R0
SUB R3, 1 ; R3 = R3 - 1
JNZ R3, LOOP ; se R3 ≠ 0, volta pra LOOP
WRITE R2 ; imprime o resultado final
HALT ; acabou
Resposta
Acima está o conjunto de instruções para o CS calcular x^y usando apenas as quatro operações básicas e um loop.