L'Ordinateur Individuel n°45 février 1983
L'Ordinateur Individuel n°45 février 1983
  • Prix facial : 20 F

  • Parution : n°45 de février 1983

  • Périodicité : mensuel

  • Editeur : Groupe Tests

  • Format : (202 x 281) mm

  • Nombre de pages : 254

  • Taille du fichier PDF : 257 Mo

  • Dans ce numéro : création artistique et informatique... tout un programme !

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 166 - 167  |  Aller à la page   OK
Pages suivantes >
166 167
soit, bien sûr, par référence à elles-mêmes (récursivité oblige). La syntaxe d'une définition est : #  : [] []. Par exemple : # AFFICHER-CHR$-191 : 4. 191 définit le mot AFFICHER-CHR$- 191. On peut faire référence à des mots définis en amont comme en aval. Il n'y a pas de hiérarchie dans les noms (on peut en créer une en modifiant légèrement l'interpréteur). Toutes les variables définies dans un sous-programme sont locales à ce sous-programme. Elles sont recréées à chaque appel et empilées à chaque sortie du sous-programme par une autre voie que le signe "." (qui, lui, détruit ces variables). Mais le terme sous-programme est ici très mal adapté, eu égard à l'absence de hiérarchie. Les noms des variables : jusqu'à 255 caractères significatifs La pile est commune à l'ensemble du dictionnaire. Elle sert à la passation d'arguments et aux calculs arithmétiques. Le point virgule termine une instruction. On n'a donc pas l'angoisse pascalienne du " ; " qui détraque tout. Mais que pointilleux et ingénieux se rassurent : ils trouveront d'autres subtilités en Forth-Tran, qui engendreront de belles crises de nerfs. Autre point : comme en Ada, les commentaires commencent par et se terminent par le retour-chariot. L'utilisation des blancs et des retours-chariot est libre, sauf au milieu d'un nom, et permet des présentations agréables. Les variables peuvent avoir des noms de 255 caractères significatifs ; abus dangereux (de même, éviter les caractères spéciaux dans les noms). Les noms de variables peuvent commencer par n'importe quoi, sauf les instructions réservées (attention). Les variables peuvent être de deux types, entières ou réelles, et se déclarent de la manière suivante : %  :  ; % variable : entier ; % 11,°$ 0 & : REEL ; % A2 : entier ; Les variables commençant par des nombres sont acceptées par !'Ordinateur Individuel la machine, sans erreur de syntaxe, mais sont inexploitables : comme la syntaxe du langage est assez souple, on doit pouvoir frauder joyeusement avec ces règles. Les instructions proprement dites se classent en deux catégories : manipulation de la pile dans laquelle on trouve : t + -/*SIGNE OPPOSE et structuration. Voici leurs signification et syntaxe : 4, []' ; ensuite la valeur de la variable spécifiée ou de la constante numérique ou encore d'une valeur numérique tapée au clavier (b) — si on a seulement 4, ; le sommet de la pile est dupliqué (comme lorsque l'on fait ENTER t sur une calculatrice Hewlett-Packard). [ I P-1 I o] ; met le sommet de la pile dans la variable spécifiée ou l'affiche à l'emplacement du curseur (❑). Si on utilise Dzi, l'affichage se fait en considérant le sommet de pile comme un code ASCII. Un t ; supprime le sommet de pile. Par exemple : 4, 191 ; T d ; affiche un pavé (CHR$ (191)) 4, 191 ; T o ; affiche 191. Attention, les constantes numériques ne doivent pas comporter de caractère de fin de définition ".". Utiliser les exposants ; par exemple : ne tapez pas 4, 2.3 ; mais 4, 23E-1 ;). Mais, comme vous vous en doutez, cela peut très facilement être modifié. Les constantes +nnn, —nnnsont évidemment admises. Des corrections, des arrondis, des fonctions trigonométriques, etc. Les instructions arithmétiques opèrent toutes sur la pile, y compris l'affectation, ce qui peut paraître gênant. Pour faire une addition, il faut d'abord empiler les valeurs. Par exemple : mettre dans X1 la valeur X2 + X3 : y X2 ; 4, X3 ; + ; t X1 ; ce qui supprime le problème des parenthèses. Autre exemple : X1 = X2-X3 : 4 X2 ; 4,X3 ; — ; tX1 On s'y fait très vite ! Il existe six opérations en standard : +, *,/, SIGNE OPPOSE (ces fonctions sont évidentes). La fonction signe (c'est le Basic SGN (I) permet de faire certains tests. 166 Dans les opérations arithmétiques, les types entiers et réels peuvent être mélangés. Le Basic fait « tout naturellement » les corrections et arrondis. Pour certains calculs, on pourra ajouter des fonctions trigonométriques et logarithmiques, etc. Les instructions de structurations sont de deux types : IF- THEN-(ELSE)-ENDIF et « blocboucle », ce dernier simulant au prix de quelques acrobaties les LOOP... EXIT... ENDLOOP, BEGIN... END, FOR... NEXT, WHILE..., REPEAT... UNTIL. De nombreux tests sont réalisables grâce à la fonction signe Commençons par les tests. Ils se présentent sous la forme : = ? I  : [] ; [, ;] ! ; ou' ?'<=> IF THEN ELSE et T <=> ENDIF. Ici les tests sont très simplistes. Le langage se contente de regarder si le sommet de la pile est égal à la valeur spécifiée. S'il l'est, le bloc d'instruction 1 est exécuté, sinon c'est le bloc 2 ; le caractère est obligatoire pour terminer cette instruction de test. Par exemple : ; ? O : EFFA- CER-ECRAN ; TEXTE 1 ;'❑ ; ! ; demande un nombre au clavier et, si c'est zéro, exécute les instructions EFFACER-ECRAN puis TEXTE 1. Si le nombre est # 0, il est affiché. Les tests peuvent être imbriqués (heureusement !) et les ENDIF (!) évitent certaines ambiguïtés, mais attention : on doit mettre autant de ENDIF que de IF. Les parenthèses (et) servent à délimiter un bloc-boucle. Toutes les instructions entre ces parenthèses seront répétées infiniment jusqu'à la rencontre d'une instruction « SORTIE », qui renvoie hors de la première parenthèse fermée après elle ")", tout en effaçant la trace des IF rencontrés. C'est-à-dire que SORTIE remplit à la fois le rôle d'u.n EXIT et d'un nombre de ENDIF suffisant. Si la « SORTIE » ne se trouve pas dans un test, la boucle devient alors un équivalent du BEGIN- END de Pascal, bien qu'ici cela ne présente aucun intérêt. On aura, d'une manière générale, les équivalents : REPEAT UNTIL ( ; ?  : SORTIE ; ! ;) ; n°45 Février 83
QUELLES CONCLU- SIONS TIREZ vous DE CE CONGRES ? WHILE... LOOP (?  : SORTIE ; ! ;) ; etc. Les boucles peuvent être imbriquées, mais boucles et tests ne doivent évidemment pas se chevaucher : Par exemple : (?  : TRUC ;) ; , MACHIN ; ! ; n'aurait aucun sens. Pour illustrer cette structure de bloc, donnons quelques exemples de programmes :. programme « idiot » permettant d'écrire cinq pavés graphiques sur l'écran : # DESSINER-PAVE : 4,191 ; t[2:1 # DECREMENTER : 4,1 ; — # EFFACER-ECRAN : 4,31 ; 4,28 ; tep # BOUCLE : 4,5 ; EFFACER- ECRAN ; (? 0 : SORTIE ; , DECREMENTER ; DESSINER-PAVE ; ! ;) Remarquons que, dans ce programme, on n'a pas utilisé de variables. n°45 Février 83. programme déjà plus subtil (celui de l'encadré ci-dessous) : la tour de Hanoï, avec démonstration de la récursivité, variables, etc. Le programme demande le nombre de disques sur la première tour et les déplace vers la troisième en indiquant chaque déplacement de dis9uesous la forme x—*y où x, yE.11,2,3 et xty. Voici par exemple le résultat obtenu pour n = 5 avec ce programme : 1—>3 1—>2 3—>2 1-0-3 2—>1 2+3 1—>3 1—+2 3>2 3—> 1 2—>1 3—>2 1—>3 1—>2 3—>2 1>3 2—> 1 2—>3 1—>3 2—>1 3—>2 3—> 1 2—>1 2-+3 1—>3 1—>2 3—>2 1—>3 2—+1 2—>3 1—>3. J'espère ne pas en avoir oublié (ah ! si j'avais une imprimante !). Temps d'exécution : euh, longuet, environ une demi-cigarette. J'espère que ces deux programmes vous donneront une idée de ce que ce langage peut donner si on l'emploie pour apprendre, comme une sorte d'EAO (enseignement assisté par ordinateur) du pauvre, section langage et structures en informatique. Un temps d'exécution longuet, un système d'exploitation complet Première chose à savoir : ce programme est un système d'exploitation complet, avec moniteur, éditeur de texte, interpréteur et aide à la programmation. A la mise en route, le programme se place en mode moniteur. Le moniteur se signale par # ? — et attend une instruction. Celles-ci sont : ) LIST,) EDIT,) RECUP et) DUMP. Programme « la tour de Hanoï » #ECRIRE : t ❑ ; 4, 9 4 ; TIC ; D #DEPLACER : - DEPLACER N DISQUES DE TOUR 1 VERS TOUR 2 - - EN UTILISANT TOUR 3% N : ENTIER ; % TOUR 1 : ENTIER ; % TOUR 2 : ENTIER ; % TOUR 3 : ENTIER ; AN ; tTOUR 1 ; tTOUR 2 ; TOUR 3 ; N ; ? 1 : 4TOUR 2 ; 4,TOUI 1 ; ECRIRE ; , TOUR 2 ; 1TOUR 3 ; tTOUR 1 ; IN ; 4,1 ; — ; DEPLACER ; TOUR 3 ; TOUR 2 ; TOUR 1 ; 1 ; DEPLACER TOUR 1 ; TOUR 2 ; TOUR 3 ; N ; 4,1 ; — ; DEPLACER ; ! PROGRAMME PRINCIPAL. # HANOI : 4,2 ; 4,3 ; 4, 1 ; 4, ; DEPLACER 167) LIST affiche la liste du programme sur l'écran.) EDIT passe le contrôle à l'éditeur de texte. IRECUP n (n entier 0) est utilisé pour deux usages : 1RECUP 0 efface le programme et) RECUP n (n>0) fait le contraire de) RECUP 0 et sert, après une erreur un peu trop violente ou une fausse manoeuvre, à récupérer un programme de n octets, après une réinitialisation involontaire des pointeurs. Si l'on ne connaît pas la taille exacte, on procède par tâtonnements. L'éditeur : une caricature du célèbre ED de CP/M) DUMP appelle le programme d'aide à la programmation. De plus si, sous moniteur, on tape un autre nom que ceux mentionnés ci-dessus, le programme passe le contrôle à l'interpréteur et recherche dans le dictionnaire le programme portant ce nom, pour l'exécuter. En fin d'exécution, ou en cas d'erreur, le contrôle est rendu au moniteur. Si le nom ne figure pas dans le dictionnaire (ou a été mal orthographié), le moniteur renvoie : NOM : NON DEFINI. Par exemple : si, après avoir tapé le programme 1, on frappe : ? DESSINER-PAVE on obtient : # ? DESSINER-PAVE # ?. En revanche, # ? ) DESSINER-PAVE provoquera : COMMANDE INVALIDE. # ? — De même que, # ? LIST (on a oublié le)) provoquera : NOM : LIST NON DEFINI. # ? La première chose à faire sera donc d'entrer un programme. Pour cela il faut utiliser l'éditeur : frapper) EDIT . L'éditeur est une caricature du trop célèbre ED de CP/M, qui a valu pas mal de soucis à ceux qui l'utilisent. Mais là, les commandes sont quand même moins puissantes ; vous pouvez toujours l'améliorer... Il se signale par *— et attend une commande (pas de concaténation) ; des modifications restent possibles. Sous éditeur, le clavier change : L'Ordinateur Individuel



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


L'Ordinateur Individuel numéro 45 février 1983 Page 1L'Ordinateur Individuel numéro 45 février 1983 Page 2-3L'Ordinateur Individuel numéro 45 février 1983 Page 4-5L'Ordinateur Individuel numéro 45 février 1983 Page 6-7L'Ordinateur Individuel numéro 45 février 1983 Page 8-9L'Ordinateur Individuel numéro 45 février 1983 Page 10-11L'Ordinateur Individuel numéro 45 février 1983 Page 12-13L'Ordinateur Individuel numéro 45 février 1983 Page 14-15L'Ordinateur Individuel numéro 45 février 1983 Page 16-17L'Ordinateur Individuel numéro 45 février 1983 Page 18-19L'Ordinateur Individuel numéro 45 février 1983 Page 20-21L'Ordinateur Individuel numéro 45 février 1983 Page 22-23L'Ordinateur Individuel numéro 45 février 1983 Page 24-25L'Ordinateur Individuel numéro 45 février 1983 Page 26-27L'Ordinateur Individuel numéro 45 février 1983 Page 28-29L'Ordinateur Individuel numéro 45 février 1983 Page 30-31L'Ordinateur Individuel numéro 45 février 1983 Page 32-33L'Ordinateur Individuel numéro 45 février 1983 Page 34-35L'Ordinateur Individuel numéro 45 février 1983 Page 36-37L'Ordinateur Individuel numéro 45 février 1983 Page 38-39L'Ordinateur Individuel numéro 45 février 1983 Page 40-41L'Ordinateur Individuel numéro 45 février 1983 Page 42-43L'Ordinateur Individuel numéro 45 février 1983 Page 44-45L'Ordinateur Individuel numéro 45 février 1983 Page 46-47L'Ordinateur Individuel numéro 45 février 1983 Page 48-49L'Ordinateur Individuel numéro 45 février 1983 Page 50-51L'Ordinateur Individuel numéro 45 février 1983 Page 52-53L'Ordinateur Individuel numéro 45 février 1983 Page 54-55L'Ordinateur Individuel numéro 45 février 1983 Page 56-57L'Ordinateur Individuel numéro 45 février 1983 Page 58-59L'Ordinateur Individuel numéro 45 février 1983 Page 60-61L'Ordinateur Individuel numéro 45 février 1983 Page 62-63L'Ordinateur Individuel numéro 45 février 1983 Page 64-65L'Ordinateur Individuel numéro 45 février 1983 Page 66-67L'Ordinateur Individuel numéro 45 février 1983 Page 68-69L'Ordinateur Individuel numéro 45 février 1983 Page 70-71L'Ordinateur Individuel numéro 45 février 1983 Page 72-73L'Ordinateur Individuel numéro 45 février 1983 Page 74-75L'Ordinateur Individuel numéro 45 février 1983 Page 76-77L'Ordinateur Individuel numéro 45 février 1983 Page 78-79L'Ordinateur Individuel numéro 45 février 1983 Page 80-81L'Ordinateur Individuel numéro 45 février 1983 Page 82-83L'Ordinateur Individuel numéro 45 février 1983 Page 84-85L'Ordinateur Individuel numéro 45 février 1983 Page 86-87L'Ordinateur Individuel numéro 45 février 1983 Page 88-89L'Ordinateur Individuel numéro 45 février 1983 Page 90-91L'Ordinateur Individuel numéro 45 février 1983 Page 92-93L'Ordinateur Individuel numéro 45 février 1983 Page 94-95L'Ordinateur Individuel numéro 45 février 1983 Page 96-97L'Ordinateur Individuel numéro 45 février 1983 Page 98-99L'Ordinateur Individuel numéro 45 février 1983 Page 100-101L'Ordinateur Individuel numéro 45 février 1983 Page 102-103L'Ordinateur Individuel numéro 45 février 1983 Page 104-105L'Ordinateur Individuel numéro 45 février 1983 Page 106-107L'Ordinateur Individuel numéro 45 février 1983 Page 108-109L'Ordinateur Individuel numéro 45 février 1983 Page 110-111L'Ordinateur Individuel numéro 45 février 1983 Page 112-113L'Ordinateur Individuel numéro 45 février 1983 Page 114-115L'Ordinateur Individuel numéro 45 février 1983 Page 116-117L'Ordinateur Individuel numéro 45 février 1983 Page 118-119L'Ordinateur Individuel numéro 45 février 1983 Page 120-121L'Ordinateur Individuel numéro 45 février 1983 Page 122-123L'Ordinateur Individuel numéro 45 février 1983 Page 124-125L'Ordinateur Individuel numéro 45 février 1983 Page 126-127L'Ordinateur Individuel numéro 45 février 1983 Page 128-129L'Ordinateur Individuel numéro 45 février 1983 Page 130-131L'Ordinateur Individuel numéro 45 février 1983 Page 132-133L'Ordinateur Individuel numéro 45 février 1983 Page 134-135L'Ordinateur Individuel numéro 45 février 1983 Page 136-137L'Ordinateur Individuel numéro 45 février 1983 Page 138-139L'Ordinateur Individuel numéro 45 février 1983 Page 140-141L'Ordinateur Individuel numéro 45 février 1983 Page 142-143L'Ordinateur Individuel numéro 45 février 1983 Page 144-145L'Ordinateur Individuel numéro 45 février 1983 Page 146-147L'Ordinateur Individuel numéro 45 février 1983 Page 148-149L'Ordinateur Individuel numéro 45 février 1983 Page 150-151L'Ordinateur Individuel numéro 45 février 1983 Page 152-153L'Ordinateur Individuel numéro 45 février 1983 Page 154-155L'Ordinateur Individuel numéro 45 février 1983 Page 156-157L'Ordinateur Individuel numéro 45 février 1983 Page 158-159L'Ordinateur Individuel numéro 45 février 1983 Page 160-161L'Ordinateur Individuel numéro 45 février 1983 Page 162-163L'Ordinateur Individuel numéro 45 février 1983 Page 164-165L'Ordinateur Individuel numéro 45 février 1983 Page 166-167L'Ordinateur Individuel numéro 45 février 1983 Page 168-169L'Ordinateur Individuel numéro 45 février 1983 Page 170-171L'Ordinateur Individuel numéro 45 février 1983 Page 172-173L'Ordinateur Individuel numéro 45 février 1983 Page 174-175L'Ordinateur Individuel numéro 45 février 1983 Page 176-177L'Ordinateur Individuel numéro 45 février 1983 Page 178-179L'Ordinateur Individuel numéro 45 février 1983 Page 180-181L'Ordinateur Individuel numéro 45 février 1983 Page 182-183L'Ordinateur Individuel numéro 45 février 1983 Page 184-185L'Ordinateur Individuel numéro 45 février 1983 Page 186-187L'Ordinateur Individuel numéro 45 février 1983 Page 188-189L'Ordinateur Individuel numéro 45 février 1983 Page 190-191L'Ordinateur Individuel numéro 45 février 1983 Page 192-193L'Ordinateur Individuel numéro 45 février 1983 Page 194-195L'Ordinateur Individuel numéro 45 février 1983 Page 196-197L'Ordinateur Individuel numéro 45 février 1983 Page 198-199L'Ordinateur Individuel numéro 45 février 1983 Page 200-201L'Ordinateur Individuel numéro 45 février 1983 Page 202-203L'Ordinateur Individuel numéro 45 février 1983 Page 204-205L'Ordinateur Individuel numéro 45 février 1983 Page 206-207L'Ordinateur Individuel numéro 45 février 1983 Page 208-209L'Ordinateur Individuel numéro 45 février 1983 Page 210-211L'Ordinateur Individuel numéro 45 février 1983 Page 212-213L'Ordinateur Individuel numéro 45 février 1983 Page 214-215L'Ordinateur Individuel numéro 45 février 1983 Page 216-217L'Ordinateur Individuel numéro 45 février 1983 Page 218-219L'Ordinateur Individuel numéro 45 février 1983 Page 220-221L'Ordinateur Individuel numéro 45 février 1983 Page 222-223L'Ordinateur Individuel numéro 45 février 1983 Page 224-225L'Ordinateur Individuel numéro 45 février 1983 Page 226-227L'Ordinateur Individuel numéro 45 février 1983 Page 228-229L'Ordinateur Individuel numéro 45 février 1983 Page 230-231L'Ordinateur Individuel numéro 45 février 1983 Page 232-233L'Ordinateur Individuel numéro 45 février 1983 Page 234-235L'Ordinateur Individuel numéro 45 février 1983 Page 236-237L'Ordinateur Individuel numéro 45 février 1983 Page 238-239L'Ordinateur Individuel numéro 45 février 1983 Page 240-241L'Ordinateur Individuel numéro 45 février 1983 Page 242-243L'Ordinateur Individuel numéro 45 février 1983 Page 244-245L'Ordinateur Individuel numéro 45 février 1983 Page 246-247L'Ordinateur Individuel numéro 45 février 1983 Page 248-249L'Ordinateur Individuel numéro 45 février 1983 Page 250-251L'Ordinateur Individuel numéro 45 février 1983 Page 252-253L'Ordinateur Individuel numéro 45 février 1983 Page 254