APPLICATIONSPROGRAMMATION ★ LOGIC ★

Logic (Science et Vie Micro)Applications Programmation

Générateur de programmes Basic, Logic est ce qui reste quand on a tout oublié du Basic ! Plus sérieusement, il s'agit d'un langage simplifié, qui permet une programmation simple en restant au niveau des concepts généraux. Tous les problèmes de détail sont réglés par Logic, qui crée ensuite le programme Basic définitif. Une bonne manière de découvrir la programmation structurée, sur Amstrad CPC avec lecteur de disquettes.

PRENEZ UN PROgramme Basic quelconque. Enlevez toutes les variables, les constantes, les chaînes de caractères, les adresses de saut, les conditions, etc. Que reste-t-il ? Une structure logique. C'est-à-dire un ensemble de mots clés qui expriment chacun un concept, et tous ensemble s'articulent pour parvenir à un résultat donné. Le programme Logic fait exactement l'inverse : à partir d'une structure logique, établie sans la moindre préoccupation de détail, il crée un programme Basic prêt à fonctionner ! Un exemple. On veut afficher à l'écran tous les nombres pairs compris entre 2 et 100, ainsi que leur carré. L'analyse rapide du problème indique qu'il nécessite un traitement de chiffres et un affichage de résultat. Un cheminement logique conduit à définir cinq étapes :

1 - affecter à une variable le chiffre 1
2 - calculerson carré
3 - afficher le chiffre et son carré
4 - la variable est-elle supérieure à 100 ?
si oui aller en 5 ;
sinon incrémenter la variable de 2 et aller en 1 ;
5 - fin du traitement

Réalisé en Basic, un algorithme de ce type amène à s'interroger sur la déclaration des variables et leur contrôle à l'intérieur du programme. Avec Logic, rien de tel. La programmation revient à formuler, dans l'ordre, les étapes nécessaires à la résolution du problème. On sait donc, pour notre exemple, que l'on a besoin d'une variable, d'une opération de calcul, de deux affichages, et d'une boucle. A partir de là, il suffit de puiser dans la liste des mots réservés de Logic, tous réduits à un concept simple, pour bâtir le programme.

En Logic, notre programme devient donc :

10 %&
20 AFFEC &
30 MUL &
40 ECRIRE &
50 ECRIRE &
60 TANT-QUE &
70 PLUS &
80 ALLER &
90 ENCORE &

La chose faite, l'essentiel du travail de programmation est terminé. Il ne reste plus alors qu'à ? boucher les trous ?, c'est-à-dire à assigner des valeurs aux variables, à préciser les opérations, à indiquer les adresses de saut, etc. Cette partie est totalement prise en charge : pour chaque ligne de programme, Logic demande explicitement les données dont il a besoin. Par exemple, pour la ligne 10, il demande la phrase de commentaire. Pour la ligne 20, le nom de la variable et la valeur qu'on lui affecte. Pour la ligne 60, la variable concernée, et la condition à lui imposer, etc.
Ligne par ligne, Logic complète ainsi les informations manquantes, et recrée des lignes Basic orthodoxes. Une fois « traduit » , notre programme d'exemple devient donc :

10 REM EXEMPLE
20 X = 2
30 Y = X * X
40 PRINT X
50 PRINT Y
60 WHILEX < 100
70 X = X + 2
80 GOTO 30
90 WEND

Mode d 'emploi

Le programme affiche un écran de travail divisé en six • fenêtres ?. Tout en haut, la zone de saisie de l'opération en cours : environnement, objet, list, valeurs, edit. Tout en bas une zone réservée à l'affichage des messages d'erreur. Des quatre fenêtres centrales, la première, « OBJET », est destinée à la saisie du programme en Logic. La fenêtre « LISTING » permet de lister le programme en cours. La fenêtre « VALEUR » permet la saisie de tous les paramètres à associer à chaque mot clé de Logic. La fenêtre « RÉALISATION », enfin, affiche le programme Basic tel qu'il est créé, ligne par ligne.

Première chose à faire, donner un nom au programme. C'est la phase environnement, à laquelle on accède en tapant la touche E (Logic ne fonctionne qu'avec les capitales verrouillées). On nomme alors le programme, et on tape RETURN. Logic ouvre alors un fichier sur la disquette, destiné à recevoir les lignes Basic générées. Seconde étape : la création du programme source, en Logic, que l'on démarre par appui sur la touche O. Logic demande alors le nombre de lignes à réserver

