Programação em Python 3: Escreva um programa que receba como entrada dois números inteiros e retorne a soma dos números positivos no intervalo definido por eles, considerando inclusive os extremos. Obs: o intervalo pode ser crescente ou decrescente. Formato de entrada: Dois números inteiros Dica: os números podem ser informados em qualquer ordem (não necessariamente o primeiro será menor que o segundo) Formato de saída: Um número inteiro.
Soluções para a tarefa
O programa pode ser conferido abaixo e, também, anexado junto alguns exemplos de funcionamento.
Esta, claro, não é uma solução única, ou mais completa, ou mais compacta etc. Há diferentes formas de se resolver o mesmo problema, inserindo uma validação de dados ou tratamento de exceções, por exemplo.
Depois do código comento um pouco do que foi feito.
Obs.: Os pontos que precedem as linhas estão aí para garantir a indentação do código.
n1=int(input('Digite um dos limites do intervalo: '))
n2=int(input('Digite o outro limite do intervalo: '))
if n1<=n2:
.....lmenor=n1
.....lmaior=n2
else:
.....lmenor=n2
.....lmaior=n1
acumulador=0
for c in range(lmenor,lmaior+1):
.....if c>0:
..........acumulador+=c
print(f'A soma dos inteiros positivos no intervalo [{lmenor} , {lmaior}] vale {acumulador}')
Comentários:
--> Começamos o código lendo os limites com uma função input(). Na mesma linha também utilizamos a função int() para converter os dados lidos de string para inteiro.
--> Após a leitura, utilizamos uma estrutura condicional para ver qual valor digitado é o menor (guardado na variável lmenor) e qual é o maior (guardado na variável lmaior).
Note ainda que, nesse programa, caso passemos limites iguais, será considerado que o intervalo só possui aquele valor.
--> A variável acumulador é inicializada com 0, utilizaremos para guardar o valor da soma dos numero positivos do intervalo.
--> Um laço for será responsável por percorrer todos valores no intervalo.
Note que, por uma particularidade da função range(), o segundo limite deve ser incrementado para que seja considerado
--> Dentro do for, utilizamos um condicional, caso um valor no intervalo (c) seja positivo (c>0), este será somado ao valor guardado no acumulador.
--> No fim, utilizamos um print() formatado para informar ao usuário os limites digitados e a soma dos valores positivos.