Construa um algoritmo para computar
, em que
é um número real e
é um número inteiro. [Dica: Primeiro forneça um procedimento para computar
quando
for um número não negativo por sucessivas multiplicações por
, começando com 1. Então, estenda este procedimento e use o fato de que
para computar
quando
for negativo.]
Passo 1
O problema pede um algoritmo que receba um número real
e um inteiro
e devolva
. O conteúdo é potência de inteiro aplicado a reais. Vamos usar duas ideias:
- Para
, computar por multiplicações sucessivas, começando de 1. - Para
, usar que
Passo 2
Procedimento para o caso não-negativo
:
— Inicializamos uma variável com
.
— Em seguida, repetimos vezes a operação
.
— No fim, conterá exatamente
.
— Inicializamos uma variável
— Em seguida, repetimos
— No fim,
Passo 3
Extensão para o caso negativo
:
— Primeiro calculamos usando o mesmo procedimento de multiplicação em sucessão para
.
— Depois retornamos o inverso, isto é, .
— Primeiro calculamos
— Depois retornamos o inverso, isto é,
Passo 4
Agora juntamos tudo num único pseudocódigo:
funcao potencia
,
:
se entao
atribua
para de
até
faca
atribua
retorne
senao
retorne
se
atribua
para
atribua
retorne
senao
retorne
Resposta
funcao potencia
,
:
se entao
atribua
para de
até
faca
atribua
retorne
senao
retorne
se
atribua
para
atribua
retorne
senao
retorne