Spirolatérales
GW-Basic, utilisé par PC-Basic
Programme avec Texte Seulement
PC-BASIC
Le biochimiste britannique Frank Odds a été le premier à décrire les spirolatérales, au début des années 1970. Les spirolatérales sont des formes géométriques créées en traçant une ligne, en la faisant tourner un certain nombre de degrés, en dessinant une autre ligne, en la faisant tourner du même nombre de degrés, en dessinant encore une autre ligne, en tournant à nouveau, à l'infini.
Certaines spirolatérales se referment sur elles-mêmes, c'est-à-dire qu'après n tours, le point de départ de la forme est atteint. Cependant, tous les spirolatérales ne sont pas de cette variété "fermée".
Lorsque SPIRAL.BAS est exécuté, on vous demande Dans quelle direction ?—en fait, le programme vous interroge sur la longueur de chaque segment de ligne du spirolatéral.
Une fois qu'un nombre négatif est entré, le programme détermine si le spirolatéral est fermé, et rapporte le nombre de pas n pour revenir au point de départ (ici, l'origine), ou non fermé, matérialisé par une boucle sans fin de rotations de quatre-vingt-dix degrés chacun.
Un tableau appelé SPIRAL stocke la forme de la figure géométrique ; jusqu'à trente segments de ligne peuvent être saisis.
Mais une fois qu'un nombre négatif est entré, une boucle FOR/NEXT appelée LOP commence, signalant la longueur de la ligne et les coordonnées de la forme.
Si les coordonnées reviennent au point de départ - l'origine, (0,0) - alors la boucle se termine et la nature fermée de la figure géométrique est signalée.
Sinon, la boucle ne s'arrête que si l'utilisateur appuie sur la touche ÉCHAP.
Étant donné que les spirolatérales sont mieux visualisées géométriquement plutôt qu'avec des paires de coordonnées, l'affichage des chiffres à l'écran est certainement la plus grande amélioration possible du programme. Ce ne serait pas trop compliqué; l'utilisation de plusieurs instructions PSET bien placées ferait l'affaire.
De plus, l'angle de rotation des spirolatérales n'a pas besoin d'être de quatre-vingt-dix degrés ; n'importe quelle mesure en degrés peut être utilisée, tant que chaque rotation est d'une mesure en degrés constante. C'est un processus plus compliqué que de simplement dessiner les formes sur l'écran, car il nécessite une pincée de trigonométrie.
10 KEY OFF:COLOR 15,1:CLS
15
TEMP=0:TEST=1
20 DIM SPIRAL(30)
25 PRINT "INTRODUISEZ UN NOMBRE NÉGATIF
POUR ARRÊTER"
30 WHILE (TEST<30)
35 INPUT "Dans quelle direction";SPIRAL(TEST)
36 IF SPIRAL(TEST)<0 THEN TEMP=TEST-1:TEST=29
40 TEST=TEST+1
50 WEND
60 'Déclarer les coordonnées: X and Y
70 X=0:Y=0:DIRECTION=1:T=0
80 FOR
LOP=1 TO TEMP
90 IF DIRECTION=1 THEN Y=Y+SPIRAL(LOP)
100 IF DIRECTI0N=2
THEN X=X+SPIRAL(LOP)
110 IF DIRECTION-3 THEN Y=Y-SPIRAL(LOP)
120 IF
DIRECTI0N=4 THEN X=X-SPIRAL(LOP)
130 DIRECTION=DIRECTION+1
140 IF
DIRECTION>4 THEN DIRECTION=1
145 T=T+1
150 PRINT SPIRAL(LOP),,"X=";X;,,"Y=";Y
160 IF X=0 AND Y=0 THEN GOTO 200
170 NEXT LOP
175 IF INKEY$=CHR$(27) THEN
END
180 GOTO 80
200 PRINT:PRINT "VRAI - C'EST UNE SPIROLATÉRALE FERMÉE."
210 PRINT "CELA A PRIS ";T;" TEMPS POUR REVENIR (0,0), LE POINT DE DÉPART."