Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence Appliquée IAG Année universitaire 2009 2010 R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 1 / 21
Plan du cours 1 Introduction 2 Environnement algorithmique 3 Variables 4 Structures conditionnelles 5 Structures itératives 6 Tableaux 7 Sous-programmes 8 Mode de passage de paramètres R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 2 / 21
Plan du cours 1 Introduction 2 Environnement algorithmique 3 Variables 4 Structures conditionnelles 5 Structures itératives 6 Tableaux 7 Sous-programmes 8 Mode de passage de paramètres R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 3 / 21
Exemple introductif Indiquer le chemin de l hôtel à un touriste égaré : 1 Allez tout droit jusqu au prochain carrefour, 2 puis prenez à droite, 3 ensuite prenez la deuxième à gauche et vous y êtes. Est-ce que la rue est autorisée à la circulation? 1 Allez tout droit jusqu au prochain carrefour et là regardez à droite. 2 Si la rue est autorisée à la circulation, alors : 1 prenez la, 2 puis, prenez la deuxième à gauche. 3 Si en revanche elle est en sens interdit, alors : 1 continuez jusqu à la prochaine à droite, 2 prenez celle-là, 3 ensuite, prenez la première à droite. R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 4 / 21
La structure d un test En algorithmique, il y a deux formes possibles pour un test : Structure simple Si Booléen Alors Instructions Structure complète Si Booléen Alors Instructions 1 Sinon Instructions 2 Un booléen est une expression dont la valeur est VRAI ou FAUX. Elle peut-être : 1 une variable de type booléen ; 2 une condition. R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 5 / 21
La structure d un test Description de la structure simple : Si Booléen Alors Instructions Arrivée à la première ligne (Si... Alors), la machine examine la valeur du booléen : Si le booléen a pour valeur VRAI, alors la machine exécute la série d instructions. Si le booléen a pour valeur FAUX, alors la machine saute directement aux instructions situées après le. R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 6 / 21
La structure d un test Description de la structure complète : Si Booléen Alors Instructions 1 Sinon Instructions 2 Arrivée à la première ligne (Si... Alors), la machine examine la valeur du booléen : Si le booléen a pour valeur VRAI, alors la machine exécute la série d instructions 1. Au moment où la machine arrive au mot Sinon, elle saute directement à la première instruction située après le. Si le booléen a pour valeur FAUX, alors la machine saute directement aux instructions situées après le Sinon. La machine exécute la série d instructions 2. R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 7 / 21
La structure d un test 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 cette rue Prenez la première à droite R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 8 / 21
Qu est-ce qu une condition? Définition Une condition est une comparaison qui, à un moment donné, est vraie ou fausse. Une condition est donc composée de trois éléments : 1 une valeur ; 2 un opérateur de comparaison ; 3 une autre valeur. Important Les valeurs peuvent être a priori de n importe quel type (numériques, caractères, etc.) 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! R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 9 / 21
Qu est-ce qu une condition? 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 à... Exemples de conditions : Toto 50 Fifi = Loulou (à ne pas confondre avec l affectation) Ruru 24,5 R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 10 / 21
Qu est-ce qu une condition? Important Les opérateurs de comparaison peuvent s employer avec des caractères. Ceux-ci sont codés par la machine dans l ordre alphabétique. De plus, les majuscules sont systématiquement placées avant les minuscules. Exemples de conditions sur des caractères : p > m VRAI papa < maman FAUX Toto = toto FAUX T < t VRAI Papa < maman VRAI Totu > Tota VRAI R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 11 / 21
Les conditions composées Comment exprimer la condition Toto est inclus entre 5 et 8? Cette phrase cache deux conditions : 1 Toto est supérieur à 5 (Toto > 5) 2 Toto est inférieur à 8 (Toto < 8) Le deux conditions sont reliées par l opérateur logique ET. La condition s exprime : (Toto > 5) ET (Toto < 8) Les opérateurs logiques : ET : la conjonction ; OU : la disjonction ; NON : la négation. R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 12 / 21
Les conditions composées La conjonction : Le ET a le même sens en informatique que dans le langage courant. Pour que (Condition 1) ET (Condition 2) soit : VRAI, il faut impérativement que Condition 1 soit VRAI et que Condition 2 soit VRAI. Dans tous les autres cas, (Condition 1) ET (Condition 2) sera FAUX. La table de vérité : (Condition 1) ET (Condition 2) Condition 1 VRAI Condition 1 FAUX Condition 2 VRAI VRAI FAUX Condition 2 FAUX FAUX FAUX R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 13 / 21
Les conditions composées La disjonction : Pour que (Condition 1) OU (Condition 2) soit : VRAI, il suffit que Condition 1 soit VRAI ou que Condition 2 soit VRAI. FAUX, il faut que Condition 1 soit FAUX et que Condition 2 soit FAUX aussi. La table de vérité : (Condition 1) OU (Condition 2) Condition 1 VRAI Condition 1 FAUX Condition 2 VRAI VRAI VRAI Condition 2 FAUX VRAI FAUX R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 14 / 21
Les conditions composées La négation : le NON inverse une condition. NON (Condition 1) est : VRAI si Condition 1 est FAUX. FAUX si Condition 1 est VRAI. La table de vérité : NON (Condition 1) Condition 1 VRAI Condition 1 FAUX FAUX VRAI R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 15 / 21
Les tests imbriqués Si Booléen Alors Instructions 1 Sinon Instructions 2 Graphiquement, on peut facilement représenter la structure d un test comme un aiguillage de chemin de fer. Un SI ouvre deux voies, correspondant à deux traitements différents. Instructions 1 Si Instructions 2 Il y a beaucoup de situations où deux voies ne suffisent pas! R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 16 / 21
Les tests imbriqués Instructions 1 Instructions 2 Si Si Instructions 3 R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 17 / 21
Les tests imbriqués Exemple : Un algorithme qui donne l état de l eau selon sa température. Il doit pouvoir fournir trois réponses possibles : (1) solide ; (2) liquide ou (3) gazeuse. Algorithme Temperature Eau 1 Var : Temp : réel Début Lire ( Entrez la température de l eau : ; Temp) Si (Temp 0) Alors Ecrire ( C est de la glace ) Si (Temp > 0) ET (Temp < 100) Alors Ecrire ( C est du liquide ) Si (Temp 100) Alors Ecrire ( C est de la vapeur ) Fin R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 18 / 21
Les tests imbriqués Exemple : Un algorithme qui donne l état de l eau selon sa température. Il doit pouvoir fournir trois réponses possibles : (1) solide ; (2) liquide ou (3) gazeuse. Algorithme Temperature Eau 2 Var : Temp : réel Début Lire ( Entrez la température de l eau : ; 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 ) Fin R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 19 / 21
Les tests imbriqués Si Booléen 1 Alors Instructions 1 Sinon Si Booléen 2 Alors Instructions 2 Sinon Instructions 3 De manière plus simplifiée : Si Booléen 1 Alors Instructions 1 Sinon Si Booléen 2 Alors Instructions 2 Sinon Instructions 3 Important Dans le cas de tests imbriqués, le Sinon et le Si peuvent être fusionnés en un Sinon Si. On considère alors qu il s agit d un seul bloc de test, conclu par un seul. R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 20 / 21
Plan du cours 1 Introduction 2 Environnement algorithmique 3 Variables 4 Structures conditionnelles 5 Structures itératives 6 Tableaux 7 Sous-programmes 8 Mode de passage de paramètres R. Ben Messaoud (FSEGN) Algorithmique I 2009 2010 21 / 21