1. Livres & vidéos
  2. Algorithmique - Entraînez-vous et améliorez votre pratique de la programmation (exemples en Java et Python) (2e édition)

Algorithmique Entraînez-vous et améliorez votre pratique de la programmation (exemples en Java et Python) (2e édition)

Informations

Livraison possible dès le 08 décembre 2025
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • Livres rédigés par des auteurs francophones et imprimés à Nantes

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
  • Livres rédigés par des auteurs francophones et imprimés à Nantes

Les points forts du livre :

  • Une progression pédagogique rigoureuse pour maîtriser les fondamentaux algorithmiques
  • Des exercices concrets et variés pour développer la capacité de modélisation
  • Un focus avancé sur la récursivité et les structures de données complexes
Consulter des extraits du livre en ligne Aperçu de la version papier
  • Niveau Initié à Confirmé
  • Nombre de pages 348 pages
  • Parution septembre 2025
  • Niveau Initié à Confirmé
  • Parution septembre 2025

Ce livre sur l’algorithmique s’adresse à toute personne qui désire améliorer sa maîtrise d’un langage de programmation et en particulier celle des langages Java ou Python. Il propose de nombreux exercices pratiques de difficulté variable pour compléter sa pratique de la programmation (construction d’index, calcul d’intersection de rectangles, calcul de la distance entre deux mots, simulation d’une course automobile, mini-interpréteur d’expression).

La programmation est introduite d’abord avec les concepts de variables, boucles, tests, tableaux et sous-programmes. La programmation par objets est ensuite abordée de façon très progressive (écriture de petites classes, gestion des chaînes de caractères, petite hiérarchie de classes).
Un chapitre particulier est consacré à la récursivité et les structures de données complexes (listes, arbres, piles) font l’objet du dernier chapitre.

Une connaissance des principaux concepts des langages Java ou Python est un prérequis à la lecture de ce livre.

Pour les apports théoriques sur ce sujet, Editions ENI édite, dans la collection Ressources Informatiques, le livre " Algorithmique - Techniques fondamentales de programmation".

 

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-409-05132-6
  • EAN : 9782409051326
  • Ref. ENI : TP2ALG

Caractéristiques

  • HTML
  • ISBN : 978-2-409-05133-3
  • EAN : 9782409051333
  • Ref. ENI : LNTP2ALG

Téléchargements

Avant-propos
  1. Objectif de ce livre
  2. Comment utiliser ce livre ?
    1. 1. Objectif
    2. 2. Prérequis
    3. 3. Énoncés
    4. 4. Indices
    5. 5. Corrigés
Énoncé 1 : Variables, boucles et instructions de test
  1. Introduction
  2. Prérequis
    1. 1. Questions générales
    2. 2. Questions Java
    3. 3. Questions Python
  3. Énoncé 1.1 : Affichage de 4/3
  4. Énoncé 1.2 : Conversion de degrés en radians et vice versa
  5. Énoncé 1.3 : Calcul de la moyenne de quatre nombres entiers
  6. Énoncé 1.4 : Somme des n premiers nombres entiers pairs
  7. Énoncé 1.5 : Livret d'épargne
  8. Énoncé 1.6 : Année bissextile
  9. Énoncé 1.7 : Calcul de l'impôt sur le bénéfice des sociétés luxembourgeoises
  10. Énoncé 1.8 : Produit des n premiers nombres entiers impairs
  11. Énoncé 1.9 : Calcul de la moyenne de n nombres entiers
  12. Énoncé 1.10 : Suite de Fibonacci
  13. Énoncé 1.11 : L'utilisateur devine un nombre pair
  14. Énoncé 1.12 : L'ordinateur devine un nombre pair
  15. Énoncé 1.13 : Calcul du PGCD de deux nombres entiers positifs
Corrigé 1
  1. Prérequis
  2. Corrigé 1.1 : Affichage de 4/3
  3. Corrigé 1.2 : Conversion de degrés en radians et vice versa
  4. Corrigé 1.3 : Calcul de la moyenne de quatre nombres entiers
  5. Corrigé 1.4 : Somme des n premiers nombres entiers pairs
  6. Corrigé 1.5 : Livret d'épargne
  7. Corrigé 1.6 : Année bissextile
  8. Corrigé 1.7 : Calcul de l'impôt sur le bénéfice des sociétés luxembourgeoises
  9. Corrigé 1.8 : Produit des n premiers nombres entiers impairs
  10. Corrigé 1.9 : Calcul de la moyenne de n nombres entiers
  11. Corrigé 1.10 : Suite de Fibonacci
  12. Corrigé 1.11 : L'utilisateur devine un nombre pair
  13. Corrigé 1.12 : L'ordinateur devine un nombre pair
  14. Corrigé 1.13 : Calcul du PGCD de deux nombres entiers positifs
