Section courante

A propos

Section administrative du site

Programmation en BASIC

D'abord la mauvaise nouvelle - ORIC ne comprend pas l'anglais. Mais maintenant, la bonne nouvelle - vous n'avez pas besoin d'apprendre un langage électronique compliqué, car ORIC parle un langage appelé BASIC, (abréviation de l'anglicisme Beginners All-purpose Symbolic Instruction Code). Ce langage a été inventé en 1964 pour aider les gens à écrire facilement des programmes informatiques. Si votre machine est allumée, nous verrons à quel point c'est facile.

Tapez l'instruction suivante :

  1. PRINT "BONJOUR"

puis appuyez sur la touche RETURN.

Au fur et à mesure que vous tapiez les lettres, elles auraient dû apparaître à l'écran et, lorsque vous avez appuyé sur RETURN, le mot BONJOUR aurait dû apparaître juste en dessous. Le carré clignotant s'appelle le curseur. Il vous indique où les mots apparaissent sur l'écran. PRINT est une commande BASIC, mais cela signifie la même chose qu'en anglais. Essayez d'afficher d'autres éléments à l'écran. N'oubliez pas de mettre des guillemets autour de ce que vous voulez dire et n'oubliez pas d'appuyer sur RETURN.

Entrez maintenant :

  1. WRITE "BONJOUR"

et appuyez sur RETURN.

Oops ! Vous venez de recevoir un message d'erreur. Les mots :

? SYNTAX ERROR

signifie que vous avez fait une erreur. Bien que BASIC soit facile à apprendre et proche de l'anglais, vous devez utiliser les mots corrects ou ORIC ne comprendra pas.

Un coup d'oeil à l'intérieur de l'ORIC peut aider à clarifier un peu les choses. À l'intérieur d'ORIC, il y a plusieurs micropuces. Le plus important est le microprocesseur (C.P.U. soit l'abréviation de l'anglicisme de Central Processor Unit) étant le cerveau d'ORIC. Les micropuces utilisent des tensions élevées ou basses pour fonctionner. Si vous imaginez une rangée de huit ampoules avec des interrupteurs en dessous, vous pouvez voir que n'importe laquelle d'entre elles peut être allumée ou éteinte. Vous pouvez penser que les puces contiennent toutes des lots et des lots de ces commutateurs à huit blocs. Chaque commutateur est appelé un bit et chaque bloc est appelé un octet.

Si vous y réfléchissez, il existe 256 combinaisons différentes d'activations et de désactivations. Si active = 1 et désactivé = 0, c'est une façon d'entreposer 256 numéros. Ce système est appelé binaire :

Binaire Décimal normal
00000000 0
00000001 1
00000010 2
00000011 3
00000100 4
... ...
11111110 254
11111111 255

C'est pourquoi certaines personnes pensent que les ordinateurs n'ont rien à voir avec les mathématiques - en fait, les zéros et les uns peuvent représenter des lettres, des mots ou presque n'importe quoi. Ceci est similaire à la façon dont le code morse peut dire tout ce qu'il veut en utilisant uniquement des points et des tirets.

Une autre puce importante dans ORIC est la BASIC ROM (Read Only Memory). Cela traduit les mots en BASIC en zéros et en ceux que le cerveau d'ORIC peut comprendre. Il n'y a pas beaucoup de mots BASIC, entre cent et deux cents. Il existe plusieurs versions différentes de BASIC, tout comme il existe plusieurs versions différentes de l'anglais.

Par exemple, l'anglais parlé à Londres n'est pas tout à fait le même que celui parlé à New York. Si un Londonien parle de trottoir, il veut dire ce qu'un Américain appellerait le trottoir. C'est pourquoi nous devons parler correctement à l'ORIC, sinon nous recevrons des messages d'erreur.

Taper l'instruction suivante :

  1. PRINT "5"

puis RETURN, puis tapez :

  1. PRINT 5

puis RETURN. Apparemment, il n'y a pas de différence. Tapez maintenant :

  1. PRINT "5 + 2"

puis tapez l'instruction suivantes :

  1. PRINT 5 + 2

(À présent, vous devriez être habitué à appuyer sur la touche RETURN, donc je vais arrêter de vous le rappeler.) Si vous entrez des informations entre guillemets, cela s'appelle une chaîne de caractères, et les chaînes de caractères peuvent être des lettres, des chiffres, même des caractères graphiques ! Si vous entrez des informations sans guillemets, l'ORIC suppose qu'il s'agit d'un nombre, et si c'est sous la forme d'une somme, il trouvera la réponse pour vous.

Essayez maintenant :

  1. PRINT 75 + 25

Vous devriez obtenir 100. Astuce - vous pouvez taper «?» au lieu de PRINT pour gagner du temps. (remarquez la différence entre un zéro -0- et un O majuscule, et entre un -1- et un I majuscule - vous savez de quoi il s'agit, mais ORIC doit être dit correctement).

Essayez d'autres calculs. La touche de soustraction est à côté de 0, la division est / et la multiplication est * (décalage 8). Si vous faites une erreur, appuyez sur la touche CTRL et X. Une barre oblique inverse apparaîtra et toute la ligne sera supprimée. Si vous êtes intéressé par des mathématiques plus compliquées, rappelez-vous qu'ORIC n'opère pas sur les nombres au fur et à mesure qu'ils arrivent.

PRINT 4+3*2 ne vous donnera pas 14, mais 10 car * est plus important que +. Voici l'ordre de priorité, le plus important en haut, le moins important en bas :

Niveau Opération
Très haute priorité 0
Haute priorité ^ ("à la puissance de")
Moyenne priorité *,/
Base priorité +,-

Les opérateurs sur la même ligne ont la même priorité. C'est une façon d'utiliser ORIC comme calculatrice. Saisissez ces exemples pour comprendre les priorités :

  1. PRINT 2*3*4
  2. PRINT 4 + 3*2
  3. PRINT 4*3 + 2
  4. PRINT 4/2 + 3
  5. PRINT 2 + 3/4
  6. PRINT 3 + 4^12
  7. PRINT 3 - 4^2
  8. PRINT 2 + 4^3*2

Si vous n'êtes pas sûr, mettez la partie du paramètre (équation) que vous voulez calculer en premier entre parenthèses. Par exemple :

4+3*2=10

mais :

(4+3)*2=14

Vous souvenez-vous que nous disions qu'ORIC supposait que tout sans guillemets était un nombre ?

Tapez maintenant :

  1. PRINT H

et voyez ce qui se passe. Vous devriez obtenir un 0. Bien sûr, cela ne peut pas être un nombre - ou peut-il ? Taper maintenant :

  1. LET H = 4

Tapez maintenant :

  1. PRINT H

Cette fois, ORIC sait que vous avez mis H égal à 4 (comme en algèbre). H est appelé une variable. L'ORIC s'en souviendra jusqu'à ce que vous changiez la valeur de H, ou que vous tapiez CLEAR, ou que vous l'éteigniez. Essayez ceci avec d'autres lettres, puis tapez CLEAR et voyez si ORIC les a oubliées. Vous pouvez utiliser plus d'une lettre, donc AB peut avoir une valeur différente de A ou B. Vous pouvez également avoir A5 ou A6. ORIC acceptera les variables de plus de deux caractères, mais ne reconnaîtra que les deux premiers. Essayer de tapez l'instruction :

  1. LET JOHN=36
  2. LET JOCELYN=28

Tapez maintenant :

  1. PRINT JOHN
  2. PRINT JOCELYN

Vous devriez obtenir 28 à chaque fois, car ORIC n'a retenu qu'une variable JO, qui bien qu'initialement définie sur 36, a été réinitialisée à 28. Entrez :

  1. PRINT 4*JO

et vous pouvez voir comment les variables peuvent être traitées comme des nombres ordinaires. Jusqu'à présent, nous n'avons traité que des chiffres. Comment l'ORIC peut-il mémoriser les noms ? Tout comme il existe des nombres et des variables numériques, il existe des chaînes de caractères et des variables de chaîne de caractères.

Tapez :

  1. LET N$="TREMBLAY"

Tapez maintenant :

  1. PRINT N$

Vous devriez voir que "TREMBLAY" a été mémorisé comme une variable chaîne de caractères. Essayez de définir FP$ sur le nom de votre personne préférée. Si vous tapez :

  1. PRINT N$, FP$

vous devriez obtenir les deux noms à l'écran. La virgule définit un espace entre les chaînes de caractères, comme si vous utilisiez TAB sur une machine à écrire. ORIC a des paramètres TAB séparés de cinq caractères. Si vous utilisez un point-virgule (;), il n'y a pas d'espace entre les variables. Par exemple :

  1. PRINT N$;FP$

Il est possible d'ajouter des chaînes de caractères ensemble pour créer une nouvelle chaîne de caractères. Taper :

  1. LET A$ = N$+FP$

puis PRINT A$. C'est ce qu'on appelle la concaténation. Essayez à nouveau d'utiliser CLEAR pour vérifier s'il efface également les variables de chaîne de caractères.

Remarque : Vous n'avez pas besoin d'utiliser LET pour attribuer des valeurs aux variables. c'est-à-dire que A=10 est le même que LET A=10 à ORIC.

Lorsque nous parlions de variables numériques, vous avez probablement découvert que des fractions décimales pouvaient être contenues dans des variables, ainsi que des nombres entiers. Essayer :

  1. LET X=1/3
  2. PRINT X

Vous devriez obtenir 0.333333333. (ORIC peut contenir des nombres entre 2,93874x10-39 et 1,70141x10 38).

Les lettres simples doivent être appelées des variables à virgule flottante. Si la lettre, ou la paire de lettres, est suivie d'un %, on l'appelle une variable entière ou entière, par exemple A% = 4762. Ceux-ci peuvent être compris entre -32768 et +32767. En général, les variables entières peuvent être traitées plus rapidement que les variables à virgule flottante.

Jusqu'à présent, nous n'avons utilisé ORIC que pour nous donner des résultats de manière simple. C'est ce qu'on appelle l'exécution immédiate ou le mode calculatrice. La façon habituelle d'utiliser les ordinateurs est de leur faire entreposer une séquence d'instructions et d'utiliser ce programme quand nous en avons besoin.

En BASIC, l'ordre des actions est contrôlé par les numéros de ligne. Il est habituel de séparer les numéros de ligne de 10 afin que des lignes supplémentaires puissent être insérées ultérieurement. Peu importe l'ordre dans lequel vous entrez les lignes. ORIC les triera automatiquement dans le bon ordre.

Essayez ce programme court :

  1. 10 CLS
  2. 20 PRINT "ENTREZ VOTRE NOM"
  3. 30 INPUT N$
  4. 40 PRINT "HEUREUX DE VOUS RENCONTRER, ";N$

ORIC ira au premier numéro de ligne, 10 et effacera l'écran, PRINT"ENTREZ VOTRE NOM" puis passera à la ligne 30. Cela dit INPUT N$, donc le programme s'arrêtera ici jusqu'à ce que vous saisissiez quelque chose et tapiez RETURN. N$ contient maintenant votre nom. ORIC sautera à la ligne 40 et affichera :

HEUREUX DE VOUS RENCONTRER

suivi de votre nom. Le point-virgule (;) affiche votre nom après. Les points-virgules ne sont pas nécessaires dans les instructions PRINT mais peuvent rendre la liste plus claire. Ils suppriment le saut de ligne, alors faites attention à ne pas les mettre en fin de ligne. Tapez RUN. Cela met le programme en marche à partir du numéro de ligne le plus bas - cela efface également toutes les variables précédemment définies, de sorte que vous pouvez continuer à exécuter le programme avec des noms différents.

Bien que ce ne soit pas nécessaire avec ORIC, il est habituel de mettre END comme dernière ligne du programme.

Tapez LIST et votre programme défilera proprement sur l'écran. Ajoutez maintenant ces lignes :

  1. 50 PRINT "INSCRIVEZ L'ANNEE DANS LAQUELLE VOUS ETES NE"
  2. 60 INPUT YEAR
  3. 70 LET AGE=1983-YEAR
  4. 110 PRINT"VOUS DEVEZ AVOIR ENVIRON ";AGE;" ANS ";N$
  5. 120 GOTO 200
  6. 200 END     

Si vous faites une erreur dans une ligne, vous pouvez supprimer toute la ligne en saisissant simplement le numéro de ligne. Essayez de taper 60 puis d'afficher le programme (LIST). Retapez 60 INPUT YEAR. Exécutez maintenant le programme.

Les décisions

Jusqu'à présent, nous avons utilisé les ordinateurs pour parcourir tous les chiffres sans prendre de décision. Utilisons un peu plus le cerveau d'ORIC. Ajoutez ces lignes :

  1. 80 PRINT "EXCUSE MA DEMANDE, MAIS ES-TU UNE FEMME ";N$;" (O/N)?"
  2. 90 INPUT A$
  3. 100 IF A$="O" THEN 150
  4. 150 PRINT "BIEN, "N$" UNE FILLE ATTRAYANTE COMME VOUS DOIT AVOIR ENVIRON 18 ANS"

La ligne 100 contient une branche conditionnelle. A$ doit être soit «O», soit «N». ORIC teste pour voir si A$="O". Si cette assertion est vraie alors le programme saute à la ligne 150. Si cette assertion est fausse, c'est-à-dire si quelque chose d'autre a été entré, alors le programme continue à la ligne suivante, affiche l'âge, puis s'arrête.

Vous verrez probablement que le programme ne teste que "O" comme réponse. "OK" ou "OUAIS" ou "DANS LES" serait compté comme non "O" et donc faux - alors soyez averti, bien qu'ORIC soit très doué pour obéir aux instructions, celles-ci doivent être spécifiées avec soin en premier lieu. Vous aimeriez peut-être essayer de modifier la ligne 100 pour faire face à d'autres réponses. Vous pouvez commencer par :

  1. IF A$="O" OR A$="OUI" OR A$="OUAIS" THEN 150

Jusqu'à présent, tout ce que vous avez affiché l'a été en majuscules. Vous avez probablement découvert que SHIFT ne semble pas fonctionner.

Si vous appuyez sur CTRL et T en même temps, vous constaterez que le clavier de l'ORIC agit comme une machine à écrire - minuscules (lettres minuscules) normalement et majuscules (majuscules) lorsque vous maintenez la touche SHIFT enfoncée en même temps. Si vous appuyez sur la touche de contrôle T (CTRL et T), ORIC reviendra à l'utilisation des majuscules uniquement. Pour vous faire savoir que vous êtes en mode CAPS, ORIC affiche CAPS sur la ligne d'état en haut de votre écran.

Il y a beaucoup de bon sens là-dedans. Si vous tapez run en minuscules, vous obtiendrez :

? SYNTAX ERROR

Toutes les commandes et variables BASIC doivent être en majuscules.

Vous pouvez taper n'importe quoi dans ORIC et appuyer sur n'importe quelle touche et vous n'endommagerez pas l'ordinateur. Le pire puissant arriver est que vous vous retrouviez dans une boucle sans fin ou que vous parveniez à corrompre l'écran - si quelque chose d'étrange arrive à l'écran, appuyez d'abord sur RESET. Si rien ne se passe, coupez le secteur, attendez quelques secondes et remettez sous tension. Vous obtiendrez l'image de l'écran initial. ORIC ne s'en plaindra pas, mais vous pourriez, si vous deviez retaper votre programme !

Que se passe-t-il lorsque vous en avez assez d'un programme et que vous voulez vous en débarrasser ? Au lieu de l'éteindre, vous pouvez simplement taper NEW. Cela effacera la mémoire et mettra toutes les variables à zéro.

Boucles

L'ORIC nous a montré jusqu'ici que les ordinateurs sont capables de prendre des décisions selon que les conditions sont vraies ou fausses. Ils sont également capables de répéter une action autant de fois que vous le souhaitez.

Par exemple, si vous voulez qu'ORIC affiche tous les nombres de 1 à 1000 et les fasse défiler sur le côté de l'écran, vous pouvez taper :

  1. 10 PRINT 1
  2. 20 PRINT 2
  3. 30 PRINT 3
  4. 40 PRINT 4

Mais vous en auriez plutôt marre de faire ça 1000 fois ! Heureusement, il existe une commande BASIC appelée une boucle FOR.... TO/NEXT, répétant une instruction pendant qu'elle compte pour elle-même jusqu'à ce que le nombre final soit atteint.

Voilà comment cela fonctionne :

  1. 10 FOR X=1 TO 1000 STEP 1
  2. 20 PRINT X
  3. 30 NEXT X
  4. 40 PRINT "C'EST FINI"

La ligne 10 met le compteur X à 1, puis passe à la ligne 20. Là, il affiche X, étant 1, puis passe à 30. Cela dit NEXT X, donc il revient au début de la boucle à la ligne 10 et augmente par le numéro STEP (c'est-à-dire que X vaut maintenant 2). Il affiche X à la ligne 20 puis répète comme avant jusqu'à ce que X soit 1000. Cette fois, il essaie de faire X = 1001, mais on lui a dit de ne monter que jusqu'à 1000, donc il saute à la ligne suivante - 40, où il affiche :

C'EST FINI

Si vous changez le numéro de STEP en 2, alors il affichera 1, 3, 5, 7... Vous pouvez le laisser de côté, et ORIC supposera que vous voulez une taille de STEP de 1.

Essayez vous-même d'autres tailles STEP.

Les boucles FOR/NEXT peuvent compter à rebours, mais vous devez spécifier le nombre STEP comme une quantité négative :

  1. 10 FOR X = 1000 TO 1 STEP -1

de comptera à rebours. Si vous faites une erreur dans les chiffres, par exemple :

  1. FOR X=4 TO 2 STEP 5

ou :

  1. FOR X=5 TO 100 STEP -1

alors l'action dans la boucle sera toujours exécutée au moins une fois, car le test pour savoir si la boucle est terminée n'est pas effectué tant que la boucle n'a pas atteint l'instruction NEXT et est revenue au début.

Une autre utilisation des boucles FOR/NEXT est comme pause. Vous avez probablement constaté que l'ORIC affiche si vite que vous ne pouviez pas voir les chiffres. Pour le ralentir, on peut mettre :

  1. 25 FOR PAUSE = 1 TO 100: NEXT PAUSE

Cela revient à dire «Comptez jusqu'à 100 chaque fois que vous affichez un nombre, puis continuez». Notez l'utilisation de deux-points pour obtenir deux déclarations sur une seule ligne.

Soyez prudent lorsque vous utilisez cette fonction s'il y a une branche IF...THEN dans la ligne, car si la condition est vraie, ORIC sautera à la nouvelle ligne et ignorera toute autre instruction dans la ligne d'origine.

Un moyen plus simple d'obtenir des pauses sur ORIC consiste à utiliser la commande WAIT :

  1. 25 WAIT N

retardera l'exécution du programme de N lots de 10 millisecondes.

Sous-programmes

À ce stade, vous vous interrogez peut-être sur les sections d'un programme se produisant plusieurs fois, mais ne pouvant pas être réalisées à l'aide de simples boucles FOR/NEXT.

Par exemple, dans notre programme de comptage, vous voudrez peut-être dire aux gens que l'attente entre les chiffres était intentionnelle. Vous envoyez le programme à un sous-programme, où il attend, affiche le message, puis revient à l'endroit où il a quitté le programme principal.

  1. 10 FOR X=1 TO 10
  2. 20 GOSUB 1000
  3. 30 PRINT X
  4. 40 NEXT
  5. 1000 PRINT "C'EST UNE COURTE PAUSE"
  6. 1010 WAIT 50
  7. 1020 RETURN

ON...GOTO

Parfois, au cours d'un programme, il est également utile de pouvoir passer à différentes parties du programme en fonction des résultats de certains calculs. C'est facile en utilisant commande de ON...GOTO. Tout ce que vous devez savoir, ce sont les résultats attendus du calcul et les numéros de ligne pertinents vers lesquels se brancher.

  1. 50 INPUT "CHOISISSEZ 1, 2 OU 3";X
  2. 60 ON X GOTO 100,200,300
  3. 70 PRINT "NUMERO NON CHOISI":STOP
  4. 100 PRINT "1 CHOISIS":STOP
  5. 200 PRINT "2 CHOISIS":STOP
  6. 300 PRINT "3 CHOISIS":STOP

La ligne 50 attend une entrée. Si X vaut 1, le contrôle passe au premier numéro de ligne après GOTO, c'est-à-dire 100 ; si X vaut 2, il se branche au deuxième numéro de ligne, c'est-à-dire 200 et s'il vaut 3, il se branche au troisième nombre, c'est-à-dire 300. Si un autre nombre positif est entré, le programme passe à l'instruction suivante suivant ON...GOTO.

Une commande similaire est ON...GOSUB, qui se branchera sur un sous-programme particulier. Lorsque le programme revient, il continue à partir de l'instruction suivante après ON...GOSUB.

Quoi d'autre ?

Jusqu'à présent, nous n'avons utilisé que IF/THEN dans sa forme simple. Il est possible d'étendre sa puissance en utilisant ELSE. Regarde ceci :

  1. 10 FOR X=1 TO 5
  2. 20 INPUT A
  3. 30 IF A>10 THEN PRINT"TROP GROS"ELSE PRINT"O.K."
  4. 40 NEXT

Si la condition est vraie, la première commande est exécutée ; si faux, alors la commande suivant ELSE est exécuté. Si le programme n'a pas reçu l'ordre de se ramifier, l'exécution se poursuivra à partir de la ligne de programme suivante.

REPEAT/UNTIL

Si vous souhaitez répéter une série d'instructions un certain nombre de fois, alors il est facile d'utiliser une boucle FOR/NEXT. Cela sera répété le nombre de fois étant configuré dans la première ligne, par exemple :

  1. FOR N=1 TO 5

bouclera cinq fois. Si vous souhaitez boucler jusqu'à une certaine condition vraie, il est difficile de savoir quelle valeur mettre dans le compteur de boucle.

REPEAT vous permet de boucler n'importe quel nombre de fois et de tester à la fin de chaque boucle pour vérifier si la condition est remplie dans la ligne UNTIL. Ce programme court le démontre :

  1. 10 REPEAT
  2. 20 D=D+INT(RND(1)*6)+1
  3. 30 PRINT D
  4. 40 UNTIL D>20
  5. 50 STOP

Cela simule une situation où un dé est lancé et continuera à être lancé jusqu'à ce que le total dépasse 20. Il ne serait pas possible de connaître le nombre de boucles avant que la condition de la ligne 40 ne soit remplie, donc une boucle FOR/NEXT ne peut pas être utilisé. Il serait possible d'imiter cette action en utilisant une instruction GOTO. Si la condition n'était pas remplie, mais la structure du programme ne serait pas claire à la lecture de la liste, donc REPEAT devrait être utilisé dans la mesure du possible.

Notez que comme pour FOR/NEXT, la condition est testée à la fin, donc la boucle est toujours négociée au moins une fois.

Avant de passer à des domaines plus intéressants tels que les images et le son, il y a une dernière chose que vous pouvez faire pour rendre vos programmes plus faciles à lire.

Utilisez les instructions REM pour expliquer les lignes. REM signifie remarque et est ignoré par ORIC. Il n'est là que pour votre bénéfice lorsque vous lisez la liste ou lorsque vous montrez le programme à d'autres. Ceci montrera comment vous pouvez utiliser REM :

  1. 10 REM TOUS DROITS RESERVES GLADIR.COM
  2. 20 FOR N=1 TO 10:REM COUNTS LOOP
  3. 30 PRINT "JACQUES EST MAGIQUE"
  4. 40 NEXT N     
  5. 50 END
  6. 60 REM C'EST UN PROGRAMME PLUTOT BIEN

Utilisez les instructions REM pour étiqueter vos sous-programmes. Notez que vous pouvez avoir plusieurs déclarations sur une ligne, mais chaque déclaration doit être séparée par deux points - voir ligne 20.

  1. 1000 REM SOUS-ROUTINE POUR ATTENDRE PEU DE TEMPS
  2. 1010 WAIT 100
  3. 1020 RETURN

Vous pouvez utiliser le caractère «'» au lieu de REM, mais uniquement comme commentaire à la fin d'une ligne.

  1. 10 PRINT "BONJOUR" 'CECI DIT BONJOUR

est permis.

  1. 10 ' TOUT DROIT GLADIR.COM

n'est pas permis.



Dernière mise à jour : Mardi, le 7 mars 2023