Vous êtes sur la page 1sur 23

ALGORITHMIQUE ET PROGRAMMATION EN PASCAL

SUPPORT DE COURS POUR LES TUDIANTS DE LA 1RE ANNE LICENCE SCIENCES DE LA MATIRE. AVRIL 2009

INTRODUCTION GNRALE

INTRODUCTION GNRALE
1- GNRALITS Un ordinateur est une machine qui traite linformation sous diffrentes formes La fonction dentre, la fonction du traitement, la fonction de sortie. Linformation est toute donne perceptible par les cinq sens humains : la vue, le Une donne est la reprsentation dune information sous une forme simplifie Le traitement dinformation est une srie de transformations qui sont appliques got , lodorat, le touch, loue. (valeurs numriques, texte, image). Tout ordinateur 3 fonctions principales :

(code)

sur les informations Exemple : Pour calculer le 5 il faut entrer la valeur 5, puis vous traitez 5=5*5 et en sortie vous affichez 25 2- LE SYSTME INFORMATIQUE Le systme informatique est un ensemble de programmes (software) et un ensemble de matriels (hardware) ncessaires pour traiter linformation 2.1 Programmes (software) 2.1.1 Logiciels de base (Systme dexploitation) Ce sont des programmes qui grent les ressources matrielles et logicielles, en dautres termes le systme dexploitation est le lien entre les ressources matrielles et logicielles. Il existe plusieurs systmes dexploitation sur le march : Microsoft Windows, Linux, Unix, Mac OS. 2.1.2. Les programmes utilisateurs Les programmes utilisateurs sont les autres programmes qui peuvent tre installs pour traiter les informations. Exemple : editeur de text, jeux video, 2.2 Matriels (Hardware) Larchitecture interne des ordinateurs suit larchitecture propose par Van Nueman qui dcompose lordinateur en 5 parties : 1- le processeur : il est compos de : - UAL (Unit Arithmtique et Logique) qui effectue les oprations arithmtiques de base (+ - * /) et logiques (et ou non). - UC (Unit de commande) qui ordonne UAL excuter les squences doprations
mchemsedine@yahoo.fr

-2-

INTRODUCTION GNRALE 2- La mmoire du travail : cest la mmoire dans laquelle le processeur stock les donnes lors du traitement 3- La mmoire fixe : cest le support de stockage de donnes dune faon permanente comme : disque dur, la cl USB (Flash disque) , CD (compact Disc). 4- Les priphriques dentre : Ce sont les organes qui permettent dentrer de linformation comme : la souris, le clavier, Scanner . 5- Les priphriques de sortie : ce sont les organes qui permettent de faire sortir de linformation : imprimante, cran, baffles ..

Remarque : Les divers composants matriels dun ordinateur sont relis par des bus de communication Mmoire centrale

Priphriques dentre

Processeur (UAL+UC)

Priphriques de sortie

Mmoire fixe

Figure1 : Architecture dun PC (Personal computeur)

Remarques Toute action ralise par une machine a t programme par un tre humain On peut imaginer un systme dexploitation comme une interface entre lutilisateur (humain) et la machine (ordinateur) Le langage machine est la suite de bits qui est interprte par le processeur lors de lexcution dun programme. Le bit : est la plus petite unit de mesure en informatique, elle dsigne la quantit lmentaire dinformation reprsente en 0 ou 1 1 byte= 1octet= 8bits

mchemsedine@yahoo.fr

-3-

CHAPITRE 1 : ELMENTS DE BASE DE LALGORITHMIQUE 1. DFINITION DALGORITHME Lalgorithme est un terme dorigine Arabe, par rfrence au nom du mathmaticien Alkhawarizmi (qui dcrit les mthodes de calcul algbrique).Un algorithme est une suite dactions, qui une fois excute correctement conduit un rsultat attendu. Selon Larousse lalgorithme est un ensembles de rgles opratoires dont lenchanement permet de rsoudre un problme au moyen dun nombre fini doprations . On peut dire que lalgorithme dcrit les tapes suivre pour raliser un travail. Exemple : Recette de cuisine, indication dun chemin un touriste. 2. CARACTRISTIQUES DUN ALGORITHME Lalgorithme et un moyen pour rsoudre un problme, il doit tre : Lisible : comprhensible mme par un non informaticien Prcis : il dcrit un traitement sur un ensemble fini de donnes, avec un ensemble fini de traitement Structur : compos de diffrente parties facilement identifiables. Complet : il doit tenir compte de tous les cas possibles

3. DFINITION DUN PROGRAMME Un programme informatique est une squence dinstructions crites dans un langage de programmation, en dautre terme cest la traduction de lalgorithme dans un langage de programmation. 4. DFINITION DU LANGAGE DE PROGRAMMATION Un langage de programmation est un code de communication permettant un tre humain de dialoguer avec la machine, il donne lutilisateur (programmeur) la possibilit de rdiger un programme pour arriver un rsultat. Exemple de langage de programmation : Pascal, Fortran, C, C++, Java. 5. LES TAPES DE RSOLUTION DUN PROBLME Pour rsoudre un problme donn on doit suivre les tapes suivantes : Comprendre la nature du problme pos Prciser les donnes dentre Prciser les donnes de sortie (rsultats) Dterminer les tapes de transformation des donnes en rsultats (traitement)

mchemsedine@yahoo.fr

-4-

CHAPITRE 1 : ELMENTS DE BASE DE LALGORITHMIQUE Exemple : Rsolution dune quation de second degr ax2 bx c 0 Les tapes de rsolution : Connatre les donnes dentre a, b, c Calculer b 2 4ac Si >0 deux solutions x1
b b et x2 2a 2a
b 2a

Si =0 solution double x1 x 2 Si <0 pas de solution dans R Afficher les rsultats

Problme

Analyse

Algorithme sur papier

Programme sur machine

Rsultats

Figure 2 : Processus de programmation

6. LES OBJETS MANIPULS DANS UN ALGORITHME Dans un algorithme on manipule des objets simples et structurs. On distingue trois types dobjets simples : les constantes, les variables, et les expressions. 6.1 Caractristiques des objets 6.1.1 Lidentificateur Cest le nom de lobjet, il est reprsent par une suite de caractres Alphanumriques [0.9]+[a, z]+[A,Z] . Il ne doit pas contenir des signes de ponctuation ni despaces, et il commence par une lettre. Exemple : poids, taille, masse 6.1.2 La valeur Cest le contenu de lobjet 6.1.3 Le type : Cest la nature de lobjet (entier, rel, caractre.). On distingue 5 types standards Le type Entier, exemple : age, numro dinscription.. Le type rel, exemple : poids, taille, masse.. Le type boolen : peut prendre deux valeurs Vrai ou Faux, exemple : mari ou non Le type caractre =lettres+chiffres+caractres spciaux, exemple : section dtudes.
mchemsedine@yahoo.fr

-5-

CHAPITRE 1 : ELMENTS DE BASE DE LALGORITHMIQUE Le type chane de caractres : exemple : adresse, nom, prnom.

NB : Le blanc (espace) est un caractre 6.2 Les diffrents objets a) Les constantes Une constante est un objet qui a un nom fixe, un type fixe et une valeur fixe. Une constante est invariable durant lexcution dun programme exemple : pi=3.14 b) Les variables Une variable est un objet qui a un nom fixe, un type fixe, et une valeur qui change c) Les expressions Une expression est un objet compos doprandes et doprateurs qui sont values pour donner un rsultat. Les oprateurs peuvent tre : Arithmtiques (+ - / * DIV MOD) Logiques (ET OU NON) Relationnels ( < > =)

Les oprandes peuvent tre : Variables Constantes Expressions

NB : Les oprateurs MOD et DIV sappliquent sur des donnes de type entier Exemple dexpression : (x+4)/(8-z)

Remarque : Dans lalgorithmique les expressions sont reprsentes par une criture algorithmique Exemple :
3x 2 y z2 1

(3*x+2*y)/ (z*z-1) -SQRT(x) + 2

x 2

NB: Il faut utiliser les parenthses si cest ncessaire

mchemsedine@yahoo.fr

-6-

CHAPITRE 1 : ELMENTS DE BASE DE LALGORITHMIQUE 6.3 Priorits des oprateurs Dans la majorit des langages de programmation on utilise les rgles suivantes : 1) Les parenthses et on commence par les plus internes. 2) Le NON logique, et le unitaire 3) *, /, MOD , DIV , ET logique 4) + , - , OU logique 5) Les oprateurs de relations ( < > =) 6) En cas dgalit des priorits, on commence par loprateur le plus gauche

Exercice : Donnez lordre dvaluation des expressions suivantes : a + 12 - 14 * 4 / 13 * ( c + 1 ( b + 5 ) ) b * b - 4 * a * c -9 + 5 * 6 / 2

mchemsedine@yahoo.fr

-7-

CHAPITRE 2: PRSENTATION DUN ALGORITHME 1. LES ACTIONS DE BASE On va dfinir trois oprations de base faites sur les objets 1.1 Laffectation Cest une action qui consiste affecter une valeur une variable, elle est reprsente par une flche Syntaxe variable valeur

NB : Le type de la valeur doit tre du mme type de la variable Exemple : variables X,Y : rel X14.5 Y20 XY+1 Remarque : Dans la plupart des langages de programmation on peut affecter une valeur de type entier une variable de type rel, mais le contraire nest pas vrifi. 1.2 La lecture Cette fonction permet de lire une valeur partir dun priphrique dentre (gnralement le clavier), et stocker cette valeur dans une variable. Syntaxe lire(variable) Exemple : variables X : rel Lire(X) NB : Avec lopration de lecture il faut respecter la compatibilit des types. 1.3 Lcriture Cette fonction permet dafficher les rsultats sur un priphrique de sortie (gnralement le clavier) Syntaxe : Ecrire (objet) Exemple : variables X :rel Ecrire(X) Une constante est afficher telle quelle est Une variable est remplace par sa valeur Une expression est value et le rsultat est affich

NB : Pour afficher un message il faut le mettre dans des guillemets

Exemple : crire (" Bonjour mes tudiants")


mchemsedine@yahoo.fr

-8-

CHAPITRE 2: PRSENTATION DUN ALGORITHME

Si on veux afficher plusieurs objets il faut les sparer par des virgules 2. LA STRUCTURE DUN ALGORITHME

Pour crire un algorithme on utilise un ensemble de mots cls permettant de dcrire de manire complte et claire lensemble des oprations excuter sur les donnes. Algorithme nom de lalgorithme

Entte

Partie Dclarative

Constantes dclaration Variables dclaration

Dbut Corps Du programme Instruction1 Instruction2 Instruction3 Instruction4 Fin Figure 3 : structure de base dun algorithme Le langage algorithmique se situe entre le langage humain et le langage de programmation 2.1 Proprits Le nom de lalgorithme doit respecter les rgles des identificateurs La dclaration des variables revient donner un nom et un type Exemple : variables Age : entier Les variables du mme type peuvent tre dclares dans une mme ligne et spares par des virgules Exemple : Variables A, B, C : Rel Lorsquon dclare une variable on rserve une zone mmoire dont la taille est relative au type de cette variable Les constantes sont dclares comme suit Exemple : constantes TVA=0.17

Chaque ligne du corps du programme doit contenir une seule instruction Chaque variable manipule dans le corps du programme doit tre dclare
mchemsedine@yahoo.fr

-9-

CHAPITRE 2: PRSENTATION DUN ALGORITHME NB : lopration daffectation et de lecture ne sappliquent pas pour les constantes 2.2 Exemples dalgorithmes Calculer la surface dun carr ALGORITHME TEST VARIABLES DBUT ECRIRE ("ENTREZ SVP LA LONGUEUR DU CARR") LIRE (LONGUEUR) SURFACE LONGUEUR*LONGUEUR ECRIRE ("LA SURFACE DU CARR EST ", SURFACE) FIN
LONGUEUR, SURFACE

REL

Afficher un message

ALGORITHME AFFICHAGE DBUT ECRIRE ("BONJOUR LES TUDIANTS DU SCIENCES DE LA MATIRE ") FIN

Calculer la moyenne partir de deux notes

ALGORITHME MOYENNE VARIABLES DBUT ECRIRE ("ENTREZ SVP LA PREMIRE NOTE") LIRE (NOTE1) ECRIRE ("ENTREZ SVP LA DEUXIME NOTE") LIRE (NOTE2)
MOY (NOTE1+NOTE2) /2 NOTE1, NOTE2, MOY

: REL

ECRIRE ("VOTRE MOYENNE GNRALE = ", MOY) FIN 3. LA TRACE DEXCUTION DUN ALGORITHME La trace dexcution est ltat des variables aprs excution de chaque instruction. Exercice : Donnez la trace dexcution du dernier algorithme.
mchemsedine@yahoo.fr

- 10 -

CHAPITRE 3: LE LANGAGE DE PROGRAMMATION PSCAL 1. DFINITION Pascal est un langage de programmation (dont le nom vient du mathmaticien franais Blaise Pascal) a t invent par Niklaus Wirth dans les annes 1970, il se caractrise par une syntaxe claire et un formalisme structur.

2. TRANSFORMATION DE LA SYNTAXE ALGORITHMIQUE AU LANGAGE PASCAL Algo algorithme constantes variables entier reel si alors tant que Pascal programme const var integer real if then while Algo booleen caractere chaine car debut fin sinon pour repeter Pascal boolean char string begin end. else for repeat Algo lire ecrire ecrire et mod faire jusqua Pascal read write writeln : = and mod do untill Algo lire ou non = div Pascal readln or not <= >= <> == div

3. RGLES DE BASE Un programme Pascal se compose de trois parties:


1- Un en-tte, caractris par le mot Program 2- Une section dclarative introduite par le mot Const / Var, 3- Une section instruction ou corps du programme, dlimite par les mots Begin et End.

NB: Le programme se termine par un point. Il n'y a pas de distinctions entre majuscules et minuscules (a=A) Un identificateur ne peut pas tre un des mots cls du langage ( program, var, real, integer). Un identificateur en Pascal doit dbuter par une lettre suivie par un nombre quelconque de lettres, chiffres ou de "_" (caractre soulign). Les identificateurs ne peuvent contenir d'espacement (caractre "blanc") ou de caractres tels que %, ?, *, ., - ,... Laffectation est reprsente par le symbole ":=" variable := contenu;

