Factorielle : runtime error 200
Bonsoir,
Pour mon premier post sur le forum je me présente:
Moi c'est Amine étudiant en L1 mathématique-informatique, & j’espère ne pas me tromper de section en postant ici.
J'ai un exercice à faire pour demain, je pense que ma façon de l'avoir écrit est bonne, tout de même j'ai une erreur affichée au premier Read(x) de type : Runtime error 200 at 0001:0123.
& je ne comprend pas d'ou ça vient.
Voila mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| program exo5;
uses wincrt;
var sinx,x: real;
procedure saisie(var x:real);
begin
repeat
clrscr;
writeln('calcul de sinus(x) ');
write('donner une valeure à x : ');
readln(x);
until (x<=100);
end;
function factorielle(n: integer): integer;
var f: integer;
begin
f := 1;
while (n > 1) do
begin
f := f * n;
n := n - 1;
end;
factorielle := f;
end;
function puissance(x: real; n: integer): real;
var i: integer; p: real;
begin
p := 1;
for i := 1 to n do
p := p * x;
puissance := p;
end;
function somme(x: real):real;
var i,n: integer; som,s: real;
begin
somme := 0;
s := 0;
repeat
for i := 3 to 100 do
begin
som := som + s;
if ((i mod 2)<> 0) then n := i;
s := (puissance(x,n) / factorielle(n));
end;
until (s <= 0.0001);
somme := som;
end;
begin
writeln('Calcul de Sin(x) ');
saisie(x);
sinx := x - somme(x);
write(sinx);
end. |
Énoncé de l'exercice : http://img268.imageshack.us/img268/4056/exo5l.jpg
J’espère que vous m'aiderez ! Merci.
EDIT : : Merci pour la remarque Paul TOTH , je vais utilisé les balises CODE.