Advertisement
paulogp

Calendario

Aug 7th, 2011
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.25 KB | None | 0 0
  1. { paulogp }
  2. Program Peda_05; {Constroi um calendario}
  3.  
  4. Uses
  5.     WinCrt;
  6.  
  7. Const
  8.     Esp = 38;
  9.     Semana = ['1','2','3','4','5','6','7'];
  10.  
  11. Var
  12.     Ano,Mes,Dia,Total,AnoBi,Mudanca,Numero,Contador,IOErro: Integer;
  13.     Tecla,Cdia: Char;
  14.  
  15.  
  16. Begin
  17.     Repeat
  18.         ClrScr;
  19.         WriteLn('Calendario!');
  20.         WriteLn('~~~~~~~~~~~');
  21.         WriteLn('Programado por: Paulo G.P.');
  22.         WriteLn;
  23.         Repeat
  24.             WriteLn;
  25.             Write('Introduza o ano: ');
  26.             ReadLn(Ano);
  27.         Until Ano > 0;
  28.         Repeat
  29.             WriteLn;
  30.             Write('Introduza o mes: ');
  31.             ReadLn(Mes);
  32.         Until (Mes>=1) and (Mes<=12);
  33.         WriteLn;
  34.         WriteLn;
  35.         WriteLn('1 - Segunda-feira');
  36.         WriteLn('2 - Terca-feira');
  37.         WriteLn('3 - Quarta-feira');
  38.         WriteLn('4 - Quinta-feira');
  39.         WriteLn('5 - Sexta-feira');
  40.         WriteLn('6 - Sabado');
  41.         WriteLn('7 - Domingo');
  42.         WriteLn;
  43.         Write('Numero do dia da semana em que o mes se inicia: ');
  44.         Repeat
  45.             Cdia:=ReadKey;
  46.         Until Cdia in Semana;
  47.         Val(Cdia,Dia,IOErro);
  48.         ClrScr;
  49.         WriteLn;
  50.         Case Mes of
  51.             1: Write('Janeiro':Esp);
  52.             2: Write('Fevereiro':Esp);
  53.             3: Write('Marco':Esp);
  54.             4: Write('Abril':Esp);
  55.             5: Write('Maio':Esp);
  56.             6: Write('Junho':Esp);
  57.             7: Write('Julho':Esp);
  58.             8: Write('Agosto':Esp);
  59.             9: Write('Setembro':Esp);
  60.             10: Write('Outubro':Esp);
  61.             11: Write('Novembro':Esp);
  62.             12: Write('Dezembro':Esp);
  63.         End;
  64.         Case Mes of
  65.             1,3,5,7,8,10,12: Total:= 31;
  66.             4,6,9,11: Total:= 30;
  67.             2: Begin
  68.                     AnoBi:=(AnoBi-1900) div 100;
  69.                     Total:=28;
  70.                     If Odd(AnoBi)=True then
  71.                         If (Ano mod 4)=0 then Total:=29;
  72.                 End;
  73.         End;
  74.         WriteLn(' de ',Ano);
  75.         WriteLn;
  76.         WriteLn;
  77.         WriteLn('     2-feira  3-feira  4-feira  5-feira  6-feira  Sabado  Domingo');
  78.         WriteLn('  ===================================================================');
  79.         WriteLn(' ');
  80.         Mudanca:=1;
  81.         Numero:=0;
  82.         Contador:=0;
  83.         Repeat
  84.             Mudanca:=Mudanca+1;
  85.             Contador:=Contador+1;
  86.             If Contador>=Dia then
  87.             Begin
  88.                 Numero:=Numero+1;
  89.                 Write(Numero:9);
  90.             End else
  91.             Write(' ':9);
  92.             If Mudanca mod 8 = 0 then
  93.             Begin
  94.                 Mudanca:=1;
  95.                 WriteLn;
  96.                 WriteLn(' ');
  97.             End;
  98.         Until Numero=Total;
  99.         WriteLn;
  100.         WriteLn;
  101.         WriteLn;
  102.         WriteLn;
  103.         Write('Repetir o programa (s/n)? ');
  104.         Tecla:=ReadKey;
  105.     Until (Tecla='N') or (Tecla='n');
  106.     DoneWinCrt;
  107. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement