• Aide
  • Eurêkoi Eurêkoi

Livre

Algorithmique et programmation en Java

Résumé

Ce manuel introduit à l'algorithmique et aborde les principes de la programmation impérative procédurale et orientée objet. Il insiste sur les notions de validité et de fiabilité en se fondant sur des notations formelles. Les algorithmes et les structures de données sont traduits et présentés en Java 8. Avec des exercices corrigés. ©Electre 2018


  • Éditeur(s)
  • Date
    • DL 2018
  • Notes
    • IUT, IUP, licence, master, écoles d'ingénieurs
    • La couv. porte en plus : "Les + en ligne"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (445 p.) : ill. ; 24 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-10-078375-5
  • Indice
  • Quatrième de couverture
    • Algorithmique et programmation en Java

      5e édition

      Cet ouvrage est destiné aux étudiants en informatique (IUT, L2, L3 et Ml) et à ceux qui sont en écoles d'ingénieurs.

      La connaissance de l'algorithmique et de la programmation est l'une des bases du métier et des compétences d'un informaticien.

      L'objectif de ce livre est de vous faire comprendre et assimiler des méthodes et des outils qui vous permettront de concevoir des programmes valides et fiables.

      Les 16 premiers chapitres enseignent la programmation impérative en s'appuyant sur une méthodologie objet et le langage Java.

      Les 11 derniers expliquent en détail les structures de données abstraites classiques (listes, graphes, arbres...) et les algorithmes fondamentaux (recherche, tri...).

      Les notions de cours dont illustrées par 211 exercices dont la plupart sont corrigés.

      Les + en ligne

      Les corrigés de la plupart des 211 exercices ainsi que des ressources complémentaires sont disponibles sur le site de l'auteur : http://www. polytech.unice.fr/~va/index-alaoprog.html et sur celui de Dunod : https://dunod.com/EAN/9782100783755


  • Tables des matières
      • Algorithmique et programmation en Java

      • 5e édition

      • Vincent Granet

      • Dunod

      • Avant-proposXVII
      • Chapitre 1 • Introduction1
      • 1.1 Environnement matériel1
      • 1.2 Environnement logiciel4
      • 1.3 Les langages de programmation6
      • 1.4 Construction des programmes12
      • 1.5 Démonstration de validité13
      • Chapitre 2 • Actions élémentaires17
      • 2.1 Lecture d'une donnée17
      • 2.2 Exécution d'une routine prédéfinie18
      • 2.3 Écriture d'un résultat19
      • 2.4 Affectation d'un nom à un objet19
      • 2.5 Déclaration d'un nom20
      • 2.5.1 Déclaration de constantes20
      • 2.5.2 Déclaration de variables21
      • 2.6 Règles de déduction21
      • 2.6.1 L'affectation21
      • 2.6.2 L'appel de routine22
      • 2.7 Le programme sinus écrit en Java22
      • 2.8 Exercices24
      • Chapitre 3 • Types élémentaires25
      • 3.1 Le type entier26
      • 3.2 Le type réel27
      • 3.3 Le type booléen30
      • 3.4 Le type caractère31
      • 3.5 Constructeurs de types simples33
      • 3.5.1 Les types énumérés33
      • 3.5.2 Les types intervalles34
      • 3.6 Exercices34
      • Chapitre 4 • Expressions37
      • 4.1 Évaluation38
      • 4.1.1 Composition du même opérateur plusieurs fois38
      • 4.1.2 Composition de plusieurs opérateurs différents38
      • 4.1.3 Parenthésage des parties d'une expression39
      • 4.2 Type d'une expression39
      • 4.3 Conversions de type40
      • 4.4 Un exemple40
      • 4.5 Exercices43
      • Chapitre 5 • Énoncés structurés45
      • 5.1 Énoncé composé45
      • 5.2 Énoncés conditionnels46
      • 5.2.1 Énoncé choix46
      • 5.2.2 Énoncé si48
      • 5.3 Résolution d'une équation du second degré49
      • 5.4 Exercices53
      • Chapitre 6 • Routines55
      • 6.1 Intérêt55
      • 6.2 Déclaration d'une routine56
      • 6.3 Appel d'une routine57
      • 6.4 Transmission des paramètres58
      • 6.4.1 Transmission par valeur59
      • 6.4.2 Transmission par résultat59
      • 6.5 Retour d'une routine59
      • 6.6 Localisation60
      • 6.7 Règles de déduction62
      • 6.8 Exemples63
      • 6.8.1 Équation du second degré63
      • 6.8.2 Date du lendemain64
      • 6.9 Exercices67
      • Chapitre 7 • Programmation par objets69
      • 7.1 Objets et classes69
      • 7.1.1 Création des objets70
      • 7.1.2 Destruction des objets71
      • 7.1.3 Accès aux attributs71
      • 7.1.4 Attributs de classe partagés72
      • 7.1.5 Les classes en Java72
      • 7.2 Les méthodes73
      • 7.2.1 Accès aux méthodes74
      • 7.2.2 Constructeurs74
      • 7.2.3 Constructeurs en Java75
      • 7.2.4 Les méthodes en Java75
      • 7.3 Assertions sur les classes77
      • 7.4 Exemples78
      • 7.4.1 Équation du second degré78
      • 7.4.2 Date du lendemain81
      • 7.5 Exercices84
      • Chapitre 8 • Énoncés itératifs87
      • 8.1 Forme générale87
      • 8.2 L'énoncé tantque88
      • 8.3 L'énoncé répéter89
      • 8.4 Finitude90
      • 8.5 Exemples90
      • 8.5.1 Factorielle90
      • 8.5.2 Minimum et maximum91
      • 8.5.3 Division entière92
      • 8.5.4 Plus grand commun diviseur93
      • 8.5.5 Multiplication93
      • 8.5.6 Puissance94
      • 8.6 Exercices95
      • Chapitre 9 • Les tableaux97
      • 9.1 Déclaration d'un tableau97
      • 9.2 Dénotation d'un composant de tableau98
      • 9.3 Modification sélective99
      • 9.4 Opérations sur les tableaux99
      • 9.5 Les tableaux en Java99
      • 9.6 Un exemple101
      • 9.7 Les chaînes de caractères103
      • 9.8 Exercices105
      • Chapitre 10 • L'énoncé itératif pour107
      • 10.1 Forme générale107
      • 10.2 Forme restreinte108
      • 10.3 Les énoncés pour de Java108
      • 10.4 Exemples110
      • 10.4.1 Le schéma de Horner110
      • 10.4.2 Exemple en Java : nombres binaires111
      • 10.4.3 Un tri interne simple112
      • 10.4.4 Confrontation de modèle114
      • 10.5 Complexité des algorithmes117
      • 10.6 Exercices119
      • Chapitre 11 • Les tableaux à plusieurs dimensions123
      • 11.1 Déclaration123
      • 11.2 Dénotation d'un composant de tableau124
      • 11.3 Modification sélective124
      • 11.4 Opérations124
      • 11.5 Tableaux à plusieurs dimensions en Java125
      • 11.6 Exemples125
      • 11.6.1 Initialisation d'une matrice125
      • 11.6.2 Ligne de somme maximale126
      • 11.6.3 Matrice symétrique127
      • 11.6.4 Demi-matrice carrée128
      • 11.6.5 Produit de matrices129
      • 11.6.6 Carré magique130
      • 11.7 Exercices132
      • Chapitre 12 • Héritage137
      • 12.1 Classes héritières137
      • 12.2 Redéfinition de méthodes140
      • 12.3 Recherche d'un attribut ou d'une méthode141
      • 12.4 Polymorphisme et liaison dynamique142
      • 12.5 Classes abstraites144
      • 12.6 Héritage simple et multiple144
      • 12.7 Héritage et assertions145
      • 12.7.1 Assertions sur les classes héritières145
      • 12.7.2 Assertions sur les méthodes145
      • 12.8 Relation d'héritage ou de clientèle146
      • 12.9 L'héritage en Java147
      • 12.10 Exercices150
      • Chapitre 13 • Fonctions anonymes153
      • 13.1 Paramètres fonctions154
      • 13.1.1 Fonctions anonymes en Java155
      • 13.1.2 Filtrage, foreach et map157
      • 13.1.3 Continuation159
      • 13.2 Fonctions anonymes en résultat161
      • 13.2.1 Composition161
      • 13.2.2 Curryfication162
      • 13.3 Fermeture164
      • 13.3.1 Fermeture en Java164
      • 13.3.2 Lambda récursives166
      • 13.4 Exercices167
      • Chapitre 14 • Les exceptions169
      • 14.1 Émission d'une exception169
      • 14.2 Traitement d'une exception170
      • 14.3 Le mécanisme d'exception de Java171
      • 14.3.1 Traitement d'une exception171
      • 14.3.2 Émission d'une exception172
      • 14.4 Exercices173
      • Chapitre 15 • Les fichiers séquentiels175
      • 15.1 Déclaration de type176
      • 15.2 Notation176
      • 15.3 Manipulation des fichiers177
      • 15.3.1 Écriture177
      • 15.3.2 Lecture178
      • 15.4 Les fichiers de Java179
      • 15.4.1 Fichiers d'octets179
      • 15.4.2 Fichiers d'objets élémentaires181
      • 15.4.3 Fichiers d'objets structurés185
      • 15.5 Les fichiers de texte186
      • 15.6 Les fichiers de texte en Java186
      • 15.7 Automate et reconnaissance de mots188
      • 15.8 Exercices193
      • Chapitre 16 • Récursivité195
      • 16.1 Récursivité des actions196
      • 16.1.1 Définition196
      • 16.1.2 Finitude196
      • 16.1.3 Écriture récursive des routines196
      • 16.1.4 La pile d'évaluation199
      • 16.1.5 Quand ne pas utiliser la récursivité ?200
      • 16.1.6 Récursivité directe et croisée202
      • 16.1.7 Zéro d'une fonction204
      • 16.2 Récursivité des objets205
      • 16.3 Exercices208
      • Chapitre 17 • Structures de données211
      • 17.1 Définition d'un type abstrait212
      • 17.2 L'implémentation d'un type abstrait214
      • 17.3 Utilisation du type abstrait216
      • Chapitre 18 • Structures linéaires219
      • 18.1 Les listes219
      • 18.1.1 Définition abstraite220
      • 18.1.2 L'implémentation en Java221
      • 18.1.3 Énumération233
      • 18.2 Les piles237
      • 18.2.1 Définition abstraite237
      • 18.2.2 L'implémentation en Java238
      • 18.3 Les files241
      • 18.3.1 Définition abstraite242
      • 18.3.2 L'implémentation en Java242
      • 18.4 Les dèques243
      • 18.4.1 Définition abstraite244
      • 18.4.2 L'implémentation en Java244
      • 18.5 Exemple d'utilisation d'une Pile245
      • 18.6 Exercices247
      • Chapitre 19 • Graphes251
      • 19.1 Terminologie252
      • 19.2 Définition abstraite d'un graphe253
      • 19.3 L'implémentation en Java254
      • 19.3.1 Matrice d'adjacence256
      • 19.3.2 Listes d'adjacence258
      • 19.4 Parcours d'un graphe260
      • 19.4.1 Parcours en profondeur260
      • 19.4.2 Parcours en largeur261
      • 19.4.3 Programmation en Java des parcours de graphe262
      • 19.5 Exemple263
      • 19.6 Exercices263
      • Chapitre 20 • Structures arborescentes265
      • 20.1 Terminologie266
      • 20.2 Les arbres267
      • 20.2.1 Définition abstraite268
      • 20.2.2 L'implémentation en Java269
      • 20.2.3 Algorithmes de parcours d'un arbre272
      • 20.3 Arbre binaire273
      • 20.3.1 Définition abstraite274
      • 20.3.2 L'implémentation en Java275
      • 20.3.3 Parcours d'un arbre binaire278
      • 20.4 Représentation binaire des arbres généraux280
      • 20.5 Exercices281
      • Chapitre 21 • Tables285
      • 21.1 Définition abstraite286
      • 21.1.1 Ensembles286
      • 21.1.2 Description fonctionnelle286
      • 21.1.3 Description axiomatique286
      • 21.2 Représentation des éléments en Java286
      • 21.3 Représentation par une liste288
      • 21.3.1 Liste non ordonnée288
      • 21.3.2 Liste ordonnée290
      • 21.3.3 Recherche dichotomique292
      • 21.4 Représentation par un arbre ordonné294
      • 21.4.1 Recherche d'un élément295
      • 21.4.2 Ajout d'un élément295
      • 21.4.3 Suppression d'un élément296
      • 21.5 Les arbres AVL298
      • 21.5.1 Rotations299
      • 21.5.2 Mise en oeuvre302
      • 21.6 Arbres 2-3-4 et bicolores306
      • 21.6.1 Les arbres 2-3-4306
      • 21.6.2 Mise en oeuvre en Java309
      • 21.6.3 Les arbres bicolores311
      • 21.6.4 Mise en oeuvre en Java316
      • 21.7 Tables d'adressage dispersé321
      • 21.7.1 Le problème des collisions323
      • 21.7.2 Choix de la fonction d'adressage323
      • 21.7.3 Résolution des collisions325
      • 21.8 Exercices329
      • Chapitre 22 • Files avec priorité333
      • 22.1 Définition abstraite333
      • 22.2 Représentation avec une liste334
      • 22.3 Représentation avec un tas334
      • 22.3.1 Premier335
      • 22.3.2 Ajouter336
      • 22.3.3 Supprimer337
      • 22.3.4 L'implémentation en Java338
      • 22.4 Exercices341
      • Chapitre 23 • Algorithmes de tri343
      • 23.1 Introduction343
      • 23.2 Tris internes344
      • 23.2.1 L'implantation en Java345
      • 23.2.2 Méthodes par sélection345
      • 23.2.3 Méthodes par insertion350
      • 23.2.4 Tri par échanges355
      • 23.2.5 Comparaisons des méthodes359
      • 23.2.6 Tri sans comparaison de clés361
      • 23.3 Tris externes363
      • 23.4 Exercices366
      • Chapitre 24 • Algorithmes sur les graphes369
      • 24.1 Composantes connexes369
      • 24.2 Fermeture transitive371
      • 24.3 Plus court chemin374
      • 24.3.1 Algorithme de Dijkstra374
      • 24.3.2 Algorithme de Bellman-Ford378
      • 24.3.3 Algorithme A*379
      • 24.3.4 Algorithme IDA*381
      • 24.4 Tri topologique383
      • 24.4.1 L'implémentation en Java384
      • 24.4.2 Existence de cycle dans un graphe386
      • 24.4.3 Tri topologique inverse386
      • 24.4.4 L'implémentation en Java386
      • 24.5 Exercices387
      • Chapitre 25 • Algorithmes de rétro-parcours391
      • 25.1 Écriture récursive391
      • 25.2 Le problème des huit reines393
      • 25.3 Écriture itérative395
      • 25.4 Problème des sous-suites396
      • 25.5 Jeux de stratégie398
      • 25.5.1 Stratégie MinMax398
      • 25.5.2 Coupure α-β401
      • 25.5.3 Profondeur de l'arbre de jeu404
      • 25.6 Exercices405
      • Chapitre 26 • Interfaces graphiques409
      • 26.1 Systèmes interactifs409
      • 26.2 Conception d'une application interactive411
      • 26.3 Environnements graphiques413
      • 26.3.1 Système de fenêtrage414
      • 26.3.2 Caractéristiques des fenêtres416
      • 26.3.3 Boîtes à outils418
      • 26.3.4 Générateurs420
      • 26.4 Interfaces graphiques en Java420
      • 26.4.1 Une simple fenêtre421
      • 26.4.2 Convertisseur Celsius-Fahrenheit423
      • 26.4.3 Un composant graphique pour visualiser des couleurs427
      • 26.4.4 Applets430
      • 26.5 Exercices432
      • Bibliographie435
      • Index439

  • Origine de la notice:
    • Electre
  • Disponible - 681.21(07) GRA

    Niveau 3 - Informatique