Construa um algoritmo para computar x^{n}, em que x é um número real e n é um número inteiro. [Dica: Primeiro forneça um procedimento para computar x^{n} quando n for um número não negativo por sucessivas multiplicações por x, começando com 1. Então, estenda este procedimento e use o fato de que x^{-n}=1 / x^{n} para computar x^{n} quando n for negativo.]

Passo 1

O problema pede um algoritmo que receba um número real x e um inteiro n e devolva x^n. O conteúdo é potência de inteiro aplicado a reais. Vamos usar duas ideias:
  1. Para n\ge0, computar por multiplicações sucessivas, começando de 1.
  2. Para n<0, usar que
x^{-n} \;=\;\frac{1}{x^n}\,.

Passo 2

Procedimento para o caso não-negativo n\ge0:
— Inicializamos uma variável \text{resultado} com 1.
— Em seguida, repetimos n vezes a operação \text{resultado}\leftarrow \text{resultado}\times x.
— No fim, \text{resultado} conterá exatamente x^n.

Passo 3

Extensão para o caso negativo n<0:
— Primeiro calculamos x^{-n} usando o mesmo procedimento de multiplicação em sucessão para -n>0.
— Depois retornamos o inverso, isto é, \tfrac1{x^{-n}} = x^n.

Passo 4

Agora juntamos tudo num único pseudocódigo:
funcao potencia x, n:
 se n \ge 0 entao
  atribua \text{resultado} = 1
  para i de 1 até n faca
   atribua \text{resultado} = \text{resultado} \times x
  retorne \text{resultado}
 senao
  retorne \displaystyle\frac{1}{\text{potencia}(x,\,-n)}

Resposta

funcao potencia x, n:
 se n \ge 0 entao
  atribua \text{resultado} = 1
  para i de 1 até n faca
   atribua \text{resultado} = \text{resultado} \times x
  retorne \text{resultado}
 senao
  retorne \displaystyle\frac{1}{\text{potencia}(x,\,-n)}

Exercícios de Livros Relacionados