• Matéria: Informática
  • Autor: Jamesjra
  • Perguntado 6 anos atrás

Calcule a quantidade de números pares e ímpares, a média de valores pares e a média geral dos números lidos. O número que encerrará a leitura será zero.


thiagopokem: Qual é a linguagem?
Jamesjra: em phyton

Respostas

respondido por: thiagopokem
2

Resposta:

Talvez não tenha ficado a melhor coisa, não conheço nada de phyton fiquei apanhando aqui para usar a sintaxe de escrita dele, mas lógica se aplica a qualquer linguagem, o código abaixo faz exatamente o que você queria:

pares = 0

impares = 0

mediaPares = 0

mediaGeral = 0

nDigitado = int(input())

while nDigitado != 0:

   if nDigitado % 2 == 0:

       pares += 1

       mediaPares += nDigitado

   elif nDigitado % 2 == 1:

       impares += 1

   mediaGeral += nDigitado

   nDigitado = int(input())

if pares != 0:

   mediaPares /= pares

if mediaGeral != 0:

   mediaGeral /= (pares + impares)

print("Total de números pares: ", pares)

print("Total de números ímpares: ", impares)

print("Média geral = ", mediaGeral, " Média pares = ", mediaPares)

Explicação:

Primeiro criei 5 variáveis, dentre elas uma para armazenar a quantidade de números pares, outra para os números ímpares. Criei também um para mediaPares e outra para mediaGeral, inicialmente eles só vão adicionar o que o usuário digitar e ao fim será feito a conta da média.

Por fim a variável nDigitado que vai armazenar o número digitado, com isso eu coloquei logo de cara uma leitura para que o usuário digitasse um valor e para que este fosse armazenado na variável nDigitado, lembrando que input() retorna o tipo texto e nesse caso nós queremos o tipo numérico, por isso fiz a conversão int(input()), ficando:

nDigitado = int(input())

Com isso criei um laço de repetição do tipo while() e coloquei como condição para que ele seja executado que nDigitado seja diferente(!=) de 0:

while nDigitado != 0:

Isso fará com que o laço pare quando o usuário digitar 0, e vai servir também para verificar se o valor digitado na linha de cima também não foi 0.

A partir disso nós usamos o pulo do gato para descobrir quais números são pares e quais são ímpares, para isso vamos fazer uma operação utilizando o operador mod, que tem o mesmo símbolo de porcentagem(%), ele calcula o resto da divisão e veja só, todo número par divido por 2 tem resto 0 e todo número ímpar dividido por 2 tem resto 1, com isso criamos a condição:

if nDigitado % 2 == 0:

Ou seja, quando o resto da divisão for zero, que é o caso se ele for par, o programa vai executar um comando específico. Que nada mais é do que somar +1 a variável pares

pares += 1  (é o mesmo que pares = pares + 1)

E depois somamos a variável mediaPares o valor que foi digitado pelo usuário, ao final esse valor será dividido pela variável pares, para que deste modo possamos saber qual é a media dos números pares, isso ocorrerá mais a frente por enquanto vamos só somar nDigitado a mediaGeral:

mediaPares += nDigitado (é o mesmo que mediaPares = mediaPares + nDigitado)

Agora abaixo da estrutura do if vamos criar um elif para ver se o número digitado é ímpar, lembrando que % é o operador que calcula o resto e todo o número ímpar dividido por 2 tem resto 1, então temos que:

elif nDigitado % 2 == 1:

E dentro deles somares +1 a quantidade de valores ímpares, que é armazenado na variável impares:

impares += 1 (mesmo que impares = impares + 1)

E só isso já que não teremos a média dos números ímpares, abaixo do elif agora basta colocar que mediaGeral recebe o valor que já havia nele + o número digitado pelo usuário:

mediaGeral += nDigitado

E por fim dentro do while colocamos novamente o comando de leitura e o porquê disso? É que colocando ao final o laço obrigatoriamente terá que voltar ao começo e checar a condição e se o usuário digitar 0 ele para o laço. Esse comando será feito dá mesma forma que foi feito antes, utilizando o input() com uma conversão para int: int(input())

nDigitado = int(input())

Pronto é só isso dentro do laço while agora fora dele vamos calcular a média dos números pares e a média geral. Começando pelos pares, basta pegar a variável mediaPares e dividi-la pela quantidade de números pares, que está armazenado na variável pares ficando:

if pares != 0:

 mediaPares /= pares (mesmo que mediaPares = mediaPares / pares)

DETALHE: Coloquei um if pares != 0: antes porque números divididos por 0 dão erro dentro do Phyton, mesma coisa com o debaixo só que nele verifiquei se mediaGeral é diferente(!=) de 0.

Depois para a média geral precisamos dividir média geral pela soma da quantidade de números pares e ímpares, para tal é importante isolar essa operação com parênteses, pois esta deverá ser executada primeiro  

(pares + impares)

Ao final temos que:

if mediaGeral != 0:

  mediaGeral /= (pares + impares)

Pra fechar com chave de ouro apenas coloquei algumas mensagens e concatenei com variáveis para que estas aparecessem no console :D

print("Total de números pares: ", pares)

print("Total de números ímpares: ", impares)

print("Média geral = ", mediaGeral, " Média pares = ", mediaPares)


Jamesjra: vlw mano sz
Perguntas similares