Exercício 23

Home Fóruns Programação Básica Exercício 23

Visualizando 8 respostas da discussão
  • Autor
    Posts
    • #83391
      RENATA LIMA HOLANDA
      Participante
      /* Serviço militar 2.0
      perguntar ano de nascimento
      se ano maior que 18 – vc ja se alistou
      se ano menor que 18 – se aliste em tal ano
      se == 18 se aliste esse ano*/
      inclua biblioteca Calendario –>c
      funcao inicio()
      {
      escreva(“\tSERVIÇO MILITAR 2.0\n”)
      escreva(“=====================================\n”)
      
      inteiro anoNascimento
      inteiro anoAtual = c.ano_atual()
      escreva(“Qual seu ano de nascimento ?”)
      leia(anoNascimento)
      
      inteiro idade = anoAtual-anoNascimento
      inteiro futuro = ( 18 – idade)
      inteiro alistamento = anoAtual + futuro
      
      escreva(“Estamos em ” + anoAtual + ” Sua idade é: ” + idade + ” anos \n”)
      se (idade > 18){
      escreva (” Você já deve ter se alistado no no de ” + alistamento + “.” )
      }senao se(idade < 18){
      escreva(” Você não tem idade para se alistar. Isso vai acontecer em ” + alistamento + ” Faltam ” + futuro + ” anos.”)
      }senao{
      escreva(“Você tem 18 anos. Se aliste imediatamente!”)
      }
      
      escreva(“\n\n”)
      
      }

      Olá, sempre que eu coloco uma idade maior que 18 tenho executar o programa duas vezes para obter o resultado completo. Isso só acontece se a idade for maior que 18. O que faço para corrigir?

      • Este tópico foi modificado 2 anos, 10 meses atrás por IcaroFilho.
    • #83603
      IcaroFilho
      Moderador

      Bom dia renata. Eu testei e esta funcionando normalmente.
      Testei pela versão WEB. LINK

    • #91576
      João Messias
      Participante

      programa
      {
      inclua biblioteca Calendario –> cal
      funcao inicio()
      {
      escreva(“—————————————- \n”)
      escreva(“{ EXERCICIO 023 – Serviço Militar v2.0 } \n”)
      inteiro ano, idade
      escreva(” Em que ano você nasceu? “)
      leia(ano)
      escreva(“—————————————- \n\n”)

      idade = cal.ano_atual() – ano

      escreva(“============== RESULTADO ============== \n”)

      se (idade >= 19){
      inteiro atrasado, epoca_alis, atras, epoca
      atras = cal.ano_atual() – idade + 18 – cal.ano_atual()
      atrasado = atras * -1
      epoca_alis = atrasado – cal.ano_atual()
      epoca = epoca_alis * -1

      escreva(“Estamos em “, cal.ano_atual(), ” e você tem “, idade, ” anos\n”)
      escreva(“Você já deveria ter se alistado em “, epoca, “\n”)
      escreva(“Você já está atrasado “, atrasado, ” ano(s)”)

      } senao se (idade < 18){
      inteiro falta, completara, ainda_falta
      ainda_falta = idade – 18
      falta = ainda_falta * -1
      completara = cal.ano_atual() + falta

      escreva(“Estamos em “,cal.ano_atual(), ” e você tem “, idade, ” anos \n”)
      escreva(“Você ainda não completou 18 anos. Você vai completar em “, completara,”\n”)
      escreva(“Ainda falta(m) “, falta,” ano(s)\n”)

      } senao se(idade == 18){

      escreva(“Estamos em “, cal.ano_atual(), ” e você tem “, idade, ” anos\n”)
      escreva(“JOVEM! Você completou 18 anos nesse ano de “, cal.ano_atual(), “. CORRA E SE ALISTE!” )
      }

      }
      }

      • #91610
        IcaroFilho
        Moderador

        Bom dia. seu código esta funcionando.
        Sempre que enviar um código, envie-o configurado. para isso basta cola-lo e seleciona-lo por completo. Depois clicar em CODE na barra superior da caixa de texto. (notará que aparecerá crases no inicio e no fim).
        Possui alguma duvida referente ao exercício ??

    • #95955

      NÃO SEI SE A LÓGICA ESTÁ CERTA. POIS CHEGOU UMA PARTE(SÃO 3 DA MANHÃ AQUI), QUE EU N SABIA COMO ERA MAIS. POIS HAVIA OUTRA VARIAVEL PARA O SEGUNDO SENAO, Q SERIA O ATRASO E (EU TENHO COLCOADO PAS), MAS TIREI E DIEXEI O REST, E FUI TESTANDO, AI DEU CERTO, MAS TO QUASE ENTENDNEDO, MAS QUERO ENTENDER BEMMMM.
      programa
      {
      //EXERCÍCIO 023 – SERVIÇO MILITAR 2.0

      inclua biblioteca Calendario –> cd
      funcao inicio()
      {
      inteiro id, rest
      escreva(“Em que ano você nasceu ? “)
      leia(id)
      escreva(“——————————–\n”)
      id = cd.ano_atual()-id
      rest = id – 18

      se(id == 18){
      escreva(“Você completará 18 anos este ano. Procure se alistar”)
      } senao se(id < 18){
      escreva(“\nVocê ainda não completou 18 anos. Vai acontecer em “+ (cd.ano_atual()+rest) +”\nAinda falta “+rest+” ano(s)”)
      } senao se(id > 18){
      escreva(“\nVocê já deveria ter se alistado em “+ (cd.ano_atual()-rest) +”\nVocê está com um atraso de “+ rest +” anos(s)”)
      }

      }
      }
      `

    • #96228
      Tutora Jessica
      Moderador

      Olá Matheus, da forma que esta fazendo esta correto, mas precisa de algumas outras verificações, acaba que o código fica um pouco maior..
      No seu código, nesse trecho, verifique:
      rest = id – 18
      A partir dai precisamos incluir mais umas coisinhas, ai você precisa pensar um pouco mais no restante da lógica..
      Da forma em que esta o seu código aparecem números negativos em alguns testes.
      Continue seus estudos que você vai longe.. Conseguindo concluir ou não, nos dê um feedback 🙂
      Qualquer dúvida só chamar no fórum, beleza? 🖖

    • #110724

      inclua biblioteca Calendario –> c
      funcao inicio()
      {

      inteiro ano
      escreva(“Em que ano você nasceu? “)
      leia(ano)
      escreva(“\n—————————–“)
      inteiro idade = c.ano_atual() – ano

      se (idade == 18){
      escreva(“\nVocê completa 18 anos nesse ano de ” + (c.ano_atual()))

      } senao se (idade <= 17){
      escreva(“\nVocê ainda não completou 18 anos. Vai completar em ” + (c.ano_atual() + (18 – idade)))
      escreva(“\nAinda faltam ” + (18 – idade) + ” ano (s) “)

      } senao se (idade >= 18){
      escreva(“\nVocê já deveria ter se alistado em ” + (c.ano_atual() + (18 – idade)))
      escreva(“\nVocê já está atrasado ” + (idade – 18) + ” anos “)
      }
      }
      }

    • #110825
      Tutora Jessica
      Moderador

      Alguma dúvida Miguel?

    • #111299
      Wagner
      Participante

      Boa noite pessoas, professores, tudo bem?

      Meu cérebro deu uma bugada pra resolver esse aqui. 🙂
      Espero que os comentarios que deixei no programa ajudem a quem tiver duvidas.

      programa
      {	/*
      	EX023 - Servico Militar v2.0
      	
      	O programa vai receber o ano do nascimento, calcular se a pessoa
      	tem 18 anos e pode se alistar, quantos anos faltam para se alistar,
      	se ultrapassou o ano atual e quantos anos ja se passaram do alistamento
      	 
      	Autor 	Gustavo Guanabara
      	Empresa	Estudonauta
        
      	 */
      
      	// incluir biblioteca - include library
      	inclua biblioteca Calendario --> c
      	
      	funcao inicio()
      	{	
      		// declarar variaveis - string declaration
      		inteiro nasc, idade_real, atual=c.ano_atual(), dif, futuro
      		
      		// pedir entrada do ano de nascimento - asks for birth year
      		escreva("\n{ EXERCÍCIO 023 - Serviço Militar v2.0 }\n")
      		escreva("Em que ano você nasceu? ")
      		leia(nasc)
      
      		idade_real=atual-nasc
      		
      		dif=idade_real-18
      
      		futuro = atual-dif
      
      		// usar condicionais aninhadas - use if-else statement
      		se (idade_real == 18)
      		{
      			escreva("----------------------------------------\n")
      			escreva("Você completa 18 anos nesse ano de "+atual+"! Aliste-se!\n")
      		}
      		senao se (idade_real < 18)
      		{
      			
      		// valor fica negativo quando abaixo de 18 anos. 
      		// eh necessario usar um sinal inversor no calculo para transformar em soma
      		// entao a variavel futuro = atual - DIF >> que esta negativa neste caso <<
      		
      			escreva("----------------------------------------\n")
      			escreva("Você ainda não completou 18 anos. Vai acontecer em "+(futuro)+"!\n\n")
      			escreva("Ainda falta(m) "+(-dif)+" ano(s)!\n")
      		}
      		senao se (idade_real > 18)
      		{
      			escreva("----------------------------------------\n")
      			escreva("Você deveria ter se alistado em "+(futuro)+"\n\n")
      			escreva("Você está atrasado(a) há "+dif+" ano(s).")
      		}
      	}
      }
    • #111415
      Tutora Jessica
      Moderador

      Muito bom Wagner, parabéns.
      Tenho certeza que vai ajudar bastante !!
      Obrigada e parabéns pelo empenho 🖖

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