Lecture
GW-BASIC
(PC-BASIC)
Votre ordinateur est un naturel à l'enseignement. Il est patient, infatigable et ne se trompe jamais.
Selon le programmeur (vous, bien sûr), cela peut aussi être imaginatif, réconfortant et enthousiaste.
En utilisant RND, apprenez les mathématiques.
Le programme ci-dessous vous entraîne sur les tables de multiplication, de 1 à 15, et vérifie vos réponses.
Taper:
5 RANDOMIZE TIMER
10 CLS
20 X=INT(15*RND(1)+1)
'Nombre entre 1 et 15
30 Y=INT(15*RND(1)+1) 'Nombre entre 1 et 15
40 PRINT "QUE DONNE " X "*" Y " ? "
45 INPUT A
50 IF A = X * Y THEN 90
60 PRINT "LA REPONSE EST" X*Y
70 PRINT "MEILLIEUR CHANCE LA PROCHAINE FOIS"
80 GOTO 100
90 PRINT "EXACTE !!!"
100 PRINT "APPUYER SUR <ENTER> QUAND
VOUS ÊTES PRÊT POUR UN AUTRE"
105 INPUT A$
110 GOTO 10
Exercice
Ajoutez des lignes pour vérifier si A$ est égale à "OUI" ou "O" pour entrer un autre nombre. Sinon le programme se termine.
*****
Pour sauvegarder un programme sur le disque utilisez SAVE:
SAVE "PROGRAM",A enregistre le programme actuel dans un fichier texte nommé PROGRAM.BAS .
Pour charger un programme utilisez LOAD:
LOAD "PROGRAM (Avec une seule ") charge le fichier programme nommé PROGRAM.BAS en mémoire
*****
Faites en sorte que le programme vous entraîne sur des problèmes d'addition de 1 à 100.
Voici les lignes que nous avons modifiées :
20 X=INT(100*RND(1)+1)
30 Y=INT(100*RND(1)+1)
40 PRINT "QUE DONNE " X "+" Y
45 INPUT A
50 IF A = X + Y THEN 90
60
PRINT "LA REPONSE EST " X + Y
Rendez le programme plus intéressant. Demandez-lui de garder un total cumulé de toutes les bonnes réponses.
Taper:
15 T=T+1
95 C=C+1
98 PRINT "IL Y A " C
"REPONSES CORRECT SUR " T "REPONSES"
T est un "compteur". Il compte le nombre de questions qui vous sont posées. Lorsque vous démarrez le programme pour la première fois, T est égal à zéro.
Ensuite, chaque fois que l'ordinateur arrive à la ligne 15, il ajoute 1 à T.
C est aussi un compteur. Il compte vos bonnes réponses. Puisque C est à la ligne 95, l'ordinateur n'augmente pas C à moins que votre réponse ne soit correcte.
Programme faites-le vous même.
Rendez le programme plus amusant. Faites-lui effectuer une ou plusieurs des actions suivantes :
1. Appelez-vous par votre nom.
2. Récompensez
votre bonne réponse avec un spectacle son et lumière.
3. Afficher le problème
et les messages de manière attrayante sur votre écran. (Utilisez LOCATE pour
cela.)
4. Gardez un total cumulé du pourcentage de bonnes réponses.
5.
Terminez le programme si vous obtenez 10 bonnes réponses consécutives.
Utilisez votre imagination.
Note : Dans ce
programme on utilise les : pour
mettre plusieurs commandes sur la même ligne
Remplacez L et C de LOCATE par vos coordonnées.
5
SCREEN 9:COLOR 7,0:CLS:RANDOMIZE
TIMER
6 LOCATE 1,5:PRINT "Quel est ton nom ? ";
8 INPUT N$
9 LOCATE
L,C:PRINT "Ce petit test comprend 10 questions"
10
COLOR 7,0:CLS
15 T=T+1
20
X=INT(100*RND(1)+1)
30 Y=INT(100*RND(1)+1)
40 LOCATE
L,C:PRINT "Comment font " X "+" Y
45 INPUT A
50 IF A = X + Y THEN 82
60
LOCATE L,C:PRINT "La réponse est " X + Y
70 LOCATE L,C:PRINT "Meilleur chance
la prochaine fois ," N$
80 GOTO 100
82
COLOR 7,1:CLS
83 FOR M = 1
TO 4
84 SOUND 175,1
85 SOUND 200,1
86 NEXT M
87 CLS
90
LOCATE L,C:PRINT "Correcte, " N$ "! ! ! "
95 C = C + 1
97 LOCATE
L,C:PRINT "C'EST"
98 LOCATE L,C:PRINT C " Réponses Correctes sur " T "
Réponses "
99 LOCATE L,C:PRINT C/T*100 "% De bonnes réponses" :IF T=10 THEN
END
100 LOCATE L,C:PRINT "Appuyez sur <ENTER> Quand vous êtes prêt"
102
LOCATE L,C:PRINT "POUR UN AUTRE"
105 INPUT A$
110 GOTO 10
Pour afficher des caractères on peut utiliser la commande CHR$(X) où X est le code ascii du caractère.
PRINT CHR$(144) affiche É majuscule.
Le programme ci-dessous affiche les caractères des codes ascii de 33 à 255 sur 4 colonnes.
Il utilise le paramètre TAB de PRINT et une boucle FOR ... NEXT.
Ce programme utilise la variable P comme indicateur de position pour TAB, soit pour les positions 0, 15, 30 et 45.
La variable P est augmentée de 15 après la ligne 30.
10 CLS:P=0 'Attribut la valeur 0
à P
20 FOR X= 33 TO 255
25 IF P=60 THEN P=0 'Vérifie
si P=60 si oui alors P=0
30 PRINT TAB(P) X;"CHR= "CHR$(X); 'Affiche X
et le caractère pour la valeur de X
35 P=P+15 'Incrémente P de 15 pour
le prochain affichage
40 NEXT X
Voir à la fin de cette page pour les codes ascii.
Tout d'abord, construisez le vocabulaire de votre ordinateur...
Pour construire le vocabulaire de votre ordinateur (afin qu'il puisse construire le vôtre !), tapez et exécutez ce programme :
10 DATA POMMES, ORANGES, POIRES
20 FOR X = 1 TO 3
30 READ F$
40
NEXT X
Que s'est-il passé... rien ?
Rien que vous puissiez voir, c'est-à-dire. Pour voir ce que fait l'ordinateur, ajoutez cette ligne et exécutez le programme :
35 PRINT "F$ = : " F$
La ligne 30 indique à l'ordinateur de :
1. Recherchez une ligne DATA.
2. LIRE le premier élément de la liste - POMMES.
3. Donnez aux POMMES une étiquette F$.
4. "Barrez" les POMMES.
La deuxième fois que l'ordinateur se gélifie à la ligne 30, on lui dit de faire la même chose :
1. recherchez une ligne DATA.
2. LISEZ le premier article - cette fois, il s'agit d'ORANGES.
3. Donnez à ORANGES le label F$.
4. "Barrez" les ORANGES.
Et si vous voulez que l'ordinateur
relise la même liste ?
Toutes les données sont déjà "barré" ...
Tapez:
60 GOTO 10
Exécutez le programme.
Vous obtenez une erreur : Out of DATA in 30
L'ordinateur a barré toutes les données.
Tapez cette ligne et lancez le programme :
50 RESTORE
Maintenant, c'est comme si
l'ordinateur n'avait jamais barré aucune donnée. Il lit la même liste encore et
encore.
Vous pouvez mettre des
lignes DATA où vous voulez dans le programme. (Faites Break ou CTRL+C pour
arrêter le programme)
Exécutez chacun de ces programmes. Ils fonctionnent tous de la même manière.
Note: N'oublier pas de taper NEW avant de taper un nouveau programme. NEW effaces toutes les donnés en mémoire, valeurs des variables et le programme.
Programme 1 | Programme 2 |
10 DATA POMMES 20 DATA ORANGES 30 FOR X = 1 TO 3 40 READ F$ 50 PRINT "F$ = : " F$ 60 NEXT X 70 DATA PEARS |
10 DATA POMMES,
ORANGES 20 DATA POIRES 30 FOR X = 1 TO 3 40 READ F$ 50 PRINT "F$ = : " F$ 60 NEXT X |
Programme 3 | Programme 4 |
30 FOR X = 1 TO 3
40 READ F$ 50 PRINT "F$ = : " F$ 60 NEXT X 70 DATA POMMES 80 DATA ORANGES 90 DATA POIRES |
100 FOR X = 1 TO 3 110 READ F$ 120 PRINT "F$ = :" F$ 130 NEXT X 140 DATA POMMES, ORANGES, POIRES |
Maintenant, construisez votre vocabulaire
Voici quelques mots et définitions à apprendre :
10 DATA TACITE,HABITUELLEMENT
NON PARLANT
20 DATA LOQUACE,TRES BAVARE
30 DATA BRUYANT, BRUIT FORT
40
DATA LACONIQUE,EXPRIME EN PEU DE MOTS
50 DATA EXPANSIF,QUI TEND A S'ETENDRE
Maintenant, demandez à l'ordinateur de sélectionner l'un de ces mots au hasard. Hmmm il y a dix articles. Peut-être que cela fonctionne
1 RANDOMIZE TIMER
60 N=
INT(10*RND(1)+1)
70 FOR X = 1 TO N
80 READ A$
90 NEXT X
100 PRINT
"LE MOT AU HASARD EST: " A$
Exécutez le programme plusieurs fois. Cela ne fonctionne pas très bien. L'ordinateur est tout aussi susceptible de s'arrêter à une définition qu'à un mot.
Ce que l'ordinateur doit vraiment faire, c'est choisir un mot au hasard uniquement parmi les éléments 1, 3, S, 7 ou 9.
Heureusement, BASIC a un mot qui aide à cela.
Taper:
65 IF INT(N/2) = N/2 THEN N = N - 1
Maintenant, exécutez à nouveau le programme plusieurs fois. Cette fois, ça devrait marcher.
INT indique à l'ordinateur de ne regarder que la "partie entière" du nombre et d'ignorer la partie décimale. Par exemple, l'ordinateur voit INT(3.9) comme 3.
Supposons que N, le nombre aléatoire, est 10. La clause IF de la ligne 65 fait ceci :
INT(10/2) = 10/2
INT(5) = 5
5 = 5
Ce qui précède est vrai : 5 est égal à S. Puisque c'est vrai, l'ordinateur complète la clause THEN. N est ajusté pour être égal à 9 (10 - 1).
Supposons maintenant que N, le nombre aléatoire, est 9. La clause IF de la ligne 65 fait ceci :
INT(9/2) = 9/2
INT(4.5) =
4.5
4 = 4.5
Ce qui précède n'est pas vrai : 4 n'est pas égal à 4,5. Comme ce n'est pas vrai, l'ordinateur ne complète pas la clause THEN. N reste 9.
Outre la lecture d'un mot au hasard, l'ordinateur doit également lire la définition du mot. Ajoutez ces lignes à la fin du programme :
110 READ B$
120 PRINT "LA
DEFINITION EST:" B$
Exécutez maintenant le programme plusieurs fois.
Demandez à l'ordinateur d'imprimer un mot au hasard et sa définition après le suivant.
Ajoutez ceci au début du programme :
5 CLEAR 100
Cela réserve beaucoup "d'espace de caractères". Ajoutez ces lignes à la fin du programme :
130 RESTORE
140 GOTO 60
Cela permet à l'ordinateur de choisir un nouveau mot aléatoire et sa définition à partir d'un groupe "restauré" d'éléments de données.
Voici à quoi ressemble le programme :
1 RANDOMIZE TIMER
5 CLEAR
100
10 DATA TACITE,HABITUELLEMENT NON PARLANT
20 DATA LOQUACE,TRES BAVARE
30 DATA BRUYANT, BRUIT FORT
40 DATA LACONIQUE,EXPRIME EN PEU DE MOTS
50
DATA EXPANSIF,QUI TEND A S'ETENDRE
60 N= INT(10*RND(1)+1)
65 IF INT(N/2)
= N/2 THEN N = N - 1
70 FOR X = 1 TO N
80 READ A$
90 NEXT X
100
PRINT "LE MOT AU HASARD EST: " A$
110 READ B$
120 PRINT "LA DEFINITION
EST:" B$
130 RESTORE
140 GOTO 60
Si vous voulez vous pouvez ajoutez quelques mots et définitions supplémentaires en ajoutant des lignes DATA.
Pour des variantes de ce programme, vous pouvez essayer des états et des capitales, des villes et des pays, des mots et des significations étrangers.
Programme faites-le vous même
Vous souhaitez compléter ce programme ?
Programmez-le pour que l'ordinateur :
1. Affiche uniquement la
définition.
2. Vous demande le mot.
3. Compare le mot avec le mot
aléatoire correct.
4. Vous indique si votre réponse est correcte. Si votre
réponse est incorrecte, affiche le mot correct.
1 RANDOMIZE TIMER
5 CLEAR
100
10 DATA TACITE,HABITUELLEMENT NON PARLANT
20 DATA LOQUACE,TRES BAVARE
30 DATA BRUYANT, BRUIT FORT
40 DATA LACONIQUE,EXPRIME EN PEU DE MOTS
50
DATA EXPANSIF,QUI TEND A S'ETENDRE
60 N= INT(10*RND(1)+1)
65 IF INT(N/2)
= N/2 THEN N = N - 1
70 FOR X = 1 TO N
80 READ A$
90 NEXT X
110 READ
B$
120 PRINT "QUE SIGNIFIE LE MOT: " B$
130 RESTORE
140 INPUT R$
150
IF R$ = A$ THEN 180
160 PRINT "MAUVAIS"
170 PRINT "LE MOT JUSTE EST :" A$
180 GOTO 60
190 PRINT "CORRECT"
200 GOTO 60