You are on page 1of 15

S.

Hacini

Eléments de base du langage Pascal

LMD-MIAS

Chapitre 5 : Le langage de programmation Pascal
Le langage Pascal a été posé au début des années 60 par Niclaus Wirth à l’école polytechnique de Zurich et depuis il n’a cessé pas d’évoluer. Son nom a été donné en hommage au savant Blaise Pascal dont les travaux sont considérés comme une plate-forme informatique. Le but de Wirth était d’écrire un langage qui remédie aux lacunes des autres langages de programmation tels que Fortran ou Algol. Le langage Pascal se caractérise par sa précision et sa facilité ce qui a contribué a son expansion dans divers domaines. Il est pédagogique d’où son utilisation dans de nombreuses universités. Wirth avait pour but: - de trouver et d’améliorer un langage de programmation simple qui permet l’enseignement de l’informatique ; - de poser un langage de programmation dont les programmes peuvent être exécutés par des types différents d’ordinateurs et ce grâce à l’existence d’un compilateur pouvant analyser ces programmes (portabilité), ceci a l’avantage de faciliter le transport de logiciels écrits en Pascal d’un ordinateur à un autre à moindre coût. Le langage Pascal se caractérise aussi par le fait qu’il un langage algorithmique très proche de l’écriture mathématique. De plus, il peut être utilisé pour résoudre des problèmes scientifiques, de gestion …etc.

1. Eléments de base du langage Pascal
1.1. Vocabulaire du langage Pascal
Le langage Pascal se compose des objets suivants : - lettres alphabétiques latines majuscules et minuscules (A..Z, a..z) ; • les chiffres arabes (0..9) ; • Les caractères particuliers + - * / . , ; ‘ = > < >= <= := ^ [ ] ( ) • Les mots réservés : ces mots sont utilisés par le programmeur en langage Pascal à des fins bien déterminés et ne peuvent être utilisés comme identificateurs : • And , Array, Begin, Case, Const, Div, Do, Downto, Else, End, File, For, Function, Goto, If, In, Label, Mod, Nil, Not, Of, Or, Packed, Procedure, Program, Repeat, Set, Then, To, Type, Until, Var, While, With • des identificateurs prédéfinis qui sont les noms de fonctions ou procédures standards, des constantes et paramètres ou encore des types : - identificateurs de type : Integer, Real, Boolean, Char, Text ; - identificateurs de fonctions standards : Abs, Arctan, Chr, Cos, Eof, Eoln, Exp, Ln, Odd, Ord, Pred, Round, Sin, Sqr, Sqrt, Succ, Trunc - identificateurs de procédures standards : Get, New, Put, Read, Readln, Reset, Rewrite, Unpack, Write, Writeln - identificateurs de constants: False, True, Maxint - identificateurs des paramètres de programme : Input, Output

1

1.S.3. Il est possible d’ôter les commentaires du programme sans modifier la logique du programme.4. 5°) La hiérarchie des opérateurs L’évaluation des opérateurs est déterminée.2. (*instruction d’affectation en Pascal*) x et b doivent être de même type.s’ils sont appliqués aux nombres entiers (réels) donnent des résultats entiers (réels) : x := a*b+c-2 . chiffres ou le caractère de soulignement -) dont le premier est une lettre latine. Il n’influe pas sur son exécution car les commentaires ne sont pas pris en compte durant l’exécution. Les identificateurs Un identificateur est une suite de caractères alphanumériques (lettres latines.(* la valeur de x est égale à 2*) 3°) Les opérateurs relationnels Les opérateurs = > < <> ≥ ≤ sont utilisés avec les chaînes de caractères ou les types scalaires. 4°) Les opérateurs logiques Les opérateurs AND. selon leur hiérarchie. Les commentaires Le programmeur utilise des commentaires au sein du programme afin d’expliquer le rôle des constantes et variables ainsi que celui du programme ou parties du programme. Les opérateurs DIV et MOD sont appliqués sur les nombres entiers et donnent des résultats entiers : x := 5 DIV3 . Les opérateurs du langage Pascal 1°) L’opérateur d’affectation L’opérateur d’affectation s’écrit avec le signe « := » Exemple : x← b+2 . Ils donnent des résultats logiques (vrai ou faux). L’opérateur / donne toujours un résultat réel : x := a/(b+c) . Dans le langage Pascal. au niveau de toutes les expressions arithmétiques et logiques. 1. 2 . OR et NOT sont appliqués aux expressions logiques.(* la valeur de x après exécution est égale à 1*) x := 5 MOD . Il s’écrit : (* suite de caractères et symboles ne comportant pas le caractère « * » *) Le commentaire peut s’écrire à n’importe endroit du corps du programme. 2°) Les opérateurs arithmétiques Les opérateurs arithmétiques * + . Hacini Eléments de base du langage Pascal LMD-MIAS 1. Notons qu’il est possible de modifier cette priorité en rajoutant des parenthèses aux endroits adéquats. (* action algorithmique d’affectation*) x := b + 2 . un identificateur se compose d’au plus huit caractères. Le tableau suivant illustre les priorités des opérateurs dans le langage Pascal.

