Se N é um inteiro positivo grande, então E é uma boa aproximação para o número N=1 (base do logaritmo natural). Escreva um programa que, dado um valor positivo pequeno P (por exemplo, 0.0001), calcula o valor de E para valores consecutivos de N , começando com . 0 programa deve parar o cálculo quando duas aproximações consecutivas para E diferem em menos do que P. O programa deve imprimir apenas a última aproximação para E que foi calculada e o valor de N usado neste cálculo.

Passo 1

O enunciado pede um programa que aproxima o número e usando a sequência EN = l(1 + 1/Nr)^N, parando quando duas aproximações consecutivas diferirem em menos do que um parâmetro de precisão P. Vamos usar laços e uma condição de parada baseada em diferença absoluta.
A teoria é que limNtoinfty l(1 + 1/Nr)^N = e. Para implementar, guardamos a aproximação anterior Eprev e, em cada iteração, calculamos Ecurr e testamos se
l|Ecurr - Eprevr| < P
Se a condição for satisfeita, paramos.

Passo 2

Inicialize as variáveis:
– Leia o valor de precisão P.
– Defina N = 1.
– Calcule
Eprev = l(1 + 1/Nr)^N
como primeira aproximação.

Passo 3

Faça um laço infinito (ou até condição de parada) que:
  1. Incrementa N em 1.
  2. Calcula
Ecurr = l(1 + 1/Nr)^N
  1. Verifica se
l|Ecurr - Eprevr| < P
– Se sim, sai do laço.
– Caso contrário, atualiza Eprev = Ecurr e repete.

Passo 4

Ao sair do laço, imprima apenas a última aproximação Ecurr e o valor de N que garantiu a precisão desejada.

Resposta

Pseudocódigo do programa:
leia P
inicialize N = 1 e
Eprev = l(1 + 1/Nr)^N
enquanto verdadeiro:
incremente N N + 1
calcule
Ecurr = l(1 + 1/Nr)^N
se Eprev Ecurr então
pare
senão
Ecurr
imprima N e

Exercícios relacionados