LES MOTS RESERVES DE LOGIC

À chacun des mots réservés est donné entre parenthèses son équivalent en Basic pour le programme, puis affiche un point d'interrogation. La programmation peut commencer. Chaque ligne doit débuter, comme en Basic, par un numéro, et doit se terminer par le signe &. Une ligne Logic ne peut contenir qu'un seul mot clé. Une fois toutes les lignes Logic écrites, on peut lister le programme ou le modifier en tapant la touche D. Il suffit alors d'entrer le numéro d'ordre de la ligne à modifier, puis de la réécrire. Dernière étape enfin, la phase VALEURS, déclenchée par appui sur la touche V : il s'agit de la partie « intelligente » de Logic, qui pose toutes les bonnes questions nécessaires à la création de lignes Basic complètes : type, nom et valeur des variables, contenu des lignes de commentaire, coordonnées du curseur, nombre d'itérations d'une boucle, adresses de branchement, etc. En fin de saisie, un appui sur la barre d'espace sauvegarde sur la disquette le programme Basic, sous le nom donné dans la phase environnement (le mot-clé PGPM, placé en fin de programme Logic, fait la même chose).

L'adaptation à d'autres machines est possible sous deux réserves : la présentation de l'écran de travail, qui doit être refaite et bien sûr, la transformation des corrélations Logic-Basic qui, ici, prennent en compte des instructions particulières au Locomotive Basic de l'Amstrad CPC. Toutes les instructions ne sont d'ailleurs pas « couvertes » par

LES MOTS RÉSERVÉS DE LOGIC
Logic, mais il n'est pas interdit de compléter le programme...

% : écrit un commentaire (REM)
DONNEES : stocke des données (DATA)
LIRE-DON : lit des données (READ)
AFFICHER-EN : place le curseur texte à un endroit précis de l'écran (LOCATE)
ECRIRE : affiche à l'écran (PRINT)
LIRE : affecte un contenu à une variable (INPUT)
MOINS,
PLUS, DIV,
MOD, MUL : opérateurs (-,+,/, MOD, *)
AFFEC : affecte une valeur à une variable ou constante (=)
TABLEAU : dimensionne un tableau (DIM)
EFF-ECRAN : efface l'écran (CLS)
NBAL : génère un nombre aléatoire (RND)
POUR : marque le début d'une boucle (FOR)
SUIVANT : itération dans une boucle (NEXT)
SI : test conditionnel (IF)
ALLER : opère un branchement (GOTO)
FPOM : marque la fin d'un programme, ferme le fichier, et revient sous Basic Amstrad (END)
AFF-POINT : allume un point sur l'écran graphique (PSET)
T-LIQNE : trace une ligne graphique (DRAW)
DEPLACE : déplace le curseur graphique (MOVE)
CLAVIER? : teste le clavier (INKEY$)
A-SYMBOLE : indique à l'ordinateur le premier des caractères redéfinissables (SYMBOL AFTER)
SYMBOLE : redéfinit un caractère (SYMBOL)
TANT-QUE : début d une boucle conditionnelle (WHILE)
EMCORE : marque la fin de la boucle conditionnelle (WEND)
FENETRE : définit une fenêtre d'écran (WINDOW)

RECTIFICATIF

LE PROGRAMME « INTERPRÉTEUR DE FOR-mules », publié dans notre numéro 35, comporte deux erreurs qui ont été relevées et corrigées par M. Berot de Colombes. Celles-ci n'empêchent pas le programme de fonctionner, mais dans certains cas lui faisaient interpréter certaines formules de façon fantaisiste : certains signes-devenaient des +, et autres bizarreries. Pour faire calculer le programme juste, il faut à la ligne 1050 remplacer C$="/" par C$="-" et à la ligne 3150 il faut mettre Y1X1 et non XIYl.

SVM n°37

★ EDITEUR: SVM
★ CONFIG: ???
★ LANGAGE: ???
★ LiCENCE: LISTING
★ ANNÉE: 198X
★ AUTEUR: Didier MAURE

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Logic    LISTING    FRENCHDATE: 2018-07-29
DL: 252
TYPE: PDF
SiZE: 2646Ko
NOTE: 6 pages/PDFlib v1.6

Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 815 millisecondes et consultée 1537 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.