Les variables doivent faire l'objet d'une dclaration de type de la forme:


mchemsedine@yahoo.fr

- 11 -

CHAPITRE 3: LE LANGAGE DE PROGRAMMATION PSCAL VAR liste des variables : type; Des points-virgules sont obligatoires pour sparer les trois parties et pour sparer les instructions Les instructions d'criture permettent laffichage l'cran. Elles suivent le schma : write(element 1,element2, ) ou writeln(element1, element2, ...). Le nombre d'lments afficher est quelconque. Chaque lment est un objet (expression, constante, variable). Les lments s'affichent les uns derrire les autres sans espacement sur une mme ligne. Avec l'instruction writeln un passage la ligne sera effectu lors du prochain affichage. L'instruction write permet d'viter ce passage la ligne. Les valeurs numriques relles sont affiches par dfaut sous forme scientifique. obtenir la notation dcimale classique on utilise le schma

Pour

writeln(element:largeur:chiffres) largeur indique le nombre total de caractres utiliser chiffres indique le nombre de chiffres aprs la virgule. Exemple : writeln(X :13 :2) Les instructions de lecture permettent de faire entrer les valeurs et les affecter des variables. Elle suit le schma : read(variable); l'utilisateur doit valider sa saisie en appuyant sur la touche Enter du clavier. Sil ya plusieurs variables lire on utilise le schma suivant read(var1,var2,var3..) Les mots cls du langage et les identificateurs doivent tre spars les uns des autres par un ou plusieurs blancs. Pour afficher une apostrophe dans une chane de caractres il faut la double Chaque criture place lintrieur des accolades { } reprsente un commentaire Le commentaire n'est pas pris en compte la compilation. Il sert rendre le programme plus clair la lecture, et noter des remarques pour faciliter sa consultation ultrieure. L'instruction if permet dexcuter une partie de programme que si une cond est vrifie. Linstruction qui se trouve juste avant else ne prend pas le point-virgule La boucle For
FOR COMPTEUR : = VAL1 TO VAL2 DO INSTRUCTION;

compteur est une variable de type nombre entier qui est augmente d'une unit chaque passage dans la boucle. val1 et val2 sont les valeurs initiales et finales de compteur
mchemsedine@yahoo.fr

- 12 -

CHAPITRE 3: LE LANGAGE DE PROGRAMMATION PSCAL instruction est une instruction simple ou un bloc d'instructions dlimit par begin et end ; La boucle while WHILE COND DO
INSTRUCTION;

instruction est une instruction simple ou un bloc d'instructions qui est excut tant que expression vaut True La boucle repeat REPEAT
INSTRUCTION

UNTIL COND ; Les diffrentes instructions sont rptes jusqu' ce que la condition boolenne cond prenne la valeur True (vrai) 4. LES FONCTIONS STANDARDS EN PASCAL Nom
Pi Sin(x) Cos(x) ArcTan(x) Sqr(x) Sqrt(x) Exp(x) Ln(x) Trunc(x) Int(x) Frac(x) Round(x) Pred(x) Succ(x) Odd(x) Abs(x) Random(x)

Rle
Renvoi la constante Pi Calcul du sinus (Radians) Calcul du cosinus (Radians) Renvoi larc tangente Carr Racine carr Une puissance nprienne Logarithme nprien Donne la partie entire Renvoi la partie entire Renvoi la partie fractionnaire (aprs la virgule) Arrondi l'entier le plus proche le prdcesseur dune variable de type ordonn (integer, char) le succsseur dune variable de type ordonn (integer, char) Renvoi true si impair, false si pair Renvoi la valeur absolue Renvoi un nombre alatoire entre 0 et X

Exemple
write(Pi); write(sin(0), sin(Pi)); write(cos(0), cos(Pi)); write(ArcTan(4)); write(Sqr(5)); write(Sqrt(81)); write(Exp(0)); write(Ln(1)); write(Trunc(Pi)); write(Int(5.67)); write(Frac(45.98765)); write(Round(28.7)) ; write(Round(28.3)); write(Pred(5)); write(Succ(5)); write(Odd(3), Odd(2)); write(Abs(-54)); write(Random(10));

Affichage
3.14159265358 0 1 1 0 0.7853982 25 9 1 0 3 5.00 0.98765 29 28 4 6 TRUE FALSE 54 6.71593

mchemsedine@yahoo.fr

- 13 -

CHAPITRE 4: LES STRUCTURES CONDITIONNELLES 1. PROBLME ALGORITHME INVERSE VARIABLES X,Y : REL DBUT ECRIRE ("ENTREZ SVP UNE VALEUR ") LIRE (X)
Y 1 /X

