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.

 

 

 

 

 

 

 

Recherche personnalisée