(a) Desenvolva um programa que recebe um número inteiro (N) digitado pelo usuário e seja impresso na tela a soma de todos os números inteiros de 1 até N . Exemplo: se o usuário digita 6 , o programa deverá exibir 21, pois
.
(b) Escreva o algoritmo corresponde do programa do item (a) utilizando somatório.
(c) Reescreva o programa o item (a) de forma que seja exibida ao usuário a soma. Exemplo: se o usuário digitar 7, o programa deverá exibir
.
(b) Escreva o algoritmo corresponde do programa do item (a) utilizando somatório.
(c) Reescreva o programa o item (a) de forma que seja exibida ao usuário a soma. Exemplo: se o usuário digitar 7, o programa deverá exibir
Passo 1
O enunciado contém três pedidos distintos:
(a) Desenvolver um programa que receba um número inteiro digitado pelo usuário e imprima a soma de todos os inteiros de
até
. Exemplo dado: se o usuário digita
, o programa deve exibir
, porque
.
(b) Escrever o algoritmo correspondente do item (a) utilizando somatório (notação de soma).
(c) Reescrever o programa do item (a) de forma que seja exibida ao usuário a soma no formato explícito de adição, por exemplo, se o usuário digitar , o programa deverá exibir “1 + 2 + 3 + 4 + 5 + 6 + 7 = 28”.
(a) Desenvolver um programa que receba um número inteiro
(b) Escrever o algoritmo correspondente do item (a) utilizando somatório (notação de soma).
(c) Reescrever o programa do item (a) de forma que seja exibida ao usuário a soma no formato explícito de adição, por exemplo, se o usuário digitar
Informações relevantes fornecidas:
- Entrada: um número inteiro
(digitado pelo usuário). - Saídas esperadas: (a) um número que é a soma
; (b) expressão em somatório e/ou fórmula fechada; (c) uma string mostrando a sequência “1 + 2 + … + N = resultado”. - Exemplos:
; exibir “1 + 2 + 3 + 4 + 5 + 6 + 7 = 28”.
Passo 2
Escolha do método (explicação breve e empática): temos duas maneiras naturais de fazer o programa do item (a):
- Método básico (mais intuitivo): somar usando um laço (loop) acumulador — é direto e fácil de implementar e entender na prova.
- Método fechado (mais eficiente): usar a fórmula do somatório
— rápido e sem loop.
Como estamos estudando do zero e a prova costuma aceitar ambos, eu vou explicar os dois: primeiro o método por loop (mais básico) passo a passo — porque é o que você consegue aplicar sem pensar demais — e depois a forma com somatório para o item (b) e para otimizar.
Passo 3
Entendendo o método por acumulação (loop): ideia simples e didática.
- Precisamos de uma variável acumuladora que guarde a soma parcial enquanto percorremos os inteiros de
até . - Inicializamos a soma com
porque antes de somar nada a soma parcial é zero. - Em cada passo do laço (para cada
de a ) fazemos: soma := soma + . - Ao final do laço, a variável soma contém
.
Explicando variáveis (sem jargões):
-
: número inteiro de entrada dado pelo usuário. - soma: variável que guarda o total acumulado. Começa em
e vai crescendo. -
: variável do laço que representa o inteiro atual que estamos adicionando.
Passo 4
Pseudocódigo detalhado do método por loop (muito prático para a prova):
- Ler
(certificar que é inteiro; é comum na prova assumir , mas podemos validar). - Se
então definir soma := e exibir uma mensagem (opcional); vou assumir que queremos somar de até apenas quando . - Inicializar soma :=
. - Para
de até faça: - soma := soma +
- soma := soma +
- Exibir soma.
Vou explicar cada linha do pseudocódigo com calma para você entender:
- "Ler
" significa pegar o número digitado. - "Inicializar soma :=
" é obrigatório para não começar com lixo. - "Para
de até " é o laço que percorre todos os inteiros. - "soma := soma +
" atualiza a soma parcial; é a operação fundamental. - No final, “Exibir soma” mostra o resultado pedido no item (a).
Passo 5
Exemplo prático do método por loop, com
, mostrando todas as etapas (para você poder replicar na prova):
- Inicialmente: soma =
- k =
: soma := - k =
: soma := - k =
: soma := - k =
: soma := - k =
: soma := - k =
: soma :=
Resultado final: soma =. Viu como é mecânico? É só repetir a operação de adicionar o próximo inteiro.
Passo 6
Implementação em Python do item (a) com validação mínima e comentários explicativos (cada passo explicado acima corresponde a uma linha do código). Esse código é exatamente o que você pode escrever numa prova prática ou usar como referência quando pedir um programa.
# Programa (a): soma de 1 até N usando loop
N = int(input("Digite um número inteiro N: ")) # lê N
if N < 1:
print("Para N < 1, a soma de 1 até N é 0 (ou verifique entrada).")
else:
soma = 0
k = 1
while k <= N:
soma = soma + k
k = k + 1
print(soma)
Explicação linha a linha (resumida):
- Lê
. - Se
, trata caso fora do escopo (opcional). - Usa um laço while que soma cada
de a . - Exibe o valor final de soma.
Passo 7
Item (b): notação de somatório e derivação da fórmula fechada — aqui vem a “aula” matemática curta e prática.
Notação do somatório:
lê-se "a soma, para
de
até
, de
".
Derivação da fórmula fechada (truque de Gauss, passo a passo):
- Escreva a soma na ordem crescente:
- Escreva a mesma soma na ordem decrescente:
- Some as duas expressões termo a termo; cada coluna soma
. Há colunas, então:
- Portanto:
- Dividindo por
:
Conclusão: a soma do item (a) pode ser obtida diretamente por
Passo 8
Como usar a fórmula no programa (opção sem loop): para economizar tempo de execução e na prova quando quiser justificar rapidamente:
- Basta calcular
com operações aritméticas inteiras (cuidar para não perder precisão em linguagens com divisão real — usar divisão inteira quando apropriado).
Exemplo em Python (sem laço):
# Versão usando a fórmula (sem loop)
N = int(input("Digite um número inteiro N: "))
if N < 1:
print(0)
else:
soma = N * (N + 1) // 2 # // para divisão inteira exata em Python
print(soma)
Passo 9
Item (c): exibir a soma de forma explícita “1 + 2 + 3 + … + N = resultado”. Estratégia prática:
- Gerar a sequência de termos
em formato de texto. - Unir esses termos com o separador " + " para formar a parte esquerda da expressão.
- Calcular a soma (pelo método por loop ou pela fórmula) e concatenar " = resultado".
- Imprimir a string final.
Detalhes de implementação (para prova ou programação):
- Em Python usamos compreensão de lista e ‘join’ para montar a parte esquerda.
- Para
podemos decidir exibir “0” ou uma mensagem. Vou exibir a expressão vazia seguida de “= 0” se .
Passo 10
Código Python completo para o item (c) (exibe a expressão):
# Programa \text{(c)}: exibe "1 + 2 + ... + N = resultado"
N = int(input("Digite um número inteiro N: "))
if N < 1:
print("= 0")
else:
termos = [str(i) for i in range(1, N+1)] # cria lista de "1","2",...,"N"
esquerda = " + ".join(termos) # junta com ' + '
soma = N * (N + 1) // 2 # usa a fórmula (rápido)
print(f"{esquerda} = {soma}")
Exemplo com
: a lista de termos é
, a string esquerda vira
"1 + 2 + 3 + 4 + 5 + 6 + 7", e o programa exibe:1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
Passo 11
Observações finais de prova e dicas motivacionais (curtas e úteis):
- Se for cobrada justificativa teórica, escreva a derivação de Gauss como em Passo 7 — é rápida e elegante.
- Se for pedida implementação, o loop é fácil de justificar passo a passo; a fórmula é mais eficiente (complexidade constante).
- Valide se a entrada pode ser negativa; combine com seu professor o comportamento desejado.
- Você já consegue fazer isso de cabeça e explicar na prova: inicia soma em
, percorre até somando, ou aplica . Tá dominado — respira, você consegue!
Resposta
(a) Programa em Python (soma usando loop):
N = int(input("Digite um número inteiro N: "))
if N < 1:
print("Para N < 1, a soma de 1 até N é 0 (ou verifique entrada).")
else:
soma = 0
k = 1
while k <= N:
soma = soma + k
k = k + 1
print(soma)
(b) Algoritmo em notação de somatório e fórmula fechada:
(c) Programa em Python que exibe a expressão “1 + 2 + … + N = resultado”:
N = int(input("Digite um número inteiro N: "))
if N < 1:
print("= 0")
else:
termos = [str(i) for i in range(1, N+1)]
esquerda = " + ".join(termos)
soma = N * (N + 1) // 2
print(f"{esquerda} = {soma}")