Exercício 4,módulo1 está “truncado”!

Home Fóruns Programação Básica Exercício 4,módulo1 está “truncado”!

Visualizando 6 respostas da discussão
  • Autor
    Posts
    • #76044

      Gente estou revisando o exercício 4 do módulo 1 e sabe se lá porquê! Ele não está executando mais. Quando aperto executar ele vem com este papo: “O valor da expressão à direita da atribuição será truncado” O que eu faço gente? Queria ir logo para o módulo 2! Estou meio atrasado.
      Aqui está meu código:

      
      programa
      {
      	inclua biblioteca Tipos --> t
      	funcao inicio()
      	{
      // DECLARAÇÃO DE VARIÁVEIS:
          real valor
          real valor2
          real SOMA
          real DIFERENCA
          real PRODUTO
          inteiro DIVISAO_INTEIRA
          real DIVISAO_REAL
          inteiro RESTO_DA_DIVISAO
      
          // DECLARAÇÃO DE DADOS:
          
          escreva( " Digite um valor: " )
          leia(valor)
          escreva("Digite um segundo valor: " )
          leia(valor2)
      
          // CÁLCULOS:
          escreva("---------------Resultados ---------------------") 
          SOMA = valor+valor2
          DIFERENCA = valor-valor2
          PRODUTO = valor*valor2
          DIVISAO_INTEIRA = valor/valor2
          DIVISAO_REAL = valor/valor2
          RESTO_DA_DIVISAO = t.real_para_inteiro(valor)%t.real_para_inteiro(valor2)
          //RESULTADOS FINAIS:
          
          escreva("\nSOMA: ",SOMA,"\nDIFERENÇA: ", DIFERENCA,"\nPRODUTO: ",PRODUTO,"\nDIVISÃO INTEIRA ",DIVISAO_INTEIRA,"\nDIVISÃO REAL: ",DIVISAO_REAL,"\nRESTO DA DIVISÃO: ", RESTO_DA_DIVISAO)     
      		}
      }
    • #76045

      Oi gente! sou eu de novo! Tentei resolver o problema atribuindo um valor real para inteiro no valor e valor2, mas só piorou! Agora nem mensagem o Portugol me dá mais! Assim não sei onde mora o erro!
      Meu código atual:

      programa
      {
      	inclua biblioteca Tipos --> t
      	funcao inicio()
      	{
      // DECLARAÇÃO DE VARIÁVEIS:
          real valor
          real valor2
          real SOMA
          real DIFERENCA
          real PRODUTO
          inteiro DIVISAO_INTEIRA
          real DIVISAO_REAL
          inteiro RESTO_DA_DIVISAO
      
          // DECLARAÇÃO DE DADOS:
          
          escreva( " Digite um valor: " )
          leia(valor)
          escreva("Digite um segundo valor: " )
          leia(valor2)
      
          // CÁLCULOS:
          escreva("---------------Resultados ---------------------") 
          SOMA = valor+valor2
          DIFERENCA = valor-valor2
          PRODUTO = valor*valor2
          DIVISAO_INTEIRA = t.real_para_inteiro(valor)/t.real_para_inteiro(valor2)
          DIVISAO_REAL = valor/valor2
          RESTO_DA_DIVISAO = t.real_para_inteiro(valor)%t.real_para_inteiro(valor2)
          //RESULTADOS FINAIS:
          
          escreva("\nSOMA: ",SOMA,"\nDIFERENÇA: ", DIFERENCA,"\nPRODUTO: ",PRODUTO,"\nDIVISÃO INTEIRA ",DIVISAO_INTEIRA,"\nDIVISÃO REAL: ",DIVISAO_REAL,"\nRESTO DA DIVISÃO: ", RESTO_DA_DIVISAO)     
      		}
      }
    • #76046
      IcaroFilho
      Moderador

      Bom dia. Já existe diversos tópicos com esta questão criada.
      Nelas contem todas as explicações da resolução. caso sua duvida permaneça, faça uma postagem dentro do tópico já criado para que possamos manter o fórum organizado.

      • #76049

        Bah! Foi mal! E agora? Vou ser banido? Não sabia. É que não achei uma busca no fórum em que eu escreva truncado e aparecesse as perguntas relativas a isso! Será que não existe? Se não existe terei que olhar página por página de todas as perguntas?

    • #76055
      IcaroFilho
      Moderador

      Não entendi sua duvida.
      1- Seu segundo código esta funcionando corretamente.
      2- No seu primeiro código ele trunca pois vc passa um valor real para inteiro forçando. assim ele descarta tudo que vem após o ponto.
      3- Pode-se fazer a declaração das variáveis desta maneira:

          real valor, valor2, SOMA, DIFERENCA, PRODUTO, DIVISAO_REAL
          inteiro RESTO_DA_DIVISAO,DIVISAO_INTEIRA
      • #76059

        Obrigado, agora deu certo. Por alguma razão do nada meu Portugol começa a parar de executar os programas. Não sei se é vírus ou algo assim ou se eu tenho que atualizar o Portugol, sei lá”

    • #85446
      Gabriel Oliveira
      Participante

      Olá eu não estou conseguindo entender porque eu não estou conseguindo converter de inteiro para real, onde eu estou errando?

      programa
      {
      inclua biblioteca Tipos
      –> t

      funcao inicio()
      {

      //DECLARAÇÃO DE VARIÁVEL//
      inteiro n1
      inteiro n2
      inteiro SOMA
      inteiro DIFERENCA
      inteiro PRODUTO
      inteiro DIVISAO_INTEIRA
      real DIVISAO_REAL
      inteiro RESTO_DIVISAO

      escreva (“digite um numero:”)
      leia (n1)
      escreva (“digite outro valor:”)
      leia(n2)
      // CALCULOS//
      SOMA = n1+n2
      DIFERENCA = n1-n2
      PRODUTO = n1*n2
      DIVISAO_INTEIRA =t.inteiro_para_real(n1)/t.inteiro_para_real(n2)
      DIVISAO_REAL = n1/n2
      RESTO_DIVISAO =t.inteiro_para_real(n1)%t.inteiro_para_real(n2)
      RESTO_DIVISAO = n1%n2

      //RESULTADO//

      escreva ( “——— RESULTADO———” + “\n”)
      escreva (“SOMA = ” + (SOMA) + “\n”)
      escreva (“DIFERENÇA = “+ (DIFERENCA)+ “\n”)
      escreva (“PRODUTO = ” + (PRODUTO) + “\n” )
      escreva (“DIVISÃO INTEIRA = ” +(DIVISAO_INTEIRA) + “\n” )
      escreva (“DIVISÃO REAL = ” +(DIVISAO_REAL) + “\n” )
      escreva (“RESTO DA DIVISÃO = ” + (RESTO_DIVISAO) + “\n”)

      }
      }

      • #85758
        IcaroFilho
        Moderador

        Bom dia Gabriel,
        O erro esta apenas numa perspectiva.
        A divisão inteira é apenas o numero inteiro.
        Como os números já são inteiros => DIVISAO_INTEIRA =t.inteiro_para_real(n1)/t.inteiro_para_real(n2) passa a ser => DIVISAO_INTEIRA = n1/n2

        Já a divisão real, vem como forma de fração =>
        DIVISAO_REAL = n1/n2 => passa a ser => DIVISAO_REAL = t.inteiro_para_real(n1) / t.inteiro_para_real(n2)

        e o resto da divisão real é o próprio resto da divisão inteira , pois a divisão real não tem resto.
        RESTO_DIVISAO =t.inteiro_para_real(n1)%t.inteiro_para_real(n2) => é apenas RESTO_DIVISAO = n1%n2

        seu bloco aritmético seria:

        //CALCULOS//
        SOMA = n1+n2
        DIFERENCA = n1-n2
        PRODUTO = n1*n2
        DIVISAO_INTEIRA = n1/n2
        DIVISAO_REAL = t.inteiro_para_real(n1) / t.inteiro_para_real(n2)
        RESTO_DIVISAO = n1%n2
    • #94544

      programa
      {

      //exercicio 04
      inclua biblioteca Tipos –> t
      funcao inicio()
      {
      inteiro a, b
      escreva(“Digite um valor: “)
      leia(a)
      escreva(“Digite outro valor: “)
      leia(b)

      escreva(“\n———- RESULTADOS ———-“)
      escreva(“\nSOMA = “+(a+b))
      escreva(“\nDIFERENÇA = “+(a-b))
      escreva(“\nPRODUTO = “+ (a*b))
      escreva(“\nDIVISÂO INTEIRA = “+ (t.real_para_inteiro(a/b)))
      escreva(“\nDIVISÂO REAL = “+ (t.inteiro_para_real(a)/b))
      escreva(“\nRESTO DA DIVISÂO = “+ (a%b))`

      Fiz assim galera, mas vi uma nova forma de fazer, colocando tudo ma mesma lingua, dimionuindo a quantidade de escrevakkkkk

    • #94736
      Tutor Davy
      Membro

      Matheus,

      a resolução do exercício está certa! Parabéns, continue se dedicando assim, e você vai ficar cada vez melhor. Que bom que você encontrou uma nova maneira de resolver o exercício, se puder, compartilhe-a neste tópico, pode ajudar outros usuários também!

      Bons estudos, se houver qualquer dúvida basta entrar em contato que lhe ajudaremos.

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