Ir ao conteúdo
  • Cadastre-se

VisualG Algoritmo cálculo de Idade


Posts recomendados

Olá!

Eu estou tentando fazer um algoritmo que lê a data atual e a data de nascimento da pessoa, e diz quantos anos, meses e dias ela tem hoje... A minha lógica por enquanto parece certa, mas ocorre algum tipo de erro quando eu executo o programa...Dêem uma olhada:

var
   dat1: vetor[1..3] de real
   dat2: vetor[1..3] de real
   p1: inteiro
   p2: inteiro
   cacl1: inteiro
   calc2: inteiro
inicio
   // Seção de Comandos
   escreval("Entre com o dia,o mes e o ano atuais. Aperte enter após cada")
   escreval("informação digitada.")
   para p1 de 1 ate 3 faca
      leia (dat1[p1])
   fimpara
   escreval
   escreval("Agora, entre com a data de seu nascimento, da mesma foram que")
   escreval("você digitou a data atual.")
   para p2 de 1 ate 3 faca
      leia (dat2[p2])
   fimpara
   //Tentativa de calculo para definir quantos mesese a pessoa tem.
   Se dat1[2] > dat2[2] então
      calc1 <- dat1[3] - dat2[3]
      Escreval("Você tem ", calc1, " anos.")
      Se dat1[2] < dat2[2] então
         calc1 <- dat1[3] - dat2[3]
         Escreval("Você tem ", calc2, " anos.")
      fimse

fimalgoritmo

Vejam se há algum erro de sintaxe ou algo do gênero... Também aceito sugestões de como fazer de outra maneira ^^

 

Obrigado desde já _o/

Link para o comentário
Compartilhar em outros sites

mano... rola do jeito que você ta querendo nao... você nao pode subtrair um vetor de outro assim na tora nao... nesse caso seu o buraco e mais em baixo... sugiro que você calcule a diferenca em dias... tipo pega o dia 1/1/0001 e ve a diferenca em dias ate hj... você vai ter la por exemplo 5milhoes de dias... ai você faz a mesma coisa pra data de nascimento... vai ter por exemplo 4 milhoes de dias... agora você pega a diferenca (no nosso exemplo 1 milhao) e divide por 365 e você vai ter quantos anos o cara tem...

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...

Primeiramente olá, sou novo no fórum, mas já aprendi bastante sobre algoritmos no VisuAlg.

Olha, se você quer descobrir quantos anos, meses e dias uma pessoa tem, uma dica é descobri-los individualmente. Vou mostrar abaixo um algoritmo que mostra quantos anos uma pessoa tem, por exemplo:

algoritmo "Idade"
var
ano,idade:Inteiro
inicio
Escreva ("Digite o ano em que você nasceu. ")
Leia (ano)
idade<-2010-ano
Escreva ("Você tem ",idade," anos de idade. ")
fimalgoritmo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 8 anos depois...
Algoritmo "descobrindo idades"
// Disciplina  :  [Linguagem e Lógica de Programação] 
// aluno       :  bruno alexandre da silva
// cidade      :  recife-PE   
Var
   numero:inteiro


Inicio
      escreval("escreva um numero de 1 á 9.")
      leia(numero)
      se (numero< 10) então
      fimse
           escreval("multiplique esse numero por 2x.")
           leia(numero)
           se (numero<19) então
           fimse
                escreval("agora some 5 ao resultado.")
                leia (numero)
                se (numero<24) então
                fimse
                     escreval("multipleque o resultado por 50.")
                     leia(numero)
                     se (numero<1151) então
                     fimse
                          escreval("Do resultado obtido,")
                          escreval("se você já fez aniversario este ano então some 1769,")
                          escrevaL ("se não fez então,some 1768.")
                          leia(numero)
                          se (numero<2920) então
                          fimse
                                escreval("Do resultado obtido diminua o ano que voce nasceu.")
                                leia(numero)
                                 se (numero>918) então
                                  fimse
                                       escreval("O resultado deve ser um numero de 3 digitos,")
                                        escreval("O primeiro digito é o numro que você escolheu no inicio,")
                                        escreval("O segundo é a sua idade.")
                                        leia(numero)
                                        fimse


