10 '****** calcul dichotomique ******
20 '************** par **************
30 '****** guillaume ponticelli *****
40 '*********************************
50 CLS
60 LOCATE 1,3:PRINT "Avez-vous entre votre fonction ?(o/n)":a$=INKEY$:IF a$="" THEN 60
70 IF a$="n" THEN CLS:EDIT 250
80 WINDOW #1,1,80,5,7
90 INPUT #1,"precision(1-8)";pr:IF pr<1 OR pr>8 OR pr<>INT(pr) THEN CLS #1:GOTO 90
100 WINDOW #2,1,80,8,10
110 LOCATE 1,7:INPUT "Indiquez les bornes de l'intervalle [a,b]";a,b
120 IF a>b THEN CLS#2:GOTO 110
130 a=INT(a):b=INT(b)
140 'calcul de la borne inferieure
150 x=a:GOSUB 250:y1=y
160 'calcul dichotomique
170 FOR w=a TO b STEP 0.5
180 x=w:GOSUB 250:y2=y
190 IF SGN(y2)=SGN(y1) THEN NEXT w:IF g=1 THEN GOTO 270 ELSE PRINT:PRINT "Pas de solution dans cet intervalle":GOTO 270
200 c=(a+w)/2:x=c:GOSUB 250:y3=ROUND(y,pr)
210 IF y3=0 THEN PRINT:PRINT "La solution est x=";x:a=c+0.2:g=1:GOTO 150
220 IF SGN(y3)=SGN(y1) THEN a=c:GOTO 200
230 IF SGN(y3)<>SGN(y1) THEN w=c:GOTO 200
240 'programmation de la fonction
250 y=x^2:'relancez le programme
260 RETURN
270 g=0:LOCATE 1,25:PRINT"Voulez-vous une autre operation ?(o/n)"
280 a$=INKEY$:IF a$="" THEN 280
290 IF a$="o" THEN 50
300 CLS