Dúvidas do Exercício 036

Home Fóruns Programação Básica Dúvidas do Exercício 036

Visualizando 2 respostas da discussão
  • Autor
    Posts
    • #100038
      MARCIO PAIVA
      Participante

      Jéssica tudo bem?
      estou com mais uma dúvida.
      Como faço para o programa contabilizar dentro do comando sorteia os números e dizer como por exemplo:
      quatro números são divisíveis por três. Já fiz esses comandos: se(num_sorteado % 3 == 1){
      d++
      por um momento o programa até acertou mas em outros errou. também já fiz isso: se(num_sorteado % 3!=0){
      foi a mesma coisa da situação anterior que acabei de descrever. Depois se(num_sorteado % 3 == 1 e num_sorteado % 3!=0)
      a situação foi a mesma alguns ele acertava outras errava dizia que dois ou três números eram divisíveis por três mas quando tinha mais números
      divisíveis por três por exemplo não contabiliza totalmente.
      eis aqui o código para analise:

      programa
      {
      inclua biblioteca Util–>u

      funcao inicio()
      {
      escreva(“{EXERCÍCIO 036-Analisando números}”)
      inteiro c,n,num_sorteado,m,d
      num_sorteado = 0
      c = 1
      m = 0
      d = 0
      escreva(“\nQuantos números você vai sortear? “)
      leia(n)
      escreva(“Sorteando “+n+” números..”)
      enquanto(c<=n){
      num_sorteado = u.sorteia(1, 10)
      u.aguarde(500)
      escreva(num_sorteado+”..”)
      c++
      se(num_sorteado>5){
      m++
      }senao se(num_sorteado % 3 == 1 ){
      d++
      }

      }
      escreva(“\nDos “+n+” números sorteados “)
      escreva(m+”\nsão maiores que cinco “)
      escreva(d+”\nsão divisíveis por três “)
      }`

    • #100045
      Yuri Chaves Martins
      Participante

      Olá Marcio
      O problema está nessas linhas:
      se(num_sorteado>5){
      m++
      }senao se(num_sorteado % 3 == 1 ){
      d++
      }
      Primeiramente para um número ser divisível por 3 o resto da divisão deve ser zero. Então você quer testar a condição (num_sorteado % 3 == 0) ao invés de (num_sorteado % 3 == 1).

      Além disso, a condição (num_sorteado>5) é independente da condição (num_sorteado % 3 == 0). Isso faz com que “senao se” não seja uma boa escolha. Como o seu programa está escrito a condição “(num_sorteado % 3 == 1 )” só é testada se a condição (num_sorteado>5) for falsa. Uma maneira de corrigir isso é voce utilizar dois testes “se” independentes.

      Por exemplo
      se(num_sorteado>5) {
      m++
      }
      se (num_sorteado % 3 == 0 ){
      d++
      }

    • #100099
      MARCIO PAIVA
      Participante

      Yuri chaves muito obrigado pela ajuda, me ajudou muito valeu.

Visualizando 2 respostas da discussão
  • Você deve fazer login para responder a este tópico.