Exercício 23

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

Visualizando 11 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 3 anos, 4 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 🖖

    • #152224
      Gabriel Azevedo
      Participante

      Boa noite, tudo bem?
      Consegui fazer o exercício, mas depois de conferir a resposta com o professor e também pesquisando, achei a minha lógica muito ruim e compliquei demais algo que era mais simples.
      Se puder, poderia conferir e me dizer se está bom ?

      programa
      {	
      	inclua biblioteca Calendario --> cal
      	funcao inicio()
      	{
      		inteiro ano
      		
      		escreva("Em que ano você nasceu? ")
      		leia(ano)
      		inteiro idade = cal.ano_atual() - ano
      		inteiro menor18 = 18 - idade //Variável para calcular quantos anos ainda faltam para chegar aos 18
      		inteiro maior18 = 18 + ano //Variável para calcular em que ano o usuario fez 18
      		escreva("-----------------------------------------\n")
      		escreva("Estamos em " + cal.ano_atual() + ". Você tem atualmente " + idade + " anos de idade. \n\n")
      		se(idade == 18){
      			escreva("Você completa 18 anos nesse ano de " + cal.ano_atual() + ".\nVá se alistar agora mesmo.")
      		}senao{
      			se(idade < 18){
      				escreva("Você ainda não completou 18 anos.\nVocê só pode se alistar em " + (cal.ano_atual() + menor18) + 
      				".\nAinda faltam "  + menor18 + " anos.")				
      			}senao{
      				escreva("Você já deveria ter se alistado em " + maior18 + 
      				"\nVocê já está atrasado em " + (cal.ano_atual() - maior18) + " anos.")
      			}
      		}	
      		escreva("\n\n")
      
      		
      	}
      }
      • #152290
        Tutora Jessica
        Moderador

        Ola Gabriel, trouxe sua duvida para uma ja existente no forum do mesmo exercício, acima você encontra algumas explicações e resoluções.

        O meu conselho a você é que a forma de melhora dos seus códigos é com o tempo, você ainda esta no exercício 23 e esta indo muito bem conseguindo acompanhar e realizar os exercícios conforme é pedido nos enunciados. Treine bastante seus códigos procure soluções e com o tempo você vai conseguindo conciliar melhor a parte da lógica. Outra dica é sempre olhar o fórum, nele você encontra diversas formas de códigos com diversas resoluções e lógica e ta tudo bem , o importante é estar conseguindo acompanhar e realizar todos os exercícios..

    • #152339
      Ana Amaral
      Participante

      Estou com dificuldade em um código, quando eu coloco só o código sem “\n” dá certo, porém nao acontece a quebra de linha
      quando eu coloco “\n” o app sublinha o “escreva(“palavra”) e acusa o erro “A expressão não foi iniciada corretamente…”
      Conseguem me ajudar por favor ?
      Segue o código

      inteiro numero
      inteiro n
      escreva(“Dgite um valor:”)
      leia(numero)
      escreva(“Digite outro valor:”)
      leia(numero)
      escreva(“________RESULTADOS_______ \n”)
      escreva(“SOMA = ” + (7+2) “\n”)
      escreva(“DIFERENÇA = ” + (7-2) “\n”)
      escreva(“PRODUTO = ” + (7*2) “\n”)
      escreva(“DIVISÃO INTEIRA = ” + (7/2) “\n”)
      escreva(“DIVISÃO REAL = ” + (7.0/2.0) “\n”)
      escreva(“RESTO DA DIVSÃO = ” + (7%2) “\n”)

      Aula: Programação Básica M01A08

    • #152344
      Tutora Jessica
      Moderador

      Olá Ana,

      Para você conseguir incluir o \n após a conta matemática você precisa incluir mais um sinal de MAIS ( + ) após a conta matemática, pois você esta incluindo mais informações ao seu escreva, segue o exemplo:

      escreva("SOMA = " + (7+2) + "\n" )

      Assim sucessivamente com os outroes escrevas do seu código.

      Vou pedir também para quando colocar seu código em uma aba do fórum que seja do mesmo exercício da sua dúvida.. no seu caso é o exercício 04, mas a dúvida ficou numa aba do exercício 23 .

      • Esta resposta foi modificada 3 meses, 3 semanas atrás por Tutora Jessica.
      • Esta resposta foi modificada 3 meses, 3 semanas atrás por Tutora Jessica.
      • Esta resposta foi modificada 3 meses, 3 semanas atrás por Tutora Jessica.
      • Esta resposta foi modificada 3 meses, 3 semanas atrás por Tutora Jessica.
Visualizando 11 respostas da discussão
  • Você deve fazer login para responder a este tópico.