ECRIRE ("LINVERSE DE" , X, "EST", Y) FIN Lalgorithme ci-dessus calcule linverse dun nombre rel. Si lutilisateur tape la valeur 0 il y a une erreur dexcution (division par 0), ce problme ne peut pas tre rsolu que par lutilisation des structures de contrle. 2. DFINITION Une instruction conditionnelle permet un programme de modifier son traitement en fonction dune condition. Les structures conditionnelles permettent de dterminer lordre dans lequel les instructions sont excutes. 3. TYPES DINSTRUCTIONS CONDITIONNELLES La forme simple SI COND ALORS INSTRUCTION1 INSTRUCTION2 INSTRUCTION N FINSI IF COND THEN BEGIN INSTRUCTION1 ; INSTRUCTION2 ; INSTRUCTION N ; END ;

Fonctionnement : 1- Evaluer la condition COND 2- Si COND vraie, toutes les instructions qui se trouvent dans le bloc seront excutes 3- Si COND fausse aucune instruction nest excute Exemple : Ecrire un algorithme qui lit un prix dun produit et lage dune personne. Si lage >=50 ans, la personne paie 80% sinon le prix reste le mme.

mchemsedine@yahoo.fr

- 14 -

CHAPITRE 4: LES STRUCTURES CONDITIONNELLES La forme alternative SI COND ALORS INSTRUCTION1 INSTRUCTION2 INSTRUCTION N SINON INSTRUCTION1 INSTRUCTION2 INSTRUCTION N FINSI IF COND THEN BEGIN INSTRUCTION1 ; INSTRUCTION2 ; INSTRUCTION N ; END (pas de ; ) ELSE BEGIN INSTRUCTION1 ; INSTRUCTION2 ; INSTRUCTION N ; END ;

BLOC1

BLOC2

Fonctionnement : 1- Evaluer la condition COND 2- Si COND vraie, toutes les instructions du Bloc 1 seront excutes 3- Si COND fausse toutes les instructions du Bloc2 seront excutes Exercice : Reprendre lexercice qui calcul linverse dun nombre en traitant tous les cas ?

La forme Imbrique () SI COND 1 ALORS BLOC1 SINON SI COND 2 ALORS BLOC2 SINON SI COND 3 ALORS BLOC3 SINON BLOC4 FINSI FINSI FINSI IF COND1 THEN BEGIN BLOC1 END (pas de ; ) ELSE IF COND2 THEN BEGIN BLOC2 END (pas de ; ) ELSE IF COND3 THEN BEGIN BLOC3 END (pas de ; ) ELSE BEGIN BLOC4 END ;

mchemsedine@yahoo.fr

- 15 -

CHAPITRE 4: LES STRUCTURES CONDITIONNELLES Fonctionnement :


COND1

V
BLOC 1

F COND2 V F COND3
BLOC2

V
BLOC 3

BLOC4

V=VRAI Slection des cas avec CASE Cette instruction signifie un choix selon. Elle permet d'excuter l'un des blocs selon le cas E. E est une expression ordinale (dont le type est un entier, un caractre, un boolen, mais pas un rel ni une chane de caractres). Les CAS X sont des constantes ordinales du mme type que E. Fonctionnement : 1- E est value 2- E est Recherche parmi les valeurs possibles CAS X

F=FAUX

CASE E OF CAS1 : BEGIN BLOC1 ; END ; CAS1 : BEGIN BLOC2 ; END ; .. CAS N : BEGIN BLOC N ; END ; END ;

