{************************************************
                 Hugo Eti‚vant
     http://www.multimania.com/cyberzoide/
      e-mail : cyberzoide@multimania.com
      (pour une aide en Turbo Pascal 7.0)
*************************************************

TP 4, EXERCICE 2 }

uses crt;      {unit‚ utilis‚e}
const eps=1E-5;  {EPS d‚clar‚e en constante}

procedure saisie(var donnee:real); {proc‚dure param‚tr‚e
                                    de saisie des donn‚es}
begin
 repeat         {boucle REPEAT}
  write('Entrez x [-10..80]'); {‚criture … l'‚cran}
  readln(donnee);        {lecture de la part du programme}
 until (donnee>=-10) and (donnee<=80); {fin de boucle}
end;

procedure calcul(xc:real; var sc:real; var nc:integer); {proc‚dure de calcul
                                       o— "sc" et "nc" sont d‚clar‚e avec VAR
                                   car n'ont pas de valeur avant le lancement
                                   de la proc‚dure.}
var u:real;  {d‚claration d'une variable temporaire}
begin
 u:=1;
 repeat
  inc(nc);
  u:=u*xc/nc;
  sc:=sc+u;
 until abs((sc-(sc-u))/sc) < eps;
end;

procedure affichage(xa,sa:real; na:integer);
begin
writeln(na,'it‚rations,',xa,':x.   S=',sa);
end;

VAR x,s:real;
    n:integer;

BEGIN
clrscr;
saisie(x);
calcul(x,s,n);
affichage(x,s,n);
readln;
END.