Énoncé 2 : Tableaux
  1. Introduction
  2. Prérequis
    1. 1. Questions générales
    2. 2. Questions Java
    3. 3. Questions Python
  3. Énoncé 2.1 : Moyenne des éléments d'un tableau
  4. Énoncé 2.2 : Variance et écart type des éléments d'un tableau
  5. Énoncé 2.3 : Recherche séquentielle d'une valeur dans un tableau
  6. Énoncé 2.4  : Valeurs communes à deux tableaux
  7. Énoncé 2.5 : Insertion d'une valeur dans un ensemble d'entiers
  8. Énoncé 2.6 : Suppression d'une valeur dans un ensemble d'entiers
  9. Énoncé 2.7 : Insertion d'une valeur dans un ensemble d'entiers (version basée sur un tableau trié de valeurs)
  10. Énoncé 2.8 : Suppression d'une valeur dans un ensemble d'entiers (version basée sur un tableau trié de valeurs)
  11. Énoncé 2.9 : Suppression des doublons dans un tableau
  12. Énoncé 2.10 : Tri par sélection d'un tableau d'entiers
  13. Énoncé 2.11 : Tri bulle d'un tableau d'entiers
  14. Énoncé 2.12 : Fusion de deux tableaux triés d'entiers
  15. Énoncé 2.13 : Comparaison de deux tableaux de caractères
  16. Énoncé 2.14 : Lecture et écriture de matrices carrées d'entiers
  17. Énoncé 2.15 : Somme de deux matrices carrées d'entiers
  18. Énoncé 2.16 : Construction d'un index
Corrigé 2
  1. Prérequis
  2. Corrigé 2.1 : Moyenne des éléments d'un tableau
  3. Corrigé 2.2 : Variance et écart type des éléments d'un tableau
  4. Corrigé 2.3 : Recherche séquentielle d'une valeur dans un tableau
  5. Corrigé 2.4 : Valeurs communes à deux tableaux
  6. Corrigé 2.5 : Insertion d'une valeur dans un ensemble d'entiers
  7. Corrigé 2.6 : Suppression d'une valeur dans un ensemble d'entiers
  8. Corrigé 2.7 : Insertion d'une valeur dans un ensemble d'entiers (version basée sur un tableau trié de valeurs)
  9. Corrigé 2.8 : Suppression d'une valeur dans un ensemble d'entiers (version basée sur un tableau trié de valeurs)
  10. Corrigé 2.9 : Suppression des doublons dans un tableau
  11. Corrigé 2.10 : Tri par sélection d'un tableau d'entiers
  12. Corrigé 2.11 : Tri bulle d'un tableau d'entiers
  13. Corrigé 2.12 : Fusion de deux tableaux triés d'entiers
  14. Corrigé 2.13 : Comparaison de deux tableaux de caractères
  15. Corrigé 2.14 : Lecture et écriture de matrices carrées d'entiers
  16. Corrigé 2.15 : Somme de deux matrices carrées d'entiers
  17. Corrigé 2.16 : Construction d'un index
Énoncé 3 : Sous-programmes
  1. Introduction
  2. Prérequis
  3. Énoncé 3.1 : La bannière de bienvenue
  4. Énoncé 3.2 : Initialisation d'une variable tableau
  5. Énoncé 3.3 : Affichage d'un tableau
  6. Énoncé 3.4 : Fonctions de conversion de degrés en radians et vice versa
  7. Énoncé 3.5 : Fonction de génération d'un nombre entier aléatoire entre une borne inférieure et une borne supérieure
  8. Énoncé 3.6 : Fonction de calcul de la factorielle
  9. Énoncé 3.7 : Fonction min et max de trois nombres réels
  10. Énoncé 3.8 : Fonction calculant la racine carrée d'un nombre réel
  11. Énoncé 3.9 : Remplissage d'un tableau d'entiers par des nombres aléatoires
  12. Énoncé 3.10 : Division euclidienne
  13. Énoncé 3.11 : Recherche d'une valeur dans un tableau d'entiers à deux dimensions
  14. Énoncé 3.12 : Somme de deux matrices carrées d'entiers
  15. Énoncé 3.13 : Fusion de deux tableaux triés d'entiers