ainsi que l’ensemble des opérateurs appliquées sur ses valeurs. Il existe trois catégories de types : • les types simples (ou types scalaires prédéfinis) qui sont le type entier.les opérateurs arithmétiques : + . de la manière suivante : -154.5435 E+2 (où 2 est l’exposant) Les opérateurs utilisés sont : .les opérateurs relationnels : = < > ≥ ≤ <> donnent des résultats logiques .les fonctions prédéfinies : Abs(x) : donne la valeur absolue de l’expression x de type entier Sqr(x) : donne le carré de x de type entier Trunc(x) : donne la partie entière de la variable réelle x Round(x) : donne la valeur de l’entier le plus proche de la valeur de la variable réelle x Succ(x) : donne la valeur x + 1 de x entier Pred(x) : donne la valeur x – 1 de x entier 2°) Le type réel REAL Ce type est symbolisé par le mot réservé REAL.S. 32. Il existe quatre types prédéfinis : Le type entier Le type réel Le type logique Le type caractère 1°) Le type entier INTEGER Ce type est symbolisé par le mot réservé INTEGER. Hacini Eléments de base du langage Pascal LMD-MIAS opérateurs Not * / MOD AND DIV + OR = > < <> ≥ ≤ in priorités 2. chaîne de caractères.les opérateurs relationnels : = < > ≥ ≤ <> donnent des résultats logiques 3 . logique et caractère • Les types scalaires définis par le programmeur • Les types structurés (tableau. C’est un sous-ensemble des nombres entiers (les limites de l’intervalle des valeurs dépendent de l’ordinateur utilisé). par exemple. réel. a un type unique.* / .les opérateurs arithmétiques : + . Les opérateurs utilisés sont . enregistrement.* / Div Mod . Les valeurs réelles peuvent s’écrire. 64…bits). Les types de base Une variable. dans un programme Pascal. C’est un sous-ensemble des nombres réels (les limites de l’intervalle des valeurs dépendent de l’ordinateur utilisé (le motmémoire de 16. fichier. Le type décrit l’ensemble des valeurs que peut prendre cette variable.35 ou 1. à la première catégorie. dans ce chapitre. liste…) On s’intéressera.

Si c’est c n’existe pas. De plus. ‘1’ est considéré comme étant un caractère et non un nombre. cette opération engendrera une erreur à l’exécution. cette opération engendrera une erreur à l’exécution.<’Z’ ‘a’<’b’<…. La valeur de type caractère s’écrit entre deux cotes ‘’ (à l’exception du caractère ’ lui-même). Les opérateurs appliqués sont les opérateurs relationnels ainsi que les opérateurs logiques. Exemple : pred(‘f’)= ‘e’ Ord(c) : elle donne une valeur entière positive ou nulle indiquant la position de la valeur de la variable c dans l’ensemble ordonné des symboles. Une valeur de type caractère est un élément d’un ensemble fini ordonné de symboles. Ils donnent toujours un résultat booléen : Not : la négation d’une valeur booléenne And : la conjonction de deux valeurs booléennes Or : la disjonction entre deux valeurs booléennes Xor : ou exclusif entre deux valeurs booléennes 4°) le type caractère CHAR Ce type est symbolisé par le mot réservé CHAR.les fonctions prédéfinies : Abs(x) : donne la valeur absolue de x Sqr(x) : donne le carré de x Sin(x) : donne le sinus de la variable réelle x en radian Cos(x) : donne le cosinus de la variable réelle x en radian Arctan(x) : donne. Ces symboles sont représentés généralement par leur code ASII. cette opération engendrera une erreur à l’exécution.des fonctions prédéfinies : Soit une variable c de type caractère.<’z’ ‘0’<’1’<…. Hacini Eléments de base du langage Pascal LMD-MIAS . l’arc de l’angle x réel Ln(x) : donne le logarithme de la valeur réelle x Exp(x) : donne l’exponentiel de la valeur réelle x Sqrt(x) : donne la racine carrée de la valeur réelle x 3°) Le type booléen BOOLEAN Ce type est symbolisé par le mot réservé BOOLEAN.S.les opérateurs relationnels. en radian. Les opérateurs utilisés sont : . L’ensemble des valeurs booléennes se compose de deux valeurs prédéfinies True et False. Si c est le plus grand. Si c est le plus petit. EBCDIC…etc. Exemple : succ(‘2’)= ‘ 3’ .les lettres alphabétiques et les chiffres sont ordonnés de la manière suivante : ‘A’<’B’<….<’9’ . Exemple : ‘A’ ‘a’ ‘1’ ‘+’ Remarque: les caractères ‘A’ et ‘a’ sont différents. . La nature et l’ordre de ces symboles dépendent du type de l’ordinateur utilisé. on peut lui appliquer les fonctions prédéfinies suivantes : Succ(c) : elle donne le symbole qui suit c (plus grand que c) dans l’ensemble ordonné des symboles. c1<c2 si ord(c1)<ord(c2) 4 . succ(‘d’)= ‘e’ Pred(x) : elle donne le symbole qui précède c (plus petit que c) dans l’ensemble ordonné des symboles.

