Calendário Permanente


O calendário permanente costumava ser impresso nas agendas de papel, que eram adquiridas por muitos logo no início do ano.

Funcionava assim:

-A tabela A (mais à esquerda) tem os anos: encontre o ano de interesse; por exemplo, 2009 está na primeira linha.

-Siga nesta linha até encontrar a coluna correspondente ao mês, na tabela B; suponha que seja Janeiro. Encontramos o número 4 nesta intersecção.

-Agora some este número, 4, com o dia do mês; suponhamos que a data de interesse seja 01/01/2009, então somaremos 4 com 1, obtendo 5.

-Finalmente, procuraremos o 5 na tabela C. Perceba que 5 encontra-se na linha que corresponde à quinta-feira!!


Aqui há um código base para você. As matrizes A1, A2, B e C já estão preenchidas. Você implementará a função procurarLinha, que varre uma matriz, em busca de um valor, e retorna somente a linha em que encontrou o elemento.

Adicionalmente, precisará terminar o main:

-Com base no ano, decida se vai fazer a primeira pesquisa em A1 (ano até 2000) ou A2 (a partir de 2001). Use para a pesquisa somente os últimos dois dígitos do ano (para isso você pode usar o resto da divisão inteira por 100: ano%100).

Esta pesquisa é feita com a chamada da função procurarLinha; só interessa saber em que linha da matriz está este ano.

-Use a linha achada acima e a coluna correspondente ao mês para ler um valor da matriz B.

-Some o valor lido da matriz B ao dia: esta soma deverá ser procurada na matriz C, com a chamada da função procurarLinha; só interessa saber em que linha da matriz está esta soma. Esta linha contém o dia da semana correspondente a data em questão: 0 para domingo, 1 para segunda, 2 para terça, 3 para quarta, 4 para quinta, 5 para sexta e 6 para sábado.


Outro exemplo numérico para melhorar o entendimento: vamos descobrir que dia da semana corresponde a 01/09/2018:

1) 2018 > 2000, então procuro 18 na matriz A2: está na 10ª linha.

2) Na matriz B, 10ª linha, coluna correspondente ao mês de Setembro, leio o número 6.

3) Somo 6 mais o dia (1), obtendo 7.

4) Procuro em que linha da matriz C existe o número 7: última linha, correspondente à Sábado!!

Código de apoio

Código do 1º passo

Código final (turma da noite, em 26/03/2022)



Comentários

Postagens mais visitadas deste blog