Informática, perguntado por potterlandzx9932, 1 ano atrás

Escreva um algoritmo que calcule a idade de uma pessoa, solicitando mês e ano do seu nascimento.

Soluções para a tarefa

Respondido por bokomoko
0
O truque aí é detectar se a pessoa já fez aniversário ou não no ano corrente

Por exemplo, quem nasceu em 1990 vai fazer 28 anos em 2018 (hoje). Só não sabemos se a pessoa já fez os 28 ou se vai fazer dependendo do mês em que ela nasceu

Em C a conta é simples
idade = ano_atual - ano_nascimento -1 + (mes_nascimento <= mes_atual)

O que acontece aqui é que a expressão booleana
(mes_nascimento <= mes_atual) vai dar 1 (verdadeiro) se o mes de nascimento já tiver passado  e vai dar 0 (falso) se o mês ainda não tiver passado.
ano_atual - ano_nascimento -1 dá quantos anos completos a pessoa já viveu
então façamos um teste
Suponha uma moça que nasceu em maio de 1990 portanto ela vai informar
1990 para ano_nascimento
5 para mes_nascimento

Estamos no dia 14 de fevereiro de 2018, portanto, 
ano_atual = 2018
mes_atual = 2

Façamos a avaliação da expressão
idade = ano_atual - ano_nascimento -1 + (mes_nascimento <= mes_atual)
idade = 2018 - 1990 - 1 + ( 5 <= 2) 
idade = 28 - 1 + (5 <=2)
idade = 27 + (5 <= 2) 
idade = 27 + (0) 
Idade = 27

Quando for maio, (mes_nascimento <= mes_atual) vai ficar assim
(5 <= 5 ) que é igual a 1 e a moça bonita vai ter então 28 anos.


Perguntas interessantes