3- Le Bloc correspondant BLOC X est alors excut puis on sort 4- Sinon, aucun bloc nest excut Exercice : 1. Ecrire un algorithme qui affiche une apprciation selon la moyenne de ltudiant selon les cas suivants : MOY<10 ECHEC MOY [10,12[ PASSABLE MOY [12,20] BIEN 2. Ecrire un algorithme qui compare deux nombres rels 3. Ecrire un algorithme qui affiche la parit dun nombre entier 4. Ecrire un algorithme qui affiche le rsultat dune opration arithmtique (au choix) de deux nombres rels
mchemsedine@yahoo.fr

- 16 -

CHAPITRE 5: LES STRUCTURES ITRATIVES 1. INTRODUCTION Il arrive souvent des situations o on veut rpter une instruction ou un bloc dinstructions plusieurs fois. Pour ce faire on utile les structures rptitivits (boucles) 2. TYPES DE BOUCLES 2.1 La boucle POUR POUR i ALLANT DE valeur initiale valeur finale FAIRE Bloc FINPOUR FOR i :=valeur initiale To valeur finale DO
BEGIN

Bloc ; END ; Proprits : La boucle POUR est utilise lorsque le nombre de rptition est connu lavance Pour chaque valeur de la variable de contrle qui varie de la valeur initiale la valeur finale avec un pas gale 1 , le bloc sera excut Le bloc est rpter (valeur finale - valeur initiale+1) fois La sortie de cette boucle seffectuer lorsque le nombre souhait de rptition est atteint Dans cette boucle lincrmentation (ajouter 1) est faite automatiquement NB : Sous Pascal on peut inverser la valeur initiale et la valeur finale ( lenvers) par lutilisation du mot cl DOWNTO la place du TO Exemple : Afficher le message bonjour 5 fois ? Calculer la factorielle dun nombre naturel ? 2.2 La boucle Tant que TANT QUE COND FAIRE Bloc FIN TANT QUE Proprits Le nombre de rptitions nest pas connu lavance il dpend de la valeur de la condition COND
mchemsedine@yahoo.fr

WHILE COND DO Begin Bloc End ;

- 17 -

CHAPITRE 5: LES STRUCTURES ITRATIVES Au dbut de chaque itration, la condition est value. Si COND est Vraie le bloc est excut sinon on sort de la boucle Le Bloc est rpt tant que COND est Vraie Si COND est fausse au dbut on nexcute aucune instruction

Exemple : Afficher le message bonjour 5 fois par la boucle tant que? Calculer la factorielle dun nombre naturel par la boucle tant que ?

2.3 La boucle Rpter RPTER Bloc JUSQU' COND Proprits : Le Bloc dinstructions est rpt jusqu ce que la condition COND gale Vraie En fin de chaque itration lexpression logique COND est value Avec cette boucle le Bloc est rpt au moins une seul fois REPEAT Bloc UNTILL (Cond) ;

NB : Cette boucle est utilise gnralement dans le contrle de saisie Exemple : ALGORITHME TEST VARIABLES AGE : ENTIER DBUT RPTER ECRIRE ("ENTREZ SVP VOTRE AGE") LIRE (AGE) JUSQU' AGE >0 ECRIRE ("VOTRE AGE EST ", AGE) FIN Exercice : Ecrire un algorithme qui permet de lire une note dtudiant [0,20] ? Ecrire un algorithme qui permet de calculer une moyenne partir de deux notes Lues. Chaque note [0,20] ?
mchemsedine@yahoo.fr

- 18 -

CHAPITRE 5: LES STRUCTURES ITRATIVES Ecrire un algorithme qui calcule la somme des nombres lus au clavier jusqu ce quune valeur dpasse 99 ? NB : Sous Pascal, et si on utilise la boucle REPEAT on ne met pas Begin end ; (dlimit par REPEAT UNTILL)

Remarque Importante : En Pascal si lintrieur du bloc SI FINSI /SI SINON / SINON FINSI /POUR FINPOUR/ TANT QUE
FIN TANT QUE/ CASE

ils y a plus dune instruction, il faut inclure ces dernires dans Begin

End ;

mchemsedine@yahoo.fr

- 19 -

SRIE TRAVAUX DIRIGS Partie I : Elments de base de lalgorithmique Exercice1 : Classez les objets suivants en constantes ou variables, sil sagit de variable donner le type appropri Marque dun ordinateur, Nom dtudiant, Poids, Taille, Pi, TVA, Gravit de la terre, ladresse dun employ, Constante du gaz parfait, Potentiel hydrogne (Ph), Situation familiale, Surface dun polygone ( ,)Coefficient dun module. Exercice 2 : Quel est le type des expressions suivantes : 2009 3156.6 Amir Abdelkader % Vrai faux. Exercice 3 : Transformez les expressions suivantes en criture Algorithmique : Z3 AB ( Z 3 1) Y 1) (2 X 2 3) 2) 3) C 3D 4A 6y 1 Exercice 4 : Identifier les variables correctes et incorrectes : X B11 4A A60E Code Prod Code_prod Exercice 5 : Soit A,B,C des variables Boolennes, X,Y,Z des variables Relles et E,D des variables de type entier. Donnez lordre dvaluation des expressions suivantes (respecter les priorits) :
(X-3*Y) /2*Z -4*(E DIV 5)-(D MOD 2) -Z/4*X+1 X>=7 -X+(2*Y-X)*2-8*Y A Et B Et C ((X+1)/(2-Z))*(2*X-2/Y) A Et B Ou C A Et B Ou C Et D Non(A ) Et Non(B) (X>=10) Et (Y>=20) Ou (Z<=5) Algorithme td1 Constantes N=5 M=3 Variables X,Y,Z : Rel E,D : Entier A,B : Boolen C : Caractre Dbut X N*2 Ecrire(X) YX ZM Ecrire(Y,Z) E N*M D E MOD 2 Ecrire( D,E) Fin Algorithme td2 Variables A,B,C : Boolen Dbut A Vrai Ecrire(A) BA Ecrire(B) AFaux BNon A Ecrire(B) C A et B Ecrire(B) C Non (A ou B) Ecrire(C) Fin

