Tutoriel pour apprendre Basic

Bodman

Voici un petit apprentissage du Basic. Il n'est pas bien long, pas très complet, mais pour débuter, ce n'est déjà pas mal et pour dire même très bien. Ce tutoriel vous expliquera les bases du Basic. Il reprendra ses commandes les plus simples et les expliquera par de courtes phrases et de nombreux exemples.

Merci d'apporter vos avis.
Commentez

- Titre : Tutoriel pour apprendre Basic

- Auteur : Bodman

- Parution : 1 octobre 2000

- Mise à jour : 15 février 2016

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 bodman. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Les bases

- I-A. PRINT

- I-B. CLS

- I-C. COLOR

- I-D. REM

- I-E. INPUT

- I-F. GOTO

- II. Les variables (DIM)

- II-A. DIM

- II-B. LET

- II-C. LEFT et RIGHT

- II-D. UCASE$ et LCASE$

- II-E. LEN

- III. Prendre des décisions

- III-A. IF….THEN…..ELSE

- III-B. CASE

- IV. Les boucles

- IV-A. FOR

- IV-B. DO…LOOP

- V. Le multimédia

- V-A. Le graphisme

- V-A-1. LES COORDONNÉES

- V-A-2. SCREEN (le mode d'affichage)

- V-A-3. PSET (le point)

- V-A-4. LINE (la ligne)

- V-A-5. LINE+B (le rectangle)

- V-A-6. CIRCLE (le cercle)

- V-A-7. PALETTE

- V-B. Le son

- V-B-1. SOUND (un son)

- V-B-2. PLAY(des notes)

- V-B-3. Beep

- V-C. Exemple final

- VI. SUB

- VI-A. SUB

- VI-B. FUNCTION

- VII. ASCII

- VII-A. CHR$

- VII-B. INKEY$

- VIII. Manipulation de fichiers

- VIII-A. OPEN

- VIII-A-1. L'accès séquentiel

- VIII-A-2. LECTURE

- VIII-A-3. ENREGISTREMENT

- IX. DOS

- X. Les trucs utiles

- X-A. Timer

- X-B. RANDOMIZER

- X-C. ABS - valeur absolue

- X-C-1. COS - cosinus

- X-C-2. SIN - sinus

- X-C-3. TAN - tangente

- X-C-4. OCT$ - représentation octale

- X-C-5. CQR - racine carrée

- X-C-6. Hex$ - valeur hexadécimale

- X-C-7. SPC

- X-C-8. SWAP

- XI. Table des propriétés de décision (table de vérité)

I - Les bases

I-A - PRINT

Cette commande sert à marquer du texte sur l'écran.

exemple :

PRINT "le texte que tu verras à l'exécution."

On peut remarquer que le texte à afficher est entre "". Pour exécuter le programme, faites 'shift+F5'. Si vous avez exécuté QBASIC sous DOS vous avez dû remarquer que le programme s'est inscrit en dessous des lignes de commandes, pour y remédier nous allons utiliser 'CLS'.

I-B - CLS

Cette commande nettoie l'intégralité de l'écran. Si vous la rajoutez au-dessus de notre petit programme:

CLS
PRINT "le texte que tu verras à l'exécution."

Alors les lignes de commande ont été effacées.

I-C - COLOR

Utilisé comme son nom l'indique pour indiquer des couleurs avant d'inscrire du texte.

Exemple :

CLS
COLOR 2
PRINT "bonjour"

Alors le programme affichera « bonjour ».

Chaque couleur correspond à un nombre :

- 0 Noir ;

- 1 Bleu ;

- 2 Vert ;

- 3 Cyrian ;

- 4 Rouge ;

- 5 Magenta ;

- 6 Jaune ;

- 7 Blanc.

Si l'on ajoute 8 à un de ces nombres alors on obtiendra une couleur plus claire. Mais avec ces 16 couleurs en ajoutant 16 à leur valeur le texte clignotera.

I-D - REM

Cette commande sert tout simplement à ajouter des commentaires.

Exemple :

REM par BODMAN
CLS
REM le faire clignoter en rouge clair
REM 4+8+16=28
COLOR 28
PRINT "CooL"
END

I-E - INPUT

Commande très utile, elle permet d'envoyer des infos à votre programme.
Exemple : vous voulez faire un programme qui calcule le prix du jambon.

REM par bodman
DIM resul AS INTEGER
DIM prix AS INTEGER
DIM kilo AS INTEGER
REM ne vous occupez pas de la deuxième, troisième et quatrième ligne j'en parlerai plus tard
CLS
REM pour vider l'écran
PRINT "bonjour"
REM faut être poli de nos jours
INPUT "quel est le prix au kilo"; prix
REM ici nous avons posé une question,quel est le prix au kilo?
REM le "?" sera mis automatiquement.
REM puis nous avons mis "prix" pour que la réponse soit inscrite en valeur integer(nous verrons cela bientôt)
INPUT "combien de kilos avez-vous"; kilo
REM nous allons maintenant calculer le prix
resul = kilo * prix
REM et le donner
PRINT "le prix du jambon et de "; resul
END

I-F - GOTO

Une commande très utilisée, elle sert à se rendre à une ligne de commande du programme que l'on aura annotée d'un nombre.
Exemple :

REM par BODMAN
REM questionnaire
CLS
10 print "1"
goto 30
20 print "4"
goto 50
30 print "2"
40 print "3"
goto 20
50 print "5"
60 print "6"
END

II - Les variables (DIM)

Elles désignent un nombre ou un texte, ou je ne sais pas quoi. On peut les annoncer au début d'un programme comme dans le programme d'avant ou en plein milieu. Il existe plusieurs variables, mais pour ne pas vous embrouiller je ne vais vous en expliquer que deux : INTEGER et STRING.

II-A - DIM

Sert à les nommer.

Integer désigne un nombre.
suivi de '%', mais pas obligatoire (faites-le, on s'embrouille sinon). Exemple :

DIM age as integer
...
input "ton âge" ; age%
print "tu as " ;age%
...

String désigne un texte.
Toujours suivi de '$'. Exemple :

DIM nom as string
...
input "ton nom" ; nom$
print "tu t'appelles " ;nom$

Voici quelques variables qui n'avaient pas été proposées auparavant. Elles sont toutes de type numérique.

Grand nombre entier

Long

&

Grand nombre à virgule

Double

#

Nombre à virgule

Single

!

II-B - LET

Utilisée pour modifier des variables, cette commande se présente de cette manière :

LET [nom de la variable à modifier] = [résultat]

par exemple :

LET valeur$ = "bonjour"

Là, '$' indique que la variable 'valeur' est string pour que ce soit une variable de type integer, il aurait fallu avoir '%'. La valeur string 'valeur' contient donc 'bonjour'.
Nous allons voir maintenant d'autres exemples :

LET chiffre% = 14 + autrechiffre%
LET nom$ = nom$ + " est bizarre!!!"

II-C - LEFT et RIGHT

Ces instructions servent à prendre une partie précise d'une valeur string.

Exemple :

a$ = "bonjour bod"
debut$ = LEFT$(a$, 7)
PRINT debut$
fin$ = RIGHT$(a$, 3)
PRINT fin$

II-D - UCASE$ et LCASE$

Utilisées pour changer les minuscules et les majuscules de type string.

Exemple :

text$="Bonjour Toi"
UCASE$(text$)
REM ici text$ devient BONJOUR TOI
LCASE$(text$)
REM et ici il devient bonjour toi

II-E - LEN

Cette commande sert à connaître le nombre de caractères présents dans une variable de type texte.

Exemple :

CLS
INPUT "Entrez un mot"; M$
taille% = LEN (M$)
PRINT " ce mot a " +taille%+ "caractères"

III - Prendre des décisions

III-A - IF….THEN…..ELSE

IF…then se présente de cette manière :

IF [condition] then [résultat] ELSE [résultat si la condition n'est pas accomplie] END IF

Cette commande sert à exécuter d'autres commandes si une condition est accomplie, mais si celle-ci ne l'est pas, alors une autre commande sera exécutée. La partie ELSE n'est pas obligatoire, mais il faut absolument que IF END soit présent, sinon on vous affichera un message d'erreur.
Exemple :

REM par bodman
REM questionnaire
CLS
1 PRINT "bienvenue à toi visiteur"
INPUT "quel est ton nom"; nom$
IF nom$ = "" THEN
GOTO 1
END IF
2 INPUT "quel est ton âge(un nombre)"; age$
IF age$ = "" THEN GOTO 2
END IF
PRINT "ton nom est " + nom$ + " et tu as " + age$ + " ans."

Voici les syntaxes utilisées :
= est égal à ;
> est supérieur à ;
< est inférieur à ;
<> est différent de ;
>= est supérieur ou égal à ;
<= est inférieur ou égal à.

Ainsi que la table de la vérité.

III-B - CASE

Cette commande ressemble un peu à If…Then...Else, car son but est le même, prendre une décision, mais cette fonction est plus pratique, car elle permet plus de possibilités, je m'explique :

If…THEN…ELSE fonctionne comme ceci :

s'il est arrivé à temps, alorsc'est bien ;
sinon,c'est pas bien.

CASE lui fonctionne de cette manière :

Tu viens d'arriver :
situ es arrivé à temps, c'estbien ;
situ es arrivé en retard d'une minute, c'estbien ;
situ es arrivé en retard de plus d'une minute, c'estpas super ;
situ n'es pas arrivé, c'est pas bien.

Exemple :

CLS
INPUT "quelle est ta note"; note%
SELECT CASE note%
CASE IS < 0
PRINT "nul"
CASE 0 TO 9
PRINT "insuffisant"
CASE 10
PRINT "juste"
CASE 11 TO 15
PRINT "bien"
CASE 15 TO 20
PRINT "très bien"
END SELECT

IV - Les boucles

IV-A - FOR

Cette partie de la programmation, en général, est assez énervante pour ma part, car il ne faut rien oublier ou sinon le programme risque de ne plus s'arrêter. Je m'explique, les boucles servent à répéter plusieurs fois une même instruction et si cette boucle ne se termine jamais alors le reste du programme ne sera pas exécuté et la boucle continuera sans s'arrêter. Mais bien entendu, je ne vais pas vous donner un exemple qui ne fonctionne pas, c'est logique.
Exemple :

FOR numero% = 1 TO 10
PRINT "le numéro "; numero%
NEXT
END

Le programme donne à numero la valeur 1 et lui ajoute 1 jusqu'a ce qu'il atteigne 10, mais pendant ce décompte on peut ajouter des commandes comme je l'ai fait avec print.
On peut ajouter à cette boucle STEP qui définira de combien se fera le décompte.
Exemple :

FOR numero% = 4 TO 12 STEP 2
PRINT "le numéro "; numero%
NEXT
END

Là on compte de 2 en 2.

Voici une autre boucle utilisée d'une autre manière.

Exemple :

CLS
WHILE result = "2"
INPUT "1+1= " ; result
WEND
REM WEND signifie que la boucle est finie.
END

En bon français cela donne :
tant que result ne sera pas égal à « 2 », je poserai ma question « 1+1= ».

IV-B - DO…LOOP

DO…LOOP (boucle)

Encore une boucle me direz-vous, oui, mais différente. Alors celle-ci commence par do, puis il faut mettre les commandes de la boucle on ajoute loop et until qui indiquera la condition pour stopper la boucle.

Rien qu'un exemple pour traduire cela :

Cls
Do
Input " tapez oui " ;rep$
Loop until rep$ = " oui "
Print " enfin "
End

V - Le multimédia

V-A - Le graphisme

Maintenant nous allons aborder une partie plus amusante, le graphisme !!!
BON C'EST PAS DU GRAND LUXE, STYLE 3DSMAX, MAIS C'EST DÉJÀ ÇA.

V-A-1 - LES COORDONNÉES

Bon déjà on va apprendre les coordonnées.

X donne l'horizontale Y la verticale.

Donc, pour un point X=0 et Y=0, il est tout en haut à gauche.

Attention toutes ces commandes ne peuvent être exécutées qu'avec un affichage spécifique, ici 640x480 (pas besoin de modifier celui de votre PC la commande screen 12 le fera).

V-A-2 - SCREEN (le mode d'affichage)

Nous avons toujours travaillé avec le mode normal (réservé au texte) avec lequel nous ne pouvions dessiner.

Pour le changer, nous allons exécuter la commande screen.

Exemple :

Screen 12 (avec celle-ci on va dessiner 640/480)

Screen 0 (avec celle-ci on va écrire, c'est celle de base).

V-A-3 - PSET (le point)

Il demande deux informations obligatoires les coordonnées de X et Y et une information optionnelle, la couleur.

Exemple :

PSET (X,Y) ou PSET (X,Y),couleur

Donc pour faire un point rouge au centre on doit écrire :

PSET (320,240),4

V-A-4 - LINE (la ligne)

Là il faut la valeur de départ de X et Y, puis la valeur de fin.

Par exemple :

Pour faire une droite rouge qui traverse tout l'écran, on doit faire :

LINE (0, 240) - (640, 240), 4

V-A-5 - LINE+B (le rectangle)

C'est pareil que la ligne, sauf qu'il faut ajouter B ou BF suivant que le rectangle soit rempli ou pas.

Je m'explique :

Voilà la ligne :

LINE (10, 15) - (639, 240), 4

Voilà le rectangle vide(B) :

LINE (10, 15) - (639, 240), 4,B

Voilà le rectangle plein (BF) :

LINE (10, 15) - (639, 240), 4,BF

V-A-6 - CIRCLE (le cercle)

Encore une nouvelle forme, cette dernière est plus facile à dessiner que les dernières, car il suffit de donner les coordonnées du centre du cercle et son diamètre.

Exemple :

Un cercle qui a pour centre le point (100, 100) et qui possède un diamètre de 30 pixels.

CIRCLE (100, 100), 30

V-A-7 - PALETTE

Cette commande sert à changer la valeur d'une couleur.

Par exemple si je change le mode d'écran avec screen le nombre de couleurs peut être plus ou moins grand (256 couleurs pour screen 12 , 16 pour screen 7, etc.). Alors si vous avez tracé un cercle bleu sous screen 7 de cette manière :

Cls
Screen 7
Circle (12,12),9,1

et que vous ajoutez à cette commande

Palette 1,2

alors tout ce qui était en bleu (1) devient rouge (2).
Cela est valable pour ce qui est affiché et ce qui le sera.

V-B - Le son

V-B-1 - SOUND (un son)

SOUND sert à faire un bruit avec votre buzzer. Il a besoin de deux nombres Le premier est la fréquence (de 37 à 32 767), le deuxième donne la durée de ce son (18,2 correspond environ à 1 seconde).

SOUND fréquence, durée

SOUND 50, 6

V-B-2 - PLAY(des notes)

Les notes de nos musiques favorites se font avec cette commande.

Chaque lettre correspond à une note :

DO est C ;

RE est D ;

MI est E ;

FA est F ;

SOL est G ;

LA est A ;

SI est B.

Un O suivi d'un chiffre donne l'octave et < ou > l'augmente ou la diminue.

Exemple :

PLAY "o3CED<CED<DEC>DEC>o6ECECCC"

On peut aussi donner une durée de note avec LX(X est un nombre de 1 a 64 qui donne la durée d'une blanche si elle est egale à 1)

V-B-3 - Beep

Cette commande émet simplement un beep sonore ça peut toujours être utile.
Exemple :

input "combien font 2 et 2";rep%
if rep%= 4 then
print "bien"
else
beep
print "mauvaise réponse"
end if

V-C - Exemple final

Bien ! Cette partie multimédia est finie, mais pour pouvoir se détendre un peu, voilà un programme un peu bête qui utilise deux fonctions de cette partie multimédia.

DIM x AS INTEGER
DIM y AS INTEGER
x = 1
y = 1
SCREEN 12
10 FOR x = 1 TO 640 STEP 10
PSET (x, y)
SOUND x + 37, .5
NEXT
y = y + 20
IF y > 480 THEN
END
END IF
GOTO 10
END

VI - SUB

VI-A - SUB

Cette commande seconde le programme, mais pour mieux comprendre rien ne vaut un petit exemple :
Pour créer un sub, allez dans le menu Edit puis New sub, donnez le nom de cette sub (ici bonjour), puis mettez-y les commandes voulues.
Au début cela ressemble à ceci :

SUB bonjour

END SUB

Puis, entre ces deux lignes, vous ajoutez vos commandes :

Print gag1 +" est drôle "
Print gag2 + " pas drôle "

Puis ajoutez gag1 et gag2 devant Sub comme ceci pour les appeler avec votre application

SUB bonjour(gag1,gag2)

Puis pour finir, cliquez en bas de l'écran sur Sub et sélectionnez votre application. Vous n'avez plus qu'à appeler votre sub de cette manière :

Call sub (valeur1$,valeur2$)

Valeur1 et 2 son des variables que vous aurez préalablement données et qui seront utilisées par sub.

Voici un exemple de programme qui utilise cette fonction :

CLS
INPUT " donnez-moi un âge "; age$
INPUT " donnez-moi un nom "; nom$
PRINT "je vais appeler sub description pour décrire cette personne "
CALL description(age$, nom$)
PRINT " et voilà "
END

Crée ensuite une sub :

SUB description (hihi$, haha$)
PRINT " il a " + hihi$ + " et s'appelle " + haha$
END SUB

VI-B - FUNCTION

Celle-ci fonctionne de la même manière que sub, mais ne sert pas à la même chose, car elle donne un résultat voyez l'exemple :
Après avoir créé une fonction en sélectionnant créer fonction dans éditer
Nommez-la result et tapez ceci :

FUNCTION result(c1, c2)
INPUT "un nombre";c3
result = (c1 + c3)-c2
END FUNCTION

Puis dans votre application, appelez cette fonction de cette manière :

Result(rep1%,rep2%)

VII - ASCII

Ceci n'est pas un mot-clé, mais un code numérique qui correspond à tous les caractères connus. Par exemple en ASCII la première lettre de l'alphabet « a » se dit 65 en decimal. La liste de tous ces caractères se trouve sur l'aide de qbasic et si vous la voulez, cliquez ici.

VII-A - CHR$

Dans une commande, si vous voulez utiliser un nombre ASCII vous devrez taper CHR$(65).

Exemple :

Print CHR$(65) ; CHR$(79)

Ça donne « ao », c'est pas très poétique, mais c'est un exemple.

VII-B - INKEY$

Vous avez sans doute toujours voulu savoir comment on pouvait exécuter une action uniquement sous la pression d'une touche et bien c'est bon vous allez le savoir.

Quoi vous ne voyez pas ! ! Bon un petit exemple s'impose :

Vous allez faire un programme qui émet un son en continu.

Cls

Print " tic "

10 Sound 46,3

goto 10

end

Mais voilà vous en avez assez, car vous n'arrivez pas à l'arrêter. Alors vous voulez pouvoir faire [echapp] et stopper ce son (très énervant). Rien de plus simple. Ajoutez ceci à votre programme (mais attention avant goto ou alors cette commande ne sera jamais exécutée).

If inkey$ = CHR$(27) then end

VIII - Manipulation de fichiers

Déjà les mots clés utilisés pour la suppression et création de fichiers et de répertoires :

KILL "fichier à supprimer"
MKDIR "dossier à créer"
RMDIR "dossier à supprimer"

Pour les utiliser par exemple, on peut faire ceci :

Cls
Input " quel fichier voulez-vous supprimer " ;fichier$
Input " êtes-vous sûr de vouloir le supprimer (oui ou non)" ;reponse$
If reponse$ = " oui" then
Kill fichier$
Print " le fichier a été supprimé"
End

Ensuite nous allons apprendre à ouvrir, lire et modifier un fichier.

VIII-A - OPEN

Alors déjà une chose, il existe deux types d'accès de manipulation de fichier, l'accès séquentiel et l'accès binaire, mais pour l'instant on va se pencher sur le séquentiel, car le binaire à beau être plus rapide, il demande plus de connaissances.

VIII-A-1 - L'accès séquentiel

Avec cette méthode, on ne peut pas écrire et lire à la fois, il y a plusieurs mots clés qui indiqueront l'opération voulue.
La commande se présente de cette manière :

Pour ouvrir

OPEN "chemin du fichier à lire" FOR INPUT AS #X

Pour écrire

OPEN "nom du fichier à modifier" FOR OUTPUT AS #X
OPEN " nom du fichier à modifier " FORAPPEND AS #X

X désigne le nombre qu'assignera le programme au fichier

La différence entre output et append est que output supprimera le fichier et le créera à nouveau pour qu'il soit vide alors que append lui reprendra à la fin de ce fichier.

VIII-A-2 - LECTURE

Bien, maintenant nous allons voir la lecture de plus près. Pour lire un fichier vous aurez besoin de l'ouvrir avec input de cette manière :

OPEN "bod.txt" FOR INPUT AS #2

On ouvre le fichier bod.txt et on lui assigne le nombre 2.
Puis pour l'afficher à l'écran plusieurs méthodes.
Pour afficher la première ligne, il suffit de faire ceci :

LINE INPUT #2, li$
PRINT Li$

Mais on ne va pas s'arrêter à une ligne.

10 LINE INPUT #2, Li$
PRINT Li$
IF EOF(2) <> 1 THEN 10

Comme ça, on affichera tout le texte, car si on répète line ce sera automatiquement la seconde ligne qui sera prise en compte et pour allez jusqu'à la fin alors on utilise EOF lorsque sa valeur est égale à 1, c'est qu'il est à la fin du texte alors tant qu'il ne le sera pas on réexécutera line.
Mais on peut aussi faire plus précis. Si vous voulez lire des variables, il vous suffira de faire de cette manière :
si on a un fichier test.txt qui contient ceci :

" dupond " , 45
" henri ",65
" chevalier ",32
"volaide ",23

on peut ouvrir ce fichier de cette manière :

OPEN "test.txt" FOR INPUT AS #1
10 INPUT #1, nom$, age%
PRINT nom$ + " a "; age%; " ans "
IF EOF(1) <> 1 THEN 10
END

Alors le programme affichera tous les noms et les âges présents sur le fichier.

VIII-A-3 - ENREGISTREMENT

Je rappelle que open + append et open + output ont la même fonction, mais que l'un ajoute du texte et que l'autre supprime tout texte présent pour le remplir ensuite.
De la même manière que pour la lecture vous pouvez sauver des lignes ou des variables.
Et de la même manière aussi si l'on répète une modification ou une lecture sur un fichier une fois mis sous cette forme ' #chiffre‘ on passe obligatoirement à la ligne suivante.

Write : pour des variables :

OPEN "test.txt" FOR APPEND AS #1
FOR i = 1 TO 10
INPUT " quel est son nom "; nom$
INPUT " quel est son âge "; age%
WRITE #1, nom$, age%
PRINT "personne "; i; " stocké"
NEXT i
END

Print : pour des lignes :

OPEN "test.txt" FOR APPEND AS #6
INPUT " tapez un truc "; truc$
Prinr #6, truc$
PRINT "le truc est sauvé dans test.txt"
END

IX - DOS

Commande très utile elle permet d'exécuter des commandes DOS. Si si, j'ai bien dit DOS.

Par exemple vous pouvez créer un programme qui puisse donner l'heure, car sous MS-DOS si l'on tape time, on a l'heure. Alors si l'on fait ce programme :

Shell " time"

L'heure s'affichera.

Mais cette commande apporte beaucoup d'autres possibilités, par exemple si vous voulez vous pourrez faire un logiciel qui vérifie que quelqu'un est connecté à Internet :

REM par bodman

CLS

Print " cherche l'IP "

Input " quelle est l'adresse IP de la personne à vérifier " ;IP$

Print " Voici la réponse "

Shell " ping "+IP$

Print " au revoir "

End

X - Les trucs utiles

Voilà quelques trucs qui peuvent toujours servir.

X-A - Timer

Il donne le nombre de secondes écoulées depuis minuit (qu'est-ce que vous en avez à faire ? Vous allez voir). C'est vrai que sauf si vous êtes un peu loup-garou sur les bords (et encore) cela n'a pas l'air d'être très utile, mais si on y regarde de plus près cela peut devenir très utile. Par exemple vous avez envie de faire une animation (façon de parler) qui affichera au fur et à mesure un texte à l'aide d'une boucle. Mais voilà la boucle va trop vite et votre texte apparaît d'un coup. TINTINTINTIN…TIIIIN…TIIIIIN. Timer arrive (je voulais mettre un fichier son sur la page HTML, mais je n'ai pas réussi à trouver une fonction qui s'active en même tant que votre surprise, c'est une blague, il faut rire ! ! ! Pas me prendre pour un malade ! ! !)Bon revenons à notre timer. On va donc ajouter à la boucle ceci :

Temp1 = timer

Do

Loop until timer - temp1 >.2

Là, le programme attendra que l'espace entre temp1 et timer soit assez grand, mais on aurait pu augmenter la valeur pour attendre un peut plus. Quoi ! ? Vous voulez le programme qui affiche au fur à mesure le texte, bon OK.

Le voilà !

Version normale, c'est une pyramide :

SCREEN 13

text$ = "voilà le texte qui vient bout par bout"

FOR i% = 1 TO LEN(text$)

temp1 = TIMER

DO

LOOP UNTIL TIMER - temp1 > .2

PRINT LEFT$(text$, i%)

NEXT

END

Version multicolore. Là il n'y a pas de pyramide, car le texte est écrit sur lui-même avec la ligne de commande LOCATE 10,1 :

SCREEN 13

CLS

text$ = « voilà le texte qui vient bout par bout »

FOR i% = 1 TO LEN(text$)

temp1 = TIMER

DO

LOOP UNTIL TIMER - temp1 > .2

COLOR i% + 60

LOCATE 10, 1

PRINT LEFT$(text$, i%)

NEXT

END

X-B - RANDOMIZER

Cette fonction sert à donner aléatoirement une valeur dans un groupe de valeurs préchoisies.

Par exemple, on peut faire des dés ou plutôt un jeu de chance où vous devrez indiquer une valeur comprise entre 1 et 6. Le logiciel leur donnera au hasard une valeur et si elles sont égales c'est gagné sinon c'est perdu.

Voici le programme :

CLS

PRINT "les dés de la chance" ' présentation du programme

10 INPUT "donnez un chiffre entre 1 et 6"; chiffre% 'demande d'un chiffre

IF chiffre% > 6 THEN ' vérification du chiffre

GOTO 10'renvoie au début si faux

END IF

IF chiffre% < 1 THEN

GOTO 10

END IF

RANDOMIZE TIMER' début de la fonction si on enlève timer le programme 'demandera la base du chiffre aléatoire essayez.

lechiffre% = INT(RND * 7)'RND sert à choisir le chiffre 7 est le maximum + '1 c'est-à-dire que si j'avais mis 6 j'aurais dû ajouter +1 ou alors jamais un 6 n'apparaîtrait

IF lechiffre% = chiffre% THEN'resultat

PRINT "gagné"

GOTO 20

END IF

IF lechiffre% <> chiffre% THEN

PRINT "perdu"

PRINT "mon chiffre était "; lechiffre%; " hihi!!"

END IF

20 INPUT "veux-tu rejouer(oui ou non)"; reponse$ 'demande si le joueur veut 'rejouer.

SELECT CASE reponse$

CASE IS = "non"

END

CASE IS = "oui"

GOTO 10

CASE ELSE

GOTO 20

END SELECT

END' c'est la fin.

Quoi vous voulez tricher ? Oh là ! Ce n'est pas bien, mais cela vous regarde allez voir cette source :

CLS

PRINT "les dés de la chance"

PRINT "appuyez sur une touche"

10 INPUT "donnez un chiffre entre 1 et 6"; chiffre%

IF chiffre% = 963 THEN R

PRINT "mode tricheur" R

mode% = 1 R

END IF R

IF chiffre% > 6 THEN

GOTO 10

END IF

IF chiffre% < 1 THEN

GOTO 10

END IF

IF mode% = 1 THEN GOTO 40 R

RANDOMIZE TIMER

lechiffre% = INT(RND * 6) + 1

IF lechiffre% = chiffre% THEN

40 PRINT "gagné"

GOTO 20

END IF

IF lechiffre% <> chiffre% THEN

PRINT "perdu"

PRINT "mon chiffre était "; lechiffre%; " hihi!!"

END IF

20 INPUT "veux-tu rejouer(oui ou non)"; reponse$

SELECT CASE reponse$

CASE IS = "non"

END

CASE IS = "oui"

GOTO 10

CASE ELSE

GOTO 20

END SELECT

END

Les lignes qui se terminent par R correspondent aux rajouts par rapport à l'exemple précédent.

Explication.

Au moment de donner un chiffre s'il est égal à 963, alors, on inscrit mode tricheur à l'écran et donnons à mode% la valeur 1 puis à chaque fois le programme sautera le moment de choisir un chiffre pour aller directement à print « vous avez gagné ».

Voilà plusieurs commandes qui fonctionnent sur le même modèle :

X-C - ABS - valeur absolue

Exemple :

Valeur = ABS(12)

PRINT " La valeur absolue de 12 est " ;valeur

Bien sûr, il est complètement inutile dans cet exemple d'utiliser cette commande, car tout le monde sait que la valeur absolue de 12 est 12.

X-C-1 - COS - cosinus

Exemple :

Valeur = COS(12)

PRINT " Le cosinus de 12 est " ;valeur

X-C-2 - SIN - sinus

Exemple :

Valeur = SIN(12)

PRINT " Le sinus de 12 est " ;valeur

X-C-3 - TAN - tangente

Exemple :

Valeur = TAN(12)

PRINT " La tangente de 12 est " ;valeur

X-C-4 - OCT$ - représentation octale

Exemple :

Valeur = OCT$(12)

PRINT " La représentation octale de 12 est " ;valeur

X-C-5 - CQR - racine carrée

Exemple :

Valeur = CQR(12)

PRINT " La racine carrée de 12 est " ;valeur

X-C-6 - Hex$ - valeur hexadécimale

Donne la valeur hexadécimale d'une valeur décimale.

Exemple :

Valeur = HEX$(12)

PRINT " la valeur hexadécimale de la valeur décimale 12 est " ;valeur

pour les commandes COS, SIN et TAN l'angle doit être donné en radians. Pour l'avoir en degrés il faudra le multiplier par 57.2958 ou 360/2pi .

X-C-7 - SPC

Insère des espaces dans un texte.

Exemple :

Print "bodman";Spc(10)"bodman"

Cela donne :

BODMAN            BODMAN

X-C-8 - SWAP

Sert à faire permuter des variables de même type.

Exemple :

Var1 swap var2

Var1 devient var2 et var2 devient var1.

XI - Table des propriétés de décision (table de vérité)

Chaque opérateur fournit les valeurs de retour indiquées ci-dessous. Un « V »indique une valeur vraie et un « F », une valeur fausse. Les opérateurs sont présentés dans leur ordre de priorité.

VALEUR DE

VALEUR FOURNIE PAR L'OPÉRATEUR LOGIQUE

-

-

-

-

X

X

X

X

X

Y

Y

-

NOT

AND

OR

XOR

EQV

IMP

-

-

-

X

Y

Y

Y

Y

Y

-

-

-

-

-

-

-

-

-

V

V

-

F

V

V

F

V

V

V

F

-

F

F

V

V

F

F

F

V

-

V

F

V

V

F

V

F

F

-

V

F

F

F

V

V

J'explique : si X est V et Y est V alors avec NOT cela devient F.