DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Fazer um projeto em Delphi ou Lazarus para ler o ano e o mês de nascimento (1 a 12) de uma pessoa, bem como o mês atual. Caso o mês atual seja igual ao mês de nascimento, escrever uma mensagem dizendo que “é mês referente a seu aniversário”, caso contrário, escrever uma mensagem informando que “não é o mês do seu aniversário”. Calcular e mostrar a idade dessa pessoa levando-se em conta apenas o mês e o ano

O exercício foi baseados na seguinte página:
https://www.ifmg.edu.br/ceadop3/apostilas/algoritmos-e-programacao

Vamos ao exercício!

Fazer um projeto em Delphi ou Lazarus para ler o ano e o mês de nascimento (1 a 12) de uma pessoa, bem como o mês atual.

Ou seja ler o ano de nascimento e o ano atual.
Também ler o mês de nascimento e o mês atual.

Caso o mês atual seja igual ao mês de nascimento,
escrever uma mensagem dizendo que é mês referente a seu aniversário”,
caso contrário,
escrever uma mensagem informando que “não é o mês do seu aniversário”.

A etapa acima basicamente é um “IF”.

Calcular e mostrar a idade dessa pessoa levando-se em conta apenas o mês e o ano.

Esta etapa é o relatório dos dados processados.

Aproveitando o exercício, vamos criar uma função para ir se familiarizando
com o código.

Dentro da função, vamos aproveitar e utilizar um “CASE” também para ir treinando.

Agora sim vamos ao código fonte, lembrando que há comentários explicando
os comandos.

Esta é uma sugestão de resposta em Pascal, Delphi, Lazarus.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
program project25;
 
uses
  SysUtils;
 
{ Exemplo de função }
function NomeMes(pNumeroMes : Integer) : string;
begin
  case pNumeroMes of
    1: Result := 'janeiro';
    2: Result := 'fevereiro';
    3: Result := 'março';
    4: Result := 'abril';
    5: Result := 'maio';
    6: Result := 'junho';
    7: Result := 'julho';
    8: Result := 'agosto';
    9: Result := 'setembro';
    10: Result := 'outubro';
    11: Result := 'novembro';
    12: Result := 'dezembro';
    else
      Result := 'inválido';
  end;
end;
 
{ Inicio do programa principal }
var
  anoNascimento: integer;
  mesNascimento: integer;
  mesAtual: integer;
  anoAtual: integer;
  idadeA: integer;
  mes: integer;
begin
  Write(Utf8ToAnsi('Informe o seu ano de nascimento: '));
  ReadLn(anoNascimento);
 
  Write(Utf8ToAnsi('Informe o ano atual: '));
  ReadLn(anoAtual);
 
  { Validando anos }
  if anoAtual < anoNascimento then
  begin
    WriteLn(Utf8ToAnsi('O ano atual não pode ser inferiror ao ano de nascimento!'));
    Readln;
    Exit;
  end;
 
  { Deixando uma linha em branco }
  WriteLn('');
 
  WriteLn(Utf8ToAnsi('Agora informe o Mês de nascimento seguindo a regra.'));
  WriteLn(Utf8ToAnsi('Infome 1 para o mês de janeiro, 2 para fevereiro e assim sucessivamente até o 12. '));
 
  WriteLn('');
  Write(Utf8ToAnsi('Mês de nascimento: '));
  ReadLn(mesNascimento);
 
  Write(Utf8ToAnsi('Informe o mês atual: '));
  ReadLn(mesAtual);
 
  { Validando mês de nascimento }
  if ((mesNascimento > 12) or (mesNascimento < 1)) then
  begin
    WriteLn(Utf8ToAnsi('Mês de nascimento inválido!'));
    Readln;
    Exit;
  end;
 
  { Validando mês atual }
  if ((mesAtual > 12) or (mesAtual < 1)) then
  begin
    WriteLn(Utf8ToAnsi('Mês de nascimento inválido!'));
    Readln;
    Exit;
  end;
 
  { Relatorio }
  WriteLn('');
 
  WriteLn(Utf8ToAnsi('Mês de Aniversário: ' + NomeMes(mesNascimento) ));
  WriteLn(Utf8ToAnsi('Mês Atual: ' + NomeMes(mesAtual) ));
 
  if mesAtual = mesNascimento then
  begin
    Write(
      Utf8ToAnsi(NomeMes(mesAtual) + ' é o mês referente a seu aniversário.'));
  end
  else
  begin
    WriteLn(
      Utf8ToAnsi(NomeMes(mesAtual) + ' não é o mês do seu aniversário.'));
  end;
 
  idadeA := anoAtual - anoNascimento;
  mes := mesAtual - mesNascimento;
 
  if mes < 0 then
  begin
    { Atualiza o tempo em anos }
    idadeA := idadeA - 1;
 
    { PAra quem ainda não completou 1 ano }
    if idadeA < 0 then
    begin
      idadeA := 0;
    end;
 
    { Contando os meses 12 menos a diferença do mes atual e mes de nascimento
    Exemplo Mes Atual agosto, Mes aniver novembro
    11 - 8 = 4
    12 - 4 = 8
    8 meses }
 
    { Deixa sempre positivo a quantidade }
    mes := abs(mes);
 
    { Calculando com a formula acima }
    mes := 12 - mes;
  end;
 
  WriteLn(Utf8ToAnsi('A sua idade é de: '), idadeA, ' anos e ',
    mes, ' meses. ');
 
  ReadLn;
end.

Olha pessoal, acredito que ficou excelente, gostei bastante do efeito.
Para o teste do fonte utilize o Lazarus 2.0.

Lembrando que se vocês quiserem em outras linguagens, por favor indiquem nos comentários.
Precisamos de vários pedidos para fazer, uma vez que o tempo é apertado.

Dúvidas ou sugestões? Também deixem seus comentários!

Um Abraço e até a próxima.

Facebook Comments Box
  • Franciele Benedetti
  • 1.993 views
  • 1 comentários
  • 18 de setembro de 2019

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

Uma resposta para “Fazer um projeto em Delphi ou Lazarus para ler o ano e o mês de nascimento (1 a 12) de uma pessoa, bem como o mês atual. Caso o mês atual seja igual ao mês de nascimento, escrever uma mensagem dizendo que “é mês referente a seu aniversário”, caso contrário, escrever uma mensagem informando que “não é o mês do seu aniversário”. Calcular e mostrar a idade dessa pessoa levando-se em conta apenas o mês e o ano”

  1. Mário Reis, a princípio o código está totalmente compatível.

Deixe um comentário


Posts Relacionados - Continue Aprendendo

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados