Vous êtes sur la page 1sur 16

F a c u lt P o ly d is c ip li n a ire K h o u r ib g a

Semestre 2 2009/2010

I n g n ie r ie M i n i r e

Algorithmique

Introduction l'Algorithmique
Dfinitions Le mot algorithme provient de la forme latine (Algorismus) du nom du mathmaticien arabe AL KHWARIZMI. Il tenta une premire dfinition : Un algorithme est une squence d'oprations visant la rsolution d'un problme en un temps fini. Un algorithme est une suite d'action lmentaire qu'il faut effectuer pour rsoudre un problme.

Algorithme et Programme
Tout problme programmer doit tre rsolu, d'abord sous forme d'algorithme, puis converti en programme dans le langage de votre choix. En effet, un algorithme est indpendant du langage de programmation utiliser. Un programme est un enchanement d'instruction, crit dans un langage de programmation, excute par un ordinateur, permettant de traiter un problme et de renvoyer des rsultats. Il reprsente la traduction d'un algorithme l'aide d'un langage de programmation Un programme c'est un algorithme cod dans un langage comprhensible par ordinateur l'aide d'un compilateur (traducteur). Les tapes de rsolution d'un problme 1. Comprendre l'nonc du problme 2. Dcomposer le problme en sous-problmes plus simple rsoudre 3. Associer chaque sous problme, une spcification : o Les donnes ncessaires o Les donnes rsultantes o La dmarche suivre pour arriver au rsultat en partant d'un ensemble de donnes. 4. Elaboration d'un algorithme.

Structure d'un algorithme ALGORITHME nom_de_l'algorithme Constante {Dfinition des constantes} Variable {Dclaration de variables} DEBUT {Suite d'instructions} FIN

Prof : Amine Benichou

S2 2008/2009

Ingnierie Minire

Algorithmique

Les Variables
La notion de variable
Dans un programme informatique, on va avoir en permanence besoin de stocker provisoirement des valeurs. Il peut sagir de donnes issues du disque dur, fournies par lutilisateur (frappes au clavier). Ces donnes peuvent tre de plusieurs types : elles peuvent tre des nombres, du texte, etc. Ds que lon a besoin de stocker une information au cours dun programme, on utilise une variable.

Dclaration des variables


La premire chose faire avant de pouvoir utiliser une variable est de crer la bote et de lui coller une tiquette. Ceci se fait tout au dbut de lalgorithme, avant mme les instructions proprement dites. Cest ce quon appelle la dclaration des variables. Une variable ne peut tre utilise que selle est dclare. La dclaration se fait par la donne du nom de la variable et du type de la variable. Noms de variables Le nom de la variable (ltiquette de la bote) obit des rgles qui changent selon le langage utiliser. Les principales rgles respecter sont : Le nom de variable peut comporter des lettres et des chiffres, On exclut la plupart des signes de ponctuation, en particulier les espaces. Un nom de variable doit commencer par une lettre. Le nombre maximal de caractres qui composent le nom dune variable dpend du langage utilis. Ne pas utiliser les mots cls du langage de programmation. Dclaration des variables La premire chose faire tout au dbut de lalgorithme, avant de pouvoir utiliser des variables, cest de faire la dclaration des variables. Lorsquon dclare une variable, on lui attribue un nom et on lui rserve un emplacement mmoire. La taille de cet emplacement mmoire dpend du type de variable. Cest pour cette raison quon doit prciser lors de la dclaration le type du variable. La syntaxe dune dclaration de variable est la suivante : VARIABLES Type nom ; Type nom1, nom2, .. ;

Types de variables
Type numrique
Commenons par le cas trs frquent, celui dune variable destine recevoir des nombres. Gnralement, les langages de programmation offrent les types suivants : ENTIER Le type entier dsigne lensemble des nombres entiers ngatifs ou positifs dont les valeurs varient entre -32 768 32 767. VARIABLES On crit alors ENTIER i, j, k ;
Prof : Amine Benichou 3 S2 2008/2009 Ingnierie Minire

Algorithmique

REEL Le type rel comprend les variables numriques qui ont des valeurs relles. La plage des valeurs du type rel est : -3,40x1038 -1,40x1045 pour les valeurs ngatives 1,40x10-45 3,40x1038 pour les valeurs positives VARIABLES On crit alors Reel x,y ; Remarque : Le type de variable choisi pour un nombre va dterminer les valeurs maximales et minimales des nombres pouvant tre stocks dans la variable. Elle dtermine aussi la prcision de
ces nombres (dans le cas de nombres dcimaux).

Type chane (caractres)


En plus, du type numrique on dispose galement du type chane (galement appel caractre ou alphanumrique). Dans une variable de ce type, on stocke des caractres, quil sagisse de lettres, de signes de ponctuation, despaces, ou mme de chiffres. Le nombre maximal de caractres pouvant tre stocks dans une seule variable chane dpend du langage utilis. VARIABLES CHAINE nom, prenom, adresse ; On crit alors Ou CARACTERE nom, prenom, adresse ; Une chane de caractres est note toujours soit entre guillemets, soit entre des apostrophes. Cette notation permet dviter les confusions suivantes : Confondre un chiffre et une suite de chiffres. Par exemple, 423 peut reprsenter le nombre 423 (quatre cent vingt-trois), ou la suite de caractres 4, 2, et 3. La confusion qui consiste ne pas pouvoir faire la distinction entre le nom d'une variable et son contenu. Remarque : Pour les valeurs des variables de type chane, il faut respecter la casse. Par exemple, la chane Salut est diffrente de la chane salut.

Type boolen (Logique)


Dans ce type de variables on y stocke uniquement des valeurs logiques VRAI ou FAUX, TRUE ou FALSE, 0 ou 1. VARIABLES On crit alors
LOGIQUE etat ; ou BOOLEEN etat;

Les constantes
Comme une variable, une constante est un emplacement mmoire rserv auquel on accde par le nom qui lui a t attribu, mais dont la valeur stock ne sera jamais modifie au cours du programme. Syntaxe : Constante nom_de_la_constante = valeur Exemple : Constante pi = 3.14
Prof : Amine Benichou 4 S2 2008/2009 Ingnierie Minire

Algorithmique

Oprateurs et expressions
1. Oprateurs
Un oprateur est un signe qui relie deux variables pour produire un rsultat. Les oprateurs dpendent des types de variables mis en jeu. Pour le type numrique on a les oprateurs suivants : + : Addition - : Soustraction * : Multiplication / : Division ^ : Puissance Div: Division entire (euclidienne) Mod : Reste de la division entire Tandis que pour le type chane, on a un seul oprateur qui permet de concatner deux chanes de caractres. Cet oprateur de concatnation est not & (+). Par exemple la chane de caractres Salut concatner la chane tout le monde donne comme rsultat la chane Salut tout le monde. "Salut" & "tout le monde" Salut tout le monde. "Salut" + "tout le monde" Salut tout le monde.

2. Expressions
Une expression est un ensemble de variables (ou valeurs) relies par des oprateurs et dont la valeur du rsultat de cette combinaison est unique. Par exemple : 7 5+4 x + 15 y/2 nom & prenom Dans une expression o on y trouve des variables ou valeurs numriques, lordre de priorit des oprateurs est important. En effet, la multiplication et la division sont prioritaires par rapport laddition et la soustraction. 12 * 3 + 5 donne comme rsultat 41. Par exemple, Si lon veut modifier cette ordre de priorit on sera oblig dutiliser les parenthse. Par exemple, 12 * (3 + 5) donne comme rsultat 96.

3. Linstruction daffectation
Linstruction daffection est opration qui consiste attribuer une valeur une variable. On la notera par avec le signe (ou =). Cette instruction scrit : Variable valeur Par exemple : Montant 3500. On dit quon affecte (ou on attribue) la valeur 3500 la variable numrique Montant. Si dans une instruction daffectation, la variable laquelle on affecte la valeur et la valeur affecte ont des types diffrents, cela provoquera une erreur. On peut aussi attribuer une variable la valeur dune variable ou dune expression de faon gnrale. On crit : Variable Expression Par exemple : AB AB*2+5 Dans ce cas, linstruction daffectation sera excute en deux temps : Dabord, on calcule la valeur de lexpression On affecte la valeur obtenue la variable gauche. On peut mme avoir des cas o la variable de gauche qui figure dans lexpression droite. AA+5 Par exemple :
Prof : Amine Benichou 5 S2 2008/2009 Ingnierie Minire

Algorithmique

Dans cette exemple, aprs lexcution de linstruction daffectation la valeur de la variable A sera augmenter de 5. Remarque : Dans une instruction daffection on a toujours : gauche de la flche daffection un nom de variable droite de la flche daffectation une valeur ou une expression lexpression droite de la flche doit tre du mme type que la variable situe gauche. Si dans une instruction daffectation une ces points nest pas respect, cela engendra une erreur. Il est noter que lordre dans lequel sont crites les instructions est essentiel dans le rsultat final. Exemple :
Cas

1 2

Instructions A 15 A 30 A 30 A 15

Valeur de A 30 15

4. Les instructions de lecture et ecriture


Variable Entier A :; Dbut A 12 ^ 2 Fin

Considrons le programme suivant :

Il permet de calculer le carr de 12. Le problme de ce programme, cest que, si lon veut calculer le carr dun autre nombre que 12, il faut rcrire le programme. Dautre part, la machine calcule le rsultat et lutilisateur qui fait excuter ce programme ne saura jamais quel est le carr de 12. Cest pour cela quil faut introduire des instructions qui permettent le dialogue avec lutilisateur. En effet, il existe une instruction qui permet lutilisateur de faire entrer des valeurs au clavier pour quelles soient utilises par le programme. La syntaxe de cette instruction de lecture est : Lire (NomVariable); Lorsque le programme rencontre une instruction Lire, lexcution du programme sinterrompe, attendant la saisie dune valeur au clavier. Ds que lon frappe sur la touche ENTER, lexcution reprend. Une autre instruction permet au programme de communiquer des valeurs lutilisateur en les affichant lcran. La syntaxe de cette instruction dcriture est : Ecrire (NomVariable); Ou de faon gnrale Ecrire (Expression); Remarque : Avant de lire une variable, il est fortement conseill dcrire des libells lcran, afin de prvenir lutilisateur de ce quil doit frapper. La mme chose pour linstruction dcriture.
Prof : Amine Benichou 6 S2 2008/2009 Ingnierie Minire

Algorithmique

Exemple : Variables Reel A, Carre; Debut Ecrire ("Entrez un nombre"); Lire (A); Carre A * A; Ecrire ("Le carr de ce nombre est : "); Ecrire (Carre); Fin

Exercices
1. Quelles seront les valeurs des variables A et 2. Quelles seront les valeurs des variables A, B B aprs excution des instructions suivantes ? et C aprs excution des instructions suivantes ? Variables Variables Entier A, B, C ; Entier A, B; Dbut Dbut A 3; A 1; B 10; B A + 3; C A + B; A 3; B A + B; Fin A C;
Fin

3. On dispose de trois variables A, B et C. 4 Que produit lalgorithme suivant ? Ecrivez un algorithme transfrant B la valeur Variables Chaine A, B, C ; de A, C la valeur de B et A la valeur de C Dbut (toujours quels que soient les contenus A 423; pralables de ces variables).
B 12; C A + B; Fin

5. Ecrire un programme qui lit le prix HT dun article, le nombre darticles et le taux de TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libells apparaissent clairement. 6. Le surveillant gnral dun tablissement scolaire souhaite quon lui crit un programme qui calcule, pour chaque lve, la moyenne des notes des cinq matires. Ces matires sont avec leur coefficient : Histoire Matiere Math Physique Franais Anglais Gographie 5 5 4 2 2 Coefficient Voir Serie d'exercices N 1 (TD 1)

Prof : Amine Benichou

S2 2008/2009

Ingnierie Minire

Algorithmique

LA STRUCTURE ALTERNATIVE
1. Les conditions simples
Une condition simple consiste en une comparaison entre deux expressions du mme type. Cette comparaison s'effectue avec des oprateurs de comparaison. Voici la liste de ces oprateurs accompagns de leur signification dans le cas des types numrique ou chane : Oprateur = <> < > <= >= gal diffrent infrieur suprieur infrieur ou gal suprieur ou gal Signification numrique gal diffrent plac avant dans l'ordre alphabtique plac aprs dans l'ordre alphabtique plac avant dans l'ordre alphabtique ou gal plac aprs dans l'ordre alphabtique ou gal Signification chane

Remarque : Pour la comparaison du type chane c'est l'ordre alphabtique qu'est utilis dans le cas o l'on compare deux lettres majuscules ou minuscules. Mais si l'on compare majuscules et minuscules, il faut savoir que les majuscules apparaissent avant les minuscules. Ainsi, par exemple : "M" < "m".

2. Les conditions complexes


Certains problmes exigent parfois de formuler des conditions qui ne peuvent pas tre exprimes sous la forme simple vu en dessus. A cet effet, la plupart des langages autorisent des conditions formes de plusieurs conditions simples relies entre elles par ce qu'on appelle des oprateurs logiques. Ces oprateurs sont : Et, Ou et Non. Tableaux d'valuations
A et B Vrai Vrai Faux Faux Faux Faux A ou B Vrai Vrai Vrai Faux

A
Vrai Vrai Faux Faux

Non A Faux Vrai

Vrai
Faux

Vrai
Faux

D'une manire gnrale, les oprateurs logiques peuvent porter, non seulement sur des conditions simples, mais aussi sur des conditions complexes. L'usage de parenthses permet dans de tels cas de rgler d'ventuels problmes de priorit. Par exemple, la condition : (a < 0 ET b > 1) OU (a > 0 ET b > 3) est Vrai si l'une des conditions entre parenthses est Vrai.
Exercice

Evaluer les expressions logiques suivantes, avec (a, b, c, d) = (2, 3,5, 10) et (X, Y) = (V, F).
1) (a < b) Et (a < c) 4) (a < c) Et (c = d/2) 7) X = (d / c = b) 2) (a < b) Ou (a < c) 5) Y= (d / a = c) 8) (a < b) Ou (d < c) 3) Non (a < b) Et (a < c) 6) Y= (d / c = b) 9) X = (a < b) Et (d < c)

Prof : Amine Benichou

S2 2008/2009

Ingnierie Minire

Algorithmique

3. La structure alternative
Syntaxe Si <Condition> Alors <suite daction(s)-1> [Sinon <suite dactions(s)-2>] FinsiI
Format Organigramme faux condition vrai

TRAITEMENT-2

TRAITEMENT-1

FINSI

La <condition> est une expression, qui peut tre vrai ou faux, selon les valeurs des paramtres la constituant. Si la condition est vrifie (sa valeur est vrai), cest la <suite dactions-1> qui sera excute. Ensuite, le systme passe lexcution juste aprs le Finsi. Dans le cas contraire, lorsque la condition nest pas vrifie (valeur de la condition est faux), cest la <suite dactions-2> qui sexcute, en cas o celle ci existe (facultative). Si elle nexiste pas, le systme passe directement linstruction qui suit le Finsi. Les suites d'actions 1 et 2, peuvent tre des actions simples ou mme des structures conditionnelles. Exemple 1 Lire un nombre rel, et dire sil est positif ou strictement ngatif. Algorithme POS_NEG Variable Reel A; Debut Ecrire("Donner un nombre "); Lire(A); Si (A < 0) Alors Ecrire(A, " est ngatif "); Sinon Ecrire(A, " est positif "); Finsi Fin Dans cet exemple, on a dtermin uniquement les cas de positivit ou de ngativit, et on n'a pas dtermin le cas o A est nulle.
Prof : Amine Benichou 9 S2 2008/2009 Ingnierie Minire

Algorithmique

Algorithme POS_NEG_NUL Variable Reel A; Debut Ecrire("Donner un nombre "); Lire(A); Si (A < 0) Alors Ecrire(A, " est ngatif "); Sinon { A>=0} Si (A > 0) Alors Ecrire(A, " est positif "); Sinon { A=0} Ecrire(A, " est nulle "); Finsi Finsi Fin Remarque : Il peut arriver que l'une des parties d'une structure alternative contienne son tour une structure alternative. Dans ce cas, on dit qu'on a des structures alternatives imbriques les unes dans les autres.

La structure conditionnelle Selon


Cette structure conditionnelle est appele aussi choix multiple ou slective car elle slectionne entre plusieurs choix la fois, et non entre deux choix alternatifs (le cas de la structure SI). Syntaxe Selon (Selecteur) Cas 1 : suite d'action (s)-1; Cas 2 : suite d'action (s)-2; Cas N : suite d'action (s)-N; [SINON : suite d'action (s);] FinSelon Le slecteur peut tre une variable ou une expression arithmtique ou logique. La structure Selon value le "slecteur", passe comparer celui ci respectivement avec les valeurs dans les listes. En cas d'galit avec une valeur, les actions correspondantes, qui sont devant cette valeur seront excutes. Devant "Cas", il peut y avoir une seule valeur, une suite de valeurs spares par des virgules et/ou un intervalle de valeurs.
Aprs avoir traiter la suite d'actions correspondante, l'excution se poursuit aprs le Finselon.

