Algorithmique et programmation en Java Cou[s et exe[cices cor[igés 4e édition "

Algorithmique et programmation en Java Cou[s et exe[cices cor[igés 4e édition "O 0 c: ::J 0 '<t" T"-1 0 N @ ...., ..c: Ol ·c >­ a. 0 u Illustration de couverture : Abstract background - Spheres © Dreaming Andy - Fotolia.com d'enseignement supérieur, provoquant une baisse brutale des achats de livres et de revues, au point que la possibilité même pour Le pictogramme qui figure ci-contre mérite une explication. Son objet est d'alerter le lecteur sur la menace que représente pour l'avenir de l'écrit, particulièrement dans le domaine DANGER de l'édition technique et universi­ taire, le développement massif du photocopillage. @) Le Code de la propriété intellec­ tuelle du 1er juillet 1992 interdit en effet expressément la photoco­ pie à usage collectif sans autori­ les auteurs de créer des œuvres nouvelles et de les faire éditer cor­ rectement est aujourd'hui menacée. Nous rappelons donc que toute reproduction, partielle ou totale, de la présente publication est LE PHOTOCœLLAG E interdite sans autorisation de TUE LE LIVRE l'auteur, de son éditeur ou du sation des ayants droit. Or, cette pratique s'est généralisée dans les établissements Centre français d'exploitation du droit de copie (CFC, 20, rue des Grands-Augustins, 75006 Paris). © Dunod, 2000, 2004, 2010, 2014 5 rue Laromiguière, 75005 Paris www.dunod.com ISBN 978-2-10-071452-0 Le Code de la propriété intellectuelle n'autorisant, aux termes de l'article L. 122- 5, 2° et 3° a), d'une part, que les «copies ou reproductions strictement réservées à l'usage privé du copiste et non destinées à une utilisation collective» el, d'autre part, que les analyses et les courtes citations dans un but d'exemple et d'illustration, « toute représentation ou reproduction intégrale ou partielle faite sans le consentement de l'auteur ou de ses ayants droit ou ayants cause est illicite » (art. L. 1224). Cette représentation ou reproduction, par quelque procédé que ce soit, constitue­ rait donc une contrefaçon sanctionnée par les ar ticles L. 335-2 et suivants du Code de la propriété intellectuelle. -0 0 c: =i 0 "<:t" ,..-1 0 N @ ..... ..c: O'l ·c >­ Cl. 0 u à Maud .µ ..c Ol ï::: >- 0. 0 u Table des matières AVANT-PROPOS XV CHAPITRE 1 • INTRODUCTION 1 1.1 Environnement matériel 1 1.2 Environnement logiciel 4 1.3 Les langages de programmation 5 1.4 Construction des programmes 11 1.5 Démonstration de validité 13 CHAPITRE 2 • ACTIONS ÉLÉMENTAIRES 15 2.1 Lecture d'une donnée 15 -0 2.2 Exécution d'une routine prédéfinie 16 0 c: 2.3 Écriture d'un résultat 17 =i 0 "<:t' ,..-1 2.4 Affectation d'un nom à un objet 17 0 2.5 Déclaration d'un nom 18 N @ ..... 2.5.1 Déclaration de constantes 18 ..c 2.5.2 Déclaration de variables 19 O'l ·c >- 2.6 Règles de déduction 19 Cl. 0 u 2.6.1 L'affectation 19 2.6.2 L'appel de procédure 20 2.7 Le programme sinus écrit en Java 20 2.8 Exercices 22 CHAPITRE 3 • TYPES ÉLÉMENTAIRES 23 3.1 Le type entier 24 3.2 Le type réel 25 VIII Algorithmique et programmation en Java 3.3 Le type booléen 28 3.4 Le type caractère 29 3.5 Constructeurs de types simples 31 3.5.1 Les types énumérés 31 3.5.2 Les types intervalles 32 3.6 Exercices 32 CHAPITRE 4 • EXPRESSIONS 35 4.1 Évaluation 36 4.1.1 Composition du même opérateur plusieurs fois 36 4.1.2 Composition de plusieurs opérateurs différents 36 4.1.3 Parenthésage des parties d'une expression 37 4.2 Type d'une expression 37 4.3 Conversions de type 38 4.4 Un exemple 38 4.5 Exercices 41 CHAPITRE 5 • ÉNONCÉS STRUCTURÉS 43 5.1 Énoncé composé 43 5.2 Énoncés conditionnels 44 5.2.1 Énoncé choix 44 5.2.2 Énoncé si 46 5.3 Résolution d'une équation du second degré 47 5.4 Exercices 50 CHAPITRE 6 • PROCÉDURES ET FONCTIONS 53 6.1 Intérêt 53 6.2 Déclaration d'une routine 54 -0 6.3 Appel d'une routine 55 0 c: 6.4 Transmission des paramètres 56 =i 0 "<:t' 6.4.1 Transmission par valeur 57 ,..-1 0 6.4.2 Transmission par résultat 57 N @ 6.5 Retour d'une routine 57 ..... ..c: 6.6 Localisation 58 O'l ·c >- 6.7 Règles de déduction 60 Cl. 0 u 6.8 Exemples 61 6.9 Exercices 65 CHAPITRE 7 •PROGRAMMATION PAR OBJETS 67 7.1 Objets et classes 67 7 .1.1 Création des objets 68 7.1.2 Destruction des objets 69 7.1.3 Accès aux attributs 69 T able des matières IX 7.1.4 Attributs de classe partagés 70 7.1.5 Les classes en Java 70 7.2 Les méthodes 71 7.2.1 Accès aux méthodes 72 7.2.2 Constructeurs 72 7.2.3 Constructeurs en Java 73 7.2.4 Les méthodes en Java 73 7.3 Assertions sur les classes 75 7.4 Exemples 76 7.4.1 Équation du second degré 76 7.4.2 Date du lendemain 79 7.5 Exercices 82 CHAPITRE 8 • ÉNONCÉS ITÉRATIFS 85 8.1 Forme générale 85 8.2 L'énoncé tantque 86 8.3 L'énoncé répéter 87 8.4 Finitude 88 8.5 Exemples 88 8.5.1 Factorielle 88 8.5.2 Minimum et maximum 89 8.5.3 Division entière 89 8.5.4 Plus grand commun diviseur 90 8.5.5 Multiplication 91 8.5.6 Puissance 91 8.6 Exercices 92 CHAPITRE 9 •LES TABLEAUX 95 -0 9.1 Déclaration d'un tableau 95 0 c: 9.2 Dénotation d'un composant de tableau 96 =i 0 "<:t" 9.3 Modification sélective 97 ,..-1 0 9.4 Opérations sur les tableaux 97 N @ ..... 9.5 Les tableaux en Java 97 ..c: 9.6 Un exemple 99 O'l ·c >- 9.7 Les chaînes de caractères 101 Cl. 0 u 9.8 Exercices 102 CHAPITRE 10 • L'ÉNONCÉ ITÉRATIF POUR 105 10.1 Forme générale 105 10.2 Forme restreinte 106 10.3 Les énoncés pour de Java 106 10.4 Exemples 108 10.4.1 Le schéma de HORNER 108 X Algorithmique et programmation en Java 10.4.2 Un tri interne simple 109 10.4.3 Confrontation de modèle 110 10.5 Complexité des algorithmes 1 14 10.6 Exercices 116 CHAPITRE 11 • LES TABLEAUX À PLUSIEURS DIMENSIONS 119 11.1 Déclaration 119 11.2 Dénotation d'un composant de tableau 120 11.3 Modification sélective 120 11.4 Opérations 121 11.5 Tableaux à plusieurs dimensions en Java 121 11.6 Exemples 122 11.6.1 Initialisation d'une matrice 122 11.6.2 Matrice symétrique 122 11.6.3 Produit de matrices 123 11.6.4 Carré magique 124 11 . 7 Exercices 126 CHAPITRE 12 •HÉRITAGE 13 1 12.1 Classes héritières 131 12.2 Redéfinition de méthodes 134 12.3 Recherche d'un attribut ou d'une méthode 135 12.4 Polymorphisme et liaison dynamique 136 12.5 Classes abstraites 137 12.6 Héritage simple et multiple 138 12.7 Héritage et assertions 139 12.7.1 Assertions sur les classes héritières 139 12.7.2 Assertions sur les méthodes 139 -0 12.8 Relation d'héritage ou de clientèle 139 0 c: 12.9 L'héritage en Java 140 =i 0 "<:t' ,..-1 CHAPITRE 13 • FONCTIONS ANONYMES 143 0 N @ 13.1 Paramètres fonctions 144 ..... 13.1.1 Fonctions anonymes en Java 145 ..c: O'l ·c 13.1.2 Foreach et map 147 >- Cl. 0 13.1.3 Continuation 148 u 13.2 Fonctions anonymes en résultat 150 13.2.1 Composition 150 13.2.2 Cu rryfication 15 1 13.3 Fermeture 152 13.3.1 Fermeture en Java 153 13.3.2 Lambda récursives 154 13 .4 Exercices 155 -0 0 c: =i 0 "<:t" ,..-1 0 N @ ..... ..c: O'l ·c >- Cl. 0 u T able des matières CHAPITRE 14 • LES EXCEPTIONS 14.1 Émission d'une exception 14.2 Traitement d'une exception 14.3 Le mécanisme d'exception de Java 14.3.1 Traitement d'une exception 14.3.2 Émission d'une exception 14.4 Exercices CHAPITRE 15 • LES FICHIERS SÉQUENTIELS 15.1 Déclaration de type 15.2 Notation 15.3 Manipulation des fichiers 15.3.1 Écriture 15.3.2 Lecture 15.4 Les fichiers de Java 15.4.1 Fichiers d'octets 15.4.2 Fichiers d'objets élémentaires 15.4.3 Fichiers d'objets structurés 15.5 Les fichiers de texte 15.6 Les fichiers de texte en Java 15.7 Exercices CHAPITRE 16 • RÉCURSIVITÉ 16.1 Récursivité des actions 16.1.1 Définition 16.1.2 Finitude 16.1.3 Écriture récursive des routines 16.1.4 La pile d'évalution 16.1.5 Quand ne pas utiliser la récursivité? 16.1.6 Récursivité directe et croisée 16.2 Récursivité des objets 16.3 Exercices CHAPITRE 17 • STRUCTURES DE DONNÉES 17 .1 Définition d'un type abstrait 17.2 timplémentation d'un type abstrait 17.3 Utilisation du type abstrait CHAPITRE 18 • STRUCTURES LINÉAIRES 18.1 Les listes 18.1.1 Définition abstraite 18.1.2 timplémentation en Java 18.1.3 Énumération XI 157 1 57 158 159 159 160 1 61 163 164 164 165 165 166 1 67 167 169 173 173 1 74 178 181 1 82 182 182 182 185 186 1 88 190 192 195 196 198 200 203 203 204 205 216 -0 0 c: =i 0 "<:t" ,..-1 0 N @ ..... ..c: O'l ·c >­ Cl. 0 u XII Algorithmique et programmation en Java 18.2 Les piles 18.2.1 Définition abstraite 18.2.2 L'implémentation en Java 18.3 Les files 18.3.1 Définition abstraite 18.3.2 L'implémentation en Java 18.4 Les dèques 18.4.1 Définition abstraite 18.4.2 L'implémentation en Java 18.5 Exercices CHAPITRE 19 • GRAPHES 19.1 Terminologie 19.2 Définition abstraite d'un graphe 19.3 L'implémentation en Java 19.3.1 Matrice d'adjacence 19.3.2 Listes d'adjacence 19.4 Parcours d'un graphe 19.4.1 Parcours en profondeur 19.4.2 Parcours en largeur 19.4.3 Programmation en Java des parcours de graphe 19.5 Exercices CHAPITRE 20 • STRUCTURES ARBORESCENTES 20.1 Terminologie 20.2 Les arbres 20.2.1 Définition abstraite 20.2.2 L'implémentation en Java 20.2.3 Algorithmes de parcours d'un arbre 20.3 Arbre binaire 20.3.1 Définition abstraite 20.3.2 L'implémentation en Java 20.3.3 Parcours d'un arbre uploads/Litterature/ algorithmique-et-programmation-en-java.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager