Une autre approximation de Pi
GW-Basic, utilisé par PC-Basic
Programme avec Graphique et Texte
PC-BASIC
Rappelons que le rapport de la circonférence d'un cercle à son diamètre est donné par la lettre grecque π, prononcée "pi". Les approximations de π ont commencé dans l'Antiquité. Voir aussi Approximation de PI Version 1 et 2
Par exemple, Eudoxe de Cnide a formalisé la méthode d'épuisement, qui, lorsqu'elle est appliquée à la recherche de l'aire d'un cercle (et, indirectement, π), inscrirait et circonscrirait des polygones réguliers de plus en plus petits dans et sur le cercle, respectivement, résultant en les bornes inférieure et supérieure de l'approximation.
Peut-être que si Eudoxe avait vécu au XXe siècle, il aurait utilisé BASIC pour obtenir une approximation. Exécutez le programme PI2.BAS et, après avoir été invité à indiquer une taille de diamètre (en unités de pixel), vous verrez un cercle dessiné à l'écran ; peu de temps après, il commencera à disparaître, de haut en bas. Enfin, une approximation de π sera imprimée.
Le programme utilise la fonction POINT à la ligne 60, qui renvoie la couleur des coordonnées du pixel sur lequel elle passe ; chaque fois que POINT rencontre un pixel de couleur 9 (bleu), le programme incrémente la variable COUNT.
Au moment où les deux boucles FOR/NEXT sont exécutées, COUNT sera égal à la circonférence (en pixels) du cercle bleu à l'écran.
PI2.BAS triche un peu en utilisant l'instruction CIRCLE pour dessiner le cercle. Une approche plus honnête ?
Utilisez l'équation algébrique pour un cercle, (x - a)² + (y - b)² =r², pour cartographier le cercle sur l'écran à la place ; certaines transformations mathématiques devront d'abord être effectuées pour passer du plan de coordonnées aux graphiques sur l'ÉCRAN, comme nous le verrons dans une prochaine section.
PI2.BAS met un certain temps à s'exécuter.
5 REM PI2.BAS
10 KEY
OFF:SCREEN 9:COLOR 9,0:CLS
20 COUNT=0
25 PRINT:PRINT:INPUT "Rayon du
cercle (en pixels): ";D:CLS
30 CIRCLE(300,165),D
40 FOR X=0 TO 639
50
FOR Y=0 TO 349
60 IF POINT(X,Y)=9 THEN COUNT=COUNT+1
65 PSET(X,Y),1
70 NEXT Y,X
80 LOCATE 10,10:PRINT "Circonférence en pixels:"; COUNT
90
LOCATE 11,10:PRINT "Diamètre en pixels: ";D*2
100 LOCATE 13,10:PRINT "Cir/Dia
= Pi (pour les cercles informatiques) = ";COUNT/(D*2)