Exercícios Resolvidos de Containers e iterators

Ver Teoria

Enunciado

Faça um programa que preencha um vetor com 10 números reais, calcule e mostre a quantidade de números negativos e a soma dos números positivos desse vetor.

Passo 1

E ai, lets vamo!

Para essa questão nós vamos utilizar os vectors, então já vamos começar incluindo os cabeçalhos necessários:

Seguindo em frente, vamos pra função m a i n (   ) , onde vamos declarar as variáveis que vamos precisar.

Vamos precisar de um vector com 10 espaços que armazene os valores inseridos pelo usuário. Uma boa dica é sempre declarar um iterator junto com um vector, então vamos declarar um iterator também.

Para declarar um vector com tamanho definido a gente faz assim:

v e c t o r < t i p o > n o m e V e c t o r   (   t a m a n h o   )

E para declarar um iterator nós usamos o seguinte comando:

v e c t o r < t i p o > ∷ i t e r a t o r   n o m e I t e r a t o r

A questão pede que o vector receba números reais, então o tipo deve ser d o u b l e .

O objetivo da questão é que a contabilize a quantidade de números negativos foram inseridos no vetor, e que some todos os números positivos inseridos no vetor. Então vamos criar duas variáveis que sejam capazes de armazenar esses valores:

Passo 2

O próximo passo é pedir pro usuário inserir os valores no vector. Vamos precisar de um laço for que que inicie no começo do vector e aumente de um em um até o final do vector. Pra isso podemos utilizar o iterator i t e r e os métodos v e c t . b e g i n (   ) e v e c t . e n d (   ) para determinar o ponto de início e fim do loop:

Dentro do loop vamos usar o c o u t para pedir que o usuário insira um valor. E com o c i n vamos guardar o valor inserido dentro do vector. Lembre-se que um iterator é, na verdade, um ponteiro que aponta pras posições do vector. Então, podemos usar o iterator para inserir o valor digitado no local de memória apropriado.

E não acaba por aqui. Nós podemos aproveitar que já estamos dentro de um loop e contabilizar a quantidade de negativos e somar os valores positivos!

Pra isso vamos precisar de uma estrutura i f - e l s e que testa se o número é negativo ou positivo. Se for negativo, então a variável q t d N e g a t i v o s aumenta mais um. Se for positivo, então a gente soma o valor inserido com os demais dentro da variável s o m a P o s i t i v o s , neste caso, lembre-se que podemos usar o iterator para acessar o local de memória em que o valor está armazenado.

Em resumo, a cada iteração do loop, o valor inserido pelo usuário é armazenado em um endereço de memória do vector v e c t , linhas 15 a 17. Em seguida, se o número for negativo a contagem de negativos aumenta, linhas 18 e 19. Se o número for positivo, somamos ele com os demais positivos, linhas 20 e 21. Em seguida, o loop é finalizado

Passo 3

Por fim, pra terminar a questão, é só a gente imprimir pro usuário a quantidade de números negativos, e a soma dos números positivos:

E finalizamos o programa!

Resposta