2°) Un programme doit avoir un nom (identificateur) qui s’écrit en respectant la règle suivante : 5 . Structure d’un programme Pascal Le programme Pascal s’écrit suivant la structure suivante : Program <identificateur du programme> (<paramètres du programme>) .S. Remarques : 1°) Les mots program. Begin <instruction 1> . Il est possible de définir les règles de l’écriture d’un programme en utilisant le diagramme syntaxique suivant : Program identificateur Input Output ( . Si la position i n’existe pas. < déclarations> . il n’est pas possible de les utiliser comme identificateurs. Hacini Eléments de base du langage Pascal LMD-MIAS Exemple : Nous posons l’ensemble ordonné des symboles suivants : ‘A’<’B’<…<’Z’<’a’<’b’<…<’z’<’0’<…<’9’ Nous obtenons ord(‘a’)=26 (sachant que ord(‘A’)=0) Chr(i) : l’effet de cette opération est inverse de celui de ord. <instruction n> End. cette opération engendrera une erreur à l’exécution. <instruction 2> . chr(3)=’D’ 3. Déclarations Begin Instruction End . ) . begin et end sont des mots réservés. Exemple : Suivant l’ensemble ordonné des symboles proposé ci-dessus.

Hacini Eléments de base du langage Pascal LMD-MIAS «Un identificateur est une suite de caractères alphanumériques (lettres latines. 125 . . réel. 4°) Les objets utilisés par le programme sont identifiés dans la zone des déclarations (entre les mots réservés program et begin). Exemple : Label 2. . booléen ou caractère) aux identificateurs qui correspondent aux constantes déclarées (leurs valeurs ne changent pas au cours de l’exécution du programme). 6 . 4. 4. IL faut que ces étiquettes soient déclarées au niveau du paragraphe LABEL. Les instructions appliquées sur ces objets sont écrites dans le corps du programme (entre le premier begin et le dernier end). 24. doit être respecté.2.S. chiffres arabes et le caractère de soulignement ‘-‘) dont le premier est une lettre ». Cependant. des valeurs (de type de base : entier. Déclaration des constantes Nous attribuons.le paramètre input lorsqu’il y a lecture des données à partir de périphériques d’entrée. il n’est pas possible de couper un mot. La syntaxe est : Label étiquette . 5°) le programme se termine par le mot réservé end suivi d’un point. 6°) L’écriture dans un programme Pascal est libre : il est possible de laisser des blancs entre les mots ou encore de laisser des lignes blanches. Ce dernier est un ensemble d’instructions séparées par des points-virgules.1.Un fichier utilisateur. Déclaration de variables et de constantes La zone de déclaration se compose de plusieurs paragraphes dont l’ordre d’apparition. 3°) un programme peut avoir besoin de paramètres pour s’exécuter tels que : . dans le programme.Le paramètre output lorsqu’il y a des résultats à écrire en utilisant des périphériques de sortie. 4. . dans ce paragraphe. Déclaration des étiquettes Il est possible de faire précéder certaines instructions du programme d’étiquettes suivies du caractère « : ».

