{************************************************
                 Hugo Eti‚vant
     http://www.multimania.com/cyberzoide/
      e-mail : cyberzoide@multimania.com
      (pour une aide en Turbo Pascal 7.0)
*************************************************

TP 2, EXERCICE 3 }

program anneebissextile2; {nom de programme, facultatif}
uses crt;       {d‚claration de l'unit‚ utilis‚e}
var annee,jour,mois:integer;    {d‚clarations de variables}
    bissextile,testj,testmois:boolean;

procedure verif(nombre:integer);   {proc‚dure param‚tr‚e}
begin
if (nombre mod 100 = 0) then {l'ann‚e est s‚culaire}
   begin
   if (nombre mod 400 = 0) then
      begin
      writeln('L''ann‚e s‚culaire ',nombre,' est bissextile.');
      bissextile:=true;
      end;
   end
   else  {l'ann‚e n'est pas s‚culaire}
   begin
   if (nombre mod 4 = 0) then
      begin
      writeln('L''ann‚e ',nombre,' est bissextile.');
      bissextile:=true;
      end;
   end;
end;      {fin de la proc‚dure}

BEGIN   {d‚but du programme principal}
clrscr;  {efface l'‚cran}
write('Entrez au clavier le num‚ro d''ann‚e (ex:1998) : ');
readln(annee);
verif(annee);  {lance la proc‚dure param‚tr‚e}
if not bissextile then writeln('L''ann‚e ',annee,' n''est pas bissextile.');
write('Entrez le jour et le mois : ');
readln(jour,mois); writeln;
{----------------------------------- d‚but du bloc test avec les bool‚ens}
testj:=(jour>=1) and (jour<=31);
if (jour=29) and (not bissextile) then testj:=false;
if (jour=31) and ((mois=2) or (mois=4) or (mois=6) or (mois=9) or (mois=11))
then testj:=false;
testmois:=(mois<=12) and (mois>=1);
if not testmois then writeln('Mois incorrect.');
if not testj then writeln('Jour incorrect.');
if (not testj) or (not testmois) then writeln('INCORRECTE')
                                 else writeln('CORRECTE');
{----------------------------------- fin du bloc test}
readln;   {pause jusqu'… que <ENTREE> soit press‚e}
END.
