[duvida]Modulo 01 – Aula 08 – Exercicio 07

Home Fóruns Programação Básica [duvida]Modulo 01 – Aula 08 – Exercicio 07

Marcado: 

Visualizando 4 respostas da discussão
  • Autor
    Posts
    • #109857
      Wagner
      Participante

      Boa noite, tudo bom?

      Quando eu uso a função Matematica.arredondar, o programa adiciona 1 dígito a mais na saída.

      Exemplo: escreva(“Precisaremos de “+ Matematica.arredondar(d, 3)/2 +” litros de tinta.\n”)

      No caso acima, ele me retorna um valor de saída com 4 dígitos após a vírgula.
      Se eu reduzo para (d, 2) ele me retorna 3 dígitos após a vírgula.
      Se eu reduzir ainda para (d, 1) ele me retorna 2 dígitos após a vírgula.

      Por quê acontece isso?

      Muito obrigado.

      ==============

      programa
      {
      		
      //EXERCICIO 007 - Cálculo de Área
      	inclua biblioteca Util
      	inclua biblioteca Matematica
      	funcao inicio()
      	{
      		const inteiro a = 2
      		real b, c, d
      		escreva("{ EXERCÍCIO 007 - Pintando uma parede }\n")
      		escreva("\n")
      		escreva("Informação importante: um litro de tinta pinta 2m²\n")
      		escreva("\n")
      		Util.aguarde(1000)
      		escreva("=======================================\n")
      		escreva("\n")
      		Util.aguarde(1000)
      		escreva("Digite a largura da parede em metros: ")
      		leia(b)
      		escreva("\n")
      		Util.aguarde(1000)
      		escreva("Digite a altura da parede em metros: ")
      		leia(c)
      		d = b*c
      		escreva("\n")
      		Util.aguarde(1000)
      		escreva("Uma parede de "+ b +" por "+ c +" tem uma área de "+ d +" m²\n")
      		Util.aguarde(1000)
      		escreva("\n")
      		escreva("Precisaremos de "+Matematica.arredondar(d, 3)/2+" litros de tinta.\n")
      		Util.aguarde(1000)
      		escreva("\n")
      		escreva("=======================================\n")
      		escreva("\n")
      		
      	}
      }
    • #109911
      Tutora Jessica
      Moderador

      Ola Wagner, quais números você esta colocando?
      Pois testei e ele esta arredondando certinho.

      • #109981
        Wagner
        Participante

        Boa noite Jessica!

        Usei os valores que o Prof. Gustavo pôs no vídeo: 5.5 e 2.75.

        Interessante que aqui na versão 2.7.5 do Portugol Studio acontece isso.

    • #109982
      Wagner
      Participante

      Minuto 7:50 da Aula 08 do Modulo 01 de Programação Básica

    • #109990
      Tutora Jessica
      Moderador

      Ola Wagner me desculpa apaguei sem querer o comentário anterior.
      Então , havia colocado o valor de 5.5 e 2.5 e apareceu certo.
      Mas 2.75 é um valor quebrado, então realmente aparece 4 casas decimais após a vírgula, pois você ditou que são até 4 decimais.. seria 0,1,2,3 que no caso são 4, entendeu?
      Seu código esta funcionando igual ao exemplo do professor no vídeo do módulo 1 exercício 8.
      Caso queira que apareça menos casas decimais , você deve colocar a quantidade desejada dentro do parênteses da sua biblioteca Matemática : Matematica.arredondar(d, 3)/2.. onde esta 3 colocar menos casas, lembrando que a contagem começa do 0 .

      • #109994
        Wagner
        Participante

        Acho que entendi!

        Será que é porque o valor termina sempre em “5” que faz com que não arredonde para as casas que a gente estipular? Como se fosse uma dízima periódica?

        Se eu puser arredondar (d,0) ele arredonda pra 7.5
        Se eu puser arredondar (d,1) ele arredonda pra 7.55
        Se eu puser arredondar (d,2) ele arredonda pra 7.565
        Se eu puser arredondar (d,3) ele arredonda pra 7.5625

        Obrigado pela atenção Professora!

        Estava tentando entender a causa desse comportamento.

      • #110038
        Tutora Jessica
        Moderador

        Perfeito Wagner, isso mesmo.. tenta no código para você ver funcionando. 🖖

    • #146853
      Lucas Barbosa
      Participante

      programa
      {
      inclua biblioteca Matematica –> mat

      funcao inicio()
      {
      real preco
      escreva(” Digite aqui o preço do produto: “)
      leia(preco)
      preco = mat.arredondar(preco, 2)
      real desconto = (preco * 5)/100
      escreva(“Com 5% de desconto, o produto sai por ” + desconto )
      }
      }
      `Não está arredondando. Alguem pode me ajudar?

      • #147035
        Tutora Jessica
        Moderador

        Olá Lucas, trouxe sua duvida para um topico ja existente com a dúvida pertinente, dê uma olhada nas explicações acima e veja se consegue ajudar no seu caso.

        Caso não consiga resolver retorne ao fórum que vamos tentar te ajudar 🖖🏼

    • #109989
      Wagner
      Participante

      Usando os valores 5.5 e 2.75 acontece de não arredondar. :\

      Será que é bug do programa?

      tela do bug

      A versão que está instalada é a 2.7.5 de 27 de novembro de 2020.

    • #109993
      Tutora Jessica
      Moderador

      Ola Wagner me desculpa apaguei sem querer o comentário anterior.
      Então , havia colocado o valor de 5.5 e 2.5 e apareceu certo.
      Mas 2.75 é um valor quebrado, então realmente aparece 4 casas decimais após a vírgula, pois você ditou que são até 4 decimais.. seria 0,1,2,3 que no caso são 4, entendeu?
      Seu código esta funcionando igual ao exemplo do professor no vídeo do módulo 1 exercício 8.
      Caso queira que apareça menos casas decimais , você deve colocar a quantidade desejada dentro do parênteses da sua biblioteca Matemática : Matematica.arredondar(d, 3)/2.. onde esta 3 colocar menos casas, lembrando que a contagem começa do 0 .

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