• Matéria: Informática
  • Autor: EvangelineSamos
  • Perguntado 4 anos atrás

python: Faça uma função que receba dois números positivos por parâmetro e retorne a soma dos n números inteiros existentes entre eles

Respostas

respondido por: GeBEfte
3

A função que será apresentada a seguir, aceita apenas valores numéricos positivos (inteiros ou fracionários). Como nada foi especificado no enunciado, optou-se por retornar o valor 0 no caso de serem apresentados valores negativos à função.

Vamos ver como fica a função e, posteriormente, deixo mais alguns comentários sobre o código.

[Python 3.8]

\sf from~ math~ import~ floor,~ ceil\\\\de f~ soma\underline{~}int(a, b):\\~~~~  soma = 0\\\\~~~~  if~ a<0~ or~ b<0:\\~~~~~~~~    return~ 0\\\  ~~~~if~ a~ <=~ b:\\    ~~~~~~~~a~ =~ floor(a)\\    ~~~~~~~~b~ =~ ceil(b)\\  ~~~~elif~ a~ >~ b:\\    ~~~~~~~~aux~ =~ a\\    ~~~~~~~~a~ =~ floor(b)\\    ~~~~~~~~b~ =~ ceil(aux)\\  \\  ~~~~for~ i~ in~ range(a+1,~ b):\\    ~~~~~~~~soma~ +=~ i\\  ~~~~return~ soma\\

Comentários

--> Note que utilizamos duas funções da biblioteca math, a função floor() "força" o arredondamento de um número para baixo, já ceil(), "força" o arredondamento para cima. Essas funções são utilizadas para que possamos, dentro da solução encontrada, utilizar a função range() que apenas aceita valores inteiros.

--> A computação dos inteiros utiliza um laço for para iterar na sequencia de valores inteiros criada pela função range(), sendo que a variável 'soma' é incrementada com esses inteiros.

--> Observe que, nesta resolução, a função garante a possibilidade de apresentarmos os parâmetros em ordem crescente ou decrescente, ou seja, não importa a ordem na qual passamos os limites do intervalo.

Fazemos isso com auxílio de uma estrutura condicional, caso o valor guardado em "a" seja maior que o guardado em "b", efetuamos a comutação desses valores, assim o que estava em "a" vai para "b" e vice-versa.

Para testar a função, abaixo seguem algumas sugestões:

print(soma_int(0, 5))

print(soma_int(7, 2))

print(soma_int(3, 3))

print(soma_int(1.77, 8.01))

print(soma_int(11.99, 12.01))

print(soma_int(-1, 7))

print(soma_int(-5, -9))

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio


EvangelineSamos: Muito obg pela ajuda!
GeBEfte: tranquilo :)
Perguntas similares