Améliorer vos compétences – Booster votre employabilité – Avoir un métier Module 1 : ALGORITHMIQUE Améliorer vos compétences – Booster votre employabilité – Avoir un métier SOMMAIRE I. Introduction à l’algorithmique ................................................................................................... 3 1. Introduction ................................................................................................................................ 3 2. Pourquoi passer par l’algorithme ?............................................................................................. 3 3. Activités ..................................................................................................................................... 3 II. 1. 2. 3. 4. 5. Notion de base ............................................................................................................................ 5 Définition ................................................................................................................................... 5 Les objets.................................................................................................................................... 5 Formalisme d’un algorithme ...................................................................................................... 5 Comment se prendre pour écrire un algorithme ? ...................................................................... 5 Validité d’un algorithme ............................................................................................................ 6 1. 2. 3. 4. Instructions élémentaires ............................................................................................................ 6 Déclaration des constantes et des variables................................................................................ 6 Affectation .................................................................................................................................. 6 Expressions et opérateurs ........................................................................................................... 8 Instruction d’entrée et sortie ....................................................................................................... 8 1. 2. 3. 4. Les structures conditionnelles .................................................................................................... 9 Structure d’un test ...................................................................................................................... 9 Qu’est-ce qu’une condition ........................................................................................................ 9 Conditions composées .............................................................................................................. 10 Tests imbriqués ........................................................................................................................ 10 III. IV. V. VI. Les structures itératives ............................................................................................................ 11 1. La boucle tant que .................................................................................................................... 12 2. La boucle pour .......................................................................................................................... 12 Travaux dirigés et travaux pratiques ........................................................................................ 13 2 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier I. Introduction à l’algorithmique 1. Introduction Dans la vie de chaque jour, Comme le montrent les activités des pages suivantes, nous utilisons consciemment ou inconsciemment des algorithmes. En comparant un ordinateur à notre système, il peut produire des résultats à partir des informations qui lui sont fournis et les méthodes de résolution permettant de traiter ces informations. Un algorithme représente l’enchainement des actions à réaliser nécessaires à la résolution des problèmes. Pour résoudre un problème en utilisant l’ordinateur, le développeur doit faire une analyse de la situation et écrire sa solution à travers l’algorithme. Ensuite cet algorithme sera traduit en un programme en utilisant un langage de programmation. C’est en exécutant ce programme que l’on pourra avoir les résultats. 2. Pourquoi passer par l’algorithme ? L’algorithme est indépendant du langage de programmation. Les analystes programmeurs réfléchissent sur la spécification du problème et les méthodes pour les résoudre. Ils sont réutilisables et beaucoup sont dans le domaine public. 3. Activités a. Activité 1 Chaque matin, Albert va à l'école. Malheureusement en sortant du lit il est encore un peu endormi et ne sait plus très bien ce qu’il doit faire pour se préparer. Peux-tu aider Albert à se préparer ? Ordonne les étiquettes suivantes. Attention il y a plusieurs possibilités. Enlever son pyjama ; s’habiller ; Mettre son manteau ; Laver son bol de céréales ; Déjeuner ; Se coiffer ; Prendre son sac ; Aller à la douche ; Se laver les dents ; Mettre ses sous-vêtements ; Mettre ses chaussures. 1. 7. 2. 8. 3. 9. 4. 10. 5. 11. 6. 3 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier b. Activité 2 Chaque matin, juste avant d’aller à l’école, Marcel doit choisir mettre un manteau ou non et prendre un parapluie ou non. Son choix dépend évidemment de la météo. A l’aide des étiques suivants, reconstituer l’ordre que suit Marcel pour choisir sa tenue. Mettre un manteau ; Si ; Sinon ; Ne pas mettre de manteau ; prendre un parapluie ; Si ; Il fait froid ; Il pleut ; Alors ; Ne pas prendre de parapluie ; Alors ; Sinon ; Regarder la météo ; Prendre son sac. 0. 1. 2. 3. 8. 9. 4. 5. 6. 7. 10. 11. 12. 13. c. Activité 3 Chaque matin, lors de son déjeuner, Antoine mange des beignets. S’il a faim, il peut manger tant qu’il veut. De même, il peut boire du jus de fruit tant qu’il a soif. A l’aide des étiquettes suivantes reconstituer un algorithme pour le petit déjeuner de Antoine afin qu’il n’ait pas faim en partant à l’école. J’ai soif ; Manger un beignet ; Tant que ; Laver son verre ; J’ai faim ; Tant que ; Boire du jus d’orange ; Tant que ; Ranger la cuisine. 1. 2. 3. 4. 5. 6. 7. 8. 4 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier II. Notion de base 1. Définition Un algorithme peut être défini comme la séquence d’action permettant d’arriver à un résultat déterminé à partir d’une situation donnée. Il doit respecter les règles suivantes : Il est défini sans ambiguïté ; Il se termine après un nombre finis d’opération ; Toutes les opérations doivent pouvoir être effectuées par un homme en utilisant des moyens manuels ; Il manipule des objets qui doivent qui doivent être définis de façons très précise. 2. Les objets Il existe trois (03) types d’objet en algorithmique. Les objets d’entrée : ce sont les données fournies à l’algorithme ; Les objets de sortie : ce sont les résultats produits par l’algorithme ; Les objets internes : ce sont des données des données servant aux manipulations internes de l’algorithme. Un objet est parfaitement défini en connaissant ses trois (03) caractéristiques : Son identificateur (nom de l’objet) : Il est représenté par un ensemble quelconque de caractère alphanumérique (lettre + chiffre) commençant obligatoirement par une lettre. Son type : le type est l’ensemble de valeur constante ou variable et par l’ensemble des opérations que nous pouvons leur appliquer. Exemple : Entier, Réel, Caractère, Chaine de caractère, Booléen etc. Sa valeur : (constante ou variable). Une constante est un objet dont sa valeur ne change pas. Par contre la valeur d’une variable change 3. Formalisme d’un algorithme Un algorithme est défini par les informations suivantes : Son nom Les déclarations des constantes et des variables La liste des actions constituant les traitements à exécuter. Ils sont délimiter par les termes DEBUT et FIN. NB : Afin de permettre une plus grande visibilité de l’algorithme, on fait des commentaires « explicatifs » délimités par les symboles « /* » et « */ ». Exemple : Programme mon_programme /*Déclaration des constantes et des variables*/ CONST nom_Const=valeur VAR nom_Var :type DEBUT Action 1 … Action n FIN 4. Comment se prendre pour écrire un algorithme ? 5 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier Pour écrire un algorithme, il faut se poser des questions suivantes : Quelles sont les données dont on dispose ? (objets d’entrée) Quelles sont les résultats que l’on doit avoir ? (informations à la sortie) Comment obtenir ces résultats ? En appliquant les règles de gestion ; En écrivant toutes les actions nécessaires au traitement ; (Attention aux cas particuliers) 5. Validité d’un algorithme Pour être valable, un algorithme doit répondre aux critères suivant : Le résultat donné doit être le résultat attendu (le bon résultat dans tous les cas de figure) ; L’algorithme s’arrête une fois que sa tâche est accomplie ; Le résultat est donné dans un temps acceptable ; L’algorithme doit gérer au mieux la mémoire de l’ordinateur. III. Instructions élémentaires 1. Déclaration des constantes et des variables Déclaration des constantes Pour déclarer une constante, on utilise le mot clé CONST(ou CONSTANTES). Syntaxe : CONST nom_Const=valeur Exemple : Déclarer une constante nommé nombre de jour qui a pour valeur 12. CONST NBE_JR : 12 Déclarer le nombre pi utilisé en trigonométrie CONST PI=3.14 Déclaration des variables Pour déclarer une variable, on utilise le mot clé VAR (ou Variables) suivi de l’identificateur de la variable et de son type. Syntaxe : VAR nom_Var : type Exemple : VAR N : Entier Perimetre : Réel Reponse : Booléen Nom_de_famille : chaine de caractère 2. Affectation Affecter c'est attribuer une valeur à une variable ("on remplit la boîte"). Elle s’effectue en utilisant le symbole « ». Syntaxe : nom_var valeur. Exemple : Nom_de_famille « SAMATI » NB : La valeur qu’on affecte peut être une expression dont l’évaluation produit un résultat du type de nom_var. 6 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier Exercices d’application Exercice 1 Exercice 2 : 7 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier 3. Expressions et opérateurs Dans une instruction d’affectation, on trouve à gauche de la flèche, un nom de variable, et uniquement cela.et à droite de la flèche, ce qu’on appelle une expression. Une expression est un ensemble de valeurs, reliées par des opérateurs, et équivalent à une seule valeur Exemple d’expression : 7 5+4 123-45+844 Toto-12+5-Riri …sont toutes des expressions valides, pour peu que Toto et Riri soient bien des nombres. Car dans le cas contraire, la quatrième expression n’a pas de sens. En l’occurrence, les opérateurs employés dans ces expressions sont l’addition (+) et la soustraction (-). On peut ainsi définir un opérateur comme un signe qui relie deux valeurs, pour produire un résultat. a. Opérateurs numériques Ce sont les quatre opérations arithmétiques tout ce qu’il y a de classique. + : addition - : soustraction * : multiplication / : Division ^ : Puissance. 45 au carré s’écrira donc 45 ^ 2. Enfin, on a le droit d’utiliser les parenthèses, avec les mêmes règles qu’en mathématiques. La multiplication et la division ont « naturellement » priorité sur l’addition et la soustraction. Les parenthèses ne sont ainsi utiles que pour modifier cette priorité naturelle. Cela signifie qu’en informatique, 12 * 3 + 5 et (12 * 3) + 5 valent strictement la même chose, à savoir 41. Pourquoi dès lors se fatiguer à mettre des parenthèses inutiles ? En revanche, 12 * (3 + 5) vaut 12 * 8 soit 96. Rien de difficile là-dedans, que du normal. b. Opérateur alphanumérique : & Cet opérateur permet de concaténer, autrement dit d’agglomérer, deux chaînes de caractères. Par Exemple : Variables A, B, C en Caractère Début A ← "Gloubi" B ← "Boulga" C←A&B Fin La valeur de C à la fin de l’algorithme est "GloubiBoulga" Exercice d’application Variables A, B, C en Caractères Début A ← "423" B ← "12" C←A+B Fin c. Opérateurs logiques (ou booléens) : Il s’agit du ET, du OU, du NON. 4. Instruction d’entrée et sortie 8 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier a. Instruction d’entrée Dans l’algorithme, on a besoin de dialoguer avec l’utilisateur. Pour cela on pourra lui demander d’entrée des valeurs au clavier. Syntaxe : Saisir (nom_var) ou Lire (nom_var) Dès que le programme rencontre une instruction Lire, l’exécution s’interrompt, attendant la frappe d’une valeur au clavier. La seule chose qui fera exécuter la suite des instructions, c'est que la touche Entrée (Enter) ait été enfoncée. Ainsi il récupère la valeur entrée au clavier et le stocke dans la variable correspondante « nom_var ». b. Instruction de sortie Dans le sens inverse, il est possible d’écrire ou d’afficher quelque chose à l’écran. La syntaxe est : Ecrire nom_var : permet d’afficher la valeur de la variable « nom_var » Ecrire "nom de la variable" : permet d’afficher à l’écran « nom de la variable » Nb : Les bonnes manières du programmeur » : Avant de Lire une variable, il est très fortement conseillé d’écrire des libellés à l’écran, afin de prévenir l’utilisateur de ce qu’il doit saisir à l’écran Exemple Ecrire "Entrez votre nom : " Lire NomFamille IV. Les structures conditionnelles 1. Structure d’un test Dans la vie d’une manière générale ou en algorithmique en particulier, on est amené à faire des choix ou des tests. La syntaxe est la suivante : Si condition Alors Instructions Finsi Ou bien Si condition Alors Instructions 1 Sinon Instructions 2 Finsi Exemple Allez tout droit jusqu’au prochain carrefour Si la rue à droite est autorisée à la circulation Alors Tournez à droite Avancez Prenez la deuxième à gauche Sinon Continuez jusqu’à la prochaine rue à droite Prenez la première à droite Finsi 2. Qu’est-ce qu’une condition 9 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier Une condition est une comparaison. Ce signifie qu’elle est composée de trois éléments : une valeur, un opérateur de comparaison et une autre valeur. Les valeurs peuvent être a priori de n’importe quel type (numériques, caractères…). Mais si l’on veut que la comparaison ait un sens, il faut que les deux valeurs de la comparaison soient du même type ! Les opérateurs de comparaison sont : égal à… différent de… strictement plus petit que… strictement plus grand que… plus petit ou égal à… plus grand ou égal à… L’ensemble des trois éléments composant la condition constitue donc, si l’on veut, une affirmation, qui à un moment donné est VRAIE ou FAUSSE. 3. Conditions composées Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être exprimées sous la forme simple exposée ci-dessus. Supposons qu’une variable moyenne est comprise entre 12 et 16. En fait cette phrase cache non une, mais deux conditions. Car elle revient à dire que « moyenne est supérieure à 12 et moyenne est inférieure à 16 ». Il y a donc bien là deux conditions, reliées par ce qu’on appelle un opérateur logique, le mot ET. Comme on l’a évoqué plus haut, l’informatique met à notre disposition quatre opérateurs logiques : ET, OU, NON, et XOR. Le ET a le même sens en informatique que dans le langage courant. Pour que "Condition1 ET Condition2" soit VRAI, il faut impérativement que Condition1 soit VRAI et que Condition2 soit VRAI. Dans tous les autres cas, "Condition 1 et Condition2" sera faux. Il faut se méfier un peu plus du OU. Pour que "Condition1 OU Condition2" soit VRAI, il suffit que Condition1 soit VRAIE ou que Condition2 soit VRAIE. Le point important est que si Condition1 est VRAIE et que Condition2 est VRAIE aussi, Condition1 OU Condition2 reste VRAIE. Le NON inverse une condition : NON(Condition1) est VRAI si Condition1 est FAUX, et il sera FAUX si Condition1 est VRAI. C'est l'équivalent pour les booléens du signe "moins" que l'on place devant les nombres. Le XOR (OU exclusif) fonctionne de la manière suivante. Pour que "Condition1 XOR Condition2" soit VRAI, il faut que soit Condition1 soit VRAI, soit que Condition2 soit VRAI. Si toutes les deux sont fausses, ou que toutes les deux sont VRAI, alors le résultat global est considéré comme FAUX. Le XOR est donc l'équivalent du "ou bien" du langage courant. Il est à insiste sur le fait que le XOR est une rareté, dont il n’est pas strictement indispensable de s’encombrer en programmation. 4. Tests imbriqués Un SI ouvre donc deux voies, correspondant à deux traitements différents. Mais il y a des tas de 10 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier situations où deux voies ne suffisent pas. Par exemple, un programme devant donner l’état de l’eau selon sa température doit pouvoir choisir entre trois réponses possibles (solide, liquide ou gazeuse). On peut écrire la solution de deux manières différentes : Solution 1 : Variable Temp en Entier Début Ecrire "Entrez la température de l’eau :" Lire Temp Si Temp =< 0 Alors Ecrire "C’est de la glace" FinSi Si Temp > 0 Et Temp < 100 Alors Ecrire "C’est du liquide" Finsi Si Temp > 100 Alors Ecrire "C’est de la vapeur" Finsi Fin Solution 2 : Variable Temp en Entier Début Ecrire "Entrez la température de l’eau :" Lire Temp Si Temp =< 0 Alors Ecrire "C’est de la glace" Sinon Si Temp < 100 Alors Ecrire "C’est du liquide" Sinon Ecrire "C’est de la vapeur" Finsi Finsi Fin Pour la solution 2, nous avons fait des économies : au lieu de devoir taper trois conditions, dont une composée, nous n’avons plus que deux conditions simples. Mais aussi, et surtout, nous avons fait des économies sur le temps d’exécution de l’ordinateur. Si la température est inférieure à zéro, celui-ci écrit dorénavant « C’est de la glace » et passe directement à la fin, sans être ralenti par l’examen d’autres possibilités (qui sont forcément fausses). Cette deuxième version n’est donc pas seulement plus simple à écrire et plus lisible, elle est également plus performante à l’exécution. Les structures de tests imbriqués sont donc un outil indispensable à la simplification et à l’optimisation des algorithmes. NB : Dans le cas de tests imbriqués, le Sinon et le Si peuvent être fusionnés en un SinonSi. On considère alors qu’il s’agit d’un seul bloc de test, conclu par un seul FinSi La solution 2 devient : Variable Temp en Entier Début Ecrire "Entrez la température de l’eau :" Lire Temp Si Temp =< 0 Alors Ecrire "C’est de la glace" SinonSi Temp < 100 Alors V. Ecrire "C’est du liquide" Sinon Ecrire "C’est de la vapeur" Finsi Fin Les structures itératives Les structures itératives ou encore appelées structures répétitives ou encore des boucles sont des structures qui permettent de répéter des taches quand la condition reste vraie. 11 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier 1. La boucle tant que La syntaxe est la suivante : TantQue condition Instructions FinTantQue Explication : Le principe est simple : le programme arrive sur la ligne du TantQue. Il examine alors la valeur de la condition. Si cette valeur est VRAI, le programme exécute les instructions qui suivent, jusqu’à ce qu’il rencontre la ligne FinTantQue. Il retourne ensuite sur la ligne du TantQue, procède au même examen, et ainsi de suite. Le manège enchanté ne s’arrête que lorsque la condition prend la valeur FAUX. Exemple Variable Rep en Caractère Début Rep ← "X" Ecrire "Voulez vous un café ? (O/N)" TantQue Rep <> "O" et Rep <> "N" Lire Rep Si Rep <> "O" et Rep <> "N" Alors Ecrire "Saisie Erronée, Recommencez" FinSi FinTantQue Fin NB : Avec la boucle tant que, il n’est pas possible de savoir au bout de combien d’itération le programme s’arrête. 2. La boucle pour La syntaxe est la suivante : Pour Compteur ← Initial à Final Pas ValeurDuPas Instructions Compteur suivant 12 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier VI. Les tableaux 1. Utilité des tableaux Imaginons que dans un programme, nous ayons besoin simultanément de 12 valeurs (par exemple, des notes pour calculer une moyenne). Evidemment, la seule solution dont nous disposons à l’heure actuelle consiste à déclarer douze variables, appelées par exemple Notea, Noteb, Notec, etc. Bien sûr, on peut opter pour une notation un peu simplifiée, par exemple N1, N2, N3, etc. Mais cela ne change pas fondamentalement notre problème, car arrivé au calcul, et après une succession de douze instructions « Lire » distinctes, cela donnera obligatoirement une atrocité du genre : Moy ← (N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12)/12 La programmation nous permet de rassembler toutes ces variables en une seule, au sein de laquelle chaque valeur sera désignée par un numéro. En bon français, cela donnerait donc quelque chose du genre « la note numéro 1 », « la note numéro 2 », « la note numéro 8 ». C’est largement plus pratique, vous vous en doutez. Un ensemble de valeurs portant le même nom de variable et repérées par un nombre, s’appelle un tableau, ou encore une variable indicée. Le nombre qui, au sein d’un tableau, sert à repérer chaque valeur s’appelle l’indice. Chaque fois que l’on doit désigner un élément du tableau, on fait figurer le nom du tableau, suivi de l’indice de l’élément, entre parenthèses. Notation et utilisation algorithmique Dans notre exemple, nous créerons donc un tableau appelé Note. Chaque note individuelle (chaque élément du tableau Note) sera donc désignée Note(0), Note(1), etc. Eh oui, attention, les indices des tableaux commencent généralement à 0, et non à 1. Un tableau doit être déclaré comme tel, en précisant le nombre et le type de valeurs qu’il contiendra (la déclaration des tableaux est susceptible de varier d'un langage à l'autre. Certains langages réclament le nombre d'éléments, d'autre le plus grand indice... C'est donc une affaire de conventions). En nous calquant sur les choix les plus fréquents dans les langages de programmations, nous déciderons ici arbitrairement et une bonne fois pour toutes que : les "cases" sont numérotées à partir de zéro, autrement dit que le plus petit indice est zéro. lors de la déclaration d'un tableau, on précise la plus grande valeur de l'indice (différente, donc, du nombre de cases du tableau, puisque si on veut 12 emplacements, le plus grand indice sera 11). Au début, ça déroute, mais vous verrez, avec le temps, on se fait à tout, même au pire. Tableau Note(11) en Entier On peut créer des tableaux contenant des variables de tous types : tableaux de numériques, bien sûr, mais aussi tableaux de caractères, tableaux de booléens, tableaux de tout ce qui existe dans un langage donné comme type de variables. Par contre, hormis dans quelques rares langages, on ne peut pas faire un mixage de types différents de valeurs au sein d’un même tableau. L’énorme avantage des tableaux, c’est qu’on va pouvoir les traiter en faisant des boucles. Par exemple, pour effectuer notre calcul de moyenne, cela donnera par exemple : Tableau Note(11) en Numérique Variables Moy, Som en Numérique Début Pour i ← 0 à 11 Ecrire "Entrez la note n°", i Lire Note(i) i Suivant Som ← 0 Pour i ← 0 à 11 Som ← Som + Note(i) 13 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier i Suivant Moy ← Som / 12 Fin NB : On a fait deux boucles successives pour plus de lisibilité, mais on aurait tout aussi bien pu n’en écrire qu’une seule dans laquelle on aurait tout fait d’un seul coup. Remarque générale : l’indice qui sert à désigner les éléments d’un tableau peut être exprimé directement comme un nombre en clair, mais il peut être aussi une variable, ou une expression calculée. Dans un tableau, la valeur d’un indice doit toujours : être égale au moins à 0 (dans quelques rares langages, le premier élément d’un tableau porte l’indice 1). Mais comme je l'ai déjà écrit plus haut, nous avons choisi ici de commencer la numérotation des indices à zéro, comme c’est le cas en langage C et en Visual Basic. Donc attention, Truc(6) est le septième élément du tableau Truc ! être un nombre entier Quel que soit le langage, l’élément Truc(3,1416) n’existe jamais. être inférieure ou égale au nombre d’éléments du tableau (moins 1, si l’on commence la numérotation à zéro). Si le tableau Bidule a été déclaré comme ayant 25 éléments, la présence dans une ligne, sous une forme ou sous une autre, de Bidule(32) déclenchera automatiquement une erreur. 2. Tableaux dynamiques Il arrive fréquemment que l’on ne connaisse pas à l’avance le nombre d’éléments que devra comporter un tableau. Pour parer à ce genre de situation, a-t-on la possibilité de déclarer le tableau sans préciser au départ son nombre d’éléments. Ce n’est que dans un second temps, au cours du programme, que l’on va fixer ce nombre via une instruction de redimensionnement : Redim. Notez que tant qu’on n’a pas précisé le nombre d’éléments d’un tableau, d’une manière ou d’une autre, ce tableau est inutilisable. Exemple : on veut faire saisir des notes pour un calcul de moyenne, mais on ne sait pas combien il y aura de notes à saisir. Le début de l’algorithme sera quelque chose du genre : Tableau Notes() en Numérique Variable nb en Numérique Début Ecrire "Combien y a-t-il de notes à saisir ?" Lire nb Redim Notes(nb-1) … 14 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier VII. Travaux dirigés et travaux pratiques Exercice 1 : Q1 : Quelles seront les valeurs des variables A et Q4 : Quelles seront les valeurs des variables A, B B après exécution des instructions suivantes ? et C après exécution des instructions suivantes ? Q2 : Quelles seront les valeurs des variables A et Q5 : Quelles seront les valeurs des variables A, B B après exécution des instructions suivantes ? et C après exécution des instructions suivantes ? Q3 : Quelles seront les valeurs des variables A, et Q6 : On dispose de trois variables A, B et C. B après exécution des instructions suivantes ? Ecrivez un algorithme transférant à B la valeur de A, à C la valeur de B et à A la valeur de C (toujours quels que soient les contenus préalables de ces variables). Exécuter cet algorithme avec le logiciel AlgoBox 15 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier Exercice 2 Q1 : Quel résultat produit le programme suivant ? Q3 : Ecrire un programme qui demande son prénom à l'utilisateur, et qui lui réponde par un charmant « Bonjour » suivi du prénom. On aura ainsi le dialogue suivant : machine : Quel est votre prénom ? utilisateur : Akouvi machine : Bonjour, Akouvi ! ». Q2 : Ecrire un programme qui demande un Q4 : Ecrire un programme qui lit le prix HT d’un nombre à l’utilisateur, puis qui calcule et affiche article, le nombre d’articles et le taux de TVA, et le carré de ce nombre. qui fournit le prix total TTC correspondant. Faire en sorte que des libellés apparaissent clairement. Q5 : Exécuter ces différents algorithmes sur Algobox Exercice 3 Q1 : Ecrire un algorithme qui demande un nombre Q3 : Ecrire un algorithme qui demande l’âge d’un à l’utilisateur, et l’informe ensuite si ce nombre enfant à l’utilisateur. Ensuite, il l’informe de sa est positif, négatif ou nul. catégorie : "Poussin" de 6 à 7 ans Q2 : Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur "Pupille" de 8 à 9 ans produit est positif, négatif ou nul. "Minime" de 10 à 11 ans "Cadet" après 12 ans. Q4 : Exécuter ces différents algorithmes sur Algobox Exercice 4 Q1 : Ecrire un algorithme qui demande à Q3 : Ecrire un algorithme qui demande un nombre l’utilisateur un nombre compris entre 1 et 3 de départ, et qui ensuite affiche les dix nombres jusqu’à ce que la réponse convienne. suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27. Q2 : Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à 10. 16 Doumez Technologies --------------------------------------------------------------------------------Algorithmique Améliorer vos compétences – Booster votre employabilité – Avoir un métier Exercice 5 Q1 : Réécrire l'algorithme de l’exercice 4 question Q3 : Ecrire un algorithme qui demande un nombre Q3, en utilisant cette fois l'instruction Pour de départ, et qui calcule la somme des entiers jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer : 1 + 2 + 3 + 4 + 5 = 15 Q2 : Ecrire un algorithme qui demande un nombre Q4 : Ecrire un algorithme qui demande de départ, et qui ensuite écrit la table de successivement trois (03) nombres à l’utilisateur, multiplication de ce nombre et qui lui dise ensuite quel était le plus grand et le plus petit parmi ces 03 nombres. Exercice 6 Q1 : Que produit l’algorithme suivant ? Tableau Nb(5) en Entier Variable i en Entier Début Pour i ← 0 à 5 Nb(i) ← i * i i suivant Pour i ← 0 à 5 Ecrire Nb(i) i suivant Fin Q2 : Que produit l’algorithme suivant ? Tableau N(6) en Entier Variables i, k en Entier Début N(0) ← 1 Pour k ← 1 à 6 N(k) ← N(k-1) + 2 k Suivant Pour i ← 0 à 6 Ecrire N(i) i suivant Fin Q3 : Ecrivez un algorithme constituant un tableau, à partir de deux tableaux de même longueur préalablement saisis. Le nouveau tableau sera la somme des éléments des deux tableaux de départ. 17 Doumez Technologies --------------------------------------------------------------------------------Algorithmique