Exercícios Resolvidos de Estruturas de Repetição: while e do-while

Ver Teoria

Enunciado

Dada a seguinte série:

S N = ∑ i = 0 N r i

Onde: r é um número real qualquer e N é um número natural.

Faça um programa que receba o valor de N e o valor de r e imprima todos os membros do somatório, e diga qual é o resultado da soma.

Por exemplo. Pra N = 3 e r = 0.5 a saída deve ser:

Passo 1

Sigam-me os bons!

De cara, da pra ver que nessa questão vamos precisar de matemática. Então já vamos começar inserindo o cabeçalho < c m a t h >

Belezinha. Vamos então analisar a questão. O usuário vai informar o número N desta série:

S N = ∑ i = 0 N r i

Para imprimir uma quantidade desconhecida de termos a gente pode usar um loop de iteração. Nesse caso vamos usar o loop w h i l e .

Vamos dar uma olhada no exemplo de saída que a questão traz. A gente pode pensar que essa saída pode ser dividida em três partes:

Imagine se a gente tivesse uma grande quantidade de números:

Note que as partes circuladas em azul são sempre um número seguido de um sinal de adição. Já as partes circuladas de verde, o início e fim da expressão, não são escritos de forma repetitiva.

Isso indica pra gente que as partes em verdes a gente vai escrever direto no código. E pra parte em azul a gente vai utilizar um loop w h i l e

Passo 2

Mas antes, vamos pensar quais variáveis serão necessárias.

Se vamos usar um loop w h i l e então precisaremos de uma variável inteira de iteração, que vou chamar de i . Também vamos precisar de uma variável inteira N que indica a quantidade de termos da sequência. Note que esses valores serão sempre positivos, então podem ser do tipo u n s i g n e d   i n t .

Para executar a série vamos precisar do valor de r , que será dado pelo usuário. E também vamos precisar de uma variável para guardar o valor do somatório, chamada s o m a . Essas duas variáveis podem assumir quaisquer valores reais, e por isso devem ser do tipo d o u b l e .

Vamos inicializar todas as variáveis com valor 0 .

Já vamos aproveitar para receber os valores do usuário. Usando c o u t e c i n iremos receber as variáveis r e N

Passo 3

Agora vamos dar vida a nossa série de potência.

Como vimos, a primeira parte dessa série não é uma estrutura repetível, então vamos escrever diretamente a frase: “ S _ ” e imprimir o valor de N :

Passo 4

Agora vamos entrar no nosso laço. A estrutura w h i l e vai começar com i = 0 (que inicializamos no momento que criamos a variável), e vai durar enquanto i for menor do que N :

Dentro do laço vamos efetuar três atividades.

A primeira é calcular a soma dos termos. Pra isso a gente considera o valor já existente da variável soma e adiciona o termo r i .

s o m a = s o m a + p o w ( r , i )

A segunda atividade é imprimir o valor atual da série. Ou seja, vamos imprimir o valor de r i . Não é necessário usar o e n d l pois queremos que tudo seja impresso em uma única linha.

E a terceira atividade antes de fechar o laço é atualizar a variável de iteração i .

Passo 5

O loop está concluindo, mas lembre-se, o nosso loop foi só até N - 1 , ou seja, ainda falta somar r n no momento que n = N .

E por fim, precisamos adicionar a exibição da última parcela da série, e o resultado final.

E pronto. Questão finalizada!

Resposta