Corrigé 3
  1. Prérequis
  2. Corrigé 3.1 : La bannière de bienvenue
  3. Corrigé 3.2 : Initialisation d'une variable tableau
  4. Corrigé 3.3 : Affichage d'un tableau
  5. Corrigé 3.4 : Fonctions de conversion de degrés en radians et vice versa
  6. Corrigé 3.5 : Fonction de génération d'un nombre entier aléatoire entre une borne inférieure et une borne supérieure
  7. Corrigé 3.6 : Fonction de calcul de la factorielle
  8. Corrigé 3.7 : Fonctions min et max de trois nombres réels
  9. Corrigé 3.8 : Fonction calculant la racine carrée d'un nombre réel
  10. Corrigé 3.9 : Remplissage d'un tableau d'entiers par des nombres aléatoires
  11. Corrigé 3.10 : Division euclidienne
  12. Corrigé 3.11 : Recherche d'une valeur dans un tableau d'entiers à deux dimensions
  13. Corrigé 3.12 : Somme de deux matrices carrées d'entiers
  14. Corrigé 3.13 : Fusion de deux tableaux triés d'entiers
Énoncé 4 : Objets et classes
  1. Introduction
  2. Prérequis
    1. 1. Questions générales
    2. 2. Questions Java
    3. 3. Questions Python
  3. Énoncé 4.1 : La classe Rectangle
  4. Énoncé 4.2 : La classe Calculatrice
  5. Énoncé 4.3 : La classe Complexe
  6. Énoncé 4.4 : La classe NombreAleatoire
  7. Énoncé 4.5 : La classe Vecteur
  8. Énoncé 4.6 : La classe Complexe2
  9. Énoncé 4.7 : La classe Angle
  10. Énoncé 4.8 : La classe Fraction
  11. Énoncé 4.9 : La classe Rectangle2
  12. Énoncé 4.10 : La classe Ensemble
  13. Énoncé 4.11 : La classe EnsembleTrie
  14. Énoncé 4.12 : La classe Matrice
  15. Énoncé 4.13 : La classe Devine
Corrigé 4
  1. Prérequis
  2. Corrigé 4.1 : La classe Rectangle
  3. Corrigé 4.2 : La classe Calculatrice
  4. Corrigé 4.3 : La classe Complexe
  5. Corrigé 4.4 : La classe NombreAleatoire
  6. Corrigé 4.5 : La classe Vecteur
  7. Corrigé 4.6 : La classe Complexe2
  8. Corrigé 4.7 : La classe Angle
  9. Corrigé 4.8 : La classe Fraction
  10. Corrigé 4.9 : La classe Rectangle2
  11. Corrigé 4.10 : La classe Ensemble
  12. Corrigé 4.11 : La classe EnsembleTrie
  13. Corrigé 4.12 : La classe Matrice
  14. Corrigé 4.13 : La classe Devine
Énoncé 5 : Les chaînes de caractères
  1. Introduction
  2. Prérequis
    1. 1. Questions Java
    2. 2. Questions Python
  3. Énoncé 5.1 : Comptage des voyelles et des consonnes dans un mot
  4. Énoncé 5.2 : Le palindrome
  5. Énoncé 5.3 : Conversion d'un entier en chaîne
  6. Énoncé 5.4 : Conversion d'une chaîne en entier
  7. Énoncé 5.5 : Chiffrement d'un texte par rotation13
  8. Énoncé 5.6 : Représentation lisible d’un objet
  9. Énoncé 5.7 : Recherche de numéro de téléphone
  10. Énoncé 5.8 : Distance de Levenshtein
