Informática, perguntado por bmax1997, 10 meses atrás

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

Respondido por GeBEfte
4

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.

Anexos:

bmax1997: Cara, me ajuda nas outras 3 questões, Por favor!
Perguntas interessantes