Exercício 010 – Módulo 001 – Não Fume.

Home Fóruns Programação Básica Exercício 010 – Módulo 001 – Não Fume.

Marcado: 

Visualizando 27 respostas da discussão
  • Autor
    Posts
    • #61938

      Boa tarde! estou com dúvida nesse exercícios. Eu consigo a quantidades de cigarros por dia. Mas quando chega a hora de calcular os dias perdidos eu fico confuso.

      programa
      {

      funcao inicio()
      {
      inteiro anos_fumo, cigarros_dia, quantidade

      escreva(“{ EXERCÍCIO 010 – Não Fume } \n”)
      escreva(“Cada cigarro reduz 10 minutos de vida\n”)
      escreva(“————————————-\n”)
      escreva(“Há quantos anos você fuma: “)
      leia(anos_fumo)
      escreva(“Quantos cigarros você fuma por dia: “)
      leia(cigarros_dia)
      escreva(“————————————–\n”)

      anos_fumo = (anos_fumo * 365)
      quantidade = (anos_fumo * cigarros_dia)

      escreva(“Ao todo até agora você fumou “, quantidade, ” cigarros!\n”)

      }
      }

    • #61950
      IcaroFilho
      Moderador

      Boa noite Lucas.
      Vou tentar te mostrar o caminho sem te dar a resposta de cara… se continuar travado só falar que eu posto algo mais explicito aqui , ou então alguém postará…
      Seu código esta correto, mas vc pode otimizar…
      ao invés de escrever

      
      anos_fumo = (anos_fumo * 365)  // aqui vc esta dando um novo valor para a variável para usa-la em sequencia
      quantidade = (anos_fumo * cigarros_dia) 
      

      Pode simplesmente escrever

      
      quantidade = anos * 365 * cigarros_dia //vc pode inserir tudo em uma unica linha
      

      Então, no caso desse exercício ele te passa a informação que cada cigarro reduz 10 min de vida. É ai que esta o pulo do gato.
      vc precisa achar a razão entre minutos e dias. (se pergunte quantos minutos tem no dia)
      vc estruturou bem o começo. Acredito que se esteja te faltando esse numero para fechar seu raciocínio.

      Abraço e bons estudos…

      • #130174
        Alexandre Rocha
        Participante

        eu fiz igual o lucas porem to trvado na parte do 10 minutos de vida sei quantos dias é porem nao sei em que parte eu to errando vai tudo dando certo chega na parte dos 10 minutos eu travo

      • #130198
        Tutora Jessica
        Moderador

        Ola Alexandre, compartilhe conosco seu código

      • #130380
        Alexandre Rocha
        Participante

        inclua biblioteca Tipos –> tp
        funcao inicio()
        {
        escreva(“Olá Mundo”)

        escreva(“Cada cigarro reduz 10 minutos de vida \n”)
        escreva(“———————————————-\n”)
        const inteiro Anos=365, dias = 1440,cig = 10
        real anos,cdias,cigatotal

        escreva(“Digite a quantos anos você fuma: “)
        leia(anos)
        escreva(“Digite quantos cigarros você fuma por dia: “)
        leia(cdias)
        escreva(“———————————————-\n”)
        cigatotal = cdias*anos*Anos
        inteiro vidadias
        vidadias = tp.inteiro_para_real (cigatotal*cig)/dias
        leia(vidadias)

        o codigo fala que ta certo mais ele nao executa o que eu errei no codigo?

      • #130402
        Tutora Jessica
        Moderador

        Ola Alexandre, analise a explicação do aluno Ícaro do dia
        31 de março de 2021 às 18:53, a explicação dele para essa questão esta completa , em relação ai seu código não apresentar erro e não executar é por conta dele não estar completo, você precisa informar no código o que você quer que ele execute a você ao final.
        Espero que a partir da leitura da explicação você consiga concluir seu código, mas se caso continue com dúvidas, só retornar ao fórum que iremos lhe ajudar. 🖖🏼

      • #130457
        Alexandre Rocha
        Participante

        inclua biblioteca Matematica

        funcao inicio()
        {
        escreva(” {Exercicio 010 – não fume }”)
        escreva(” cada cigarro reduz 10 minutos de vida\n “)
        escreva(“————————————–\n”)
        inteiro anos, dias, cigarro
        escreva(” há quanto tempo voce fuma ? “)
        leia(anos)
        escreva(” quantos cigarros voce fuma por dia ? “)
        leia(dias)

        anos = (anos*365)
        cigarro = ( dias*anos)
        leia(cigarro)

        entao refiz ele aqui porem eu to seguindo a msm linha que eu fiz em outro exercicio porem o programa fala que ocorreu erro e que espera um valor do tipo inteiro e ta nesse tipo, da primeira vez fiz esse ex, ele nao deu erro e foi assim que eu fiz o começo

      • #130475
        Tutora Jessica
        Moderador

        Ola Alexandre, você observou a explicação do Icaro do dia 31 de março de 2021?
        A explicação dele esta completa.
        O seu código esta faltando diversas informações, no final ele tem um leia (cigarro) sem sentido, refaça seu código com mais atenção e detalhamento no passo a passo.
        A nossa intenção não é dar a resposta ao aluno, te sugiro ate mesmo rever essa aula, prestar bem a atenção no enunciado.. e nos envie seu código por completo, lembrando que o portugol lê o código linha por linha, então alem de sentido o código precisa estar em ordem do que você quer que ele faça.

    • #61952

      Muito obrigado meu amigo! me ajudou bastante, consegui concluir. E obrigado pela dica de otimização também. Abraço!

    • #61970

      Icaro, parabéns pela resposta contempla tudo o que poderia ter sido dito sobre a questão do Lucas. Continue contribuindo com a comunidade!🖖

      Quaisquer outra dúvida estamos a disposição.

    • #64129
      Carlos Ferrer
      Participante

      Pessoal, estou com dificuldades nos cálculos desse exercício. Poderiam me ajudar?

      programa
      {

      funcao inicio()
      {
      escreva(“{{{ EX010 – NÃO FUME }}}\n”)
      inteiro anos_fumando, cigarros_por_dia

      escreva(“Cada cigarro fumado reduz 10 minutos de sua vida.\n————————————\nA quantos anos você fuma? “)
      leia(anos_fumando)
      escreva(“\nQuantos cigarros você fuma por dia? “)
      leia(cigarros_por_dia)
      escreva(“\n————————————————–\n”)

      real mes_cigarro = cigarros_por_dia*30
      real ano_cigarro = mes_cigarro*12
      real anos_totais_fumando = ano_cigarro*anos_fumando

      real total_vida_perdida = (anos_fumando*365)/24

      escreva(“Ao todo, você já fumou “, anos_totais_fumando,” cigarros.\n”)
      escreva(“Estima-se que você já perdeu “, total_vida_perdida,” dias de vida! Pare de fumar. “)

      }
      }

    • #64134
      FRANCISCO TADEU PEZZI
      Participante

      Boa tarde, Carlos, não me leve a mal é meu jeito de expressar, acho que você misturou alguns valores não me leve a mal posso estar enganado.
      Para calcular os cigarros ano como pegamos como padra um ano igual a 365 dias, não podemos usar mês = 30 x cigarros dia x 12 pois teríamos um ano de 360 dias x a quantidade de cigarros fumados por dia. E no calculo de vida perdida devemos trabalhar com minutos ou seja converter o total de cigarros consumidos ao longo desses anos multiplicar por 10 e dividir pelo valor de 24 horas convertido em minutos (24 * 60) que é igual a 1440.
      ou seja:
      inteiro total_cigarros_fumados = cigarros_por_dia * 365 * anos_fumando

      real total_vida_perdida = t.inteiro_para_real(total_cigarros_fumados)*10/1440 // resposta em dias.

      obs:.para usar a função t.inteiro_para_real(inteiro) e conseguir uma divisão real você deve no alto antes de funcao inicio incluir a biblioteca Tipos –> t,
      e se quiser usar a função arredondar( as casas depois da virgula) inclua também a biblioteca Matematica –> mat
      Espero ter ajudado de alguma forma, esta foi minha intenção. Bons estudos e Desistir não é uma opção!

    • #64135
      IcaroFilho
      Moderador

      Muito boa noite Carlos.

      um detalhe antes de começar as consideração.
      lembre-se de utilizar a biblioteca para fazer as conversões. O Portugal perdoa devido a tipagem, mas outras linguagens não.
      so um exemplo:
      real total_vida_perdida = (anos_fumando*365)/24real total_vida_perdida = (tp.inteiro_para_real(anos_fumando)*365)/24

      Agora vamos la dar uma analisada:
      O exercício pede quantos anos você fumou e quantos cigarros.

      logo no inicio temos um divergencia.
      o ano possui 365 dias e em seu programa temos 360 (mes (12) * dias (30))

      real mes_cigarro = cigarros_por_dia*30
      real ano_cigarro = mes_cigarro*12

      vamos primeiro nos embasar nas informações.
      ele nos informa que cada cigarro retira 10 minutos de vida e ele quer os dias, logo precisamos descobrir quantos minutos há no dia.

      1h = 60min
      1dia = 24h = (24*60) = 1440 min.

      sendo assim, cada cigarro nos tira 10/1440.
      com esse numero temos que descobrir o total de cigarros consumido durante todo o tempo de fumante.

      Ao invés de:

      real mes_cigarro = cigarros_por_dia*30
      real ano_cigarro = mes_cigarro*12
      real anos_totais_fumando = ano_cigarro*anos_fumando

      nos teremos:
      total = nº Cigarros * qt anos * 365
      inteiro total = cigarros_por_dia * anos_fumados * 365
      isso nos dará o total de cigarros ao longo da vida, agora com esse numero nois pomos na formula dos minutos. (10/1440)
      real total_vida_perdida = (anos_fumando*365)/24 passa a ser:
      real total_vida_perdida = total * 10 /1440 , sabemos que temos que por a equação em ordem, logo:
      real total_vida_perdida = (total * 10) /1440, e todos os números são inteiros, parecíamos passar pelo menos 1 para real:

      inclua biblioteca Tipos --> tp
      real total_vida_perdida = (tp.inteiro_para_real ( total ) * 10) /1440

      Esta tudo pronto, agora basta arrendodar para nao exibir uma dizima gigantesca.

      escreva(“Estima-se que você já perdeu “, total_vida_perdida,” dias de vida! Pare de fumar. “) passa para,

      inclua biblioteca Matematica --> m
      escreva("Estima-se que você já perdeu ", m.arredondar(total_vida_perdida,2)," dias de vida! Pare de fumar. ")

      Espero ter ajudado, qualquer coisa so postar que estamos ai pra somar !!!

    • #64431
      Tutora Mayla
      Mestre

      Carlos, os alunos Francisco e Icaro trouxeram ótimas explicações sobre o exercício. Tente compreender e aplicar as mudanças que eles apontaram.
      Caso a dúvida persista, basta entrar em contato que lhe ajudaremos.

    • #67116

      Queria uma opiniao sobre meu codigo… O portugol me recomendou incluir a biblioteca “tipos” na conversao inteiro para real… como poderia implementar?

      programa
      {

      funcao inicio()
      {

      real ano
      inteiro quant
      escreva(“Cada cigarro reduz 10 minutos de vida \n”)
      escreva(“—————————————– \n”)
      escreva(“Ha quantos anos voce fuma? ” )
      leia(ano)
      escreva(“Quantos cigarros voce fuma por dia? ” )
      leia(quant)
      inteiro quantcig = ((quant*365)*ano)
      real diavid =(((quantcig*10)/60)/24)
      escreva(“Ao todo, ate agora voce ja fumou ” + quantcig + ” cigarros! \n”)
      escreva(“Estima se que voce ja perdeu ” + diavid + ” dias de vida!”)

      }
      }

      • #67144
        Tutora Mayla
        Mestre

        Cristiano, movi o seu tópico para um tópico já existente sobre a questão. Sempre procure no fórum se já existe um tópico sobre o assunto antes de criar um novo tópico.
        Quanto a sua dúvida, para incluir a biblioteca Tipos, basta colocar inclua biblioteca Tipos --> tp. Para exemplos sobre ela, vá na aba de Bibliotecas no PortugolStudio, além de exemplo sobre essa biblioteca há sobre outras também.

        A equação em si teria que ter um dos elementos modificados para que o resultado saia como real, ficando algo como isso real diavid =(((tp.inteiro_para_real (quantcig)*10)/60)/24).

        Olhe mais acima nesse tópico uma explicação bem completa do Icaro sobre essa questão.

        Espero ter ajudado, se houver mais dúvidas basta entrar em contato.

      • #67217

        Obrigado por esclarecer Mayla!

    • #68034
      Joab Gomes Jatai
      Participante

      estou com dificuldades no calculo dos dias que a pessoa perdeu, o calculo da quantidade de cigarro eu consegui realizar porém o calculo dos dias que o fumante perdeu não consegui realizar, vocês poderiam me ajudar??

      • #68165
        Tutora Mayla
        Mestre

        Joab, movi o seu tópico para um já existente sobre o assunto, sempre antes de postar procure se já há um tópico sobre o assunto.
        Neste tópico há explicações minhas e do Icaro sobre a questão, veja se tais explicações lhe ajudam, caso não volte a entrar em contato que lhe ajudaremos.

    • #69464

      Oi, preciso de uma ajuda.
      nessa linha
      real dvida = cigarros*10*365/1440*ano
      Na calculadora está dando certo, mas no código sai outro valor.

      programa
      {

      inclua biblioteca Matematica –> mat
      funcao inicio()
      {
      escreva(“{EXERCÍCIO 010 – Não fume } “+ “\n”)
      escreva (“Cada cigarro reduz 10 minutos de vida”+ “\n”)
      escreva (“——————————————–“+ “\n”)
      inteiro anos
      escreva (“Há quantos anos você fuma? “)
      leia (anos)
      inteiro cigarros
      escreva (“Quantos cigarros você fuma por dia? “)
      leia (cigarros)
      escreva (“——————————————–“+ “\n”)
      inteiro tcigarros = (cigarros*anos*365)
      real dvida = cigarros*10*365/1440*anos
      escreva (“Ao todo, até agora você já fumou “+ tcigarros+”\n” )
      escreva (“estima- se que você já perdeu “+ dvida+ ” dias de vida!”)

      • #69522
        Tutora Mayla
        Mestre

        Kleber, movi o seu tópico para um já existente sobre o assunto, sempre antes de postar procure se já há um tópico sobre o assunto.
        O problema relatado pode estar acontecendo por conta da divisão, que pode gerar um resultado final diferente dependendo da ordem em que for executada. Para impedir problemas desse tipo construa sua equação utilizando parênteses que garantem a ordem de precedência desejada.
        Nesse tópico há explicações minhas e do Icaro sobre a questão, veja se tais explicações lhe ajudam, caso não volte a entrar em contato que lhe ajudaremos.

    • #69709
      Silvio Mota Gazeta
      Participante

      Boa noite, pessoal! Preciso de orientação no meu código. O que está faltando?

      programa
      {
      	
      	funcao inicio()
      	{
      		escreva("{ EXERCÍCIO 009 - Não fume }\n\n")
      
      		escreva("Cada cigarro reduz 10 minutos de vida \n")
      		escreva("----------------------------------------------\n")
      
      		inteiro ano, cigarro
      
      		escreva("Digite a quantos anos você fuma: ")
      		leia(ano)
      		escreva("Digite quantos cigarros você fuma por dia: ")
      		leia(cigarro)
      		escreva("----------------------------------------------\n")
      
      		inteiro dia = 365 * ano
      		inteiro tot_cigarro = cigarro * dia
      
      		escreva("Ao todo, até agora você já fumou " + tot_cigarro + " cigarros!")
      		escreva("\n")
      		
      		inteiro tot_minuto = dia * 1440
      		inteiro reducao = tot_cigarro * 10 / 1440
      		
      		escreva("Estima-se que você já perdeu " + reducao + " dias de vida!")
      		escreva("\n")
      	}
      }
      
      • #69847
        Tutora Mayla
        Mestre

        Silvio, primeiramente a variável tot_minuto não está sendo utilizada e não há necessidade dela.
        Depois o problema pode ser pela variável reducao ser do tipo inteiro, como estamos realizando uma divisão para que ela contenha o valor sem perder a parte após a virgula é necessário utilizar uma variável do tipo real.
        Ficaria algo como :
        real reducao = total * 10 /1440 , mas assim ainda não teríamos um resultado real pois todos os operando são inteiros
        real reducao = (total * 10) /1440, precisamos passar pelo menos 1 para real:

        inclua biblioteca Tipos --> tp
        real reducao = (tp.inteiro_para_real ( total ) * 10) /1440

        e por fim apenas utilizar a função arredondar para configurar o número de casas decimais desejado na hora de escrever.

        Dê uma olhada nas postagens anteriores deste tópico e veja se lhe ajudam, espero ter ajudado, se a dúvida persistir volte a entrar em contato.

    • #72308
      Rita Viana
      Participante

      Olá colegas,

      Alguém pode por favor ajudar-me? Estou às voltas com o exercício e não consigo encontrar o erro:

      programa {
          
                 inclua biblioteca Tipos --> tp
            	   funcao inicio() {
      		
      		
      		escreva("{ Exercício 010 - Não fume } \n \n")
      		escreva("Informação Importante! Cada cigarro reduz 10 minutos de vida \n \n")
      		
      		escreva("------------------------------------------------------------- \n \n")
      		
      		
      		cadeia nome 
      		inteiro anos, cigarros
      		
      		escreva("Como se chama? ")
      		leia(nome)
      		
      		escreva("Há quantos anos fuma? ")
      		leia(anos)
      		
      		escreva("Quantos cigarros fuma por dia? ")
      		leia(cigarros)
      		
      		escreva("------------------------------------------------------------- \n \n")
      		
      		escreva(nome + ", sabia que em " + anos + " anos já fumou " + ((cigarros*365)*anos) + " cigarros? \n")
      		
      		real desperdicio = (tp.inteiro_para_real (cigarros) * 10) / 1440
      		
      		escreva("Estima-se assim, que em 8 anos como fumador, perdeu " + desperdicio + " dias de vida")
      		
      	
      		
      	}
      }
      • Esta resposta foi modificada 3 anos, 3 meses atrás por IcaroFilho. Razão: formatando codigo
      • #72377
        IcaroFilho
        Moderador

        Boa tarde Rita,
        a sua formula de desperdício esta errada.
        Também deixou fixo na saída a estimativa de 8 anos como fumante. (assim como fez na saída anterior, pode concatenar a string com os anos)
        deixei um poste (aqui mesmo) com uma explicação bem detalhada (inclusive do arredondamento).
        Se sua duvida permanecer, basta retornar aqui que te oriento passo a passo.

    • #72334

      Boa noite, estou com uma dúvida, qual a diferença entre usar um “senao se” e dois “se” um abaixo do outro? Em alguns testes que fiz me voltou o mesmo resultado, mas como o Guanabara diz, pode ser que não testei alguma possibilidade.

      • #72376
        IcaroFilho
        Moderador

        Boa tarde Marcos,
        Quando utilizamos o senao se, o teste irá se encerrar quando a condição for verdadeira e deixará de executar os outros testes. Enquanto que se utilizarmos 2 se, ele executará os 2. O problema é que nem sempre queremos que se teste tudo.
        Ex.: Quero que o algoritmo diga se o numero informado é maior que determinado valor.
        se usarmos apenas se teremos:

        programa
        {
        	
        	funcao inicio()
        	{
        		inteiro num
        		escreva("escreva um numero entre 0 e 20:  ")
        		leia(num)
        
        		se (num > 20){
        			escreva("numero informado maior que 20\n")
        		}
        		se (num > 15){
        			escreva("numero informado maior que 15\n")
        		}
        		se (num > 10){
        			escreva("numero informado maior que 10\n")
        		}
        		se (num > 5){
        			escreva("numero informado maior que 5\n")
        		}
        		se (num > 0){
        			escreva("numero informado maior que 0\n")
        		}
        	}
        }

        Caso informemos 33, teremos a saída:
        numero informado maior que 20
        numero informado maior que 15
        numero informado maior que 10
        numero informado maior que 5
        numero informado maior que 0

        Agora se utilizarmos senao se:

        programa
        {
        	
        	funcao inicio()
        	{
        		inteiro num
        		escreva("escreva um numero entre 0 e 20:  ")
        		leia(num)
        
        		se (num > 20){
        			escreva("numero informado maior que 20\n")
        		}
        		senao se (num > 15){
        			escreva("numero informado maior que 15\n")
        		}
        		senao se (num > 10){
        			escreva("numero informado maior que 10\n")
        		}
        		senao se (num > 5){
        			escreva("numero informado maior que 5\n")
        		}
        		senao se (num > 0){
        			escreva("numero informado maior que 0\n")
        		}
        	}
        }

        Com a mesma entrada de 33 termos a saída:
        numero informado maior que 20.

        isto porque uma vez que o teste retorne verdadeiro, não há o pq de continuar testando. por isso que para múltiplos testes usamos o aninhamento.

        Espero ter ajudado

    • #73016

      Olá! Como faço para delimitar a quantidade de casas após a vírgula no exercício:

      dias_perdidos = ((t.inteiro_para_real(qtd * 10) /1440))
      O resultado é: 101.38888888889.
      No exercício feito pelo Guanabara o resultado fica: 101.39.

      Obrigado.

      • #73035
        Tutora Mayla
        Mestre

        Rondineli, é possível ajustar o número de casas decimais com a função arredondar, veja neste tópico a resposta do Icaro que menciona como é possível utilizar esta função da biblioteca Matematica, e caso fique alguma dúvida volte a entrar em contato conosco que lhe ajudaremos.

    • #85894

      queria saber se a minha atividade…poderia ser considerada como certa? ou me dizer no que eu errei…
      inteiro Anos_fumando
      inteiro cigarros_por_dia
      escreva (“Cada cigarro reduz 10 minutos de vida”+”\n”)
      escreva (“——————————-“+”\n”)
      escreva (“quantos anos você fuma? “)
      leia (Anos_fumando)
      escreva(“quantos cigarros você fuma por dia? “)
      leia (cigarros_por_dia)
      escreva (“——————————— “+”\n”)
      Anos_fumando=(Anos_fumando*365)
      cigarros_por_dia=(cigarros_por_dia)
      real anos_totais_fumando=(Anos_fumando*cigarros_por_dia)
      real Anos_de_vida_perdidos = (Anos_fumando*cigarros_por_dia/144.0)
      escreva (“ao todo, até agora você ja fumou “+anos_totais_fumando+” cigarros!”)
      escreva (“estima-se que você ja perdeu “+ Anos_de_vida_perdidos +” dias de vida! “)

    • #85918
      IcaroFilho
      Moderador

      Boa noite Leonardo,
      Movi seu post pois o tópico referente ao exercício ja estava criado.
      sempre que for postar algo, veja se não há tópicos com a msm referencia.

      Referente4 ao seu código, ele não esta errado, mas pode dar uma melhorada nas saídas (exibindo de forma arredondada)
      da uma olhada nas postagens dentro deste tópico para ter mais referencias.

    • #89601
      João Messias
      Participante

      Boa noite, só gostaria de saber se meu programa está dado como certo ou se preciso melhorar algo.
      Grato pela compreensão. 😉

      programa
      {
      // { EXERCÍCIO 010 – Não fume }

      inclua biblioteca Matematica –> m
      inclua biblioteca Tipos –> T
      funcao inicio()
      {
      inteiro anos, cigarros, arredondamento
      escreva(“{ EXERCÍCIO 010 – Não fume } \n”)
      escreva(“Cada cigarro reduz 10 minutos de vida! \n”)
      escreva(“—————————————— \n”)
      escreva(“Há quanto anos você fuma? “)
      leia(anos)
      escreva(“Quantos cigarros você fuma por dia? “)
      leia(cigarros)
      escreva(“—————————————— “)
      escreva(“\n”)

      real tot_cigarros = cigarros * 365
      real tot_cigarros_anos = tot_cigarros * 8

      escreva(“Ao todo, até agora você já fumou “, tot_cigarros_anos, ” cigarros! \n”)
      escreva(“Estima-se que você já perdeu “, m.arredondar(tot_cigarros_anos*10/1440, 0), ” dias de vida!”)
      }
      }

      • #89985
        IcaroFilho
        Moderador

        Boa tarde João,
        Não esta correto o código.
        vc esta determinando que seu usuário fuma a 8 anos sempre (real tot_cigarros_anos = tot_cigarros * 8)
        Eu dei uma resposta bem detalhada no começo no tópico. de uma olhada e revise seu código.
        Caso tenha problemas ou duvidas, retorne.

      • #90014
        João Messias
        Participante

        Boa noite, me atentei a esse erro depois que postei aqui, mas muito obrigado meu amigo!!

    • #96123

      Olá, tudo bem?

      Acredito que antes da resolução final se faz necessário saber das informações principais, como, quantos minutos tem 1 dia, já que será aplicada ora estamos trabalhando com minutos.

      programa
      {
      	
      //exe 010
      	inclua biblioteca Matematica --> m
      	funcao inicio()
      	{
      	escreva("Cada cigarro reduz 10 minutos de vida\n")
      	escreva("---------------------------------------\n")
      
      	real arredondamento
      
      	real anos
      	escreva("Há quantos anos você fuma? ")
      	leia(anos)
      
      	real quantidade
      	escreva("Quantos cigarros você fuma por dia? ")
      	leia(quantidade)
      
      	real calc_total = (anos*quantidade)*365 
      	real qtd_vida = m.arredondar((calc_total/1440)*10,2)
      	
      	escreva("Ao todo, até agora você já fumou "+ calc_total+ " cigarros!\n")
      	escreva("Estima-se que você já perdeu " + qtd_vida + " dias de vida! \n")
      	}
      }
      

      Abraços.

      • #96185
        IcaroFilho
        Moderador

        Realmente Jonathan,
        O intuito deste exercício é justamente fazer com que o aluno leve em consideração o fator tempo e a base de calculo de conversão para efeito de cálculos.
        Depois que o aluno descobre esta redução de dia para minutos, basta aplicar uma regra de 3 simples.

        Você possui alguma duvida ?

    • #108002
      MARCIO PAIVA
      Participante
      programa
      {
           inclua biblioteca Matematica-->mat
      	inclua biblioteca Tipos-->t
      	funcao inicio()
      	{
      		escreva("{EXERCÍCIO 010 - Não Fume}\n")
      		inteiro anos, cig
      		escreva("-----------------------------------")
      		escreva("\nQuantos anos você fuma? ")
      		leia(anos)
      		escreva("Quantos cigarros você fuma por dia? ")
      		leia(cig)
      	     inteiro tot_cig = cig * anos * 365
      	     real tot_anos = t.inteiro_para_real  (tot_cig  *10) / 1440
      		escreva("---------------------------------------\n")
      		escreva("Ao todo você já fumou " + tot_cig + " cigarros!\n")
      		escreva("Estima-se que você já perdeu " + mat.arredondar(tot_anos,2) + " dias de vida!")
      	}
      }
    • #108115
      Tutora Jessica
      Moderador

      Ola Marcio, alguma dúvida?

    • #108463

      inclua biblioteca Tipos
      –> t

      funcao inicio()
      {
      inteiro anosfumando
      inteiro cigarrospordia
      inteiro totalcigarros
      inteiro tempodevida
      escreva(“quantos cigarros voce fuma por dia?: “)
      leia(cigarrospordia)
      escreva(“ha quantos anos voce fuma?: “)
      leia(anosfumando)
      totalcigarros = anosfumando*cigarrospordia*365
      tempodevida = t.inteiro_para_real(10)totalcigarros*10/60/24
      escreva(“ao todo voce ja fumou ” + totalcigarros + ” !” + “\n”)
      escreva(“estima-se que voce ja perdeu ” + tempodevida + ” tempo de vida!”)

    • #108496
      Tutora Jessica
      Moderador

      Ola Mateus, alguma dúvida ?

      • #108532

        quando uso a biblioteca tipos, diz que o valor esta truncado, ai nao consigo finalizar o exercicio

      • #108583
        Tutora Jessica
        Moderador

        Ola Mateus, mesclei sua dúvida em um tópico já criado e com boas explicações, dê uma olhada acima e veja se as explicações vão lhe ajudar.
        Caso continue com dúvidas, só retornar ao fórum que iremos lhe ajudar.

    • #123669
      Filipe Mamud Oliveira
      Participante

      Ola moderadores,
      estou a algumas horas buscando no forum de Programação basica a solução para o meu problema e gostaria de sugerir uma opção de busca dentro de uma categoria. Eu digo isso pois o sistema de busca funciona fora da categoria “Programação basica” mas uma vez ao interior desta categoria, ja não temos mais o sistema de busca então ficamos vagando por tempo ilimitado buscando saber se não vamos repetir uma questão com uma postagem que seja repetida.

      Porém aqui vai minha questão.
      No exercicio 010 do modulo um a minha linha de codigo da um resultado proimo ao do professor porém o resultado não é exatamente o mesmo, no resultado que ele obtem quanto à estimativa de tempo perdido quanto ao uso do cigarro o resultado de seu codigo da : 101.39 porém o meu da 101.0

      {

      funcao inicio()
      {
      const inteiro ANOSDIA = 365, DIA = 1440, CIG = 10
      inteiro anos, cigdia, cigtotal
      real vidadias
      escreva(“{EXERCICIO 10 – Não fume}”)
      escreva(“\n”)
      escreva(“Cada cigarro reduz 10 minutos da sua vida”)
      escreva(“\n”)
      escreva(“————————————————-“)
      escreva(“\n”)
      escreva(“Hà quantos anos você fuma? “)
      leia(anos)
      escreva(“Quantos cigarros por dia você fuma? “)
      leia(cigdia)
      escreva(“\n”)
      escreva(“————————————————-“)
      escreva(“\n”)
      cigtotal = cigdia*anos*ANOSDIA
      vidadias = (cigtotal*CIG)/DIA

      escreva(“\n”)
      escreva(“Ao todo você ja fumou “, cigtotal)
      escreva(“\n”)
      escreva(“Estima-se que você ja perdeu “, vidadias, ” dias de vida!”)
      escreva(“\n”)
      }
      }

    • #123673
      Tutora Jessica
      Moderador

      Ola Filipe, obrigada pela sugestão , peço para que a envie também na aba ajuda.
      Quanto ao seu exercício, trouxe ele para um tópico ja existente do mesmo módulo e exercício com explicações e resoluções.
      Caso ainda fique alguma dúvida, só retornar ao fórum que iremos lhe ajudar.

    • #123679
      Filipe Mamud Oliveira
      Participante

      Então Jessica, mesmo depois de ler pela segunda vez os posts aqui, eu não identifiquei resposta a minha questão.

      O resultado do meu programa da 101.0 e o do Guanabara assim como o do rodinei é de 101.39

      Eu não estou procurando o arredondamento como ele, eu estou procuranso saber por que minha formula que parece ser boa e correta esta indicando as casas deciamis apos a virgula de maneira diferente dos outros?

      Eu quero evitar que o programa rode mas sem a logica correta como o professor explicou em outro video.

    • #123698
      Tutora Jessica
      Moderador

      Os dividendos e divisores são inteiros e uma divisão entre números inteiros irá retornar um número inteiro. Como a variável a qual esse resultado está sendo atribuído é real, ele irá adicionar o .0 para torna-lo real, mas já terá perdido os decimais pois a conversão para real só será feita depois da conta ter terminado.
      Para que o resultado seja do tipo real, uma dos números deve ser real, para isto acontecer basta fazer algo como: t.inteiro_para_real(50*365*8*1)/1440. Desta forma os valores decimais serão levados em conta na realização da operação. E na linha de baixo será feito o arredondamento com 3 casas decimais.

      Espero ter ajudado, quaisquer dúvidas estamos a disposição.

    • #131126
      Alexandre Rocha
      Participante

      o que esta errado? nenhuma resposta me ajudou

      inclua biblioteca Tipos –> tp
      inclua biblioteca Matematica –> m

      funcao inicio()
      {
      escreva(” {Exercicio 010 – não fume }”)
      escreva(” cada cigarro reduz 10 minutos de vida\n “)
      const inteiro ANOSVIDA = 365, DIAS = 1440, REDUZ = 10

      inteiro anos,dias,perca
      escreva(” há quanto tempo voce fuma ? “)
      leia(anos)
      escreva(” quantos cigarros voce fuma por dia?”)
      leia(dias)
      escreva(“\n”)
      perca = anos * ANOSVIDA * dias
      real tot = (tp.inteiro_para_real(perca) * REDUZ) /DIAS
      escreva(“estima-se que voce ja perdeu “,m.arrendondar(perca,2),”dias de vida”)

      • #131134
        Tutora Jessica
        Moderador

        Ola Alexandre, qual erro aparece para você? O codigo que me enviou esta completo ?

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