Corrigé 5
  1. Prérequis
    1. 1. Langage Java
    2. 2. Langage Python
  2. Corrigé 5.1 : Comptage des voyelles et des consonnes dans un mot
  3. Corrigé 5.2 : Le palindrome
  4. Corrigé 5.3 : Conversion d'un entier en chaîne
  5. Corrigé 5.4 : Conversion d'une chaîne en entier
  6. Corrigé 5.5 : Chiffrement d'un texte par rotation 13
  7. Corrigé 5.6 : Représentation lisible d’un objet
  8. Corrigé 5.7 : Recherche de numéro de téléphone
  9. Corrigé 5.8 : Distance de Levenshtein
Énoncé 6 : Interactions complexes et héritage entre objets
  1. Introduction
  2. Prérequis
    1. 1. Questions générales
    2. 2. Questions Java
    3. 3. Questions Python
  3. Énoncé 6.1 : La classe Automobile
  4. Énoncé 6.2 : La classe Devine2
  5. Énoncé 6.3 : La classe DevineNombre
  6. Énoncé 6.4 : L'ordinateur joue contre l'ordinateur
  7. Énoncé 6.5 : La course automobile
  8. Énoncé 6.6 : La classe Complexe2
  9. Énoncé 6.7 : Les comptes en banque
  10. Énoncé 6.8  : Les ensembles
  11. Énoncé 6.9 : Les portes logiques
Corrigé 6
  1. Prérequis
    1. 1. Langage Java
    2. 2. Langage Python
  2. Corrigé 6.1 : La classe Automobile
  3. Corrigé 6.2 : La classe Devine2
  4. Corrigé 6.3 : La classe DevineNombre
  5. Corrigé 6.4 : L'ordinateur joue contre l'ordinateur
  6. Corrigé 6.5 : La course automobile
  7. Corrigé 6.6 : La classe Complexe2
  8. Corrigé 6.7 : Les comptes en banque
  9. Corrigé 6.8  : Les ensembles
  10. Corrigé 6.9 : Les portes logiques
Énoncé 7 : Récursivité
  1. Introduction
  2. Prérequis
  3. Énoncé 7.1 : La factorielle (écriture récursive)
  4. Énoncé 7.2 : Le PGCD (écriture récursive)
  5. Énoncé 7.3 : L'additionneur/multiplicateur
  6. Énoncé 7.4  : Le tri par sélection (écriture récursive)
  7. Énoncé 7.5 : La classe Expression
  8. Énoncé 7.6 : Le comptage des fichiers et des répertoires
Corrigé 7
  1. Prérequis
  2. Corrigé 7.1 : La factorielle (écriture récursive)
  3. Corrigé 7.2 : Le PGCD (écriture récursive)
  4. Corrigé 7.3 : L'additionneur/multiplicateur
  5. Corrigé 7.4 : Le tri par sélection (écriture récursive)
  6. Corrigé 7.5 : La classe Expression
  7. Corrigé 7.6 : Le comptage des fichiers et des répertoires
Énoncé 8 : Structures de données complexes
  1. Introduction
  2. Prérequis
  3. Énoncé 8.1 : La liste chaînée
  4. Énoncé 8.2 : La table de hachage
  5. Énoncé 8.3 : L'arbre binaire de recherche
  6. Énoncé 8.4 : L'arbre B (ou B-arbre)
  7. Énoncé 8.5 : La Pile
  8. Énoncé 8.6  : Les expressions postfixées
Corrigé 8
  1. Prérequis
  2. Corrigé 8.1 : La liste chaînée
  3. Corrigé 8.2 : La table de hachage
  4. Corrigé 8.3 : L'arbre binaire de recherche
  5. Corrigé 8.4 : L'arbre B (ou B-arbre)
  6. Corrigé 8.5 : La pile
  7. Corrigé 8.6 : Les expressions postfixées
Annexe
  1. Annexe

Laurent DEBRAUWER

Laurent DEBRAUWER est docteur en informatique de l'Université de Lille 1. Spécialiste de l'approche par objets, il enseigne les Design Patterns à l'université du Luxembourg. Il dirige également les sociétés Objectland et Securiquest.

 

Gilles VANWORMHOUDT

Gilles VANWORMHOUDT est docteur en informatique de l'Université de Lille et enseignant-chercheur à l'Institut Mines-Telecom. Il mène des recherches dans le domaine de l'ingénierie des modèles. Ses principaux domaines d'enseignement sont les structures de données et les algorithmes pour la science des données ainsi que les techniques avancées de programmation pour les architectures Big Data.

 

Nos nouveautés

voir plus