Exercice 9 : Ecrire un algorithme qui lit la largeur (Lr) et la langueur (Lg) dun rectangle et qui calcule son aire (.) Exercice 10 : Ecrire un algorithme qui lit le Rayon (R) dune sphre ( )et qui calcule son aire(.) Aire= 4R 2 Exercice 11 : Ecrire un Algorithme qui affiche le Produit, la somme et la diffrence de deux nombres rels. Exercice 12 : Ecrire un algorithme qui lit Trois notes dun tudiant Note1, Note2, Note3 puis calculer et afficher sa Moyenne. Exercice 13 : Reprendre lexercice 12 en introduisant des coefficients fixes (5,4,3) respectivement pour chaque module (utiliser les constantes). Exercice 14 : Ecrire un algorithme qui permute deux nombre rels X, Y Exemple : X=5 Y=20 X=20 Y= 20 Exercice 15 : Ecrire un Algorithme qui lit les informations dun tudiant :Nom, Prnom , Age, Section dtude, ladresse, puis afficher la sortie comme suit : *********************************** Je mappelle Isaac Newton Jai 18 ans Section dtudes : A Jhabite : 5, Rue Mouloud Feraoun Stif ************************************
mchemsedine@yahoo.fr

- Quel est le type de chaque expression ? - Quel est le rsultat de la premire et la dernire expression pour X=12, B= 0, Z=6 Exercice 6 : Dcrivez la Structure gnrale dun algorithme. Exercice 7 : Ecrire un Algorithme qui affiche le message suivant : *********************************** Je suis un tudiant en sciences de la matire Le module informatique est intressant Je programme donc je suis *********************************** Exercice 8 : Donnez la trace dexcution des deux algorithmes suivants :

- 20 -

SRIE DE TRAVAUX DIRIGS Partie II : Les Structures Conditionnelles Exercice 1: Ecrire un Algorithme qui lit deux nombres rels A, B puis vrifier si (A=B, A>B, A<B). Exercice 2 : Soit la structure conditionnelle compose ci-dessous :
Si (Cond1) alors Si (Cond2) alors Instr1 Instr2 Sinon Instr3 Instr4 Finsi Instr5 Sinon Si (Cond3) alors Instr6 Instr7 Sinon Instr8 Finsi Finsi

Tracer lexcution de cet algorithme avec lquation 2 X 2 X 1 0 Traduisez cet Algorithme en Pascal Partie III : Les Structures Rptitives Exercice 1 : Comparez les trois boucles (Pour, Tant que, rpter) Exercice 2 : Ecrire un Algorithme qui calcule la factorielle dun nombre entier N N != 1*2*3*.*N Exercice 3 : Ecrire un Algorithme qui calcule la somme suivante S=1+2+3+.+100 Exercice 4 : Ecrire un Algorithme qui affiche les nombres entiers de 1 50, par lutilisation de la boucle : Pour , Tant que, Rpter. Exercice 5 : Ecrire un Algorithme qui calcule deux somme sommeP (la somme des nombres paires) et SommeI(la somme des nombres impaires) pour les nombres qui se trouvent dans lintervalle [1 20]. Exercice 6 : Ecrire un Algorithme qui affiche les diviseurs ( )dun nombre entier N. Exercice 7 : Ecrire un Algorithme qui permet de dterminer si un nombre est premier ( )ou non. Exercice 8 : Tracer lexcution des morceaux des algorithme suivants :
I0 Tantque (I <=5) faire Ecrire (i) II+1 Fintque I1 Tantque (I <=5) faire Ecrire (i) Fintque Pour i allant de 1 6 Ecrire (i) finpour I0 Rpter Ecrire (i) II+1 Jusqu (I >=5)

Quelles sont les instructions qui sexcutent dans les cas suivants : 1) Cond1 =Vrai Cond2 =Vrai Cond3 =Vrai 2) Cond1 =Faux Cond2 =Vrai Cond3 =Vrai 3) Cond1 =Faux Cond2 =Faux Cond3 =Faux Exercice 3 : Ecrire un Algorithme qui lit un nombre entier N et vrifier sil est paire ou impaire (.) Exercice 4 : Ecrire un Algorithme qui demande lage dun enfant lutilisateur. Ensuite, il linforme de sa catgorie Poussin de 6 9ans----- Minime de 10 14 ans------ Cadet suprieur 15 ans. Exercice 5 : Ecrire un Algorithme qui lit le potentiel hydrogne Ph dune solution ( )puis afficher sa nature selon les cas suivants : Ph infrieur 7 est acide Ph suprieur 7 est basique Ph gal de 7 est neutre Exercice 6 : Ecrire un Algorithme qui Rsout dans une quation de second degr aX 2 bX c 0 Commencer par traiter le problme (noubliez pas les cas derreurs)

Exercice 9 : Ecrire un algorithme qui demande une note dtudiant comprise entre 0 et 20 , jusqu ce que la rponse convienne. Exercice 10 : Ecrire lalgorithme appropri pour calculer lexponentielle dun nombre X lu au clavier
ex 1 X X2 Xn .......... .. 2! n!
mchemsedine@yahoo.fr

- 21 -

SRIE DE TRAVAUX PRATIQUES


