P. 1
Cours Algorithme Pour Les Debutants

Cours Algorithme Pour Les Debutants

|Views: 6,099|Likes:
Publié parlatsouc

More info:

Published by: latsouc on Apr 24, 2011
Droits d'auteur :Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/30/2013

pdf

text

original

Cours algorithme pour les debutants

1 INTRODUCTION 3
2 NOTIONS DE BASE: 3 2.1 ALGORITHME : 3 2.2 EXEMPLE D’ALGORITHME : 4 3 CONVENTIONS SYNTAXIQUES 5 3.1 SYNTAXE GENERALE D'UN ALGORITHME 5 3.2 LA DECLARATION DES VARIABLES 5 3.3 LES TYPES ELEMENTAIRES DES VARIABLES 6 3.4 OPERATEURS ET EXPRESSIONS 7 4 LES INSTRUCTIONS DE BASE : 9 4.1 L'AFFECTATION 9 4.2 LES OPERATIONS 9 4.3 LE DIALOGUE AVEC L'UTILISATEUR 9 4.4 EXERCICES : 10 5 LA STRUCTURE ALTERNATIVE 10 5.1 LES CONDITIONS 11 5.2 LES ACTIONS 11 5.3 EXERCICES : 12 6 LA STRUCTURE DE CHOIX 12 6.1 EXEMPLE 13 6.2 EXERCICE : CALCUL DU PTTC 13 7 LA STRUCTURE REPETITIVE 13 7.1 LA STRUCTURE REPETTTIVE TANT QUE…FIN TANT QUE 14 7.2 LA STRUCTURE REPETITIVE REPETER ....JUSQU'A 15 7.3 LA STRUCTURE REPETITIVE POUR ....FIN POUR 16 7.4 EXERCICES 17 8 REGLES D'ECRITURE 19 9 EXERCICES COMPLEMENTAIRES 20 9.1 FACTORIELLE : 20 9.2 MOYENNE DES NOTES : 20 9.3 CALCUL D’UNE FACTURE 20 9.4 CALCUL D’UNE FACTURE (SUITE) 20 9.5 DOMAINE DES GARIGUETTES 20 9.6 CALCUL DE LA PAIE : 21 9.7 EXERCICE : LA RECHERCHE DICHOTOMIQUE 21 9.8 TRI PAR INSERTION 21 9.9 FACTURE : 22 9.10 SOMME DES IMPAIRS : 22 9.11 SERIE DES PUISSANCES : 22 9.12 EXPONENTIELLE : 22 9.13 SOMME DES FRACTIONS : 22 9.14 SERIE ALTERNEE : 22 9.15 SERIE APPROCHEE : 22 [/size]

Algorithmique 1 Introduction L'écriture d'un programme informatique est une tâche exigeante par sa rigueur. Les ordinateurs exigent perfection et précision dans les instructions qui leurs sont données car ils ne font que ce qu'on leur demande de faire. Il ne viendrait à l'idée de personne de rédiger une dissertation sans au préalable construire un plan ; des idées mêmes bonnes ne suffisent pas à faire une bonne rédaction, une structure est nécessaire à leur cohésion. II en est de même en informatique, faute de méthode nombre de programmes ne fonctionnent jamais ou le font très mal. Apprendre à programmer consiste plus à acquérir une démarche d'esprit, une méthodologie, qu'à connaître les tours et détours d'un langage de programmation. Connaître un langage de programmation n'est pas savoir programmer, de même qu'apprendre par cœur le dictionnaire ne signifie pas savoir rédiger un roman.

• doit avoir au moins un résultat. en un temps fini. c'est définir précisément le problème à résoudre. • il manipule des objets qui doivent être définis de façon précise. II est nécessaire dans un premier temps de prendre conscience de la difficulté que nous avons d'exprimer la solution à un problème donné de façon complète et non ambiguë. Si la roue de secours est crevée Alors 4. Il en existe beaucoup de définitions. à un résultat déterminé à partir d'une situation donnée. tout en gommant les difficultés inhérentes au langage de programmation. l'activité la plus créative n'est pas le codage. dans "THE ART OF COMPUTER PROGRAMMING" . (Dictionnaire des mathématiques ou encore : • C’est une suite d'actions que devra effectuer un automate pour arriver. Dans la situation de résolution d'un problème on considère deux étapes • Qu'avons nous à faire : QUOI • Comment allons-nous résoudre le problème : Expression du COMMENT Deux étapes distinctes. dévisser légèrement les boulons avec la clé . Dans cette démarche.) respectant des règles syntaxiques et de présentation qui en facilitent la compréhension. Nous utiliserons une forme algorithmique pour exprimer le résultat de notre analyse détaillée. .1 Algorithme : Le mot vient du nom du mathématicien arabe du 9° siècle MOHAMMED IBN AL KHAREZIN.Programmer. appeler un garagiste Sinon 5.2 Exemple d’algorithme : Algorithme relatif au changement d'une roue exprimé en langage naturel. Cette suite d'actions sera composée d'actions élémentaires Mais c'est KNUTH qui. • il est défini sans ambiguïté. Les actions ou opérations d'un algorithme sont décrites à l’aide de mots (verbes. Concrètement cela consiste en la conception et la rédaction d'algorithmes. • il doit être effectif : toutes les opérations doivent pouvoir être effectuées exactement et dans un temps fini par un homme utilisant des moyens manuels. décrire peu à peu une solution et après seulement l'exprimer dans un langage de programmation. notre cerveau déroule à longueur de journée des algorithmes. locutions. l'analyse précédant toujours la conception. Un algorithme permet de passer d'un état initial à un état final de façon déterministe et doit respecter les 5 caractéristiques suivantes • il est fini et se termine après un nombre fini d'opérations. 2. L'algorithmique doit être perçue comme un outil favorisant la réflexion. comportant toutes les structures de base d'un langage de programmation. ouvrir le coffre 2. qu'il s'agisse de faire la cuisine ou de changer une roue de voiture. A titre d'exemple en voici quelques unes • c'est une succession de calculs numériques (Larousse). Dans les actions de la vie quotidienne. Toutes ces règles définissent la notation algorithmique. Début 1. 2 Notions de base: Algorithmique : Sciences des algorithmes utilisés notamment en informatique ( Petit larousse). 2.. mais l'analyse du problème. prendre la roue de secours 3. Les algorithmes utilisent un pseudo-langage. en donne les caractéristiques complètes. sortir le cric et la clé à boulons du coffre 6. • c'est un ensemble de règles opératoires propres à un calcul (Petit Robert) • c'est une suite finie d'opérations élémentaires constituant un schéma de calcul ou de résolution d'un problème (Petit Larousse) • c'est un procédé spécial de résolution d'un certain type de problèmes.. l'analyse d'un problème.

• Qu'à une ou plusieurs opérations peuvent être dépendantes de conditions (Si ..1 Syntaxe générale d'un algorithme Un algorithme écrit en langage de conception structuré (L. b.. en précisant que les actions d'un algorithme s'articulent à l’aide de structures de base. retirer complètement la roue endommagée 11.Alors . visser fortement les boulons 17. qu'il s'agisse de la simple addition de 2 nombres ou du pilotage d'un module lunaire. fermer le coffre Fin Ce simple exemple. Elles permettent de décrire de façon statique le comportement dynamique d'un flot d'actions qui se déroulent 3 CONVENTIONS SYNTAXIQUES Nous définissons dans la suite du cours le langage algorithmique ou langage de conception structurée (L. 10.. nous permet de constater • Que l’ordre des opérations est important Il n'est guère possible d'intervertir par exemple les opérations 5 et 6. Ce langage comme tout langage obéit à une syntaxe 3.S) que nous utiliserons.. la clé et la roue crevée Fin si 18. monter la roue de secours 14.) ou bien répétées (Répéter .. Jusqu'à).7. Répéter 8.C. Résultat : entier début afficher "Entrez les valeurs" Lire a Lire b a + b⇓Résultat afficher "Résultat". tourner la manivelle du cric Jusqu'à ce que la roue de secours puisse être placée 13. Répéter 12. dévisser complètement les boulons.C. Ranger le cric. visser les boulons 15 abaisser le véhicule avec le cric 16. Résultat fin . Complétons la définition d'un algorithme. tourner la manivelle du cric jusqu'à ce que la roue crevée ne touche plus le sol 9.S) doit répondre à la syntaxe suivante : Algo <identificateur> [<déclarations>] début [<instructions>]* fin • <identificateur> permet de nommer l’algorithme • <déclarations> permet de déclarer les objets utilisés par l’algorithme • <instructions> permet d'indiquer l’ensemble des actions élémentaires Exemple : algo Somme var a.. Les structures de base d'un algorithme sont : • la structure séquentielle (ensemble d'opérations à la suite les unes des autres) • la structure conditionnelle (ensemble d'opérations soumises à une condition) • la structure répétitive (ensemble d'opérations répétées un nombre fini de fois) Ces trois structures constituent les briques de base de tout algorithme et permettent de résoudre n'importe quel problème.

2 La déclaration des variables La plupart des langages de programmation obligent à déclarer au début tous les objets qui. Exemple de déclarations de variables : Var NomElève . "a" ou "!". . 3. constitutifs de la syntaxe de l’algorithme sont indiqués en gras. Généralement on fait des tableaux à une dimension.2370E+75] • CARACTERE : Il y a 128 caractères ( "A". Dans tous les cas d'un tableau appelé TAB sera adressé par TAB(i).4 Opérateurs et expressions .vrai. Ainsi : • tous les objets sont décrits en tête de l'algorithme. Nous adoptons cette règle lors de l’écriture des algorithmes en L. par exemple le caractère de code 07 est en fait le bip sonore.3 Les types élémentaires des variables • ENTIER : Un objet de ce type peut prendre une valeur entière comprise généralement entre -32768 et +32767 .Certains caractères (de 0 à 19) ne peuvent être imprimés. chacune étant alors repérée par un numéro. ce qui évite toute ambiguïté sur son utilisation. mais appelez le plutôt Total_Facture ou TotalFacture.C. au caractère 1. seront utilisés par la suite.3976E -79 .b : entier Var Montant. • BOOLEEN : Un objet de type BOOLÉEN prend sa valeur dans l'ensemble {. mais il existe également des tableaux à deux dimensions. • CHAINE : Tout objet pouvant prendre comme valeur une suite ou une chaîne de caractères est de ce type. C'est ce que l’on appelle un tableau. La suite peut être vide. La déclaration d’un tableau est la suivante : TABLEAU variable [longueur] : type Exemples : TABLEAU liste_nb [25] : ENTIER 3.S.Les mots-clés. (voir code ASCII). On peut faire un tableau avec des variables de n'importe quel type. Les lignes de l'algorithme sont indentées afin d'en faciliter la lecture. Les tableaux On peut regrouper plusieurs variables sous un même nom. en indiquant leur type. alors que "1" correspond.j) représente la jème colonne et la ième ligne. PrenomElève : chaîne Var a. • en même temps que l'objet on déclare son type.faux. Donnez aux objets des identificateurs parlants !Φ N'appelez pas T un objet représentant le total d'une facture. dans ce cas TAB(i. Exemple : "Bonjour à vous tous" est une expression type chaîne de caractères. "@"). Attention : le symbole 1 correspond à la valeur entière "un". PrixTtc : réel Var Exact : booléen 3. }.. 7. • REEL : Un objet de ce type peut prendre une valeur décimale dont la valeur absolue est dans l'intervalle : [5.

Les parenthèses peuvent être utilisées pour pré-déterminer l’ordre d'interprétation des opérateurs. Exemple d'expressions arithmétiques : A*x^2 + b*x+c MontantHt * 1. Plus la priorité est élevée.4. Ainsi il est possible de comparer des données de même type entre elles pour savoir si elle sont égales. en comparant les codes ASCII respectifs.4. On en utilise essentiellement quatre. permettent la construction d'expression arithmétique. caractère et chaîne de caractères.1 a .4. 3. plus grandes ou plus petites. Exemple Résultat 11 > 8 vrai 11 < 8 faux "A" < "G" vrai "A" > "G" faux "grand" < "petit" vrai "grand" > "petit" faux 3.2 Opérateurs et expressions arithmétiques Opération Opérateur Priorité Exemple Addition + 1 a + b Soustraction .3 Opérateurs relationnels Opérateur Signification = Egal <> Différent < inférieur <= Inférieur ou égal > supérieur >= Supérieur ou égal Les opérateurs relationnels s'appliquent essentiellement aux objets de type entier./ b Elévation à la puissance ^ 3 a ^ b Division entière Div 1 a Div b Reste de la division entière Mod 1 a Mod b Les opérateurs arithmétiques associés aux variables de type entier ou réel.4. qui sont par ordre de priorité croissante : Opérateurs signification Priorité NON Non logique 1 OU Ou logique 2 .b Multiplication * 2 a * b Division / 2 a . de gauche droite.Nous donnons ci-après la liste des opérateurs applicables aux différents types de variables.206 La priorité d'un opérateur conditionne l’ordre d'interprétation de celui-ci dans l’expression arithmétique. plus tôt l'opérateur sera interprété. La comparaison de deus chaînes de caractères est également possible et s'effectue caractère par caractère.1 Opérateur de concaténation Il relie des caractères ou des chaînes de caractères pour constituer une nouvelle chaîne de caractères. Ainsi pour x = 8 l’expression "2*(x + 11)" sera égale à 38.4 Opérateurs et expressions logiques Ils relient des expressions logiques ou des identificateurs. réel. On utilise essentiellement le caractère "&" Exemples "A" & "B" = "AB" "Bon"&"jour" = "Bonjour" 3. 3.

c'est à dire d'afficher un résultat à l'écran et de lire une entrée au clavier.3 Le dialogue avec l'utilisateur Pour permettre au programme de dialoguer avec l'utilisateur. 4. Une expression logique est toujours de type booléen et respecte les tables de vérité définies pour chaque opérateur logique. NON (Vrai ET Faux) = Vrai 2. Variable… . Tables de vérité des opérateurs logiques NON Vrai FAUX Faux Vrai Exemples Non Faux = Vrai Non Vrai= Faux OU Vrai Faux Vrai Vrai Vrai Faux Vrai Faux Exemples Vrai OU Faux = Vrai Vrai OU Vrai = Vrai Exemples d'expressions logiques : 1.ET Et logique 2 OUX Ou exclusif 3 Un opérateur logique ne s'applique qu'aux objets de type booléen.2 Les opérations Les opérations arithmétiques courantes. il faut au moins deux instructions une pour lire. multiplication et division s'écrivent Ainsi : Val1 Val1 Val1 Val1 + Val2⇓Variable -⇓Variable Val2 * Val2⇓Variable / Val2⇓Variable On doit toujours affecter le résultat d'une opération dans une variable. Dans le Pseudo-langage elles s'écrivent ainsi : LIRE Variable AFFICHER Texte. addition. ( (8 >= 82) OU (98> 68) ) ET (182 = 182) ET ("grand" < "petit") = Vrai 4 Les instructions de base : 4.1 L'affectation Valeur⇓Variable Ce qui se lit "variable reçoit valeur" et qui signifie que l'on mémorise la valeur à un endroit nommé variable. (Vrai OU (Vrai ET faux)) = Vrai 3. l'autre pour afficher. soustraction. (5> =10) OU (20 > 18) = Vrai 4. Par exemple : 1⇓i VRAI⇓Termine 4.

Il s'agit donc de deux actions conditionnées par des prédicats complémentaires. b : entier Début afficher "Entrez deux nombres : " Lire a Lire b afficher "Le plus grand des deux est :" Si a >= b Alors afficher a Sinon afficher b Fin Si Fin Exemple2 : Soit à résoudre l'équation du premier degré: Ax + B = 0 . La syntaxe de cette instruction est la suivante : Si <expression logique> ALORS {<instruction si vrai> }* [SINON {<instruction si faux> }*] Fin Si Les crochets signifient que la partie SINON {<instruction si faux> }*] est facultative. et stocke le résultat dans la variable.La première lit tous les caractères qui sont saisis au clavier.4 Exercices : Ecrire l'algorithme pour calculer chacune des expressions suivantes: 1) B = N * (N+1) / 2 2) H = A + (N-1) * R 3) A = B * N + 1 S=A*D-1 4) M = (N-1) * R P = 1 + M² Q=M+P-H 5 La structure alternative II est souvent nécessaire lorsque l'on écrit un programme de distinguer plusieurs cas conditionnant l'exécution de telles ou telles instructions. Exemple : algorithme permettant de calculer et d'afficher la surface S d'un cercle à partir du rayon R: algo Surface var Rayon. La seconde affiche sur l'écran le ou les textes et la valeur des variables. alors on fait cela sinon on fait ceci. Surface : réels Début Lire Rayon 3. exclusivement l'une de l'autre. à un instant donné une action. on utilise une structure alternative : si on est dans tel cas. La structure alternative permet d'exécuter. Pour ce faire. jusqu'à ce que l'utilisateur appuie sur la touche entrée. Exemple1 : Afficher le plus grand des deux nombres a et b Algo PlusGrand Var a.14*Rayon*Rayon⇓Surface Afficher Surface Fin 4. ou une autre action.

On demande: La valeur de x. il est recommandé de mettre toutes les parenthèses afin d'éviter les erreurs. en fonction du montant de la facture (MF).3..3 Exercices : 5.1 Les conditions Pour exprimer les conditions on utilise les opérateurs conditionnels suivants = égal < inférieur > supérieur <= inférieur ou égal >= supérieur ou égal <> différent On peut combiner des conditions à l'aide des opérateurs logiques suivants : ET OU NON XOR (ou exclusif). x prendra les valeurs suivantes: 0≠ x= -B/A si A ◊ La◊ valeur de x est indéterminée si A=0 et B=0 ≠ x est impossible si A=0 et B ◊ 0 On a alors l'algorithme suivant: Algo Equation Var A . (a < 2 ) ET ((b=0) OU (c <> a )) XOR (d=1)) Lorsque l'on écrit de telles conditions. X : réels Début Lire A. B Si A <> 0 Alors -B/A⇓X Afficher X Sinon Si B <> 0 Alors Afficher "Impossible" Sinon Afficher " Indétermination" Fin SI Fin SI Fin 5. Si MF < 1000 alors R= 0 MF≤Si 1000 < 2000 alors R= 4% de MF 2000 alors R= 7% de MF≥Si MF . Suivant les valeurs de A et de B.2 Les actions Les actions qui suivent le SINON ou le ALORS peuvent être une simple instruction une suite d'instructions séparées par des : une autre alternative une répétitive 5. B.1 Calcul d'une remise sur facture: Une société accorde à ses clients une remise (R).On donne : A et B . 5.

1 Exemple Attribution de la mention à un élève en fonction de sa moyenne générale. Mention Fin 6. mutuellement exclusifs. la structure sélective correspond à une imbrication d'alternatives.3.Les données sont: SB . " obtient la mention ". 6 La structure de choix La sélection ou choix multiple permet de présenter une solution à des problèmes ou un nombre important de cas.2 Calcul d'un salaire: Le calcul du salaire d'un ouvrier se fait de la façon suivante: Le salaire total (ST)= Salaire brut (SB) + Prime (P) La prime (P) dépend de la valeur du salaire brut (SB) 1000≤Si SB alors P=200 DH Si SB > 1000 alors P=500 DH Ecrire l’algorithme qui calcule le salaire total . NomElève Lire "Veuillez indiquer la moyenne de l'élève ". Et affiche R et PT 5. Selon <expression> {Cas expression : <instructions>}* [Cas Sinon : <instructions>] {Fin Selon} 6.2 Exercice : CALCUL DU PTTC . MoyenneGénérale Selon MoyenneGénérale Cas >=0 et < "Faible"⇓= 8 : Mention Cas > 8 et <= 12 : "Moyen"⇓Mention Cas >12 et < "Bien"⇓= 15 :Mention Cas > 15 et < "Très bien"⇓= 20 :Mention Cas Sinon Afficher " La moyenne générale n'est pas comprise entre 0 et 20" Fin Selon Afficher "L'élève ". NomElève. sont à envisager en fonction des valeurs prises par une seule variable ou expression. Pour cela on a: Le prix(P) = prix unitaire(PU) * quantité(Q) Sur cette marchandise on a une remise (R) de 10% 4000 DH≥si P Le prix total (PT) = P . 5.4 Un patron décide de calculer le montant de sa participation au prix du repas de ses employés de la façon suivante : si l’employé est célibataire participation de 20% si l’employé est marié participation de 25% si l’employé a des enfants participation de 10% supplémentaires par enfant Si le salaire mensuel est inférieur à 6000 DH la participation est majorée de 10% La participation est plafonnée à 50% Ecrire l’algorithme qui lit les informations au clavier et affiche pour chaque salarié. Mention : chaine Var MoyenneGénerale : réel Début Lire "Veuillez indiquer le nom de l’élève ".R Ecrire l’algorithme qui calcule PT.3 Calcul du prix d'une marchandise: On veut calculer le prix d'une marchandise. Puisque chaque action est exclusive des autres.Représenter l'algorithme qui calcule R. Algo Mention Var Nomeleve. la participation à laquelle il a droit.Les résultats sont: P et ST 5.3.3.

