Seção 5.2–5.3 — Acumulando valores e interrompendo repetições
Nem só de contadores precisamos. Em programas para calcular o total de uma soma, precisaremos de acumuladores. A diferença entre um contador e um acumulador é que nos contadores o valor adicionado é constante e, nos acumuladores, variável.
Vejamos um programa que calcula a soma de 10 números digitados pelo usuário. Nesse caso, soma é o acumulador e n é o contador:
Diferentemente de n, que recebe 1 a cada passagem, a variável soma é adicionada do valor digitado pelo usuário. O incremento de soma não é constante — ela acumula os valores digitados a cada repetição.
Vejamos um programa que calcula a média de cinco números digitados:
A média aritmética é (n1 + n2 + n3 + n4 + n5) / 5. Em vez de usar cinco variáveis separadas, acumulamos os valores em soma conforme são lidos.
💡 Acumuladores são muito úteis quando não sabemos ou não conseguimos obter o total da soma pela simples multiplicação de dois números. No cálculo da média, o valor de n pode ser diferente a cada vez que o usuário digitar um valor.
Embora muito útil, a estrutura while só verifica sua condição de parada no início de cada repetição. Às vezes, é interessante poder terminar o while de dentro do bloco.
A instrução break é utilizada para interromper a execução do while independentemente do valor atual de sua condição. Vejamos um programa que lê valores e os soma até que o usuário digite 0:
Substituímos a condição do while por True, tornando-o infinito. A instrução break só é ativada dentro do if, quando v vale zero. Enquanto v for diferente de zero, a repetição continua somando v a s.
💡 O break transfere imediatamente a execução para a primeira linha após o bloco do while. É especialmente útil quando a condição de parada só pode ser verificada dentro do laço, e não no início.
Escreva um programa que pergunte o depósito inicial e a taxa de juros de uma poupança. Exiba os valores mês a mês para os 24 primeiros meses. Escreva o total ganho com juros no período.
Altere o programa anterior de forma a perguntar também o valor depositado mensalmente. Esse valor será depositado no início de cada mês, e você deve considerá-lo para o cálculo de juros do mês seguinte.
Escreva um programa que pergunte o valor inicial de uma dívida e o juro mensal. Pergunte também o valor mensal que será pago. Imprima o número de meses para que a dívida seja paga, o total pago e o total de juros pago.
Escreva um programa que leia números inteiros do teclado. O programa deve ler os números até que o usuário digite 0 (zero). No final da execução, exiba a quantidade de números digitados, assim como a soma e a média aritmética.