Exercices
1. Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si leur produit est ngatif, positif ou nul. Remarque : on ne doit pas calculer le produit des deux nombres.

Prof : Amine Benichou

10

S2 2008/2009

Ingnierie Minire

Algorithmique

2. Ecrire un algorithme qui demande trois noms lutilisateur et linforme ensuite sils sont rangs ou non dans lordre alphabtique. 3. A partir dun montant lu, on dtermine un montant net par application dune remise de : 1% si le montant est compris entre 2000 et 5000 Dhs (valeurs comprises) 2 % si le montant est suprieur 5000 Dhs. 4. crivez un algorithme qui permet de discerner une mention un tudiant selon la moyenne de ses notes : - "Trs bien" pour une moyenne comprise entre 16 et 20 (16<= moyenne <=20) - "Bien" pour une moyenne comprise entre 14 et 16 (14<= moyenne <16) - "Assez bien" pour une moyenne comprise entre 12 et 14 (12<= moyenne <14) - "Passable" pour une moyenne comprise entre 10 et 12 (10<= moyenne <12 5. Les tudiants ayant pass l'examen dalgorithmique en session de Juin ont t classs selon leurs notes en trois catgories : pour une note infrieure strictement 5, l'tudiant est limin, pour une note suprieure ou gale 5 et infrieur strictement 10, l'tudiant passe la session de rattrapage, pour une note suprieure ou gale 10, l'tudiant valide le module Ecrivez un algorithme qui demande lutilisateur dentrer la note du module, puis affiche la situation de l'tudiant selon sa note (on suppose que l'utilisateur entre une note valide entre 0 et 20).

Voir Serie d'exercices N 2 (TD 2)

Prof : Amine Benichou

11

S2 2008/2009

Ingnierie Minire

Algorithmique

Les Structures Rptitives (Boucles)


Une structure rptitive sert rpter un ensemble dinstructions. Il existe trois formes de structures rptitives : POUR, TANT QUE, REPETER.

