Bonjour
je dois faire un programme en language pascal pour résoudre f(x)=0 sur un intervalle [a;b] donnée pour l'utilisateur, où f est une fonction monotone sur cet intervalle. Voila le texte de mon programme mais il ne fonctionne pas et je ne comprend pas pourquoi.
PROGRAM resolvdicho;
VAR
a,b,m,c,d:real;
FUNCTION f (x:real):real;
VAR
y:real;
BEGIN
y:=x-2;
f:=y;
END;
FUNCTION dichotomie (a,b:real):real;
VAR
Inf,Sup:real;
m:real;
BEGIN
Inf:=a;
Sup:=b;
REPEAT
m:=(Inf+Sup)/2;
IF f(m)*f(a)<0 THEN Sup:=m
ELSE Inf:=m;
Until Abs(f(Sup)-f(Inf))<0.00001;
END;
BEGIN
writeln('Entrez la borne inf‚rieure a : ');readln(a);
writeln('Entrez la borne sup‚rieure b : ');readln(b);
If f(b)*f(a)>0 then writeln('Il n''y a pas de solution.')
Else if f(a)*f(b)=0 then
IF f(a)=f(b) THEN writeln('La solution est [',a,';',b,'].')
ELSE IF f(a)=0 THEN writeln('La solution est ',a,'.')
ELSE IF f(b)=0 THEN writeln('La solution est ',b,'.')
else writeln('marche pas')
Else Begin m:=dichotomie(a,b);
writeln('La solution est : ',m,'.');
End;
END.
Cordialement.
MG
-----