program html;


{ une procedure pour faire une en-tete HTML }

procedure EnTeTeHTML (titre : string ; var fichier : text);
begin

   writeln(fichier,'<HTML>');
   writeln(fichier,'<HEAD>');
   writeln(fichier,'<TITLE>');
   writeln(fichier,titre);
   writeln(fichier,'</TITLE>');
   writeln(fichier,'<LINK REL="stylesheet" TYPE="text/css" HREF="http://www.grappa.univ-lille3.fr/~torre/site.css">');
   writeln(fichier,'</HEAD>');

   writeln(fichier,'<BODY>');
   writeln(fichier,'<H1>',titre,'</H1>');
   writeln(fichier,'<BR><BR>');

end;


{ une procedure pour faire un pied de page HTML }

procedure PiedHTML (var fichier : text);
begin

   writeln(fichier,'<BR><BR><BR><HR><BR>');
   writeln(fichier,'&copy; Fabien Torre');
   writeln(fichier,'</BODY>');
   writeln(fichier,'</HTML>');

end;





{ procedure qui fait une table des carres dans une page HTML }

procedure TableCarres (taille : integer);

var i       : integer;
    fichier : text;

begin

   assign(fichier,'carres.html');
   rewrite(fichier);

   EnTeTeHTML('Table des carr&eacute;s avec Pascal',fichier);

   writeln(fichier,'<CENTER><TABLE BORDER="2" CELLPADDING="5" CELLSPACING="3">');

   for i:=0 to taille do begin
     write(fichier,'<TR>');
     write(fichier,'<TH>',i,'</TH>');
     write(fichier,'<TD ALIGN="center">',i*i,'</TD>');
     writeln(fichier,'</TR>');
   end;

   writeln(fichier,'</TABLE></CENTER>');

   PiedHTML(fichier);
   close(fichier);

end;


{ procedure qui fait une table de multiplication dans une page HTML }

procedure TableMultiplication (taille : integer);

var i,j     : integer;
    fichier : text;

begin

   assign(fichier,'multi.html');
   rewrite(fichier);

   EnTeTeHTML('Table de multiplication avec Pascal',fichier);

   writeln(fichier,'<CENTER><TABLE BORDER="2" CELLPADDING="5" CELLSPACING="3">');

   { premiere ligne }
   write(fichier,'<TR><TH></TH>');
   for i:=0 to taille do begin
     write(fichier,'<TH>',i,'</TH>');
   end;
   writeln(fichier,'</TR>');

   { lignes creuses }
   for i:=0 to taille do begin
     write(fichier,'<TR><TH>',i,'</TH>');
     for j:=0 to taille do begin
       write(fichier,'<TD ALIGN="center">',i*j,'</TD>');
     end;
     writeln(fichier,'</TR>');
   end;

   { fin du fichier }
   writeln(fichier,'</TABLE></CENTER>');

   PiedHTML(fichier);
   close(fichier);

end;



{ procedure qui fait une page HTML avec un carre creux }

procedure CarreCreux (taille : integer);

var i,j     : integer;
    fichier : text;

begin

   assign(fichier,'carre.html');
   rewrite(fichier);

   EnTeTeHTML('Dessin d''un carr&eacute; avec Pascal',fichier);


   writeln(fichier,'<CENTER><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">');

   { premiere ligne : pleine }
   write(fichier,'<TR>');
   for i:=1 to taille do begin
     write(fichier,'<TD><IMG SRC="carre.png"></TD>');
   end;
   writeln(fichier,'</TR>');

   { lignes creuses }
   for i:=1 to taille-2 do begin
     write(fichier,'<TR>');
     write(fichier,'<TD><IMG SRC="carre.png"></TD>');
     for j:=1 to taille-2 do begin
       write(fichier,'<TD></TD>');
     end;
     write(fichier,'<TD><IMG SRC="carre.png"></TD>');
     writeln(fichier,'</TR>');
   end;

   { derniere ligne : pleine }
   write(fichier,'<TR>');
   for i:=1 to taille do begin
     write(fichier,'<TD><IMG SRC="carre.png"></TD>');
   end;
   writeln(fichier,'</TR>');

   writeln(fichier,'</TABLE></CENTER>');

   PiedHTML(fichier);
   close(fichier);

end;




{ Programme principal }

begin

  TableCarres(12);
  TableMultiplication(12);
  CarreCreux(12);

end.