1. La Boucle Pour
Syntaxe Pour compteur = Vi A Vf [ Pas Vp)Faire Instructions rpter Fin Pour Avec : Compteur est une variable entire, qui compte le nombre de rptition du <Traitement>, Vi la valeur initiale laquelle Compteur est initialis, Vf la valeur finale laquelle se termine Compteur, Vp la valeur du pas, c'est la valeur qu'on rajoute Compteur chaque fin de traitement. Remarque La boucle Pour est utilise lorsqu'on connat le nombre de rptition du <Traitement> d'avance. La valeur du pas peut tre positive ou ngative et par consquent, il faut; au dpart de la boucle; que Vi <= Vf ou Vi >= Vf selon la positivit ou la ngativit de cette valeur. La valeur du pas est gale 1 par dfaut. Les tapes d'excution de la boucle POUR 1. Initialisation de Compteur par la valeur de Vi (comme si on avait Compteur Vi) 2. Test si Vi dpasse () Vf (du ct suprieur ou infrieur, selon la positivit ou la ngativit du pas). Si oui, alors la boucle s'arrte et l'excution se poursuit aprs le Fin Pour Sinon, Excution du <Traitement>, Incrmentation ou dcrmentation de Vc par la valeur du pas, Retour l'tape 2. Application Ecrire l'algorithme qui permet de saisir les moyennes des N tudiants de la classe Informatique et de calculer la moyenne gnrale de la classe. Rsolution Sans les boucles, on est oblig de dclarer N variables, et d'crire N actions LIRE. LIRE(MOY) S S + MOY LIRE(MOY) N S S + MOY fois .. LIRE(MOY) S S + MOY La boucle POUR donne l'ordre la machine d'itrer les deux actions Donc le compteur varie de 1 jusqu' N avec un pas de 1.
Prof : Amine Benichou 12 S2 2008/2009

LIRE(MOY) SS+ MOY

N fois.

Ingnierie Minire

Algorithmique

ALGORITHME MOYENNE Variables Entier N,i;. Reel MOY, MC; Debut Ecrire("Donner le nombre d'tudiants"); Lire(N); SI (N > 0) ALORS S 0; {Initialisation de S} Pour i DE 1 A N FAIRE {Le pas gale 1 par dfaut} Ecrire("Donner la moyenne de l'tudiant n", i); Lire(MOY); S S + MOY; {on rajoute la moyenne du iime tudiant la somme} Fin Pour MC S / N ; Ecrire("La moyenne de la classe est : ", MC); Sinon Ecrire("Erreur dans le nombre d'tudiants"); Finsi Fin Remarque Juste Avant le FIN Pour, le changement de la valeur de i se fait automatiquement.
Application 1

Ecrire l'algorithme qui permet d'afficher tous les nombres pairs qui existent entre 1 et 10. 1ire solution Pour i de 2 10 pas 2 Faire Ecrire(i); Fin Pour 2ime solution Pour i de 2 10 Faire SI (i mod 2 = 0) Alors Ecrire(i); Finsi Fin Pour 3ime solution Pour i de 1 5 Faire Ecrire(2*i); Fin Pour

Application 2

Ecrire l'algorithme qui permet d'afficher tous les nombres impairs entre 50 et 100 dans l'ordre dcroissant. Pour i de 99 50 PAS (-2) Faire Ecrire(i); Fin Pour

2. La boucle Rpter Jusqu'


Cette structure sert rpter des instructions jusqu ce quune condition soit ralise. Sa syntaxe est Rpter <Traitement> Jusqu' (conditiont)

Prof : Amine Benichou

13

S2 2008/2009

Ingnierie Minire

Algorithmique

