Vous êtes sur la page 1sur 13

Chapitre 4

R esum e syntaxique du langage Pascal


Le Pascal est un langage proc edural induisant une approche par les traitements pour r esoudre un probl` eme donn e. Cette approche peut etre descendante ou ascendante. Il supporte la notion de fonction ou de proc edure et des m ecanismes de passage darguments ` a ces fonctions ou proc edures ainsi quun m ecanisme de renvoi de valeur par les fonctions.

4.1

M ethode de d eveloppement dun logiciel

En g enie logiciel on utilise souvent la m ethodologie suivante pour r esoudre les probl` eme de programmation. Elle comporte cinq etapes

4.1.1

Etapes de d eveloppement dun logiciel

1. Formulation du probl` eme : Cette phase consiste ` a red enir pr ecisement le probl` eme avec un gain de la compr ehension sur les parametres dont on a besoin pour la solution en eliminant toutes les redondances. 2. Analyse : Cette etape identie les entr ees du probl` emes et les sorties d esir ees, ainsi que les contraintes. Elle identie les informations ` a fournir comme donn es et les r esultats ` a calculer. Elle pr ecise egalement la forme sous laquelle les r esultats pourront etre pr esent es. 3. Conception : Ici on d eveloppe l algorithme pour r esoudre le probl` eme eton v erie que lalgorithme r esoud bien le probl` eme comme attendu. Cest souvent laspect le plus dicile dans la r esolution du probl` eme. On doit donc mettre beaucoup de soin dans les v erications inh erante ` a cette etape. On utilise souvent la technique de diviser pour r` egner puis on r esoud s epar ement les sous probl` emes

24

4. Impl ementation : Ici on traduit lalgorithme en programme. Chaque etape de lalgorithme va etre cod e en instruction dans un langage de programmation. Il y a donc n ecessit e de la ma triser un langage de programmation. 5. Test et v erication : Dans cette phase on teste le programme complet an de v erier quil marche comme pr evu en utilisant diverses sortes de donn ees. Dans cette d emarche, les trois premi` eres phases sont critiques. De leurs bons d eroulements d epend la abilit e de toute la m ethode.

4.1.2

Analyse descendante

Elle est bas ee sur la technique de diviser pour r` egner. En eet on d ecrit en pseudo-langage, lalgorithme en partant dun niveau de description abstrait et en d ecomposant chaque traitement en sous-traitement jusqu` a ce quil ny ait plus de d ecomposition ` a faire.

4.1.3

Modularit e

Un probl` eme est en g en eral d ecoup e en des sous-probl` emes ; chaque sousprobl` eme est r esolu s epar ement. Cette approche facilite la maintenance et la r eutilisation des codes gr ace aux m ecanismes de complilation s epar ee.

4.1.4

Programmation structur ee

Une approche disciplin ee de programmation conduisant ` a des programmes faciles ` a lire et ` a comprendre, exempts derreurs de logique. Ce style de programmation permet d ecrire des codes clairs lisibles agr ement es de commentaires facilitant sa maintenance.

4.2

Structure g en erale dun programme Pascal

Selon la norme ANSI, tout programme Pascal comporte trois parties : lent ete, la partie d eclarative et le corps du programme (ou programme principale). Lent ete (non obligatoire en Turbo-pascal) permet dattribuer un identicateur (un nom) au programme. La partie d eclarative dit au compilateur la quantit e de m emoire qui doit etre r eserv ee au besoin du programme. Cette quantit e d epend des donn ees mises en oeuvre. Elle annonce egalement tout ce qui va etre donc utilis e dans le corps du programme. Le corps du programme ou programme principal commence avec la ligne begin et se termine par la ligne end.

25

Elle contient les instructions (ex ecutables) qui, traduites par le compilateur, seront ensuite ex ecut ees. Sch ematiquement on a la structure suivante : Program nom ; const constante =valeur ; . constante =valeur ; type type = description ; . type = description ; var liste de variable : type ; . liste de variable : type ; Procedure pnom(liste de param` etres) ; var . begin . end ; . Function fnom(liste de param` etres) ; var . begin . end ; begin instruction ; . instruction ; end. } Ent ete

Corps du programme

Programme principale

Comme tout langage, le Pascal pess` ede un alphabet, un vocabulaire et une grammaire. Lalphabet du Pascal est form e des 26 lettres de lalphabet anglais sans prise en compte de la casse, des 10 chires (du syst` eme d ecimal) et quelques symboles sp eciaux tels que les ponctuations etc. . .. Le vocabulaire est constitu e dun certain nombre de mots r eserv es et des identicateurs standard. La grammaire est vue ` a travers les constructions syntaxiques autoris ees par le langage. Il est essentiel de retenir que chaque phrase en Pascal se termine par le point virgule ;

26

Les commentaires (utiles ` a la maintenance mais non interpr et es par le compilateur) sont d elimit es par des couples daccolades {. . .}. Dans la suite nous donnons un aper cu succint de la grammaire du Pascal.

4.3

Types de donn ees

En pascal on a des donn ees simples et des donn ees structur ees.

4.3.1

Donn es simples

Elles sont de deux sortes : les scalaires et les r eels. Les donn ees de type scalaire regroupent les entiers, les bool eens, les caract` eres, les types enum er es et les types intervalles. Types entiers Les types entiers du turbo pascal sont : Type byte shortint integer longint word Intervalle 0 .. 255 -128 .. 127 -32768 .. 32767 -2147483648 .. 2147483647 0 .. 65535 Exemple de d eclaration const beep=25 ; var x,y, a : byte ;

Types enum er es Les types enum er es d enissent un ensemble ordonn e de valeurs en enum erant les identicateurs qui r epresentent ces valeurs. Lordre est celui de enum eration. Syntaxe : type enumere = (element1 , . . . , elementN ) Exemple type Carte =(Tree, Carreau,Coeur,Pique)

27

Types enum er es Cest un type enum er e particulier ayant deux valeurs False (vrai) ou True (faux) et utilis e pour les donn ees logiques (boolean). Types intervalles Un type intervalle est une portion de lintervalle des valeurs dun type scalaire. Syntaxe : type intervalle = constantei ..constantef Exemple type inf100=0..99 ; prime=tree..coeur ; types r eels Les types r eels sont : Type real single double extended comp Intervalle 2.9 1039 .. 1.7 1038 1.5 1045 .. 3.4 1038 5.0 10324 .. 1.7 10308 3.4 104932 .. 1.1 104932 263 + 1 .. 263 1 Exemple de d eclaration const pi=3.1416 ; var x,y : real ;

4.3.2

Donn es structur ees

Types chaine de caract` eres Le type chaine de caract` eres (String) avec un attribut de longueur variable en cours dex ecution. Syntaxe : type chaine = string ou type chaine = string[N]

ou N 1..255

la longueur prescrite

28

Exemple type chaine32= string[32] ; var nom, prenom : chaine32 ; commentaire : string ; note : string[3] ; Types tableaux le type tableau (array) est une structure form ee dun nombre xe d el ements de m eme type, le type composant. Syntaxe : type tableau = array[type dindice ] Exemple of type composant

array[boolean ] of array[1..10 ] of real Types enregistrements Le type enregistrement (record) est compos e dun certain nombre d el ements ou champs qui peuvent etre de di erents types. Un enregistrement comporte une partie xe et parfois une partie variable. Pour un enregistrement simple on a : Syntaxe : type enregistrement = record champ : type champ ; champ : type champ ; end ; Exemple type date = record An : integer ; mois : 1..12 ; jour : 1..31 ; end ;

Pour un enregistrement ` avariante on a : Syntaxe :

29

type enregistrement = record champ : type champ ; . champ : type champ ; case type de selecteur of selecteur : (liste de champs) ; . selecteur : (liste de champs) ; end ; Exemple type Personne

= record Nom, Prenom : string ; datenaiss : date ; case citoyen : boolean of True : (Lieunaiss : String[40]) ; False : (Pays : String[20] ; Lieuarrive : String[20] ; datearrive : date ; datedepart : date ;) ; end ;

Remarque : Dans un enregistrement ` a variante, la partie xe peut etre vide. Types ensembles Un type ensemble ( ouset) dun type scalaire ordinal peut contenir tous les sous ensembles possibles de valeurs du type scalaire de base. Le type de base ne peut contenir plus de 256 valeurs possibles. Syntaxe :

type ensemble = set of Exemple Remarque : Le type de base ne peut etre Integer Types chiers

type scalaire

Un type chier le est une suite lineairre d el ements dun m eme type ` a lexception dun type chier, appel e type composant. On distingue des chiers typ es, des chiers text et des chier non typ es 30

Syntaxe : type chier = le ou type chier = le of Exemple

type

4.3.3

Quelques types esot eriques

Il sagit des types pointeurs et des types sous-programmes. On reviendra plus en d etail sur ces types. Les types objets ne seront pas etudi es dans ce cours.

4.4
4.4.1

Laectation et les entr ees / sorties


aectation

Cest linstruction la plus el ementaire. Elle est r ealis ee en Pascal grace ` a lop erateur := Syntaxe :

variable Exemple

:= expression

A := 5 ; B := -22 ; C := B+A ; D := sqrt(3) ;

4.4.2

entr ees / sorties standard

La lecture (ou entr ee dinformations )standard se fait au clavier ` a laide des instructions read ou readln si le tampon de lecture change apr` es ex ecution. Syntaxe : Read( liste de variable) ; Readln( liste de variable) ; Readln ; Exemple La sortie standard dinformation ou ecriture se fait ` a l ecran grace aux instructions write ou writeln. Le writeln ajoute un saut de ligne apr` es l ecriture. 31

Syntaxe : Write( liste de variable) ; Writeln( liste de variable) ; Writeln ; Exemple

4.5
4.5.1

Les structures de controle


Structures conditionnelles

Elles permettent dop erer un choix et sont de deux sortes : les structures if et les structures case. Les structures case se pr esentent en trois syntaxes : Structure if ..then Syntaxe : if Exemple condition then instruction ;

Structure if ..then .. else Syntaxe : if Exemple condition then instruction else instruction ;

Structure if imbriqu e Syntaxe : if else if else if else Exemple condition condition ... condition instruction ; then then then instruction instruction instruction

32

Structure case Ici on utilise un s electeur de type ordinal. On a deux cas : Syntaxe : case expression domaine : ... domaine : end ; Exemple Syntaxe : case expression domaine : ... domaine : else end ; Exemple instruction of instruction ; instruction ; of instruction ; instruction

4.5.2

Structures it eratives

Trois types de structures it eratives ou boucles. La boucle For est utilis ee lorsque les instructions sont r ep et ees de fa con inconditionnelle un nombre bien d eni de fois. Cette instruction revet deux formes suivant lordre entre les valeurs initiale et nale de la variable de contr ole : Syntaxe : for for variable controle := valeur initiale variable controle := valeur initiale to valeur nale instruction ; do do

downto valeur nale instruction ;

Exemple Lorsque la poursuite ou labandon des r ep etions des instrutions sont conditionn es par ce qui se passe dans la boucle, celle-ci est en Pascal par les instructions : repeat ..until pour r ep eter des instrustion jusqu` a ce quune condition soit r ealis ee. On parle aussi dinstruction r ep eter ..jusqu` a.

33

Syntaxe : repeat instruction ; instruction ; ... instruction until condition ; do while pour r ep eter des instrustions tant quune certaine condition est r ealis ee. On parle aussi dinstruction tant que . Syntaxe : while Exemple condition do instruction ;

4.6

Les proc edures et fonctions

Comme tous les langages de haut niveau, le Pascal permet la programmation modulaire qui facilite la decomposition en plusieurs parties independantes ou modules. Ceci permet le developpement et le partage doutil commun mis au point une fois pour toute grace au notion dargument et ` ala compilation s epar ee. En Pascal, on dispose de deux types de modules : les proc edures et les fonctions. Un module Pascal a la m eme structure g en erale quun programme. Il comporte : Lent ete (obligatoire) La partie d eclaration Le corps du module (ex ecutable) Une fonction di` ere dune proc edure par sa capacit e de retourner un r esultat a travers son nom. De ce fait elle peut ` etre utilis ee dans une expression et apparaitre dans le membre de droite dune aectation. Remarque : Les variables utilis ees dans un module peuvent etre de port ee locale ou globale. Pour une bonne maitrise des eets de bord, il est conseill e de privilegier la transmission darguments ` a lusage des variables globales.

34

4.6.1

Proc edures

Syntaxe : Procedure Nom procedure { declaration } ... begin instruction ; instruction ; ... instruction ; end ; Exemple Remarque : Lappel de proc edure se fait par : Nom procedure ; ou Nom procedure(liste arguments reels) ; Procedure Nom procedure( Liste arguments ) ; { declaration } ... begin instruction ; instruction ; ... instruction ; end ;

ou

4.6.2

fonctions

Syntaxe : Procedure Nom fonction : type resultat ; { declaration } ... begin instruction ; instruction ; ... Nom fonction := resultat ; end ; Exemple Remarque : Un appel de fonction peut rev etir une des formes : Nom fonction ; ou Nom fonction(liste arguments reels) ; et peut apparaitre dans une expression ou une aectation. 35 Procedure Nom fonction (Liste arguments) : type resultat ; { declaration } ... begin instruction ; instruction ; ... Nom fonction := resultat ; end ;

ou

4.7

Le passage de param` etres

On a deux modes essentiels de transmission darguments : la transmission par valeur ou la transmission par adresse ou r ef erence.

4.7.1

Passage par valeur

Cest le m ecanisme par d efaut de transmission des arguments. Il pr eserve largument de lalt` eration. Cest une copie du param` etre r eel qui est transmise au module ; donc les manipulations internes du module ninuencent pas cet argument ` a la sortie.

4.7.2

Passage par r eference

Lorsquon envisage de r ecup erer les modications dun argument, il faut lui imposer un m ecanisme de transmission par adresse en le faisant pr ec ed e du mot cl e Var. Dans ce mode de passage de param` etre, le module manipule directement la case m emoire r eserv ee ` a largument r eel. Ainsi toute modication du param` etre formel est repercut ee sur le param` etre eectif.

36