\documentclass[twocolumn,a4paper]{article}
\usepackage{french,tp}
%\advance\topmargin -1cm
%\advance\textheight 1cm
%
%\advance\textheight -1cm
%\divide\textheight 2

\begin{document}

\begin{header}
\large Quelques corrigés des TPs précédents.
\end{header}

\subsection*{TP3}
\begin{verbatim}
PROGRAM PGCD; { Euclide }
VAR a, b, r : INTEGER;
BEGIN
  ReadLn(a,b);
  IF a < 0 THEN a := -a;
  IF b < 0 THEN b := -b;
  WHILE b <> 0 DO
  BEGIN
  END;
  WriteLn('Le pgcd est ',a);
END.
\end{verbatim}

\subsection*{TP4}
\begin{verbatim}
PROGRAM Spirale;
CONST Dim = 5;
VAR T : ARRAY[1..Dim,1..Dim] OF INTEGER;
    cadre, pos, val : INTEGER;
BEGIN
  val := 1;
  FOR cadre := 1 TO Dim DIV 2 DO
  BEGIN
    FOR pos := cadre TO Dim - cadre DO
    BEGIN
      T[pos,cadre] := val;
      val := val + 1;
    END;
    FOR pos := cadre TO Dim - cadre DO
    BEGIN
      T[Dim+1-cadre,pos] := val;
      val := val + 1;
    END;
    FOR pos := Dim+1-cadre DOWNTO cadre+1 DO
    BEGIN
      T[pos,Dim+1-cadre] := val;
      val := val + 1;
    END;
    FOR pos := Dim+1-cadre DOWNTO cadre+1 DO
    BEGIN
      T[cadre,pos] := val;
      val := val + 1;
    END;
  END;
  { La case centrale }
  T[ (Dim+1) DIV 2, (Dim+1) DIV 2 ] := val;
END.
\end{verbatim}

\newpage
\subsection*{TP5}
\begin{verbatim}
FUNCTION NbMots(s : STRING) : INTEGER;
VAR n, i : INTEGER;
BEGIN
  n := 0;
  FOR i := 2 TO Length(s) DO
    IF (s[i] = ' ') AND (s[i-1] <> ' ')
      THEN n := n + 1;
  IF s[Length(s)] <> ' '
    THEN n := n + 1;
  NbMots := n;
END;

FUNCTION Gauche(s : STRING; n : INTEGER) : STRING;
VAR t : STRING;
    l, i : INTEGER;
BEGIN
  { Recopie }
  FOR i := n+1 TO Length(s) DO
    t[i-n] := s[i];
  { Longueur de t }
  IF Length(s) <= n
  THEN l := 0
  ELSE l := Length(s) - n;
  t[0] := Chr(l);
  { Résultat }
  Gauche := t;
END;

FUNCTION Droite(s : STRING; n : INTEGER) : STRING;
VAR t : STRING;
    l, i : INTEGER;
BEGIN
  { Longueur de t }
  IF Length(s) + n > 255
  THEN l := 255
  ELSE l := Length(s) + n;
  t[0] := Chr(l);
  { Recopie }
  FOR i := Length(t) DOWNTO n+1 DO
    t[i] := s[i-n];
  { Espaces }
  FOR i := n DOWNTO 1 DO
    t[i] := ' ';
  { Résultat }
  Droite := t;
END;
\end{verbatim}

\end{document}
