Je n'ai pas encore tout lu. Mais les explications me permettent de visualiser le contenu du livre et ainsi me l'approprier.
GNINOU VALDES C- Livres et vidéos
- Algorithmique - Des bases à la programmation orientée objet en Java (avec exercices et corrigés) (2e édition)
Algorithmique Des bases à la programmation orientée objet en Java (avec exercices et corrigés) (2e édition)
1 avis
Tous les langages de programmation ont leurs spécificités mais lorsqu'un développeur crée un nouveau programme, la première étape est toujours la même : réfléchir à l'enchaînement des différentes actions à réaliser par la machine. L'objectif de ce livre est de vous apprendre à comprendre et concevoir les algorithmes permettant le fonctionnement d'un programme.Pour cela, après une introduction générale sur l'algorithmique, vous apprenez les bases de la...
Consulter des extraits du livre en ligne
Aperçu du livre papier
- Niveau Initié à Confirmé
- Nombre de pages 550 pages
- Parution novembre 2023
- Niveau Initié à Confirmé
- Parution novembre 2023
Tous les langages de programmation ont leurs spécificités mais lorsqu'un développeur crée un nouveau programme, la première étape est toujours la même : réfléchir à l'enchaînement des différentes actions à réaliser par la machine. L'objectif de ce livre est de vous apprendre à comprendre et concevoir les algorithmes permettant le fonctionnement d'un programme.
Pour cela, après une introduction générale sur l'algorithmique, vous apprenez les bases de la programmation en utilisant du pseudo-code : variables, conditionnelles, boucles, tableaux, procédures et fonctions.
Ensuite, ce livre présente les concepts de la programmation orientée objet, utilisée par la plupart des langages actuels, en utilisant l'algorithmique mais également comment programmer en orienté objet avec Java. Ainsi, vous apprenez à créer des classes et des instances de celles-ci, à créer des associations entre elles, à utiliser la notion d'héritage, de classes abstraites et d'interfaces. Vous serez capable de traiter des exceptions et de traquer les bugs de vos applications. Vous apprendrez à utiliser la généricité afin de coder des méthodes, des interfaces et des classes génériques.
Un chapitre du livre est consacré à l'organisation de la mémoire afin de mieux comprendre le fonctionnement de la programmation.
Enfin, le dernier chapitre du livre présente la notion de complexité d'un algorithme en illustrant cela au travers de différents algorithmes de tris de tableaux.
Afin de vous aider à mettre en pratique et à développer votre maîtrise de l'algorithmique et de Java, des exercices sont proposés avec leurs corrections en pseudo-code ainsi que leurs implémentations en Java.
La plupart des algorithmes (exemples et exercices) de ce livre sont implémentés en Java et les sources, directement utilisables, sont disponibles en téléchargement sur le site www.editions-eni.fr.
Pour cela, après une introduction générale sur l'algorithmique, vous apprenez les bases de la programmation en utilisant du pseudo-code : variables, conditionnelles, boucles, tableaux, procédures et fonctions.
Ensuite, ce livre présente les concepts de la programmation orientée objet, utilisée par la plupart des langages actuels, en utilisant l'algorithmique mais également comment programmer en orienté objet avec Java. Ainsi, vous apprenez à créer des classes et des instances de celles-ci, à créer des associations entre elles, à utiliser la notion d'héritage, de classes abstraites et d'interfaces. Vous serez capable de traiter des exceptions et de traquer les bugs de vos applications. Vous apprendrez à utiliser la généricité afin de coder des méthodes, des interfaces et des classes génériques.
Un chapitre du livre est consacré à l'organisation de la mémoire afin de mieux comprendre le fonctionnement de la programmation.
Enfin, le dernier chapitre du livre présente la notion de complexité d'un algorithme en illustrant cela au travers de différents algorithmes de tris de tableaux.
Afin de vous aider à mettre en pratique et à développer votre maîtrise de l'algorithmique et de Java, des exercices sont proposés avec leurs corrections en pseudo-code ainsi que leurs implémentations en Java.
La plupart des algorithmes (exemples et exercices) de ce livre sont implémentés en Java et les sources, directement utilisables, sont disponibles en téléchargement sur le site www.editions-eni.fr.
Téléchargements
Avant-propos
- Introduction
Introduction à l’algorithmique
- Introduction
- Les algorithmes hors du domaine de l’informatique
- Les objectifs de l’algorithmique
- 1. La conception
- 2. La complexité
- 3. La calculabilité
- 4. La correction
- Les représentations possibles pour un algorithme informatique
- 1. Les logigrammes
- 2. Le pseudo-code
Le pseudo-code
- La structure de l’algorithme
- Les commentaires
- La déclaration de variables
- 1. Qu’est-ce qu’une variable ?
- 2. Les types
- 3. La déclaration d’une variable
- L'affectation d'une valeur
- La déclaration d'une constante
- Les opérations
- 1. Les opérations arithmétiques
- a. Les quatre opérations arithmétiquesusuelles
- b. La division entière et son reste
- c. Les opérateurs d’affectation combinés à unopérateur arithmétique
- d. L’incrémentation et la décrémentation
- e. La priorité d’exécution des calculs
- 1. Les opérations arithmétiques
- 2. Les opérateurs de comparaison
- a. L’égalité
- b. La différence
- c. La supériorité et l’infériorité
- 3. Les opérateurs booléens
- a. L’opérateur et
- b. L’opérateur ou
- c. L’opérateur non
- 1. L’écriture de messages à l’utilisateur
- 2. L’affichage formaté en Java
- 3. L’affichage standard et l’affichagedes erreurs en Java
- 4. La saisie de valeur par l’utilisateur
- 1. L’utilisation de Notepad++ pour écriredu pseudo-code
- 2. Les environnements de développement intégré
- 1. Valeurs des variables
- 2. Quels affichages ?
- 3. Il fait quoi ?
- 4. Vitesse moyenne
- 1. Valeurs des variables
- 2. Quels affichages ?
- 3. Il fait quoi ?
- 4. Vitesse moyenne
Les conditionnelles
- Présentation
- La structure de contrôle Si (forme simple)
- La structure de contrôle Si (forme double)
- L'imbrication des structures de contrôle
- La structure de contrôle Selon
- L’opérateur ternaire ? :
- Exercices
- 1. La météo
- 2. La météo version 2
- 3. Le nom du mois
- 4. Le temps de cuisson
- 5. Le bulletin de paie
- Solutions des exercices
- 1. La météo
- 2. La météo version 2
- 3. Le nom du mois
- 4. Le temps de cuisson
- 5. Le bulletin de paie
Les boucles
- Présentation
- La structure de contrôle Pour
- La structure de contrôle TantQue
- La structure de contrôle Répéter
- Le choix de la boucle la plus adaptée
- Les boucles imbriquées
- Exercices
- 1. La moyenne de notes (version 1)
- 2. La moyenne de notes (version 2)
- 3. La moyenne de notes (version 3)
- 4. Devinez à quel nombre je pense
- 5. À moi de trouver
- 6. Que fait cet algorithme ?
- 7. Affichage de répliques de films (version1)
- 8. Affichage de répliques de films (version2)
- 9. Saisie d’un multiple de trois
- 10. ASCII Art !
- 11. ASCII Art 2
- Solutions des exercices
- 1. La moyenne de notes (version 1)
- 2. La moyenne de notes (version 2)
- 3. La moyenne de notes (version 3)
- 4. Devinez à quel nombre je pense
- 5. À moi de trouver
- 6. Que fait cet algorithme ?
- 7. Affichage de répliques de films (version1)
- 8. Affichage de répliques de films (version2)
- 9. Saisie d’un multiple de trois
- 10. ASCII Art !
- 11. ASCII Art 2
Les tableaux
- Présentation
- La déclaration d’un tableau
- L’utilisation d’un tableau
- Le parcours d’un tableau
- Les tableaux : un type référence
- Les tableaux multidimensionnels
- Exercices
- 1. Décollage immédiat
- 2. Nombres d’occurrences
- 3. Moyenne de notes (version 4)
- 4. Machine à voter
- 5. Palindrome
- 6. Que fait-il donc ?
- 7. Matrix
- 8. Micro bataille navale
- 9. Morpion
- Solutions des exercices
- 1. Décollage immédiat
- 2. Nombres d’occurrences
- 3. Moyenne de notes (version 4)
- 4. Machine à voter
- 5. Palindrome
- 6. Que fait-il donc ?
- 7. Matrix
- 8. Micro bataille navale
- 9. Morpion
Les procédures et fonctions
- Présentation
- La déclaration d'un sous-algorithme
- 1. Déclaration d’une procédure
- 2. Déclaration d’une fonction
- L'appel à un sous-algorithme
- 1. L’appel à une procédure
- 2. L’appel à une fonction
- La transmission d'informations entre un sous-algorithme et l'algorithme appelant
- 1. Les constantes globales
- 2. Le passage de paramètres
- a. Le passage en paramètres des types valeur
- b. Le passage en paramètre des types référence
- 3. Le retour d’une fonction
- 1. C’est le plus grand
- 2. Micro bataille navale (version 2)
- 3. Un tableau et des fonctions
- 4. Le jeu du saute-mouton
- 5. ASCII Art Studio
- 1. C’est le plus grand
- 2. Micro bataille navale (version 2)
- 3. Un tableau et des fonctions
- 4. Le jeu du saute-mouton
- 5. ASCII Art Studio
La programmation orientée objet
- Présentation
- 1. Qu’est-ce que la programmation orientée objet?
- 2. L’intérêt de la programmation orientéeobjet
- Les notions de classe et d'instance
- La déclaration d'une classe
- Les attributs d’instance
- Les constantes
- Les méthodes d'instance
- 1. La déclaration d’une méthode d’instance
- 2. Les méthodes Getters et Setters
- 3. La surcharge de méthodes
- La création d’une instance
- 1. La déclaration et l’instanciation d’une variablede type classe
- 2. Les tableaux d’instances
- Les constructeurs
- 1. Le constructeur par défaut
- 2. Les constructeurs
- 3. La surcharge de constructeurs
- Les attributs de classe
- Les méthodes de classe
- 1. La déclaration d’une méthode declasse
- 2. L’appel à une méthode declasse
- 3. Récapitulatif des méthodes de classepar rapport aux méthodes d’instance
- Les instances : un type référence
- Exercices
- 1. Les dés
- 2. Les clients
- 3. Micro bataille navale (version 3)
- 4. Micro bataille navale (version 4)
- Solutions des exercices
- 1. Les dés
- 2. Les clients
- 3. Micro bataille navale (version 3)
- 4. Micro bataille navale (version 4)
Les relations entre les classes
- Présentation
- L'utilisation d'une classe par une autre
- Les associations
- L’héritage
- 1. La notion d’héritage
- 2. La déclaration de l’héritage
- 3. Les constructeurs et l’héritage
- a. Le constructeur par défaut
- b. Définir un constructeur
- 4. La substitution de méthodes
- 5. Le transtypage
- a. Le transtypage ascendant
- b. Le transtypage descendant
- c. Le transtypage et les méthodes substituées
- 1. La définition
- 2. L’accès aux attributs
- 1. L’encapsulation des constructeurs
- 2. Un nommage différent pour les créateursd’instance
- 3. Le renvoi d’un sous-type
- 1. La bataille de dés
- 2. Les clients (version 2)
- 1. La bataille de dés
- 2. Les clients (version 2)
Les éléments abstraits
- Les classes abstraites
- Les méthodes abstraites
- 1. La déclaration de méthodes abstraites
- 2. L’implémentation d’une méthode abstraite
- 3. L’appel à des méthodes abstraites
- Les interfaces
- 1. La déclaration d’une interface
- 2. L’implémentation d’une interface
- 3. Le transtypage et les interfaces
- 4. Les méthodes par défaut en Java
- Exercices
- 1. La location de cycles
- a. Les classes et leurs attributs
- b. Les méthodes
- c. Le code
- 1. La location de cycles
- 2. Vitesse moyenne version multilingue
- 1. La location de cycles
- a. Les classes et leurs attributs
- b. Les méthodes
- c. Le code
Les erreurs et les exceptions
- Présentation
- Les erreurs détectées à la compilation
- Les erreurs détectées à l'exécution
- 1. Les erreurs irrécupérables
- a. La saturation de la pile des appels de méthodes
- b. La saturation de la mémoire
- c. Solutions
- 1. Les erreurs irrécupérables
- 2. Les exceptions en algorithmique
- a. Le traitement d’une exception
- b. La levée d’une exception
- 3. Les exceptions en Java
- a. La levée d’une exception
- b. Les catégories d’exceptions
- c. La propagation d’une exception
- d. Le traitement d’une exception
- e. Les traitements à effectuer dans tous lescas
- 4. Les exceptions personnalisées en Java
- 1. Le calcul de la racine carrée
- 2. La calculatrice en Java
- a. Création d’une classe DepassementCapaciteException
- b. Création de la classe utilitaire Operation
- c. Création de la calculatrice
- 1. Le calcul de la racine carrée
- 2. La calculatrice en Java
- a. Création d’une classe DepassementCapaciteException
- b. Création de la classe utilitaire Operation
- c. Création de la calculatrice
La généricité
- Présentation
- Les procédures et les fonctions génériques
- 1. La déclaration
- 2. L’appel
- 3. L’utilisation du type génériquedans la procédure ou la fonction
- 4. Les contraintes sur un type générique
- a. Type avec des valeurs ordonnées
- b. Type implémentant une interface
- c. Type héritant d’une classe
- 5. Plusieurs types génériques
- 1. La déclaration
- 2. L’instanciation
- 1. La déclaration
- 2. L’implémentation
- a. L’implémentation par une classe non générique
- b. L’implémentation par une classe générique
- 1. Les méthodes génériques
- a. La déclaration
- b. L’appel
- c. Les méthodes génériquesde Java
- a. Type héritant d’une classe ou implémentantune interface
- b. Type de valeurs ordonnées
- a. La déclaration
- b. L’instanciation
- c. Les classes génériques de Java
- a. La déclaration
- b. L’implémentation
- c. Les interfaces génériques de Java
- 1. Tirage au sort
- 2. À l’envers
- 3. Se mélanger les pinceaux
- 4. Le plus grand
- 5. Procédures et fonctions génériquesen Java
- 6. Apprentissage liste de vocabulaire
- 7. Le podium
- 1. Tirage au sort
- 2. À l’envers
- 3. Se mélanger les pinceaux
- 4. Le plus grand
- 5. Procédures et fonctions génériquesen Java
- a. Tirage au sort
- b. À l’envers
- c. Se mélanger les pinceaux
- d. Le plus grand
La mémoire
- Présentation
- Les bases
- 1. Les nombres entiers
- a. Les bases utilisées en informatique
- b. Notation
- c. La conversion d’une base vers la base dix
- d. La conversion de la base dix vers une autre base
- 1. Les nombres entiers
- 2. Les nombres réels
- a. La conversion d’une base vers la base dix
- b. La conversion de la base dix vers une autre base
- 1. Les octets
- a. Les bits et les octets
- b. Les multiples
- 1. La forme normalisée
- 2. La norme IEEE-754
- a. Le codage du signe
- b. Le codage de l’exposant
- c. Le codage de la mantisse
- d. L’assemblage
- e. Les valeurs particulières
- 1. Le code ASCII
- 2. Les pages nationales ou ASCII étendu
- 3. L’Unicode
- a. L’UTF-32
- b. L’UTF-16
- c. L’UTF-8
- a. L’incrémentation et la décrémentation
- b. Le changement de type
- c. L’addition et la soustraction
- d. La comparaison
- 1. La pile
- 2. Le tas
- 3. Les instances et les tableaux
- a. Les instances
- b. Les instances et l’héritage
- c. Les tableaux
- d. Les opérations sur les instances et les tableaux
- a. Le passage en paramètre de types valeur
- b. Le passage en paramètre de types référence
- a. Le retour d’un type valeur
- b. Le retour d’un type référence
- 1. Conversion d’une base à une autre
- a. Convertir les valeurs suivantes en base 10
- b. Convertir les valeurs suivantes en base 2 et en base16
- c. Convertir les valeurs suivantes en base 16
- d. Convertir les valeurs suivantes en base 2
- e. Convertir les valeurs suivantes en base 10
- f. Convertir les valeurs suivantes en base 2
- a. Comment sont codées les valeurs suivantesen byte ?
- b. Comment sont codées les valeurs suivantesen short ?
- c. Comment sont codées les valeurs suivantesen int ?
- a. Quelles valeurs sont codées par les octetssuivants ?
- b. Comment sont codées les valeurs suivantesen float ?
- 1. Conversion d’une base à une autre
- a. Convertir les valeurs suivantes en base 10
- b. Convertir les valeurs suivantes en base 2 et en base16
- c. Convertir les valeurs suivantes en base 16
- d. Convertir les valeurs suivantes en base 2
- e. Convertir les valeurs suivantes en base 10
- f. Convertir les valeurs suivantes en base 2
- a. Comment sont codées les valeurs suivantesen byte ?
- b. Comment sont codées les valeurs suivantesen short ?
- c. Comment sont codées les valeurs suivantesen int ?
- a. Quelles valeurs sont codées par octets suivants?
- b. Comment sont codées les valeurs suivantesen float ?
- a. UTF-8
- b. UTF-32
- c. UTF-16
La complexité des algorithmes
- Présentation
- L’ordre de grandeur de la complexité
- Les catégories de complexité
- Illustration avec les algorithmes de tri
- 1. Le tri par sélection
- a. Le principe de fonctionnement
- b. L’algorithme
- c. Un exemple d’utilisation
- d. La complexité
- 1. Le tri par sélection
- 2. Le tri à bulles
- a. Le principe de fonctionnement
- b. L’algorithme
- c. Un exemple d’utilisation
- d. La complexité
- 3. Le tri par insertion
- a. Le principe de fonctionnement
- b. L’algorithme
- c. Un exemple d’utilisation
- d. La complexité
- 4. Le tri de Shell
- a. Le principe de fonctionnement
- b. L’algorithme
- c. Un exemple d’utilisation
- d. La complexité
- 5. Le tri fusion
- a. Le principe de fonctionnement
- b. L’algorithme
- c. Un exemple d’utilisation
- d. La complexité
- 6. Le tri rapide
- a. Le principe de fonctionnement
- b. L’algorithme
- c. Un exemple d’utilisation
- d. La complexité
- 7. Le tri par tas
- a. Le principe de fonctionnement
- b. L’algorithme
- c. Un exemple d’utilisation
- d. La complexité
- 8. Synthèse
- 9. Les limites de la complexité
- 1. L’ordre de grandeur
- 2. L’implémentation des algorithmes de tri enJava
- 1. L’ordre de grandeur
- 2. L’implémentation des algorithmes de tri enJava
Hervé BOISGONTIER
Hervé BOISGONTIER a travaillé pour les Universités d'Orsay et de Strasbourg sur le développement d'applications dans différents langages de programmation et sur des projets de traitement d'images et de réalité virtuelle. Aujourd’hui formateur en développement informatique sur différents langages de programmation depuis plus de 10 ans, il propose au lecteur des livres réellement efficaces, et empreints de toute sa pédagogie, sur des langages tels que HTML, PHP, Java, SQL ou Transact-SQL ainsi que sur la mise en pratique du Green IT et de l’accessibilité dans le métier d’informaticien. Il s’intéresse également depuis longtemps au développement durable. A ce titre, il a suivi les formations Ecoconception de services numériques par GreenIT.fr et Développer des sites web accessibles par Access42 et obtenu les certifications associées.
En savoir plus