Escreva um algoritmo que calcule a soma dos números de 1 a 15.
Passo 1
O enunciado pede que eu escreva um algoritmo que calcule a soma dos números de
a
.\n
Informações dadas:
Informações dadas:
- Queremos somar todos os inteiros consecutivos começando em
e terminando em . - Ou seja, precisamos obter o valor de
. - O objetivo é apresentar um algoritmo — procedimento claro que, ao ser executado, produz essa soma.
Passo 2
Opções naturais para resolver isso (sem decidir ainda qual usar):
- Somar um a um usando um laço (loop) acumulador — método direto e muito usado em programação.
- Usar a fórmula fechada para a soma dos primeiros
inteiros , que dá o resultado em tempo constante.
Vou explicar os dois, porque ambos são úteis em prova e em programação; depois mostro qual é mais simples para este caso.
Passo 3
Método 1 — algoritmo por laço (ideia e construção):
- Ideia: percorremos os números de
até e vamos acumulando em uma variável chamada soma. - Variáveis:
n= número final da sequência (aquin = 15).soma= acumulador, começa em. i= variável de controle do laço que vai deaté n.
- Pseudocódigo (linha a linha, explicando cada passo):
- Atribuir
n := 15. Isso define até onde somamos. (.) - Atribuir
soma := 0. Começamos sem nada somado. (.) - Para
ivariando deaté nfaça:soma := soma + i. Aqui pegamos o valor atual desomae somamosi.
- No fim do laço,
somacontém a soma desejada.
- Atribuir
- Observação didática: a cada iteração o acumulador cresce; após a primeira iteração
soma = 0 + 1 = 1, depoissoma = 1 + 2 = 3, e assim por diante.
Passo 4
Simulação rápida do laço para entender (mostrar algumas iterações):
- Inicial:
. - Iteração
: . - Iteração
: . - Iteração
: . - …
- Iteração
: soma final será o valor acumulado após somar o -ésimo termo.
Fazer o laço manualmente atédá trabalho à mão, mas o computador faz isso em passos. Ainda vou calcular o resultado exato no Passo 6.
Passo 5
Método 2 — usar a fórmula fechada (ideia e demonstração curta):
- Existe uma fórmula muito conhecida para somar os primeiros
inteiros:
- Demonstração por pareamento (argumento clássico de Gauss):
- Escreva a soma na ordem crescente e na decrescente e some termo a termo:
- Somando as duas linhas termo a termo, cada coluna soma
, e há colunas:
- Dividindo por
obtemos a fórmula:
- Explicação das variáveis na fórmula:
é o número de termos (aqui ), e é a soma buscada.
Passo 6
Aplicando a fórmula para
:
Calcule passo a passo:
- Primeiro calcule
. Podemos fazer . - Depois divida por
: .
Logo a soma dos números dea é .
Passo 7
Pseudocódigos finais (práticos, prontos para usar). Vou apresentar os dois algoritmos: o por laço (mais geral) e o por fórmula (mais eficiente para inteiros consecutivos).
Algoritmo A — laço (acumulador):
n := 15soma := 0for i := 1 to n do
soma := soma + ioutput soma
Algoritmo B — fórmula (tempo constante):
n := 15soma := n*(n+1)/2output soma
Passo 8
Comparação rápida e motivação de escolha:
- Complexidade:
- Algoritmo A: faz
adições (aqui adições). Complexidade . - Algoritmo B: faz um número constante de operações (multiplicação e divisão). Complexidade
.
- Algoritmo A: faz
- Para provas e entrevistas: explicar ambos é bom. Para executar na prática, se você conhece a fórmula, use-a — é mais rápida e elegante.
- Se precisar somar uma sequência que não começa em
(por exemplo de a ), dá para adaptar a fórmula: .
Resposta
Algoritmo (laço):
Algoritmo (fórmula):
Soma final:
n := 15; soma := 0; for i := 1 to n do soma := soma + i; output somaAlgoritmo (fórmula):
n := 15; soma := n*(n+1)/2; output somaSoma final: