CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

4/4 Turbo PASCAL : Définitions et rappels de baseCoding Classeurs Weka

4/4 Turbo PASCAL : Définitions et rappels de base

Avant d'entrer dans les détails du langage, il convient de rappeler quelques éléments fondamentaux relatifs aux structures manipulées par le PASCAL.

Comme tous les PASCAL, Turbo PASCAL possède des instructions qui permettent de :

  • I. Faire des entrées/sorties sur l'écran, formatées ou non,
  • II. Structurer le programme (boucles de répétition, procédures et fonctions),
  • III. Travailler sur des types de données complexes.

Il est recommandé de ne mettre qu'une instruction par ligne pour augmenter la lisibilité des programmes.

Par contre, il est obligatoire de marquer la fin de chaque instruction par un point virgule.

I. Entrées/sorties sur l'écran

Pour écrire un texte ou une valeur (stockée dans une variable) sur l'écran, on utilise l'instruction WRITELN ou l'instruction WRITE (selon si l'on désire un passage à la ligne ou non) suivie d'une parenthèse ouvrante pour délimiter le début du texte à afficher, et d'une parenthèse fermante pour délimiter la fin du texte à afficher.

Par exemple :

WRITELN ('A = ', A) ;

permettra d'afficher le texte "A = " suivi de la valeur contenue dans la variable A.

Pour lire une valeur entrée au clavier et la stocker dans une variable, on utilise l'instruction READLN ou l'instruction READ (selon si l'on désire un passage à la ligne ou non) suivie d'une parenthèse ouvrante pour délimiter le début de la ou des variables à lire, et d'une parenthèse fermante pour délimiter la fin de la ou des variables à lire.

Par exemple :

READLN (A , B) ;

permettra de lire deux valeurs tapées au clavier et de les stocker dans les variables A et B.

Le résultat d'une impression par WRITELN ou par WRITE peut être formaté s'il représente un nombre. On peut, en effet, donner le nombre de chiffres désirés avant et après le point décimal.

Par exemple, si nous désirons 3 chiffres avant le point décimal et 2 après, nous ferons :

WRITELN ('Il fallait trouver : ', Reponse:3:2) ;

II. Structure du programme

A. BOUCLES DE RÉPÉTITION

Nous distinguerons 5 types de boucles répétitives ou assimilées :

REPEAT/UNTIL

FOR/TO/DO

IF/THEN/ELSE

CASE

GOTO < label >

La structure

REPEAT

< instruction >;

< instruction >;

UNTIL < condition >;

permet de répéter une ou plusieurs instructions jusqu'à ce qu'une condition soit réalisée.

La structure

FOR < variable >: = TO < valeur2 > DO

BEGIN

< instruction >;

< instruction >;

END;

permet de répéter une ou plusieurs instructions un certain nombre de fois (valeur 2 - valeur 1).

La structure

IF < condition > THEN BEGIN

< instruction >;

< instruction >;

END;

ELSE

BEGIN

< instruction >;

< instruction >;

END;

permet d'exécuter une ou plusieurs instruction(s) si une condition logique est réalisée, et une ou plusieurs instruction(s) dans le cas contraire.

La structure

CASE OF

Valeur 1 : < une ou plusieurs instruction(s) > ;

Valeur n : < une ou plusieurs instruction(s) >;

ELSE < une ou plusieurs instruction(s) >;

END;

permet d'effectuer un traitement spécifique pour chaque valeur indiquée d'une variable, et un autre traitement si la variable a une autre valeur.

La structure

GOTO < label >

est à déconseiller si l'on veut respecter les concepts de programmation structurée. Cependant, il existe des cas « désespérés » dans lesquels le programmeur se trouve pratiquement forcé d'utiliser un débranchement inconditionnel pour éviter de compliquer plus que nécessaire la structure de son programme. Dans ce cas et dans ce cas seulement, l'instruction GOTO sera utilisée.

B. PROCÉDURES ET FONCTIONS

Une procédure est un sous-programme qui est appelé une ou plusieurs fois par le programme principal et dont le but est d'isoler une ou plusieurs fonctions du programme principal pour clarifier ce dernier.

Une procédure peut posséder des variables locales et accéder aux variables globales du programme. Elle peut même éventuellement demander un ou plusieurs paramètres à l'appelant.

Une procédure a la structure suivante :

PROCEDURE < nom > (< éventuellement un ou plusieurs paramétrés >);

< déclaration de types locaux a la procédure ou/et de variables locales a la procédure >;

BEGIN

< instruction >;

< instruction > ;

END;

Une fonction a grossièrement la même structure qu'une procédure. Elle permet d'effectuer des calculs et d'affecter le résultat de ces calculs à une variable choisie par le programmeur.

Une fonction type aura la structure suivante :

FUNCTION (< un ou plusieurs parametre(s) > ): < type > ;

< déclaration de types locaux a la procédure ou/et de variables locales a la procédure > ;

BEGIN

< instruction > ;

< instruction >;

END;

Une ou plusieurs des instructions contenues dans la fonction doivent affecter le résultat final en accédant à la variable .

III. Types de données complexes

Nous distinguerons essentiellement :

  • les tableaux mono et multi-dimentionnels,
  • les chaînes de caractères,
  • les types définis par le programmeur,
  • les fichiers,
  • les pointeurs.

A. TABLEAUX

Ce sont des ensembles d'éléments de même type rassemblés sous un même nom dans une table.

Les tableaux mono-dimentionnels ont la structure suivante :

< nom > : ARRAY [ < 1er élément >... < dernier élément > ] OF < type > ;

Par exemple :

Nombre : ARRAY [1 ...10] OF INTEGER;

Les tableaux multi-dimentionnels ont la même structure, mais les premiers et derniers éléments de chaque dimension doivent être séparés par une virgule.

Par exemple :

Multi : ARRAY [1...5, 1... 10, 1...3] OF REAL;

B. CHAÎNES DE CARACTÈRES

Une chaîne de caractères est définie par l'instruction STRING suivie du nombre maximum de caractères qu'elle peut contenir.

Par exemple :

Message = STRING [20];

Plusieurs instructions très performantes existent dans le TURBO PASCAL pour aider le programmeur à manipuler les chaînes de caractères. Nous y reviendrons par la suite.

C. TYPES DÉFINIS PAR LE PROGRAMMEUR

Ils seront du type :

— scalaire :

Par exemple :

TYPE

Qualification = (Bon, Moyen, Débutant);

— enregistrement :

Par exemple :

TYPE
Repertoire = RECORD Nom : String[10];
Prénom : String [ 10];
Adresse : String[40];
Tel : String1 11 ];
END;

Un élément de l'enregistrement sera accédé en précisant le nom de l'enregistrement, suivi d'un point, suivi du nom de l'article dans l'enregistrement.

Par exemple, pour accéder au prénom de l'enregistrement précédent, il faudra faire : Repertoire.Prénom

D. FICHIERS

Les fichiers accédés sous TURBO PASCAL pourront avoir des structures complexes. Ils seront lus par l'instruction READ, écrits par l'instruction WRITE et ouverts par l'instruction RESET précédée de l'affectation du nom du fichier à une variable : ASSIGN. Nous reviendrons à la manipulation des fichiers dans la suite.

E. POINTEURS

Les pointeurs sont des outils très puissants qui permettent d'accéder rapidement à une donnée faisant partie d'une structure telle qu'elle ne peut pas être accédée par simple addition ou soustraction d'index. Nous y reviendrons largement dans la suite car le concept de pointeur est fondamental en TURBO PASCAL et assez mal connu.

 

Page précédente : 4/2.7 - Les banques ROM ou FIRMWARE : FONCTIONS CLAVIER (!)

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 125 millisecondes et consultée 562 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.