1 Action La sémantique est la suivante: On teste d'abord si <expression logique> est vraie.2 Remarques : • Le test est effectué avant l'exécution du bloc. Dans ce cas on exécute <instruction> puis on boucle de nouveau sur le test de <expression logique>. Bien qu'une seule soit nécessaire. CODE ( de 1 à 4) Résultats: PTTC 7 La structure répétitive Un programme a presque toujours pour rôle de répéter la même action un certain nombre de fois.3333 On a: PTTC = PHT + PHT*TTVA Ecrire l’algorithme qui calcule le PTTC: Données: PHT. Produit = A+A+A+ ." est égal à:" . • Comme il est conseillé de ne pas boucler indéfiniment. d'une marchandise. Voici celles de notre pseudo-langage.1. la plupart des langages de programmation proposent trois types de structures répétitives. • Le bloc <instruction> peut contenir des structures alternatives et des structures répétitives imbriquées.1. Celui-ci est donné par le tableau suivant: CODE Taux de la TVA (TTVA) 1 0. Par contre si <expression logique> est fausse la boucle se termine et le programme poursuit son exécution après "fin tant que". A. Compteur : entier Début 0⇓Produit Afficher "Veuillez indiquez 2 entiers positifs " Lire A Lire B B⇓Compteur Tant que Compteur <> 0 faire Produit + A⇓Produit Compteur⇓Compteur – 1 Fin tant que Afficher "Le produit de ". 7.A.. Produit . il est donc possible de n'avoir aucune exécution du bloc d'instructions. +A (◊⇓Produit = A x B L'addition est effectuée B fois ) La valeur de la variable B est stockée dans une variable décrémentée à chaque boucle." par ". 7.186 4 0.4 Algorithme Algo multiplication Var Produit. Pour ce faire on utilise une structure permettant de dire " Exécute telles actions jusqu'à ce que telle condition soit remplie". une instruction au moins du bloc <instruction> doit agir sur l'expression logique pour la rendre fausse.. à partir de la valeur du prix hors de taxe (PHT) et du code de la TVA.1.1 LA STRUCTURE REPETTTIVE Tant Que…Fin tant que Syntaxe : Tant que <expression logique> faire {<instruction >}* Fin tant que 7. B.1232 3 0. 7.B. 7.07 2 0. Boucle dans laquelle on additionne la valeur de A à la valeur précédente de Produit (Produit est initialisé à 0).On veut calculer le prix toute taxe comprise (PTTC).3 Exemple Multiplication de 2 entiers positifs en n'utilisant que l'addition.1.

Compteur : entier Début 0⇓Produit Afficher "Veuillez indiquez 2 entiers positifs " Lire A Lire B B⇓Compteur Répéter Prod⇓uit Produit + A Compteur – 1⇓Compteur Jusqu’à Compteur = 0 Afficher "Le produit de ". Algo multiplication Var Produit.2. L' <expression logique> est testée.... Dans le cas où elle est égale à vrai . on recommence au point 1. B.3 Exemple Ainsi pour passer de la structure Tant . • l'établissement d'une expression logique correcte. 3.Fin Cet exemple très simple montre les 3 points à vérifier lors de l’utilisation d'une structure répétitive: • l'initialisation des variables qui interviennent dans l'expression logique.2.Jusqu’à permet d'ailleurs de gérer plus facilement le contrôle sur les données à saisir puisqu'un seul message suffit Elle est très souvent utilisée pour contrôler des données saisies.B.2 Remarques • Avec cette forme de structure répétitive..." par ". le programme poursuit son exécution après l'instruction "Jusqu'à " 7. Le bloc <instructions> est exécuté 2. Jusqu'à il suffit d'inverser la condition d'arrêt (Compteur <> 0 devient Compteur = 0) 7. Dans le cas où elle est égale à faux. 7.4 Algorithme Algo multiplication Var Produit. A.1 Action La sémantique est la suivante: 1.." est égal à:" .2. le bloc d'instructions est exécuté au moins une fois ! Cela peut être source d'erreurs dans certains cas.Que à la structure Répéter.Jusqu'à Syntaxe : Répéter {<instruction>}* Jusqu’à (<expression logique>) 7.. A. c'est-à-dire provoquant à un moment donné un arrêt du traitement... • La condition exprimée par l'expression logique est l'expression contraire de celle exprimée dans la structure répétitive de type "Tant que".2 La structure répétitive Répéter .2. 7. B.. Compteur : entier Début 0⇓Produit Répéter Afficher "Veuillez indiquer 2 entiers positifs" Lire A Lire B . Produit Fin Mais dans le cas où B est inférieur ou égal à zéro l'algorithme boucle car les instructions comprises dans la boucle sont exécutées au moins une fois ! D'où la nécessité de forcer l'utilisateur à introduire deux valeurs strictement positives ! La structure répétitive Répéter.A. • les précautions à prendre en cas d'intervention sur les variables utilisées dans l'expression logique.

<expression début>. Produit Fin 7." est égal à:" . Le nombre des répétitions est connu ou déterminable avant la première exécution de l'action concernée.3.3 La structure répétitive Pour .Fin pour Cette action permet de répéter l'exécution d'une ou plusieurs instructions un nombre de fois déterminé. La valeur <identificateur> évolue de <expression début> jusqu’à <expression fin> en fonction de <expression pas> qui par défaut est égale à 1.Jusqu’à (A > 0 et B > 0) B⇓Compteur Répéter Produit + A⇓Produit Compteur –⇓Compteur 1 Jusqu’à Compteur = 0 Afficher "Le produit de ". Syntaxe : Pour <identificateur> de <expression début> à <expression fin> [pas de <expression pas>] {<instructions>}* Fin Pour <identificateur> est une variable de type entier.4 pour que l'on ne soit pas obligé de relancer le programme . 7. Le bloc d'instructions est exécuté jusqu'à ce que <identificateur> prenne la valeur de <expression fin>.B. La condition porte uniquement sur le nombre de répétitions.1 Modifier l'exercice 5..4 Exercices 7. 7.. <expression fin> et <expression pas> sont des expressions numériques de type entier." par ".A.k*10 Fin pour Fin Dans cet algorithme." * 10 = ". 6.3.3. Au début. Cet algorithme délivre les résultats suivants : 1 * 10 = 10 2 * 10 = 20 … 8 * 10 = 80 … 10 * 10 = 100 7. <identificateur> prend la valeur de <expression début>. <identificateur> est une variable assimilée à un compteur qui est automatiquement augmenté ou diminué en fonction de <expression pas>. après chaque passage dans la boucle..4. le pas de progression de l'indice k est implicitement 1. qui est initialisée puis incrémentée ou décrémentée de façon implicite. 5. appelée indice de boucle ou compteur. 7.2 Exemple Affichage de la table de multiplication de 10 Algo Table_Multiplication_De_Dix Var k :entier Début Afficher "table de multiplication de 10" Pour k de 1 à 10 afficher k. L'exécution est conditionnée par l’observation d'une variable de test.1 Action La sémantique est la suivante: 4.

4.2 Ecrire un algorithme qui permette de saisir des nombres entiers et en affiche la somme et la moyenne (on arrête la saisie et on affiche les résultats lorsque l'on saisit la valeur (0). : Dans tous les exercices qui suivent on étudie différents algorithmes permettant de trier un tableau de 10 entiers.B. on prendra en exemple le tableau suivant : 52 10 1 25 62 3 8 55 3 23 Le premier algorithme auquel on pense pour effectuer ce tri est celui ci on cherche le plus petit élément du tableau et on le place en 1er.4. Si l'élément de gauche est supérieur à son voisin de droite on les inverse et on continue avec le suivant. 7.5 le tri bulle Le tri bulle est un tri plus astucieux. on recommence.4 Le tri par sélection N.. donc mal placé.3 Les statistiques On saisit des entiers (comme dans l'exercice précédent) et on les range dans un tableau (maximum 50) Ecrire un algorithme qui affiche la liste.pour chaque employé 7.4. 7. On s'arrête à la fin du tableau. le maximum. 52 10 10 10 10 10 10 10 10 10 10 1 52 1 1 52 1 25 1 25 1 25 1 25 1 25 1 25 1 25 25 25 25 52 52 52 52 52 52 52 62 3 8 62 3 8 62 3 8 62 3 8 62 3 8 3 62 8 3 8 62 3 8 55 3 8 55 3 8 55 55 3 55 3 55 3 55 3 55 3 55 3 55 3 62 3 3 62 3 23 23 23 23 23 23 23 23 23 23 62 On a parcouru tous le tableau. le minimum et la valeur moyenne de ces nombres. Ecrire l'algorithme qui réalise ce tri.4. 52 10 1 25 62 3 8 55 3 23 10 52 1 25 62 3 8 55 3 23 . 7. jusqu'à ce que tout soit bien placé. On prend cet élément et on le range à sa place dans le tableau puis on continue la lecture. puis on cherche le plus petit dans ce qui reste et on le met en second . Afin d'expliquer les algorithmes.4. son principe est de faire remonter petit à petit un élément trop grand vers le haut du tableau en comparant les éléments deux à deux. 7. etc. On parcourt le tableau jusqu'à ce que l'on trouve un élément plus petit que le précédent. Lorsque l'on est en haut du tableau on repart au début et on s'arrête lorsque tous les éléments sont bien placés. 52 10 1 25 62 3 8 55 3 1 52 10 25 62 3 8 55 3 1 3 52 10 25 62 8 55 3 1 3 3 52 10 25 62 8 55 1 3 3 8 52 10 25 62 55 1 3 3 8 10 52 25 62 55 1 3 3 8 10 23 52 25 62 1 3 3 8 10 23 25 52 62 1 3 3 8 10 23 25 52 62 1 3 3 8 10 23 25 52 55 23 23 23 23 23 23 55 55 55 62 Ecrire l'algorithme qui permet de réaliser ce tri.6 le tri par permutation Le tri par permutation est le tri du jeu de cartes..

Chaque matière a un coefficient différent . • Le nombre de paramètres ne doit pas être trop grand ( en général inférieur à 5) car cela nuit à la lisibilité du programme. • Si le but d'une procédure est de calculer une valeur simple. il faut le découper en fonctions et procédures (voir Chapitre suivant) • Les structures de contrôle doivent être indentées. Le tableau résultat est du type TABLEAU CAR [10. 52 10 1 25 62 3 8 55 3 23 Nombre 7 4 0 6 9 1 3 8 1 5 Position 8 5 1 7 10 2 4 9 3 6 Résultat après tri : 1 3 3 8 10 23 25 52 55 62 7. de manière à ce que n'importe qui d'autre que l'auteur soit capable de comprendre ce qu'il fait rien qu'en le lisant. Puis d'afficher ensuite ce tableau. c'est à dire. • II est souvent plus clair d'écrire une fonction booléenne plutôt qu'une condition complexe.1 Factorielle : Ecrire l’algorithme permettant de calculer la factorielle d’un nombre. par exemple.8 le tri alphabétique Le programme consiste à saisir des mots (au maximum 10) de 20 caractères maximum et de les insérer dans un tableau dans l'ordre alphabétique.4. En ce qui concerne les fonctions et procédures. c'est à dire indiquer clairement à quoi elles servent • un algorithme ne doit pas être trop long (une page écran). 9. • A chaque imbrication d'une structure de contrôle. • Une procédure ou une fonction doit être la plus générale possible de manière à pouvoir être réutilisée dans d'autres circonstances.1 1 1 1 1 1 1 10 52 25 62 3 8 55 3 10 25 52 62 3 8 55 3 3 10 25 52 62 8 55 3 3 8 10 25 52 62 55 3 3 8 10 25 52 55 62 3 3 3 8 10 25 52 55 62 3 3 8 10 23 25 52 55 23 23 23 23 23 23 62 Ecrire l'algorithme qui réalise ce tri. il est préférable d'en faire une fonction. 9 Exercices complémentaires 9.4. 8 Règles d'écriture Un programme doit être le plus lisible possible. Pour cela il faut suivre les quelques règles suivantes • le nom des variables doit être significatif.2 Moyenne des notes : On veut calculer la moyenne des notes de plusieurs matières. S'il est trop long.7 le tri par comptage Le tri par comptage consiste pour chaque élément du tableau à compter combien d'éléments sont plus petits que lui. que les instructions qui suivent le ALORS doivent toutes être alignées et décalées d'une tabulation par rapport au SI. on décale d'une tabulation. II en est de même pour les répétitives. 7.20]. grâce à ce chiffre on connaît sa position dans le tableau résultat. il y a aussi des règles à respecter : • On doit toujours être capable de donner un nom significatif à une procédure ou à une fonction.

-le montant de la remise (on l'affichera. leur prix total (prix unitaire * nombre) .le montant de la T.6 %.V. On vous demande de réaliser le programme permettant de calculer la paie des salariés.4 CALCUL D’UNE FACTURE (suite) Modifier l’exercice précédent pour établir la facturation de plusieurs articles livré en un ou plusieurs exemplaires chacun. Pour les heures supplémentaires du soir le taux horaire est de 125%. Si le montant est supérieur à 1 000 DH.La moyenne des notes sur 20 9.le prix unitaire « hors taxes » de chaque article le nombre de chaque article Résultats : . on cherche la place d'un nombre X. même s'il est nul) -le montant net à payer. si il est inférieur on réduit le . Le taux de T.V.Le nom de chaque article .A est supposé être toujours de 18. pour tous les articles.A. On possède une liste de N entiers triés. NB : Vous devez utiliser un nouveau type de données : Date.le prix « hors taxes » de l'ensemble des articles . • Si l’employé est célibataire ou marié et dans ce cas : • le nombre d’enfants.V. 9. • Le taux des frais professionnels. 9. une remise de 1% est accordée.le montant de la T. Le taux de T. Les données à saisir chaque mois sont : • Nombre d’heures normales • Nombre d’heures supplémentaires travaillées entre 5 H et 10 H du soir • Nombre d’heures supplémentaires travaillées entre 5 H et 10 H du soir le week-end • Taux horaire (ou salaire horaire des heures normales). Données : . 9.Données : la note de chaque matière son coefficient Résultats : . On peut effectuer des comparaisons et des calculs sur les dates.le prix « hors taxes » de l'ensemble des articles . -le montant de la remise (on l'affichera. 9.3 CALCUL D’UNE FACTURE Établissez la facturation d'un article livré en un ou plusieurs exemplaires. même s'il est nul) pour tous les articles.Liste contenant : le nom des articles. On compare X à l'élément du milieu de tableau.6 Calcul de la paie : Vous êtes employé dans une SSI.7 Exercice : la recherche dichotomique Cet algorithme permet de ranger un élément à sa place ou de le trouver dans une liste de manière très rapide.A. une remise de 1 % est accordée.A est supposé être toujours de 18. -le montant net à payer. Etablissez l’algorithme permettant de calculer le salaire net d’un employé. Données : le prix unitaire « hors taxes » de l'article le nombre d'articles Résultats : .V.6 %.5 Domaine des Gariguettes Le propriétaire du domaine des Gariguettes vous demande de calculer et d'afficher le montant du séjour de ses clients en sachant que : Le coût d'une nuit en chambre d'hôte est de 175 DH du 1 er mai au 30 juin inclus 210 DH du 1 juillet au 31 août inclus 175 DH du 1er septembre au 15 octobre inclus L'établissement est fermé au public du 16 octobre au 30 avril. Pour les heures supplémentaires du soir du Week-end le taux est de 150% • L’ancienneté. • le taux de cotisation à la CNSS • le taux de cotisation à une retraite complémentaire ( la CIMR) • le taux de cotisation à une assurance maladie. Si le montant est supérieur à 1 000 DH.

9 Facture : Ecrire l'algorithme Facture_elec qui calcule le montant de la facture d'électricité pour les clients d'une Entreprise foumisseuse d'électricité.1/2 + 1/3 ..13 Somme des fractions : Ecrire l'algorithme Somme_Fractions qui calcule la somme : 1 + 1/2 + 1/4 + 1/6 + .14 Série alternée : Ecrire l'algorithme Serie_Alternee qui calcule la somme : 1 . L'élément courant devra alors pointer sur le nouvel élément. C'est ce qu'on appel le tri par insertion. On revient alors en arrière d'un cran. 1 3 3 5 6 8 12 25 26 42 53 55 . une somme approchée de exp(x) définie par : S =1 + x/(1!) + x2/2!)+. Les clients peuvent être des particuliers ou des sociétés.11 Série des puissances : Ecrire l'algorithme Serie_Puissances qui calcule la somme : 1 + 1/3 + 1/9 + . puis de tout retrier. La consommation est divisée par tranche.1/4 + .10 Somme des impairs : Ecrire l'algorithme Somme_Impairs qui calcule la somme des N (N>0) premiers entiers positifs impairs. (N>0). Dans le cas où il n’y a pas encore d’éléments dans la tableau on place la donnée au début. + 1/2N. il faut. (N>0). 9. 9... 9.tableau à sa partie gauche. ± 1/N. décaler toute la deuxième partie du tableau. 9....15 Série approchée : .+ xN /(N !). 9. On réitère l'opération jusqu'à ce que le tableau ait moins de 2 éléments. + 1/3^N (N>0). Dans le cas d'un tableau.. on veut y insérer le chiffre 7 6 ème élément 8 +=> on insère 7 dans 1 3 3 5 6 8 3ème élément 3 ==> on insère 7 dans 5 6 8 2ème élément 6 ==> on insère 7 dans 6 8 ==> 7 est entre 6 et 8 Ecrire le programme qui insère le chiffre à sa place dans le tableau en utilisant fonctions et / ou procédures. si il est supérieur on réduit le tableau à sa partie droite.. plutôt que de la mettre à la fin. chaque tranche ayant un prix Catégorie C<=10 Kw 10< C<=40 Kw C >40Kw Prix Particulier (en DHS/Kw) 2 5 10 Catégorie C<=100 Kw C<=400 Kw C>400 Kw Prix Société (en DHS/Kw) 1 3 5 9. après avoir trouver où devait être inséré le nouvel élément.. Le principe. est le suivant : on parcours la liste jusqu'a tomber sur un élément qui est situé après (dans l'ordre choisi) l'élément à insérer.12 Exponentielle : Ecrire l'algorithme Exponentielle qui calcule pour un réel x . 9. dans le cas d'une liste. 9. en partant de la fin. qui pointera lui-même sur l'élément sur lequel on s'était arrêté en parcourant la liste.8 Tri par insertion il s’agit d’ajouter une nouvelle donnée directement à sa place.

[/hide] .. ± 1/N soit proche de 1..Ecrire l'algorithme Serie_Approchee qui retourne le nombre N tel que la somme : S = 1 + 1/2 .1/3 + 1/4 .33 (avec une erreur E)..

You're Reading a Free Preview

Télécharger
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->