Cet ordre d'itration permet de rpter le <Traitement> une ou plusieurs fois et de s'arrter sur une condition. En effet, lorsque la condition est vrifie, la boucle s'arrte, si non elle r-excute le <Traitement>. Remarques Dans cette boucle, le traitement est excut au moins une fois avant l'valuation de la condition d'arrt. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition. Les tapes d'excution de la boucle Rpter 1) Excution du <Traitement> 2) Test de la valeur de la <condition > Si elle est vrifie Alors la boucle s'arrte Sinon Retour l'tape 1. Application Ecrire un algorithme qui saisit un nombre pair et qui dtermine combien de fois il est divisible par 2. Exemple 8 est divisible 3 fois par 2 (2*2*2). ALGORITHME PAIR_NBDIV2 Variables Entier N, N2; Debut {Saisie d'un entier qui doit tre pair} Rpter Ecrire("Donner un entier pair") Lire(N) Jusqu' (N MOD 2 = 0) {condition pour que N soit pair} {Dtermination du nombre de division par 2} N2 0 NB N Rpter NB NB div 2 N2 N2 +1 Jusqu' (NB MOD 2 <> 0) {On s'arrte lorsque NB n'est plus divisible par 2} Ecrire(N, "est divisible par 2", N2,"fois") FIN

3. La boucle TANT QUE


Cette structure permet de rpter les instructions tant quune condition est satisfaite. Sa syntaxe est : Tant Que (condition d'excution) Faire <Traitement> Fin TantQue

Prof : Amine Benichou

14

S2 2008/2009

Ingnierie Minire

Algorithmique

Cet ordre d'itration permet de rpter le <Traitement> zro ou plusieurs fois et de s'arrter lorsque la condition d'excution n'est plus vrifie. En effet, lorsque la condition d'excution est vrifie, le <Traitement> est excut, si non elle s'arrte. Les tapes d'excution de la boucle Rpter 1) Test de la valeur de la <condition d'excution> 2) Si elle est vrifie Alors Excution du <Traitement> Retour l'tape 1. Sinon Arrt de la boucle. Remarques Dans cette boucle, le traitement peut ne pas tre excut aucune fois, c'est lorsque la condition d'excution est faux ds le dpart. Les paramtres de la condition doivent tre initialiss par lecture ou par affectation avant la boucle. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition.
Application

Ecrire un algorithme qui saisit un nombre pair et qui dtermine combien de fois il est divisible par 2. Exemple 8 est divisible 3 fois par 2 (2*2*2). ALGORITHME PAIR_NBDIV2 Variables Entier N, N2; Debut {Saisie d'un entier qui doit tre pair} Rpter Ecrire("Donner un entier pair") Lire(N) Jusqu' (N MOD 2 = 0) {condition pour que N soit pair} {Dtermination du nombre de division par 2} N2 0 NB N Tant Que (NB MOD 2 = 0) NB NB div 2 N2 N2 +1 Fin TantQue {On s'arrte lorsque NB n'est plus divisible par 2} Ecrire(N, "est divisible par 2", N2,"fois") FIN Remarque La condition d'arrt avec la boucle Rpter est l'inverse de la condition d'excution de la boucle TANTQUE. Le Traitement d'une boucle peut contenir lui aussi une autre boucle. On l'appelle dans ce cas des boucles imbriques.
Prof : Amine Benichou 15 S2 2008/2009 Ingnierie Minire

Algorithmique

Exercices
1. Ecrire l'algorithme qui permet d'afficher les N premiers entiers impairs dans l'ordre dcroissant. 2. Ecrire l'algorithme qui permet d'afficher les diviseurs d'un entiers N. 3. Ecrire l'algorithme qui permet de calculer le produit de deux entiers en utilisant des additions successives. 4. Ecrire l'algorithme qui permet de calculer la division de deux entiers en utilisant des soustractions successives 5. Ecrire l'algorithme qui permet de saisir un entier N et d'afficher s'il est premier ou non. Un nombre est dit premier s'il est divisible uniquement par 1 et par lui-mme. 6. Ecrire l'algorithme qui dtermine le 20ieme terme d'une suite dfinie par :

7. Ecrire l'algorithme qui dtermine le N'eme terme d'une suite dfinie par :

8. Ecrire l'algorithme qui permet de saisir un entier positif en dcimal et de le transformer en binaire. Exemple (7)10 =(111)2 9. Ecrire un algorithme qui permet de saisir deux entiers positifs et de dterminer leur plus grand commun diviseur (PGCD). Le PGCD(A,B) = PGCD(A-B, B) si A est le plus grand et PGCD(A,B) = PGCD(A, B-A) si B est le plus grand. Si A=B le PGCD(A,B) est A ou B. 10. Ecrire l'algorithme qui permet de saisir deux entiers et de dterminer leur plus petit commun multiple (PPCM). Voir Srie d'exercices N 3 (TD 3)

Prof : Amine Benichou

16

S2 2008/2009

Ingnierie Minire