Defina um conjunto de instruções para o Computador Simplificado (CS) realizar a operação pot( x, y ), 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 >1. 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, x e y, e calcule x^y 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 é x^y?
Por definição:
x^y ;=;underbracextimesxtimescdotstimesx$y$ vezes
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 é:
  1. Ler R0, R1
  2. Inicializar R2 = 1 e R3 = R1
  3. Enquanto R3 > 0, fazer R2 ← R2 × R0 e descontar 1 de R3
  4. 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.

Exercícios relacionados