Concept de programmation de base
Dans les concepts de programmation de base, il est question des programmes, numéros de ligne, édition de programmes à l'aide de ↑, ↓ et EDIT, RUN, LIST, GO TO, CONTINUE, INPUT, NEW, REM, PRINT, STOP dans les données INPUT et BREAK.
Tapez ces deux lignes d'un programme informatique pour afficher la somme de deux nombres :
pour que l'écran ressemble à ceci :
Comme vous le savez déjà, parce que ces lignes commençaient par des nombres, elles n'étaient pas exécutés immédiatement mais entreposées, en tant que lignes de programme. Vous aurez également remarqué ici que les numéros de ligne régissent l'ordre des lignes dans le programme : le programme est exécuté, mais cela se reflète également dans l'ordre des lignes dans la liste que vous pouvez maintenant voir à l'écran.
Jusqu'à présent, vous n'avez entré qu'un seul numéro, alors tapez :
- 15 LET b=15
et ça va. Il aurait été impossible d'insérer cette ligne entre les deux premières si elles avaient été numérotées 1 et 2 au lieu de 10 et 20 (les numéros de ligne doivent être des nombres entiers compris entre 1 et 9999). c'est pourquoi, lors de la première saisie d'un programme, il est recommandé de laisser des espaces entre les numéros de ligne.
Maintenant, vous devez remplacer la ligne 20 par :
- 20 PRINT a+b
Vous pouvez taper le remplacement en entier, mais il est plus facile d'utiliser la fonction EDIT. Le > de la ligne 15 est appelé le curseur du programme, et la ligne vers laquelle il pointe est la ligne courante. Il s'agit généralement de la dernière ligne que vous avez entrée, mais vous pouvez utiliser les touches ↑ ou ↓ pour déplacer le curseur de programme vers le bas ou vers le haut. (Essayez-le en laissant éventuellement le curseur du programme à la ligne 20.)
Lorsque vous appuyez sur la touche EDIT, une copie de la ligne actuelle s'affiche en bas de l'écran - dans votre cas, une copie de la ligne 20. Maintenez la touche → jusqu'à ce que le curseur L se déplace à la fin de la ligne, puis tapez :
+B (sans le ENTER) |
La ligne en bas devrait maintenant indiquer :
- 20 PRINT a+b
Tapez ENTER et cela remplacera l'ancienne ligne 20, de sorte que l'écran ressemble à ceci :
Exécutez ce programme en utilisant RUN et ENTER et la somme sera affichée. Exécutez à nouveau le programme, puis tapez :
- PRINT a, b
Les variables sont toujours là, même si le programme est terminé.
Il existe une méthode utile utilisant EDIT pour se débarrasser de la partie inférieure de l'écran.
Tapez un chargement de déchets (sans ENTER) puis décidez que vous n'en voulez pas après tout. Une façon de la supprimer est de maintenir la touche DELETE enfoncée jusqu'à ce que la ligne disparaisse ; mais une autre façon est la suivante. Si vous appuyez sur EDIT, les déchets au bas de l'écran seront remplacées par une copie de la ligne actuelle. Si vous appuyez maintenant sur ENTER, la ligne courante sera remise dans le programme telle quelle, laissant la partie inférieure de l'écran vide.
Si vous entrez une ligne par erreur, et écrivez :
- 12 LET b=8
il montera dans le programme et vous vous rendrez compte de votre erreur. Pour supprimer cette ligne inutile, tapez :
12 (avec ENTER bien sur) |
Vous remarquerez avec surprise que le curseur du programme a disparu. Vous devriez l'imaginer comme étant caché entre les lignes 10 et 15, donc si vous appuyez sur ↑ il remontera à la ligne 10, tandis que si vous appuyez sur ↓ il descendra à la ligne 15. Tapez :
12 (et ENTER) |
Encore une fois, le curseur de programme sera caché entre les lignes 10 et 15. Appuyez maintenant sur EDIT et la ligne 15 descendra : lorsque le curseur de programme est caché entre deux lignes, EDIT fait descendre la ligne suivante après le nouveau numéro de ligne. Tapez ENTER pour effacer la partie inférieure de l'écran. Tapez maintenant :
30 (et ENTER) |
Cette fois, le curseur de programme est caché après la fin du programme : et si vous appuyez sur EDIT, alors la ligne 20 sera ramenée vers le bas. Enfin, tapez :
- LIST 15
Vous verrez maintenant à l'écran :
La ligne 10 a disparu de l'écran, mais elle est toujours dans votre programme - ce que vous pouvez prouver en appuyant sur ENTER. Les seuls effets de LIST 15 sont de produire une liste commençant à la ligne 15 et de placer le curseur du programme à la ligne 15. Si vous avez un très long programme, alors LIST sera probablement un moyen plus utile de déplacer le programme curseur que ↓ et ↑).
Cela illustre une autre utilisation des numéros de ligne : ils agissent comme des noms pour les lignes de programme afin que vous puissiez vous y référer, un peu comme la façon dont les variables ont des noms.
La commande LIST seule fait commencer la liste au début d'un programme. Une autre commande :
Cela efface tous les anciens programmes et variables de l'ordinateur. Maintenant, saisissez soigneusement ce programme, changeant les températures Fahrenheit en degrés Celsius :
Vous devrez taper les mots de la ligne 10. De plus, bien que GO TO comporte un espace, il s'agit en fait d'un seul mot-clef (sur G).
Maintenant, lancez-le. Vous verrez les titres affichés à l'écran par la ligne 20, mais qu'est-il arrivé à la ligne 10 ? Apparemment, l'ordinateur l'a complètement ignoré. Eh bien, c'est le cas. REM à la ligne 10 signifie remarque, ou rappel, et est là uniquement pour vous rappeler ce que fait le programme. Une commande REM consiste en REM suivi de tout ce que vous voulez, et l'ordinateur l'ignorera jusqu'à la fin de la ligne.
À présent, l'ordinateur est arrivé à la commande INPUT sur la ligne 40 et attend que vous saisissiez une valeur pour la variable F - vous pouvez le dire car là où vous auriez pu vous attendre à un curseur K, il y a à la place un curseur L. Entrez un nombre ; rappelez-vous ENTER. Maintenant, l'ordinateur a affiché le résultat et attend un autre numéro. C'est à cause de la ligne 60, GO TO 40, signifiant Aller à. Au lieu de manquer de programme et de s'arrêter, l'ordinateur revient à la ligne 40 et recommence. Alors, entrez une autre température.
Après quelques autres, vous vous demandez peut-être si la machine s'ennuiera jamais avec ça, ce ne sera pas le cas. La prochaine fois qu'il vous demandera un autre numéro, tapez STOP. L'ordinateur revient avec un rapport H STOP in INPUT in ligne 40:1, vous indiquant pourquoi il s'est arrêté, et où (dans la première commande de la ligne 40).
Si vous souhaitez continuer le type de programme :
et l'ordinateur vous demandera un autre numéro.
Lorsque CONTINUE est utilisé, l'ordinateur se souvient du numéro de ligne du dernier rapport qu'il vous a envoyé, tant qu'il n'était pas 0 OK, et revient à cette ligne : dans notre cas, cela implique de sauter à la ligne 40, la commande INPUT.
Remplacez la ligne 60 par GO TO 31 - cela ne fera aucune différence perceptible dans le déroulement du programme. Si le numéro de ligne dans une commande GO TO fait référence à une ligne inexistante, le saut se fait à la ligne suivante après le numéro donné. Il en va de même pour RUN ; en fait, RUN seul signifie en fait RUN 0.
Tapez maintenant des chiffres jusqu'à ce que l'écran commence à se remplir. Lorsqu'il est plein, l'ordinateur déplace toute la moitié supérieure de l'écran vers le haut d'une ligne pour faire de la place, perdant le cap du haut. C'est ce qu'on appelle le défilement.
Lorsque vous en avez marre, arrêtez le programme avec STOP et obtenez le listing en appuyant sur ENTER.
Regardez l'instruction PRINT à la ligne 50. La ponctuation dans celle-ci - la virgule (,) - est très importante, et vous devez vous rappeler qu'elle suit des règles beaucoup plus précises que la ponctuation en anglais.
Les virgules sont utilisées pour faire démarrer l'affichage soit à la marge gauche, soit au milieu de l'écran, selon ce qui vient ensuite. Ainsi, à la ligne 50, la virgule fait afficher la température centigrade au milieu de la ligne. Avec un point-virgule, par contre, le nombre ou la chaîne de caractères suivante est affichée immédiatement après la précédente. Vous pouvez le voir à la ligne 50, si la virgule est remplacée par un point-virgule.
Un autre signe de ponctuation que vous pouvez utiliser comme ceci dans les commandes PRINT est l'apostrophe ('). Cela fait apparaître tout ce qui est ensuite imprimé au début de la ligne suivante sur l'écran, mais cela se produit quand même à la fin de chaque commande PRINT, donc vous n'a pas beaucoup besoin de l'apostrophe, c'est pourquoi la commande PRINT de la ligne 50 commence toujours son impression sur une nouvelle ligne, et c'est aussi pourquoi la commande PRINT de la ligne 30 produit une ligne blanche.
Si vous voulez inhiber cela, de sorte qu'après une commande PRINT, la suivante continue sur la même ligne, vous pouvez mettre une virgule ou un point-virgule à la fin de la première. Pour voir comment cela fonctionne, remplacez tour à tour la ligne 50 par chacun des éléments suivants :
et exécutez chaque version - pour faire bonne mesure, vous pouvez également essayer :
- 50 PRINT F'
Celui avec la virgule étale tout en deux colonnes, celui avec le point-virgule rassemble tout, celui sans l'un ou l'autre permet une ligne pour chaque nombre et le fait aussi avec l'apostrophe - l'apostrophe donne une nouvelle ligne lui étant propre, mais inhibe l'automatique.
Rappelez-vous la différence entre les virgules et les points-virgules dans les commandes PRINT ; ne les confondez pas non plus avec les deux-points (:) étant utilisés pour séparer les commandes sur une seule ligne.
Tapez maintenant ces lignes supplémentaires :
Il s'agit d'un programme distinct du précédent, mais vous pouvez les conserver tous les deux dans l'ordinateur en même temps. Pour lancer le nouveau, tapez :
- RUN 100
Parce que ce programme entre une chaîne de caractères au lieu d'un nombre, il affiche deux guillemets de chaîne de caractères - ceci est un rappel pour vous, et cela vous évite généralement de taper également. Essayez-le une fois avec n'importe quel alias que vous souhaitez créer vous-même.
La prochaine fois, vous obtiendrez à nouveau deux guillemets de chaîne de caractères, mais vous n'êtes pas obligé de les utiliser si vous ne le souhaitez pas. Essayez ceci, par exemple. Effacez-les (avec → et DELETE deux fois), et tapez :
n$ |
Puisqu'il n'y a pas de guillemets de chaîne de caractères, l'ordinateur sait qu'il doit faire un calcul : le calcul dans ce cas consiste à trouver la valeur de la variable de chaîne de caractères appelée n$, étant le nom que vous avez tapé la dernière fois. Bien sûr, l'instruction INPUT agit comme LET n$=n$, donc la valeur de n$ est inchangée. La prochaine fois, pour comparaison, tapez :
n$ |
encore une fois, cette fois sans effacer les guillemets de chaîne de caractères. Maintenant, juste pour vous embrouiller, la variable n$ a la valeur "n$".
Si vous souhaitez utiliser STOP pour saisir une chaîne de caractères, vous devez d'abord ramener le curseur au début de la ligne, en utilisant ←.
Maintenant, revoyez ce RUN 100 que nous avons eu plus tôt. Cela saute juste à la ligne 100, alors n'aurions-nous pas pu dire GO TO 100 à la place ? Dans ce cas, il se trouve que la réponse est oui ; Mais il y a une différence. RUN 180 efface tout d'abord toutes les variables et l'écran, et après cela fonctionne exactement comme GO TO 100. GO TO 100 n'efface rien. Il peut arriver que vous souhaitiez exécuter un programme sans effacer aucune variable ; ici GO TO serait nécessaire et RUN pourrait être désastreux, il est donc préférable de ne pas prendre l'habitude de taper automatiquement RUN pour exécuter un programme.
Une autre différence est que vous pouvez taper RUN sans numéro de ligne, et il commence à la première ligne du programme. GO TO doit toujours avoir un numéro de ligne.
Ces deux programmes se sont arrêtés parce que vous avez tapé STOP dans la ligne d'entrée ; parfois - par erreur - vous écrivez un programme que vous ne pouvez pas arrêter et qui ne s'arrêtera pas de lui-même. Taper :
- 200 GO TO 200
- RUN 200
Cela semble prêt à durer indéfiniment à moins que vous ne débranchiez la prise ; mais il existe un remède moins radical. Appuyez sur CAPS SHIFT avec la touche Barre d'espacement, ayant BREAK écrit au-dessus. Le programme s'arrêtera en disant L BREAK into program.
A la fin de chaque instruction, le programme regarde si ces touches sont enfoncées ; et s'ils le sont, alors ça s'arrête. La touche BREAK peut également être utilisée lorsque vous êtes en train d'utiliser le magnétophone ou l'imprimante, ou divers autres éléments de machinerie que vous pouvez connecter à l'ordinateur, juste au cas où l'ordinateur attend qu'ils fassent quelque chose mais ils ne le fais pas.
Dans ces cas, il y a un rapport différent, D BREAK - CONT repeats. CONTINUE dans ce cas (et en fait dans la plupart des autres cas également) répète l'instruction où le programme a été arrêté ; mais après le rapport L BREAK into program, CONTINUE poursuit directement avec l'instruction suivante après avoir permis d'effectuer des sauts.
Exécutez à nouveau le programme de nom et lorsqu'il vous demande le type d'entrée :
n$ (après suppression des guillemets) |
n$ est une variable indéfinie et vous obtenez un rapport d'erreur 2 Variable not found. Si vous tapez maintenant :
- LET n$="quelque chose de precis"
ayant son propre rapport de 0 OK, 0:1) et :
vous constaterez que vous pouvez utiliser n$ comme données d'entrée sans aucun problème.
Dans ce cas, CONTINUE effectue un saut vers la commande INPUT à la ligne 110. Il ne tient pas compte du rapport de l'instruction LET parce que celui-ci dit 'OK', et saute à la commande mentionnée dans le rapport précédent, la première commande de la ligne 110. Cette se veut utile. Si un programme s'arrête sur une erreur, vous pouvez faire toutes sortes de choses pour le réparer, et CONTINUE fonctionnera toujours par la suite.
Comme nous l'avons dit précédemment, le rapport L BREAK into program est spécial, car après il continue ne répète pas la commande où le programme s'est arrêté.
Les listes automatiques (celles n'étant pas le résultat d'une commande LIST mais apparaissant après la saisie d'une nouvelle ligne) pourraient bien vous laisser perplexe. Si vous tapez dans un programme de 50 lignes, toutes les instructions REM :
- 1 REM
- 2 REM
- 3 REM
- :
- 49 REM
- 50 REM
alors vous pourrez expérimenter.
La première chose à retenir est que la ligne courante (avec un ) apparaîtra toujours à l'écran, et généralement près du milieu. Tapez :
LIST (et ENTER bien sûr) |
et quand il demande de faire scroll? (parce qu'il a rempli l'écran) appuyez sur n pour 'Non'. L'ordinateur donnera le rapport D BREAK - CONT repeats comme si vous aviez tapé BREAK. Vous pourriez à un moment donné découvrir ce qui se passe si vous appuyez sur y au lieu de n ; n, Barre d'espacement et STOP comptent pour Non, tandis que tout le reste compte pour Oui.
Maintenant, appuyez à nouveau sur ENTER pour obtenir une liste automatique et vous devriez voir les lignes 1 à 22 à l'écran. Tapez maintenant :
- 23 REM
et vous obtenez les lignes 2 à 23 à l'écran ; taper :
- 28 REM
et vous obtenez les lignes 7 à 28. (Dans les deux cas, en tapant une nouvelle ligne, vous avez déplacé le curseur du programme de sorte qu'un nouveau listing a été créé.)
Peut-être que cela vous semble un peu arbitraire. Il essaie en fait de vous donner exactement ce que vous voulez, bien que, les humains étant des créatures imprévisibles, il ne devine pas toujours juste.
L'ordinateur enregistre non seulement la ligne courante, celle qui doit apparaître à l'écran, mais aussi la ligne du haut à l'écran. Lorsqu'il essaie de faire une liste, la première chose qu'il fait est de comparer la ligne du haut à la ligne actuelle.
Si la ligne du haut vient après, alors il n'y en a pas. point à partir de là, il utilise donc la ligne actuelle pour une nouvelle ligne supérieure et fait sa liste.
Sinon, sa méthode est de commencer à faire l'affichage de la liste à partir de la ligne du haut, et de continuer jusqu'à ce qu'il ait listé la ligne courante, en faisant défiler si nécessaire. Cependant, il fait d'abord un calcul approximatif pour voir combien de temps cela prendrait, et si la réponse est beaucoup trop longue, alors il déplace la ligne du haut vers le bas pour être beaucoup plus proche de la ligne actuelle. Maintenant, après avoir élaboré sa ligne du haut, il commence à lister à partir de là. Si, lorsqu'il atteint la fin du programme ou le bas de l'écran, la ligne courante a été listée, alors il s'arrête. Sinon, il défile jusqu'à ce que la ligne actuelle soit à l'écran, et pour chaque ligne supplémentaire qu'il liste, il déplace la ligne supérieure vers le bas de sorte que la ligne supérieure dérive dans le voisinage de la ligne actuelle.
Essayez de déplacer la ligne actuelle en tapant :
numéro de ligne REM |
LIST déplace la ligne courante mais pas la ligne du haut, donc les listes suivantes peuvent être différentes. Par exemple, tapez :
pour obtenir la liste LIST, puis appuyez à nouveau sur ENTER pour faire de la ligne 0 la ligne du haut. Vous devriez avoir les lignes 1 à 22 à l'écran. Taper :
- LIST 22
ce qui vous donne les lignes 22 à 43 ; lorsque vous appuyez à nouveau sur ENTER, vous récupérez les lignes 1 à 22. Cela a tendance à être plus utile pour les programmes courts que pour les programmes longs.
En utilisant le programme plein de REM ci-dessus, tapez :
puis n quand il vous demande de faire scroll?. Tapez maintenant :
CONTINUE est un peu excentrique ici, car la partie inférieure de l'écran devient vide ; mais vous pouvez rétablir la normalité avec BREAK. La raison en est que LIST était la première commande de la ligne, donc CONTINUE répète cette commande. Malheureusement, la première commande de la ligne est maintenant CONTINUE elle-même, de sorte que l'ordinateur reste là à faire continuer encore et encore jusqu'à ce que vous l'arrêtiez.
Vous pouvez modifier cela en remplaçant LIST par :
- : LIST
pour lequel CONTINUE donne 0 OK (car CONTINUE saute à la deuxième commande de la ligne, étant considérée comme sa fin) ou :
- :: LIST
pour lequel CONTINUE donne N Statement lost (car CONTINUE saute à la troisième commande de la ligne, n'existant plus).
Vous avez maintenant vu les instructions PRINT, LET, INPUT, RUN, LIST, GO TO, CONTINUE, NEW et REM, et elles peuvent toutes être utilisées soit comme commandes directes, soit dans des lignes de programme - c'est le cas de presque toutes les commandes de ZX Spectrum BASIC. RUN, LIST, CONTINUE et NEW ne sont généralement pas très utiles dans un programme, mais ils peuvent être utilisés.