Boa tarde amigos.
O professor passou uma atividade que não estou conseguindo fazer, de jeito maneira. Já li e reli todo o material já apresentado, pesquisei na internet, assisti vídeos, e não consigo desenvolver a atividade. Não sei mais o que fazer. Acho que esse é um daqueles problemas para espantar os alunos já no início da faculdade. Já tentei no Portugol Studio e no Visualg.
Por favor, vocês podem me ajudar a entender o que se pede, e como fazer?
Desenvolver um algoritmo que tenha como dado de entrada a data de nascimento de uma pessoa qualquer no formato dia, mês e ano. A partir dessa data, calcular a idade da pessoa em:
a) anos, meses e dias. Ex: a resposta seria a pessoa tem 38 anos 3 meses e 5 dias de vida
b) meses e dias. EX: a pessoa tem 459 meses e 5 dias
C) somente em dias. Ex: a pessoa tem 30.995 dias de vida
OBS: considerar o ano com 365 dias e o mês com 30dias.
Segue meu código:
algoritmo "idades"
var
diaAtual, mesAtual, anoAtual, diaNas, mesNas, anoNas, anos, meses, dias : INTEIRO
inicio
escreval ("Digite dia, mês, e ano atuais")
escreval ("Formato DD/MM/AAAA, separados com a tecla Enter: ")
leia (diaAtual, mesAtual, anoAtual)
escreval ("Digite dia, mês, e ano do nascimento")
escreval ("Formato DD/MM/AAAA, separados com a tecla Enter: ")
leia (diaNas, mesNas, anoNas)
// ANO
SE ((mesAtual = mesNas) E (diaAtual >= diaNas)) então //JÁ FEZ ANIVERSARIO
anos <- anoAtual - anoNas
FIMSE
SE ((mesAtual = mesNas) E (diaAtual < diaNas)) então //AINDA NÃO FEZ ANIVERSARIO
anos <- anoAtual - anoNas - 1
FIMSE
SE (mesAtual < mesNas) então //AINDA NÃO FEZ ANIVERSARIO
anos <- anoAtual - anoNas - 1
FIMSE
//MÊS
SE ((mesAtual < mesNas) E (diaAtual >= diaNas)) então //Se não fez aniversário mas completou mês corrente
meses <- 12 - (mesNas - mesAtual)
FIMSE
SE ((mesAtual < mesNas) E (diaAtual < diaNas)) então //Se não fez aniversário e nem completou mês corrente
meses <- 12 (mesNas - mesAtual) - 1
FIMSE
SE ((mesAtual > mesNas) E (diaAtual < diaNas)) então
meses <- (mesAtual - mesNas) - 1
FIMSE
//DIA
SE (diaAtual < diaNas) então
dias <- 30 - diaNas + diaAtual
FIMSE
SE (diaAtual >= diaNas) então
dias <- diaAtual - diaNas
FIMSE
fimalgoritmo
Desde já agradeço.