Le type de la variable peut être : • un identificateur de type déclaré dans le paragraphe TYPE. Hacini Eléments de base du langage Pascal LMD-MIAS La syntaxe est : Cons t Identificateur = constante . La syntaxe est : Nouveau Type Type identificateur = . 4.3. M=false .4. au niveau du paragraphe TYPE. Déclaration des variables Ce paragraphe est identifié par le mot réservé VAR et comporte la déclaration de toutes les variables utilisées par le programme. Déclaration des types Le programmeur a la possibilité. La syntaxe est : Var identificateur : type . de déclarer de nouveaux types (autres que les types prédéfinis. 7 . • un identificateur de prédéfini ou • une définition de type. 4. Cette déclaration consiste à citer l’identificateur et le type de la variable.1416 . . Exemple : Const N=10 . PI=3.S. L=’S’ . departement=’informatique’ .

. y:= 25. 8 . Indice: 1. Hacini Eléments de base du langage Pascal LMD-MIAS Exemple : Type Age = 1. Begin x:= -10. 4.21 . Var I: integer. Sa nouvelle valeur s’obtient après évaluation de l’expression placée à droite de l’opérateur d’affectation. son type doit être compatible avec celui de la variable. L’ensemble des instructions du langage de programmation Pascal comporte des instructions simples et des instructions composées ou structurées.10.z: integer. Instructions de base Les instructions du langage Pascal sont écrites dans l’espace délimité par les mots réservés begin et end. Déclaration des fonctions et procédures Les fonctions et procédures. x:=y. 5. z:=x. Var x.1. Cependant. A: age. R2 : real .S. L’expression peut être de n’importe quel type. output) . Sa syntaxe est : Identificateur de la variable := expression . L’instruction d’affectation Cette instruction permet de modifier la valeur de la variable qui est placée à gauche de l’opérateur’ := ’. y:=z end. 5..5. en Pascal. Il est obligatoire de déclarer toute procédure ou fonction avant de l’appeler afin de l’exécuter. Exemple : Ecrire le programme Pascal qui effectue la permutation des valeurs de deux variables entières x et y dont les valeurs initiales sont respectivement –10 et 25. Program permut(input. sont des sous-programmes paramétrés.y. R1.

2°) L’instruction d’écriture des résultats WRITE ou WRITELN Cette instruction permet d’afficher sur écran une ou plusieurs expressions. Read(v2). Il est possible de définir le format d’écriture. 1°) L’instruction de lecture de données READ ou READLN Sa syntaxe est : Readln ( Read Identificateur de variable ) . format ) Il faut que le type de l’expression soit un type de base (entier. v2. Hacini Eléments de base du langage Pascal LMD-MIAS 5. Readln : permet la lecture des valeurs d’une ou plusieurs variables puis le passage à la ligne suivante et ce au cours de l’exécution. Les variables lues doivent être de type simple.v3. booléen ou caractère) ou de type chaîne de caractère. réel. 9 .2. Sa syntaxe est : Read(v1. Read(v3). v2. Soient 4 variables v1.). Les instructions d’entrée/sortie Ces instructions permettent l’échange des données et des résultats entre ordinateur et les périphériques d’E/S (écran.v3 et v4.S.v4) Writeln ⇔ expression ( Write . imprimante …etc. Read : permet la lecture des valeurs d’une ou plusieurs variables. clavier. L’instruction qui permet la lecture de leurs valeurs peut s’écrire : Begin Read(v1). Read(v4) End. Write(E) : l’exécution de cette instruction engendre l’évaluation de l’expression E et l’apparition de sa valeur sur l’écran à partir de la position du curseur.

Remarques : le nombre de positions sur lesquelles la valeur d’une expression est représentée dépend de l’ordinateur utilisé sauf dans le cas s’une chaîne de caractères (le nombre de positions est égal au nombre de caractères). L’instruction goto permet d’interrompre ce séquence ment et d’aller exécuter une instruction placée plus loin vers l’avant ou l’arrière.3. La syntaxe du format est la suivante : Valeur 1 : Valeur 2 Les deux valeurs sont positives.5 . on doit l’écrire entre deux apostrophes. Il faut déclarer cette étiquette au niveau du paragraphe LABEL (voir paragraphe 5. Exemple : A := 237. Valeur1 indique le nombre total de positions utilisées pour l’affichage de la valeur de l’expression. begin ----------3 : i := i + 1 . (* 237. (* 2. ----------10 . valeur2 indique alors le nombre de positions après le point décimal.4 *) 5. Writeln(A) . Hacini Eléments de base du langage Pascal LMD-MIAS Writeln(E) : elle a le même effet que write(E) c’est à dire l’apparition sur l’écran de la valeur de E à partir de la position du curseur puis passage à la ligne suivante. L’instruction de branchement inconditionnel GOTO Les instructions s’exécutent de façon naturelle de manière séquentielle ( l’une à la suite de l’autre). Ex : writeln( ‘pas de racines ‘).438 . Label 3. Le format d’écriture : Il est possible de définir le format d’écriture de la valeur d’une expression. (* 237. Exemple : Program testgoto . L’adresse de cette dernière est donnée par l’étiquette précédant l’instruction à exécuter.37438E+2*) Writeln(A:6:2). Les deux valeurs sont utilisées ensemble uniquement dans le cas où l’expression est de type réel. Pour afficher un message sur écran .S.44*) Writeln(A:5:1).1).j : integer . var i.

Les instructions conditionnelles 5. J:= j –1 end. ----------end.1. Instruction IF L’écriture syntaxique est : If Expression logique then instruction else instruction L’instruction IF peut être conditionnelle simple If-Then. l’instruction qui suit else est celle qui s’exécute. Exemple1 : traduire l’algorithme valabs1 en un programme Pascal. Program valabs1. 11 . Elle peut être aussi conditionnelle alternative If-Then-Else. Son exécution débute par l’évaluation de l’expression logique. Writeln(nbr) End. Si le résultat de l’évaluation est égale à true (condition vérifiée). 5. Remarque: Goto ne s’utilise pas pour le branchement vers une instruction du corps des instructions structures if ou case.4. If nbr < 0 then Nbr := -nbr . Si par contre sa valeur vaut false (condition non satisfaite). l’instruction qui suit then est celle qui s’exécute. ----------goto 5. Begin Readln(nbr) . Hacini Eléments de base du langage Pascal LMD-MIAS goto 3.S. ----------5: begin I:= I * 2. Var Nbr : real . elle permet l’exécution de l’instruction qui suit le then si l’expression logique (condition) est égale à true. Dans ce cas.4.

<domaine n> : <instruction n> end . Hacini Eléments de base du langage Pascal LMD-MIAS Exemple2 : traduire l’algorithme valabs2 en un programme Pascal. Le type des éléments du domaine doit correspondre à celui du sélecteur expression.b). 4: s:= a / b end. suivant la valeur d’une expression de choix appelée sélecteur. Begin Readln(nbr) . 5. 3: s:= a * b. <domaine2> : <instruction2> .s :real . alors l’instruction2 est exécutée . Exemple : Var i :integer . Case i of 1: s:= a + b. l’expression est évaluée. result : real . Au cours de l’exécution de l’instruction Case. où domaine i est une suite de constantes ou intervalles. Program valabs2 . Instruction Case L’instruction Case (signifie selon le cas) permet de faire un choix parmi plusieurs possibilités. aucun élément d’aucun domaine n’est égal à la valeur du sélecteur alors on passe à la suite du programme. Si le résultat est égal à un élément du domaine1. 2: s:= a – b.4.S.b. Begin Readln(a. If nbr >= 0 then result:= nbr else Nbr := -nbr . 12 . Si le résultat est égal à un élément du domaine n. L’instruction Case s’écrit en Pascal : Case < expression > of <domaine1> : <instruction1> . Cette expression doit être de type ordinal. Var Nbr. Si le résultat est égal à un élément du domaine2. alors l’instruction n est exécutée . Writeln(result) End. alors l’instruction1 est exécutée . L’instruction case correspond à l’expression « selon le cas » du langage naturel. end.2. Si par contre. a. Readln(i).

Instruction Case…Else Sa syntaxe est : Case < expression > of <domaine1> : <instruction1> . ’a’: writeln(‘automne’).5. end. alors l’exécution s’arrête. Sa syntaxe est : While Expression logique instruction do L’exécution de l’instruction while débute par l’évaluation de l’expression logique (c’est le critère d’arrêt). <domaine n> : <instruction n> else < instruction m> end . Instruction While Cette instruction est généralement utilisée lorsqu’il n’est pas possible de préciser à l’avance le nombre de répétitions.3. Si sa valeur est égale à false. 13 . Dans le cas contraire et tant que sa valeur reste true. 5. Elle comporte une condition (expression logique) qui contrôle son exécution.4. ’p’: writeln(‘printemps’). au niveau du langage de programmation Pascal.S. à l’exception du fait qu’ici quand aucun élément d’aucun domaine n’est égal à la valeur du sélecteur alors l’instruction m est exécutée. Case c of ‘P’. Il existe. Exemple : Var c :char . ‘A’. ‘E’. Begin Readln(c).5. Les instructions itératives L’instruction itérative permet de répéter l’exécution d’une ou plusieurs instructions suivant des conditions précises. Hacini Eléments de base du langage Pascal LMD-MIAS 5. Elle correspond à l’action algorithmique « tantque ».1. ’h’: writeln(‘hiver’) else writeln(‘le caractère lu n’’est pas conforme’) end. ‘H’. trois sortes d’instructions itératives. l’instruction est exécutée puis l’expression logique est réévaluée. C’est exactement la même exécution que celle de l’instruction case. ’e’: writeln(‘été’). 5. <domaine2> : <instruction2> .

Le corps de l’instruction while doit comporter une instruction qui modifie la condition (afin d’éviter la boucle infinie). 5. Var N. som: integer. repeat Som:= som + n. Remarques : au niveau de l’instruction while. While n > 0 do Begin Som:= som + n.2. Var N. Program som-ent3 .som) End. Sa syntaxe est : repeat instruction until Expression logique Exemple : traduire l’algorithme som-ent3 en un programme Pascal utilisant l’instruction repeat. L’instruction repeat comporte aussi une condition d’arrêt. Som:=0. 14 .S. Begin Readln(n). Writeln(‘la somme vaut: ‘. Hacini Eléments de base du langage Pascal LMD-MIAS Exemple : traduire l’algorithme som-ent3 en un programme Pascal utilisant l’instruction while. l’instruction peut ne jamais être exécutée (cas où l’expression logique est fausse dés la première évaluation). Writeln(‘la somme vaut: ‘. som: integer.5. Instruction Repeat Elle est utilisée si on est certain que l’instruction est exécutée au moins une fois.som) End. Begin Readln(n). Program som-ent3 . Som:=0. N:= n – 1 End. N:= n – 1 Until n <= 0.

5.S. Son exécution est reliée à des valeurs successives que prend une variable de contrôle. La valeur du pas d’incrémentation ou de décrémentation vaut toujours 1. Il existe. 15 . Sa syntaxe est : to for Identificateur de variable := expression downto expression do instruction Cette instruction correspond à l’action algorithmique « pour ». en Pascal. Instruction For Il est préférable d’utiliser l’instruction for si on connaît le nombre de répétitions. Hacini Eléments de base du langage Pascal LMD-MIAS 5. Les valeurs initiale et finale sont données par les deux expressions. For-downto : For-To : quand la valeur initiale est supérieure à la valeur finale (décrémentation) .3. deux types d’instructions For selon que la valeur initiale soit inférieure ou supérieure à la valeur finale : For-To : quand la valeur initiale est inférieure à la valeur finale (incrémentation) .