Vous êtes sur la page 1sur 85

Introduction la programmation

BY KSIMO MAURE SMARA FB Groupe : smc fsa 2012


http://www.facebook.com/groups/522890651069613/

Dfinition dun ordinateur


Machine qui : saisit (priphriques dentre), stocke (mmoire), traite (programmes) restitue (priphriques de sortie) des informations

Schma fonctionnel
Saisie Traitement Restitution

Donnes Instructions

UC Mmoire

Rsultats

Priph riphriques d dentr entre

Priph riphriques de sortie Mmoires auxiliaires

Joystick Scanner

Micro

Souris

Disquette

Ecran

Modem

CD-ROM Modem

Camra Clavier

Disque dur Haut parleur

Imprimante

Prambule
Pour rsoudre un problme donn laide dun ordinateur, lutilisateur doit mettre au point un programme et le faire excuter par la machine. Un programme est une succession logique et ordonne dinstructions. Lordinateur se charge de traiter les instructions du programme et de restituer les rsultats demands en fonction des donnes qui lui sont fournies.

boukhris

SV3 2012-2013

Pourquoi un cours d "Algo" ?


Objectif: obtenir de la machine quelle effectue un travail notre place Problme: expliquer la machine comment elle doit s'y prendre

Mais... comment le lui dire ? Comment le lui apprendre ? Comment s'assurer qu'elle fait ce travail aussi bien que nous ? Mieux que nous?

Objectif de cet enseignement


rsoudre des problmes comme une machine savoir expliciter son raisonnement savoir formaliser son raisonnement concevoir (et crire) des algorithmes: squence dinstructions qui dcrit comment rsoudre un problme particulier

LES TAPES DUN PROGRAMME INFORMATIQUE


Le salaire des reprsentants de la socit Anglique intgre une commission de 12 % du chiffre daffaires ralis.

Analysons les tapes du programme informatique permettant de calculer le montant de la commission. Affichage dune invite de saisie lintention de lutilisateur. Affectation de la variable NOMREPR par la valeur CALCUL LAGACHE saisie au COMM clavier. Invite de saisie Affectation de la variable CA par la valeur 1457 saisie au clavier. Affectation de la variable COM par multiplication de la valeur de la variable CA par la valeur de la constante TAUXCOM : 1457*0.12 .

E N T R E S

TRAITEMENT S
S O R T I E S

Un programme est une liste dinstructions fournies un ordinateur dans un langage appropri dans le but de raliser un ensemble de Logique Algorithmique tches prcises.

Affichage de la variable saisie NOMREPR LAGACHE et de la variable calcule COM 174,84 prcd de libells explicatifs.

Corinne ZAMBOTTO adapt du travail de Stphane Le gars 1/8

VARIABLES ET CONSTANTES
Excutons nouveau le mme programme pour calculer la commission du second reprsentant. De nouvelles valeurs sont affectes aux variables et remplacent (crasent) les prcdentes. Une variable est une donne dont la valeur change par saisie ou par traitement au cours de lexcution du programme. Toute variable utile au programme doit tre dclare pralablement. On doit luit attribuer un nom et un type.

CALCUL COMM

NOMREPR : Chane de caractres CA : Numrique Entier COM : Numrique Rel Il existe galement des types Date et Logique Le type conditionne les oprations possibles et doit tre respect lors de la saisie : - Laffectation de lettres pour la variable CA entranera une erreur - Laffectation de chiffres pour la variable NOMREPR sera considre comme du Une constante est une donne dont la texte.
Toutes les instructions de ce programme sont excutes lune aprs lautre. Le programme respecte une STRUCTURE SQUENTIELLE.
Logique Algorithmique

valeur est fixe et pralablement dclare. Pour modifier une constante, il faudra intervenir dans le programme.

TAUXCOM 0.12
Corinne ZAMBOTTO adapt du travail de Stphane Le gars 2/8

tapes du processus de programmation


Le processus de programmation comprend les tapes suivantes : Spcifier ( )le problme rsoudre ; il sagit de prciser quel est le problme pos, de dterminer les besoins et de fixer les objectifs ; Trouver un algorithme comme rsultat de la spcification ; Connatre un langage comprhensible par la machine ; crire le programme puis le tester. La dmarche suivre dans la rsolution dun problme en informatique est donc :

tapes du processus de programmation


{ Analyse, proposition de solutions, dcompositions }

Problme { Traduction de lalgorithme en un langage de programmation }

Algorithme

Programme Excution Rsultats

Dfinition et objectif dun algorithme


Un algorithme est la description de la solution dun problme sous la forme dune suite finie doprations effectuer sur les donnes du problme. Pour fonctionner, un algorithme doit contenir uniquement les instructions comprhensibles par celuiqui devra lexcuter. Son fonctionnement ncessite un certain ensemble dobjets, appel environnement de lalgorithme.

Structure dun algorithme


Algorithme Nom_Algorithme
Dclaration des variables Entte

Const A : Entier (ou Rel, Caractre, Boolen, ) Var X, Y, : Entier (ou Rel, Caractre, Boolen, ) Dbut Instructions Fin
Lignes de commande

Type des variables

Instructions lmentaires en algorithmique


Le langage algorithmique offre trois instructions lmentaires de base : laffectation ; lentre de donnes ; la sortie de donnes.

Instruction daffectation : Variable


La base de l'informatique est le stockage et la manipulation de donnes. Ceci se fait essentiellement par le biais de variables (stockage) et d'instructions d'affectation (transfert d'information). Une variable est caractrise par : un nom symbolique (identificateur) ; un type ; une valeur.

Instruction daffectation : Variable (suite)


Le nom symbolique, ou identificateur, attribu aux objets doit respecter quelques rgles : Commencer obligatoirement par une lettre ; La suite des caractres peut tre compose de lettres non accentues (a..z, A..Z), de chiffres (0..9) ou du caractres de soulignement ; Il ne doit contenir ni espace ni caractres spciaux.

Instruction daffectation : Variable (suite)


Identificateur correct Ce_nombre lePGCD Jours1 Identificateur incorrect Nombre Jours Dure Travail 1mois

Remarque : De prfrence, le nom (identificateur) est choisi en rapport avec le rle de lobjet pour faciliter la lecture de lalgorithme un autre programmeur.

Instruction daffectation : Variable (4)


Le type dune variable permet de : dfinir lensemble de valeurs que peut prendre la variable ; fixer la taille, en cases mmoires (octets), de la variable ; dfinir la nature des oprations autorises sur la variable. Les types utiliss en langage algorithmique sont : Entier pour reprsenter les entiers positifs ou ngatifs ; Rel pour reprsenter les nombres virgule ; Caractre pour reprsenter des caractres ; Chane pour reprsenter des phrases ; Boolen pour une valeur logique ( vraie ou faux ; Types dfinis par le programmeur, etc.

Affectation dune valeur une variable


Laffectation permet dassigner une valeur un objet. Elle est reprsente en algorithmique par le symbole :

Syntaxe : Identificateur

valeur

Le membre droit dune affectation (valeur) peut tre soit : une variable de mme type que Identificateur ; une constante de mme type que Identificateur ; une expression dont lvaluation produit un rsultat final de mme type que Identificateur .

Affectation dune valeur une variable (suite)


Les affectations suivantes sont incorrectes : 16 valeur X*Y 15 Le membre gauche dune affectation (lvalue) doit, en effet, tre une variable dclare. Il doit correspondre une case mmoire qui peut recevoir une valeur. De mme, la partie droite dune affectation doit tre une quantit bien dfinie, i.e. une structure ayant une valuation qui fournit une valeur rsultat. Les affectations suivantes sont correctes : Pi 4*atan(1.0) DegRad Pi/180

Affectation dune valeur une variable (suite)


Les types de deux parties de laffectation doivent tre les mmes. Exemple daffectation 1 : Soit deux variables X et Y de type entier. Supposons que les variables X et Y contiennent respectivement les valeurs 16 et 25. Que valent les valeurs de X et Y aprs les instructions daffectation suivantes ? X Y X X+Y X-Y X-Y Instruction 1 Instruction 2 Instruction 3

Affectation dune valeur une variable (suite)


Dmarche pas pas : X contient 16 et Y contient 25, veut dire que les cases mmoire nommes respectivement X , Y et qui sont situes en mmoire aux adresses adr1200 et adr1204 (par exemple) contiennent respectivement les valeurs 16 et 25.

16 X
adr1200 adr1204

25 Y

Affectation dune valeur une variable (suite)


X Y X X+Y X-Y X-Y Instruction 1 Instruction 2 Instruction 3

Linstruction 1 peut tre explicite comme ceci : 1) valuation de lexpression X + Y (consistant en laddition des valeurs de X et Y) ; 2) Affectation du rsultat de lexpression X + Y X.

