Teste 2 - Engenharia mecânica

386 visualizações

Publicada em

Material de apoio para Algoritmos e Programação da Faculdade Pitágoras em Linhares - 2010

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
386
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Teste 2 - Engenharia mecânica

  1. 1. Algoritmos e Programação Teste 02 Prof. Marcos Saúde marcosr@pitagoras.com.br Aluno: Thiago Toscano Ferrari Curso: Engª Mecânica - Noturno
  2. 2. Teste 02  Desenvolva um programa (em Pascal) que leia uma Data de Nascimento e a Data Atual e calcule a idade da Pessoa;  O programa deve usar:  Uma função chamado BISSEXTO, que recebe o valor de um ano como parâmetro de entrada (número inteiro) e retorna um valor Boolean (lógico). A regra utilizada será: o ano é bissexto se for divisível por 4 e não for divisível por 100, ou ser for divisível por 400;  Uma função chamada DATA_VALIDA, que recebe três números inteiros como parâmetro de entrada (dia, mês e ano), e retorna um valor Boolean (lógico). A data será válida (função retorna True) se seguir as seguintes regras:  A) Para os meses 1,3,5,7,8,10 e 12, o dia deve ser de 1 a 31;  B) Para os meses 4,6,9 e 11, o dia deve ser de 1 a 30;  C) Caso o mês seja 2: se o ano for bissexto o dia deve ser de 1 a 29, caso contrário, o dia deve ser de 1 a 28;  Obs: Esta função, como visto na letra C, poderá usar a função BISSEXTO referida no tópico anterior;
  3. 3. Teste 02  Um procedimento chamado Calcular_Idade, que recebe como parâmetro de entrada duas datas (dia1, mes1, ano1, dia2, mes2 e ano2) – indicativas de Data do Nascimento e Data Atual. Este procedimento deverá usar a função DATA_VALIDA para verificar se as datas entradas estão de acordo com as regras de validade. O procedimento deve exibir uma mensagem de erro, caso uma das datas seja inválida. Caso contrário, o procedimento deverá calcular e informar na tela a idade calculada;  O programa deve ler a Data de Nascimento (dia, mês e ano) e a Data Atual (dia, mês e ano) e usar o procedimento Calcular_Idade;
  4. 4. Teste 02 - Resposta Program Calculo_de_idade ; uses ctr; var D1, M1, A1, D2, M2, A2, data : Integer ; function Bissexto ( k : integer ) : boolean ; begin Bissexto := ((( k mod 4 ) = 0 ) and ( ( k mod 100 ) <> 0 )) or (( k mod 400 ) = 0 ) ; end; function data_valida ( d, m, k: integer ) : boolean ; begin if ( d < 1 ) then data_valida := false else if (( m = 1 ) or ( m = 3 ) or ( m = 5 ) or ( m = 7) or ( m = 8) or ( m = 10) or ( m = 12 ) and ( d < 32 )) then data_valida := true
  5. 5. Teste 02 - Resposta else if (( m = 4 ) or ( m = 6) or ( m = 9) or ( m = 11 ) and ( d < 31 )) then data_valida := true else if (( Bissexto ( A1 ) ) and ( d < 30 ) and ( m = 2 ) and ( d >0 )) then data_valida := true else if (( m = 2 ) and ( d < 29 ) and ( d >0 ))then data_valida := true else data_valida := false end;
  6. 6. Teste 02 - Resposta procedure calcular_idade ( d1, m1, a1, d2, m2, a2 : integer ) ; var idade : integer ; begin idade := a2 - a1 ; if a1 > a2 then write (' A data é invalida' ) else if ( a1 <= a2 ) and ( m1 >= m2 ) and ( d1 >= d2 ) then idade := idade - 1 else if a1 <= a2 then idade := idade ; write ( ' A idade e : ',idade ) ; end;
  7. 7. Teste 02 - Resposta begin write ( 'Digite o dia em que voce nasceu:'); readln ( D1 ); write ( 'DIgite o mes em que voce nasceu:'); readln ( M1 ); write ( 'Digite o ano em que voce nasceu:'); readln ( A1 ); write ( 'Digite o dia atual:'); readln ( D2 ); write ( 'Digite o mes atual:'); readln ( M2 ); write ( 'Digite o ano atual:'); readln ( A2 ); if (( data_valida ( D1, M1, A1 )) and ( data_valida ( D2, M2, A2 ))) then calcular_idade ( D1, M1, A1, D2, M2, A2 ) else write (' A data é invalida' ) ; readkey ; end.

×