[duvida]Modulo 01 – Aula 08 – Exercicio 07

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

Marcado: 

Visualizando 6 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 🖖🏼

    • #151485

      O Exercício 06 – Conversor de Medidas

      Todo o código apresenta a resposta como solicitada pelo Professor Guanabara. No entanto, no campo milímetro não segue a formatação e não sei o porquê?

      Segue o código abaixo:

      programa
      {
      inclua biblioteca Matematica –> mat
      funcao inicio()
      {
      real n1
      escreva(“Distância em metros: “)
      leia(n1)
      real arredondamento
      escreva(“\n”)
      escreva(“——————–CONVERTENDO——————–\n”)
      real km = n1 / 1000
      arredondamento = mat.arredondar(km, 3)
      escreva(arredondamento + ” km \n”)
      real hm = n1 / 100
      arredondamento = mat.arredondar(hm, 3)
      escreva(arredondamento + ” hm \n”)
      real dam = n1 / 10
      arredondamento = mat.arredondar(hm, 3)
      escreva(arredondamento + ” dam \n”)
      real dm = n1 * 10
      arredondamento = mat.arredondar(dm, 3)
      escreva(arredondamento + “dm \n”)
      real cm = n1 * 100
      arredondamento = mat.arredondar(cm, 3)
      escreva(arredondamento + ” cm \n”)
      real mm = n1 * 1000
      arredondamento = mat.arredondar(mm, 3)
      escreva(arredondamento + ” mm \n”)
      escreva(“—————————————————“)
      }
      }

      • #151517
        Tutora Jessica
        Moderador

        Ola Davi, trouxe a sua duvida para uma ja existente do mesmo exercício e módulo, dê uma olhada nas explicações e duvidas que estão nesse tópico, nos fórum você encontra outras duvidas tambem desse mesmo exercício, mas caso mesmo assim a sua duvida nao seja sanada retorne ao forum com seu codigo e qual erro apresenta que assim vamos lhe ajudar da melhor forma 🖖🏼

      • #151531
        Tutora Jessica
        Moderador

        O seu código apresenta algum erro?
        Quais números esta colocando?

    • #151522

      Esta informação não ajudou. Pois como disse… todas as outras conversões estão funcionando corretamente, apenas a conversão para MILÍMETRO não está funcionando.

    • #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 6 respostas da discussão
  • Você deve fazer login para responder a este tópico.