16 X
adr1200

+ 41
adr1204

25 Y

Affectation dune valeur une variable (suite)


16 41 X
adr1200

25 41 Y
adr1204

Aprs linstruction 1, X contient 41 et la variable Y na pas t modifie ; Aprs linstruction 2, X vaut 41 (elle na pas t modifie) et la variable Y contient 16 ; Aprs linstruction 3, X contient 25 et Y 16.

Un peu de programmation C++ :

Affectation dune valeur une variable (suite)


Exemple daffectation 2 :

Algorithme Affectation1 Var X, Y : entier Dbut X 16 Y 25 X Y Y X Fin

Algorithme Affectation2 Var X, Y : entier Dbut X 16 Y 25 Y X X Y Fin

Dans les deux algorithmes ci-dessus, les instructions sont excutes dans l'ordre, squentiellement : l'une aprs l'autre. Du fait de cet ordre squentiel, les deux squences ci-dessus ont des effets trs diffrents. Les valeurs de sorties pour les variables X et Y sont : 25 pour lalgorithme 1 et 16 pour lalgorithme 2.

Affectation dune valeur une variable (suite)


Remarques : Lensemble des instructions 1, 2 et 3 permet de permuter les valeurs de deux variables. Loprateur daffectation dtruit compltement et dfinitivement le contenu dune variable. Pour permuter le contenu des deux variables X et Y sans les oprations daddition et de soustraction, on peut utiliser une 3e variable C de mme type :

Instructions lmentaires en algorithmique


Le langage algorithmique offre trois instructions lmentaires de base : laffectation ; lentre de donnes ; la sortie de donnes.

Instruction dente
Elle permet dintroduire la valeur dune variable. En langage algorithmique, lexpression utilise pour la lecture de donnes est : Lire(maVar) Cette instruction permet daffecter la variable maVar, la valeur lue sur le priphrique dentre.

27

Instructions lmentaires en algorithmique


Le langage algorithmique offre trois instructions lmentaires de base : laffectation ; lentre de donnes ; la sortie de donnes.

Instruction de sortie
La sortie, qui constitue le rsultat, peut tre affiche lcran, imprime sur papier ou stocke sur un support de sauvegarde. En langage algorithmique, lexpression utilise pour la sortie de donnes est : Ecrire(monResultat) Cette instruction permet de transfrer la valeur monResultat vers le priphrique de sortie.

l'importance de l'algorithme

Un premier algorithme

Un algorithme, traduit dans un langage comprhensible par lordinateur (ou langage de programmation, le C++), donne un programme, qui peut ensuite tre excut, pour effectuer le traitement souhait

Organigramme
Un organigramme est une reprsentation schmatique dun algorithme mettant en valeur sa structure. Il permet de mieux prsenter les diffrents modules de traitement et dexpliquer la succession des oprations dun travail. Les symboles suivants sont utiliss dans un organigramme : Dbut X X+ Y Dbut : dmarrage dun traitement. Opration : calcul ; modifie une variable par laffectation dune nouvelle valeur. Instruction dentre/sortie : entre de donnes standard partir du clavier ou sortie de donnes standard vers lcran. Fin Fin : arrt dun traitement.

Exemple
Proposer une analyse pour calculer et afficher le primtre lePerimetre dun cercle aprs saisie au clavier de son rayon leRayon. Proposer ensuite un algorithme, un organigramme et un programme C++. Analyse du problme :
Pi = 3.14159 lePerimetre leRayon

Un premier algorithme
AlgorithmeElveAuCarr {Cet algorithme calcule le carr du nombre que lui fournit l'utilisateur} variablesunNombre, sonCarr: entiers dbut {prparation du traitement} afficher("Quel nombre voulez-vous lever au carr?") saisir(unNombre) {traitement : calcul du carr} sonCarr unNombreunNombre {prsentation du rsultat} afficher("Le carr de ", unNombre) afficher("c'est ", sonCarr) fin {dclarations: rservation d'espace-mmoire}

Exemple (suite)
Algorithme : Algorithme PerimetreCercle Constrel Pi Var lePerimetre, leRayon : rels Dbut Lire(leRayon) lePerimetre 2*Pi*leRayon 3.14159 :

crire(lePerimetre) Fin

Exemple (suite)
Organigramme :
Dbut Pi 3.14159

Lire(leRayon) lePerimetre 2*Pi*leRayon

Ecrire(lePerimetre) Fin

Exemple (suite)
Algorithme ParExemple /Saisit un prix HT et affiche le prix TTC correspondant/ constantes (TVA : rel) 20.6 (Titre : chane) Rsultat Variables prixHT, prixTTC : rels /dclarations/ dbut /prparation du traitement/ ecrire("Donnez-moi le prix hors taxe :"); lire(prixHT); prixTTC ; prixHT * (1+TVA/100) /calcul du prix TTC/ ecrire(Titre) : / prsentation du rsultat/ ecrire(prixHT, " Dh H.T. devient ", prixTTC, Dh T.T.C."); Fin

Pourquoi les ordinateurs sont-ils binaires ? quest-ce quune information binaire ? Cest une information qui ne peut avoir que deux tats : par exemple, ouvert - ferm, libre occup, blanc noir, vrai faux, etc.

Pourquoi les ordinateurs sont-ils binaires ?


Les dispositifs physiques permettant de stocker ce genre dinformation, : charg non charg, (mmoire vive RAM ) haut bas, (disquette, disque durs, ) trou non trou. (CD-ROM) .. ce sont ceux dont se sert un ordinateur pour stocker les informations.

base dcimale.
Lorsque on crit 8439, ? Dcomposons la lecture chiffre par chiffre, de gauche droite:

8439, cest 8000 + 400 + 30 + 9.


8000, :8 x 1000, 8 est le quatrime chiffre en partant de la droite 400, : 4 x 100, 4 est le troisime chiffre 30, : 3 x 10, 3 est le deuxime chiffre 9, : 9 x 1, 9 est le premier chiffre

8 439 = 8 x 103 + 4 x 102 + 3 x 101 + 9 x 100

base binaire
le plus simple est dutiliser : les fameux 0 et 1. le choix du 0 et du 1 est une pure convention, Remarque : Une information binaire (0 ou 1) sappelle un bit (bit). Un groupe de huit bits sappelle un octet (byte).

base binaire

Octet (Byte) 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 28 = 256 possibilits

de 1 256, ou de 0 255, ou de 127 +128.

Si le nombre > 256 ?


on va donc tre contraint de mobiliser plus dun octet.

base binaire

En effet, avec deux octets, on a 256 x 256 = = 216 = 65 536 possibilit

En utilisant 4 octets, on passe 256 x 256 x 256 = 232 = 16 777 216 possibilits.

Prenons un octet au hasard

11010011
1 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 1 x 128 + 1 x 64 + 1 x 16 + 1 x 2 + 1 x 1 = 128 + 64 + 16 + 2 + 1 = 211

Inversement, Prenons, par exemple, 186.


Dans 186, on trouve 1 x 128, soit 1 x 27. on retranche 128 de 186 et on obtiens 58. Dans 58, on trouve 0 x 64, soit 0 x 26. on ne retranche rien. 58, 1 x 32, 1 x 25 : 58 -32 = 26. 26, 1 x 16, 1 x 24 : 26 -16 = 10. 10, 1 x 8, 1 x 23 : 10-8 = 2. 2, 0 x 4, 0 x 22. on ne retranche rien. 2, 1 x 2, 1 x 21 : 2 2 = 0. 0, 0 x 1, soit 0 x 20. on ne retranche rien. 186 est reprsent par : 1 0 1 1 1 0 1 0

Traitement conditionnel Les algorithmes prcdents prsentent un enchanement dexcution linaire et squentiel. Dans la pratique, il peut exister des situations o lon exige lexcution dun ensemble dinstructions si une condition donne est exige. Ce type de traitement est dit traitement conditionnel .

Traitement conditionnel (suite) La syntaxe algorithmique est la suivante : Si (condition) alors Instruction(s) FinSi Linstruction ou ensemble dinstructions est(sont) excute(s) si condition est ralise (valeur boolenne vraie ).

Traitement conditionnel (suite)


Lorganigramme associ est le suivant :

Condition non

oui

Instruction(s)

Traitement conditionnel (suite)


La syntaxe est la suivante : Si seule une instruction est excute : si (<Condition>) alors <Instruction> ; FinSi Si plusieurs instructions sont excutes : SI (<Condition>) alors <Instruction 1> ; <Instruction 2> ; ; <Instruction N> ; FinSI
Une seule ligne de commande

Le bloc dinstructions (une instruction par ligne) est dlimit par { }

Traitement conditionnel (suite)


Exemple : Ecrire un programme qui affiche la valeur absolue dun nombre rel saisi au clavier. Dbut Algorithme ValAbs Var Lire(X) X : rel X<0 Dbut crire("Saisir un nombre rel"); X Lire(X); Si(X < 0) Ecrire(X) X -X; FinSi Fin crire("La valeur absolue est", X); Fin

-X

Traitement conditionnel et alternatif (suite) La syntaxe algorithmique est la suivante : Si (condition) alors Instruction(s) 1 "vrai" Sinon Instruction(s) 2 "faux" FinSi

Traitement conditionnel et alternatif (suite)


Lorganigramme associ est le suivant :

Condition

Instruction(s) 1 "vrai"

Instruction(s) 2 "faux"

Traitement conditionnel et alternatif (suite)


Exemple : Affichage de la valeur absolue : Algorithme ValAbs Var X, Y : rel Dbut crire("Saisir un nombre rel"); Lire(X); Si(X < 0) X -X; crire("La valeur absolue est", X); Sinon Y X; crire("La valeur absolue est", Y); FinSi Fin

Dbut Lire(X) X<0 Y X Y -X

Ecrire(Y) Fin

Traitement alternatif (suite)


Si(lentier = 0) crire("Vous avez saisi Zro") Sinon Si (lentier = 1) crire("Vous avez saisi Un") Sinon Si (lentier = 2) crire("Vous avez saisi Deux") Sinon Si (lentier = 3) crire("Vous avez saisi Trois") Sinon

Traitement alternatif (suite)


Lalgorithme prcdent comporte beaucoup dimbrication de plusieurs Si. La primitive CAS (Selon) facilite normment lcriture de ce genre dalgorithme. Syntaxe algorithmique : Cas (variable) val_1 : inst_1 val_2 : inst_2 ... val_n : inst_n Sinon : inst_d FinCas Organigramme :

Variable Val_1 Val_2 Val_n Val_d

inst_1 inst_2

inst_n inst_d

Traitement alternatif
tude par un exemple : On dsire crire un algorithme qui permet la saisie dun entier compris entre 0 et 4, ensuite lalgorithme doit afficher le nombre saisi en lettre.

Si(lentier = 0) crire(Vous avez saisi Zro); Sinon Si (lentier = 1) crire(Vous avez saisi Un); Sinon Si (lentier = 2) crire(Vous avez saisi Deux); Sinon Si (lentier = 3) crire(Vous avez saisi Trois); Sinon Si (lentier = 4) crire(Vous avez saisi Quatre); Sinon crire(Lentier saisi est > 4); FinSi FinSi FinSi FinSi FinSi Fin

Traitement alternatif (suite)


Algorithme :
Algorithme afficheEntier Var lentier : entier Dbut crire(Saisir un nombre entier); Lire(lentier); Cas (lentier) 0: crire("Vous avez saisi Zro"); 1: crire("Vous avez saisi Un"); 2: crire("Vous avez saisi Deux"); 3: crire("Vous avez saisi Trois"); 4: crire("Vous avez saisi Quatre"); Sinon : crire("Lentier saisi est > 4"); FinCas Fin

Selon abrviation "M" : afficher( " Monsieur " ); "Mme" : afficher( " Madame " ); "Mlle" : afficher( " Mademoiselle " ); autres : afficher( " Monsieur, Madame " ); FinSelon Comparer: si (abrviation = "M ) afficher( "Monsieur" ); sinon si (abrviation = "Mme) afficher("Madame"); sinon si (abrviation = "Mlle) afficher( "Mademoiselle" ); sinon afficher( "Monsieur,Madame " ) fsi fsi fsi

Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si le produit est ngatif ou positif (on inclut cette fois le traitement du cas o le produit peut tre nul).

Attention, on ne doit pas calculer le produit !

Solution
Variables m, n en Entier Dbut Ecrire ("Entrez deux nombres : ") ; Lire m, n; Si m = 0 OU n = 0 Alors Ecrire ("Le produit est nul") ; SinonSi ((m < 0 ET n < 0) OU (m > 0 ET n > 0)) Alors Ecrire ("Le produit est positif") ; Sinon Ecrire ("Le produit est ngatif "); Finsi Finsi Fin

Un magasin de reprographie facture 0,30 dh les dix premires photocopies, 0,20 dh les vingt suivantes et 0,10 dh au-del . Ecrire un algorithme qui demande lutilisateur le nombre de photocopies effectues et qui affiche la facture correspondante.

Solution
Variables n, p : Numrique; Dbut Ecrire (" quel est le Nombre de photocopies? : ") ; Lire n ; Si (n <= 10) Alors p n * 0,3; SinonSi (n <= 30) Alors p 10 * 0,30 + (n 10) * 0,20; Sinon p 10 * 0,30 + 20 * 0,20 + (n 30) * 0,10; FinSi Ecrire ("Le prix total est: ", p) ; Fin

Quand il faut rpter un traitement ...!!?

Instructions rptitives (boucles)


La rsolution de quelques problmes passe parfois par la ralisation dune action dune manire rptitive. Par exemple, saisir les noms et les prnoms des tudiants En informatique , on distingue deux types de boucles :
Boucles

pour les quelles le nombre ditration est connu

lavance (la structure POUR).


Les

boucles pour les quelles le nombre ditration nest pas connu lavance. (Les structures TANT QUE et REPETER),

65

La boucle pour
pour <var> valnit valfin [par <pas>] faire

traitement /suite dinstructions/ fpour


Fonction : rpter une suite dinstructions un certain nombre de fois

Ecrire un algorithme qui demande un nombre de dpart, et qui ensuite crit la table de multiplication de ce nombre, prsente comme suit (cas o l'utilisateur entre le nombre 7) :

Variables N, i en Entier Debut Ecrire ( "Entrez un nombre : "); Lire N; Ecrire ("La table de multiplication de ", N, " est : "); Pour (i 1 10) faire Ecrire (N, " x ", i, " = ", N*i ); Finpour Fin

La table de multiplication de 7 est : 7x1=7 7 x 2 = 14 7 x 3 = 21 7 x 10 = 70

Ecrire un algorithme qui fait le total dun nombre de valeur numriques demandes successivement lutilisateur,

Algorithme FaitLeTotal /Cet algorithme fait la somme des nbVal donnes qu'il saisit/ variables nbVal, cpt : entiers valeur, totalValeurs : rels dbut crire("Combien de valeurs voulez-vous saisir ?"); lire(nbVal); totalValeurs 0; pour (cpt 1 nbVal) faire ecrire("Donnez la , cpt , ime valeur :"); lire(valeur); totalValeurs totalValeurs + valeur; fpour ecrire("Le total des ", nbVal, "valeurs est " , totalValeurs ); fin

Ecrire un algorithme qui demande successivement 20 nombres lutilisateur, et qui lui dise ensuite quel tait le plus grand parmi ces 20 nombres :

Variables N, i, PG en Entier Debut PG 0 Pour i 1 20 Ecrire ("Entrez un nombre : "); Lire (N); Si (N > PG) Alors PG N; FinSi Fpour crire ("Le nombre le plus grand tait : ", PG); Fin

Modifiez ensuite lalgorithme pour que le programme affiche de surcrot en quelle position avait t saisie ce

Variables N, i, PG; IPG en Entier Debut PG 0 Pour i 1 20 Ecrire ("Entrez un nombre : "); Lire (N); Si (i = 1 ou N > PG) Alors PG N; IPG i; FinSi fpour Ecrire ("Le nombre le plus grand tait : ", PG); Ecrire ("Il a t saisi en position numro ", IPG); Fin

Variable Rep en Caractre Dbut Ecrire ("Voulez vous un partir Marrakech?(O/N))) ; Lire (Rep); Si (Rep <> "O" et Rep <> "N") Alors Ecrire ("Saisie erronne. Recommencez"); Lire Rep; FinSi ecrire ( pour quelle priode?"); Fin

Variable Rep en Caractre Dbut Ecrire ("Voulez vous un partir Marrakech?(O/N))) ; Lire (Rep); Tanque (Rep <> "O" et Rep <> "N") faire Ecrire ("Saisie erronne. Recommencez"); Lire Rep; Fintq Fin

Traitement itratif : Tant que Faire


Syntaxe algorithmique Organigramme Tant que (Condition) Faire Instruction(s) FinTantque

Condition oui Instruction(s)

non

Pour ce type de boucle, le test de contrle est effectu au dbut de la boucle. Linstruction est excute tant que la condition est vrifie (valeur boolenne VRAI). Si la condition est fausse dentre, linstruction nest jamais excute.

Fonction: rpter une suite dinstructions tant quune condition est remplie

La boucle TANT QUE


Langage intermdiaire

Tant que boolen faire instructions (1) ... Ftq instructions (2)

Fonctionnement valuation du boolen : si sa valeur est vraie,


alors le bloc instructions (1) est excut le boolen est nouveau valu si sa valeur ... arrt de la boucle quand le boolen devient faux le programme continue en squence avec les instructions(2).

80

Algorithme FaitLeTotal /Cet algorithme fait la somme des nbVal donnes qu'il saisit/ variables nbVal, cpt : entiers val, totalValeurs : rels dbut crire("Combien de valeurs voulez-vous saisir ?"); lire(nbVal); totalValeurs 0; pour (cpt 1 nbVal) faire ecrire("Donnez une valeur :"); lire(val); totalValeurs totalValeurs + val; fpour ecrire("Le total des ", nbVal, "valeurs est " ; fin

Algorithme FaitLeTotal variables val, totalValeurs : entiers Dbut totalValeurs 0 ecrire("Donnez une valeur, -1 pour finir."); lire(val); tant que (val <>-1) faire totalValeurs totalValeurs+ val; ecrire("Donnez une autre valeur, -1, pour finir."); lire(val); Ftq ecrire("La somme des valeurs saisies est", totalValeurs); Fin

La boucle REPETER
Langage intermdiaire

Fonctionnement :
le bloc instructions (1) est excut une fois le boolen est valu si sa valeur est vraie, le bloc dinstructions (1)

Rpter instructions (1) ... Tant que (boolen) instructions (2)

est nouveau excut


le boolen est nouveau valu arrt de la boucle quand le boolen devient

faux
le programme continue en squence avec les

instructions(2).
83

BY KSIMO MAURE

SMARA FB Groupe : smc fsa 2012


http://www.facebook.com/groups/522890651069613/