Fimalgoritmo

 

obs: DE NADA

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @brunoale. Seja bem vindo ao Fórum do Clube do Hardware.

 

Então, não entendi exatamente a proposta da sua postagem, e por consequência a relação com o tópico... mas me parece que trata-se de outro contexto, não?

 

Aproveitando, sobre o seu código, pelo que vi, os fimse estão fora do lugar... acho que seria algo assim:

Algoritmo "descobrindo idades"
// Disciplina  :  [Linguagem e Lógica de Programação]
// aluno       :  bruno alexandre da silva
// cidade      :  recife-PE
Var
   numero:inteiro

Inicio
   escreval("escreva um numero de 1 á 9.")
   leia(numero)
   se (numero< 10) ENTÃO
      escreval("multiplique esse numero por 2x.")
      leia(numero)
      se (numero<19) ENTÃO
         escreval("agora some 5 ao resultado.")
         leia (numero)
         se (numero<24) ENTÃO
            escreval("multipleque o resultado por 50.")
            leia(numero)
            se (numero<1151) ENTÃO
               escreval("Do resultado obtido,")
               escreval("se você já fez aniversario este ano ENTÃO some 1769,")
               escrevaL ("se não fez ENTÃO,some 1768.")
               leia(numero)
               se (numero<2920) ENTÃO
                  escreval("Do resultado obtido diminua o ano que voce nasceu.")
                  leia(numero)
                  se (numero>918) ENTÃO
                     escreval("O resultado deve ser um numero de 3 digitos,")
                     escreval("O primeiro digito é o numro que você escolheu no inicio,")
                     escreval("O segundo é a sua idade.")
                     leia(numero)
                  fimse
               fimse
            fimse
         fimse
      fimse
   fimse

Fimalgoritmo

Outro ponto que sugeriria seria ajustar para usar ">=" ou "<=", em detrimento do ">" e "<" respectivamente. Pois, se é para ser de 1 a 9, então poderia usar "numero <= 9", em vez e "numero < 10".

 

 

No aguardo.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
16 horas atrás, brunoale disse:

sim estar fora de contexto, eu não tinha prestado muita atenção no tópico. 

quanto os finse,eu comecei a estudar algoritmo a pouco tempo e não sei identar direito os código ainda.

obs: fiquei empolgado por o código ter funcionado e quis compartilhar.

Tranquilo...

 

Então, como se trata de um tema um pouco diferente, por favor, crie um novo tópico com seu código... lá poderá interagir melhor com fórum. Se quiser, poderíamos ver o que pode ser "corrigido" ou "melhorado".

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • 1 ano depois...

@masterblod

algoritmo "IDADE 2.0"

var
   nano, ndia, nmes, aano, ames, adia, idade, t1, t2, t3, nt1, nt2, nt3, viveud, ddias: real
   idader, ntudo, atudo:real
inicio
   escreval("qual ano você nasceu?")
   leia(nano)
   escreval("qual mes você nasceu?")
   leia(nmes)
   escreval("qual dia você nasceu?")
   leia(ndia)
   escreval("qual ano atual?")
   leia(aano)
   escreval("qual mes atual?")
   leia(ames)
   escreval("qual dia atual")
   leia(adia)
   t1:= nano * 365
   t2:= nmes * 30
   t3:= ndia * 1
   nt1:= aano * 365
   nt2:= ames * 30
   nt3:= adia * 1
   ntudo:= (nt1 + nt2 + nt3)
   atudo:= (t1 + t2 + t3)
   ddias:= ntudo - atudo
   viveud:= ddias
   idader:= viveud / 365
   escreval("sua idade é:", idader, " Anos")
   escreval("você viveu", viveud, " Dias")

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...