Beruflich Dokumente
Kultur Dokumente
4.1
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
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
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
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
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 ;
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
type
4.3.3
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
Cest linstruction la plus el ementaire. Elle est r ealis ee en Pascal grace ` a lop erateur := Syntaxe :
variable Exemple
:= expression
4.4.2
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
4.5
4.5.1
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
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
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
On a deux modes essentiels de transmission darguments : la transmission par valeur ou la transmission par adresse ou r ef erence.
4.7.1
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
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