Plus de base
GW-BASIC
(PC-BASIC)
Initiation au langage Basic
Avant d'en finir avec les "bases", vous devez connaître quelques mots supplémentaires.
Le premier est STOP.
Tapez et amusez-vous ce programme:
10 A = 1
20 A = A + 1
30 STOP
40 A = A * 2
50 STOP
60 GOTO 20
L'ordinateur démarre l'exécution du programme. Lorsqu'il arrive à la ligne 30, il affiche :
Break in 30
Vous pouvez maintenant taper une ligne de commande pour voir ce qui se passe.
Par exemple, tapez :
PRINT A
L'ordinateur affiche 2, la valeur de A lorsque le programme est à la ligne 30.
Tapez maintenant :
CONT
L'ordinateur poursuit le programme. Lorsqu'il obtient 10 Ligne 50, il affiche :
Break in 50
Tapez :
PRINT A
Cette fois, l'ordinateur affiche 4, la valeur de A à la ligne 50.
Tapez à nouveau CONT et l'ordinateur
s'arrête à nouveau à la ligne 30. Si vous le faites afficher à nouveau A, il
affiche la valeur 5 la valeur de A à la ligne 30 la deuxième fois dans le
programme.
L'insertion
de lignes STOP dans votre programme vous aide à comprendre pourquoi cela ne
fonctionne pas comme prévu. Lorsque vous corrigez le programme, supprimez les
lignes STOP.
Pour les longs programmes • • •
Effacez la mémoire et tapez :
PRINT FRE(0)
L'ordinateur affiche l'espace de stockage restant dans la mémoire de l'ordinateur.
Lorsque vous tapez un long programme, vous
souhaiterez que l'ordinateur affiche de temps en temps l'espace de stockage
restant pour vous assurer que vous ne manquez pas de mémoire.
Aide à la saisie
Tapez ce programme :
10 INPUT "Tapez 1, 2, ou 3"; N
20 ON N GOSUB 100, 200, 300
30 GOTO 10
100 PRINT "Vous avez tapez 1"
110 RETURN
200 PRINT "Vous avez tapez 2"
210 RETURN
300 PRINT "Vous avez tapez 3"
310 RETURN
Exécuter.
ON ... GOSUB à la ligne 20 fonctionne comme trois lignes :
18 IF N = 1 THEN GOSUB 100
20 IF N = 2 THEN GOSUB 200
22 IF N = 3 THEN GOSUB 300
ON ... GOSUB regarde le numéro de ligne suivant ON - dans ce cas N.
Si N vaut 1, l'ordinateur passe au
sous-programme en commençant par le premier numéro de ligne suivant GOSUB.
Si N vaut 2, l'ordinateur passe au
sous-programme en commençant par le deuxième numéro de ligne.
Si N vaut 3, l'ordinateur passe au
sous-programme commençant au troisième numéro de ligne.
Et si N vaut 47 Comme il n'y a pas de
numéro de quatrième ligne, l'ordinateur passe simplement à la ligne suivante du
programme.
Voici un
programme qui utilise ON ... GOSUB:
1 RANDOMIZE TIMER
5 FOR P = 1 TO 600: NEXT P
10 CLS: X = INT(100*RND(1)+1): Y =
INT(100*RND(1)+1)
20 PRINT"(1) ADDITION"
30 PRINT "(2) SOUSTRACTION"
40 PRINT "(3) MULTIPLICATION"
50 PRINT "(4) DIVISION"
60 INPUT "QUEL EXERCICE (1-4)"; R
70 CLS
80 ON R GOSUB 1000, 2000, 3000, 4000
90 GOTO 5
1000 PRINT "COMMENT FONT " X "+" Y
1010 INPUT A
1020 IF A =X + Y THEN PRINT "CORRECT" ELSE
1030 PRINT "ERREUR"
1040 RETURN
2000 PRINT "COMMENT FONT " X "-" Y
2010 INPUT A
2020 IF A = X-Y THEN PRINT "CORRECT" ELSE
PRINT "ERREUR"
2030 RETURN
3000 PRINT "COMMENT FONT " X "*" Y
3010 INPUT A
3020 IF A = X*Y THEN PRINT "CORRECT" ELSE
PRINT "ERREUR"
3030 RETURN
4000 PRINT "COMMENT FONT " X "/" Y "AVEC 7
DECIMALES"
4010 INPUT A
4020 IF A = X/Y THEN PRINT "CORRECT" ELSE
PRINT "ERREUR"
4030 RETURN
Remarquez le mot ELSE aux lignes 1020, 2020, 3020 et 4020. Vous pouvez utiliser ELSE si vous voulez que l'ordinateur fasse quelque chose de spécial lorsque la condition n'est pas vraie. À la ligne 1020, si votre réponse A est égale à X + Y, alors l'ordinateur imprime CORRECT ou bien il imprime ERREUR.
Vous pouvez utiliser ON ... GOTO de la même manière que ON ... GOSUB. La seule différence est que ON GOTO envoie l'ordinateur à un autre numéro de ligne plutôt qu'à un sous-programme.
Voici une partie d'un programme utilisant ON ... GOTO
10 CLS
20 PRINT "(1) CRAZY EIGHTS"
30
PRINT "(2) 500"
40 PRINT "(3) HEARTS"
50 PRINT "QUE VOULEZ-VOUS JOUER ? "
60 INPUT A
65 CLS
70 ON A GOTO 1000, 2000, 3000
1000 PRINT "JEU CRAZY
EIGHTS"
1010 END
2000 PRINT "JEU 500"
2010 END
3000 PRINT "JEU
HEARTS"
3010 END
Le travail indique-t-il "AND" ou "OR" ?
Quiconque parle anglais connaît la différence entre « AND (et)» et « OR (ou) », même votre ordinateur.
Par exemple, supposons qu'il y ait une offre d'emploi en programmation.
Le travail nécessite :
Un diplôme en programmation
AND (et)
Expérience en programmation
Effacez la mémoire et tapez :
10 PRINT "AS-TU --"
20 INPUT "UN DIPLOME EN
PROGRAMMATION"; D$
30 INPUT "EXPERIENCE EN PROGRAMMATION"; E$
40 IF D$ =
"OUI" AND E$ = "OUI" THEN PRINT "VOUS AVEZ LE TRAVAIL" ELSE PRINT "DESOLÉ, NOUS
NE POUVONS PAS VOUS ENGAGER"
50 GOTO 10
Exécutez le programme. Vous pouvez répondre aux questions de cette façon :
RUN
AS-TU --
UN DIPLOME EN PROGRAMMATION?
NON
EXPERIENCE EN PROGRAMMATION? OUI
DESOLÉ, NOUS NE POUVONS PAS VOUS
ENGAGER
Supposons maintenant que les exigences changent de sorte que "AND" devienne "OR".
Le travail nécessite désormais :
Un diplôme en programmation
OR (ou)
Expérience en programmation
Pour effectuer cette modification dans le programme, tapez :
40 IF D$ = "OUI" OR E$ = "OUI" THEN PRINT "VOUS AVEZ LE TRAVAIL" ELSE PRINT "DESOLÉ, NOUS NE POUVONS PAS VOUS ENGAGER"
Exécutez le programme et voyez quelle différence AND et OR font :
RUN
AS-TU --
UN DIPLOME EN PROGRAMMATION?
NON
EXPERIENCE EN PROGRAMMATION? OUI
VOUS AVEZ LE TRAVAIL
Plus d'arithmétique
Ces mots peuvent sauver de nombreuses lignes de programme :
SNG
SGN vous indique si un nombre est positif. négatif, ou zéro :
10 INPUT "Tapez un nombre"; X
20 IF SGN(X) =
1 THEN PRINT "POSITIF"
30 IF SGN(X) = 0 THEN PRINT "ZERO"
40 IF SGN(X) =
-1 THEN PRINT "NEGATIF"
50 GOTO 10
ABS
ABS vous indique la valeur absolue d'un nombre (la magnitude du nombre sans égard à son signe).
Taper:
10 INPUT "Tapez un nombre"; X
20 PRINT "La
valeur absolue de X est " ABS(X)
30 GOTO 10
Exécutez le programme en saisissant les mêmes nombres que ceux ci-dessus.
STR$
STR$ convertit un nombre en une chaîne. Exemple:
10 INPUT "Tapez un nombre"; N
20 A$ = STR$(N)
30 PRINT A$ + ".. Est maintenant une chaîne"
Exposants
Tapez et exécutez ce programme pour voir comment l'ordinateur traite les très grands nombres :
10 X =1
20 PRINT X;
30 X = X * 10
40
GOTO 20
Remarquez l'erreur Overflow à la fin. L'ordinateur ne peut pas gérer les nombres supérieurs à IE +38 ou inférieurs à -1E+38.
L'ordinateur imprime des nombres très grands ou très petits en "notation exponentielle". "Un milliard" (1 000 000 000), par exemple, devient 1E+09, ce qui signifie "le chiffre 1 suivi de neuf zéros".
Si une réponse sort "5E-6", vous devez décaler la virgule décimale. qui vient après le 5, six places vers la gauche, en insérant des zéros si nécessaire.
Techniquement, cela signifie 5.10-6, ou 5 millionièmes (.000005).
La notation exponentielle est simple une fois que vous vous y êtes habitué. Vous y trouverez un moyen facile de suivre des nombres très grands ou très petits sans perdre la virgule décimale.
Félicitations, Programmeur !
Vous avez maintenant appris les "bases" et pouvez sans aucun doute écrire des programmes décents. La section suivante vous aidera à ajouter du piquant à vos programmes avec des graphismes et de la musique.