Exercice 1 : - Saisir le programme Pascal suivant :
Program addition ; Var x,y,z :real ; Begin writeln(entrez la premire valeur) ; read(X) ; writeln(entrez la deuxime valeur) ; read(Y) ; z:=x+y ; writeln(la somme =,z) ; end.

- Excuter le programme avec les valeurs entires suivantes : 3 -4 6 20 - Que fait ce programme ? - Excuter votre programme en tapant la valeur 0. Pourquoi le programme sarrte ? Remarque : cest une erreur dexcution Exercice 6 : - Saisir le programme suivant :
Program infor ; Var age :integer ; nom ,adresse :String ; section :char ; Begin writeln(entrer votre nom) ; read(nom) ; writeln(entrer votre adresse) ; read(adresse) ; writeln(entrer votre Age) ; read(age) ; writeln(entrer votre section detudes) ; read(section) ; end.

- Enregistrer le programme sous le nom somme dans le rpertoire cre au dbut. Remarque : Ici vous avez cr votre programme source : somme.pas (vrifier dans le rpertoire) - Compiler votre programme laide de la commande compile du menu compile Remarque : Ici vous avez cr votre programme excutable : somme.exe (vrifier dans le rpertoire) - La compilation est la phase dans laquelle le compilateur Pascal corrige les erreurs. Exercice 2 : Soit X une variable relle. Ecrire un programme pascal qui lit cette variable. Afficher cette variable avec les commandes suivantes Writeln(X) ; Writeln(X :0 :2) ; Writeln(X :0 :3) ; Writeln(X :7 :2) ; Writeln(X :26 :2) ; Exercice 3 : Soit X,Y deux variables de type rel , et A, B : deux variables de types entier. Essayer de lire les 4 variables avec une seule fonction read. Puis afficher les rsultats. Exercice 4 : Ecrire un Programme pascal qui affiche le message suivant : *********************************** Je suis un tudiant en sciences de la matire Le module informatique est intressant Je programme donc je suis *********************************** Exercice 5: Saisir le programme suivant puis corriger les erreurs:
Programme inverse Var X :integr ; Y : real ; Begin Writeln(entrez une valeur) Read(X) ; Y :=1/X ; Writeln(X=,X,linverse =,Y :0 :2) ;

- Utiliser la fonction writeln pour afficher toutes ces informations. Exercice 7 : Ecrire un programme pascal (pour chaque cas) qui : 1. Lit la largeur (Lr) et la langueur (Lg) dun rectangle et qui calcule son aire (.) 2. Affiche le Produit, la somme et la diffrence de deux nombres rels X ,Y. 3. Lit Trois notes dun tudiant Note1, Note2, Note3 puis calculer et afficher sa Moyenne. 4. Lit le potentiel hydrogne Ph dune solution () puis afficher sa nature selon les cas suivants : Ph infrieur 7 est acide, Ph suprieur 7 est basique,Ph gal de 7 est neutre 5. Lit un nombre entier N et vrifier sil est pair ou impair (.) 6. Calcule la factorielle dun nombre entier N N != 1*2*3*.*N 7. Calcule la somme suivante S=1+2+3+.+100 8. Affiche les nombres entiers de 1 50, par lutilisation de la boucle : Pour , Tant que, Rpter. 9. Affiche les diviseurs ( )dun nombre entier N (entr par lutilisateur). Exercice 8 : Ecrire un Algorithme qui Rsout dans une quation de second degr aX 2 bX c 0 - Essayer le programme avec lquation suivante

- Enregistrer le fichier sous le nom inverse - Compiler le programme jusqu la correction de toutes les erreurs. Remarque : ces erreurs sont appeles des erreurs de compilation.

2X 2 X 1 0
mchemsedine@yahoo.fr

- 22 -

BIBLIOGRAPHIE Voici une liste de livres disponibles au niveau de la bibliothque centrale de luniversit de Stif

S8/44956-44958 S8/46754-46755 S8/45222-45251 S8/42762-42767 S8/45252-45281 S8/31802-31806 S8/32943-32949 S8/33472-33481 S8/54956-54958 S8/37890-37899 20782-20753/8

INITIATION COURTIN J

L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES

ALGORITHMIQUE CONCEPTION ET ANALYSE BRASSARD G ALGORITHMIQUE ET PROGRAMMATION EN PASCAL:EXERCICES ET CORRIGS COUSOT P ALGORITHMIQUE EN PASCAL LAPRESTE ALGORITHMIQUE ET PROGRAMMATION EN PASCAL COUSOT ALGORITHMIQUE INFORMATIQUE ET ALGORITHMIQUE GOLDSCHLAGER STRUCTURES DE DONNES ET ALGORITHMES AHO MTHODOLOGIE ET ALGORITHMES EN PASCAL LEGRAND
ALGORITHMES ET PROGRAMMES EN PASCAL JARDIN

mchemsedine@yahoo.fr

- 23 -