Bonjour
je dois faire un programme en language pascal pour résoudre f(x)=0 sur un intervalle [a;b] donnée par 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;
.Code: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
-----