• Aide
  • Eurêkoi Eurêkoi

Livre

Algorithmique : raisonner pour concevoir

Résumé

L'ouvrage permet au lecteur d'apprendre à développer des applications informatiques et de s'initier ou de retrouver les bases fondamentales de la programmation. Il ne s'agit pas ici de programmer avec un langage ou un autre, mais bien de raisonner sur un problème pour concevoir une solution abstraite. ©Electre 2020


  • Éditeur(s)
  • Date
    • C 2020
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (585 p.) : ill. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-02441-2
  • Indice
  • Quatrième de couverture
    • Algorithmique

      Raisonner pour concevoir

      Ce livre sur l'algorithmique est destiné à toute personne qui s'intéresse au développement d'applications informatiques et qui souhaite s'initier ou retrouver les bases fondamentales de la programmation. Il ne s'agit pas ici de programmer avec un langage ou un autre, mais bien de raisonner sur un problème pour concevoir une solution abstraite. Ce travail de réflexion et de conception prépare le stade ultime de l'implémentation et du cycle de vie du programme concret.

      Le lecteur ne trouvera pas dans ce livre un recueil d'algorithmes qu'il devrait ensuite adapter pour résoudre des problèmes, mais au contraire une introduction originale et efficace à l'algorithmique pour apprendre à analyser un problème.

      Le livre est divisé en deux parties. Dans la première partie sont détaillées les notions d'algorithmique de base et la méthode de construction raisonnée d'un algorithme impératif : l'auteur y précise notamment la distinction entre la spécification et la réalisation d'un algorithme et montre que l'algorithmique proprement dite s'arrête là où commence la programmation. Dans la deuxième partie, l'auteur propose cette fois des solutions à des problèmes plus élaborés dans divers domaines du calcul automatique, comme la simulation de phénomènes aléatoires ou le cryptage des données.

      Toutes les activités proposées restent élémentaires avec le souci constant de privilégier le raisonnement qui conduit à l'élaboration des algorithmes.

      Dans cette nouvelle édition du livre, l'auteur ajoute encore plus d'exercices avec leurs solutions détaillées et commentées, en téléchargement sur le site www.editions-eni.fr.


  • Tables des matières
      • Algorithmique

      • Raisonner pour concevoir

      • 3e édition

      • Editions ENI

      • Chapitre 1
      • Qu'est-ce que l'algorithmique ?
      • 1. Qu'est-ce que l'algorithmique ?11
      • 2. Structure du livre16
      • 3. Public visé19
      • 4. Conventions adoptées20
      • 5. Préface à la troisième édition21
      • Partie 1
      • Chapitre 2
      • Programmes directs
      • 1. Introduction23
      • 2. Premiers exemples24
      • 3. Définition informelle d'un algorithme28
      • 4. Spécifications32
      • 5. Premiers algorithmes50
      • 6. Exercices résolus61
      • 7. Exercices91
      • 8. Notes bibliographiques93
      • 9. Résumé93
      • 10. Bibliographie94
      • Chapitre 3
      • L'alternative
      • 1. Introduction95
      • 2. Définition de l'alternative95
      • 3. Exercices résolus105
      • 4. Exercices119
      • 5. Résumé122
      • Chapitre 4
      • Structures élémentaires
      • 1. Introduction123
      • 2. Les chaînes de caractères124
      • 2.1 Les caractères124
      • 2.2 Les chaînes de caractères131
      • 2.3 Exercices d'application sur les chaînes de caractères142
      • 3. Le tableau143
      • 3.1 Les tableaux simples143
      • 3.2 Tableaux composés150
      • 3.3 Deux fonctions utiles sur les tableaux151
      • 3.3.1 La fonction appartient151
      • 3.3.2 La fonction sous_tableau152
      • 3.4 Exercices d'application sur les tableaux154
      • 4. Définir un nouveau type de données154
      • 4.1 Définir un type de données155
      • 4.2 Discussion sur les invariants159
      • 4.3 Exercices d'application sur les types de données160
      • 5. Notes bibliographiques169
      • 6. Résumé169
      • 7. Bibliographie170
      • Chapitre 5
      • Itération
      • 1. Introduction171
      • 2. Premiers exemples de construction d'itérations172
      • 2.1 La table de multiplication172
      • 2.1.1 Le problème172
      • 2.1.2 Construction de l'itération175
      • 2.1.3 Une autre version185
      • 2.2 Itérer dans un tableau190
      • 2.2.1 Rang de la composante minimum d'un tableau190
      • 2.2.2 Rechercher dans un tableau trié199
      • 2.2.3 Recherche par dichotomie200
      • 2.2.4 Extensions212
      • 3. Explorer un tableau213
      • 3.1 Rechercher une identité : le problème215
      • 3.2 L'algorithme à écrire : chercher_identité217
      • 3.3 Utilisation : effacer tous les clients d'identité donnée220
      • 3.4 Définition de chercher_identité230
      • 3.5 Vieillir les clients235
      • 3.6 Exercices240
      • 4. Algorithme ou programme ?241
      • 4.1 Un exemple édifiant241
      • 4.1.1 Quelques maladresses : les notations242
      • 4.1.2 Quand les fautes font oublier les maladresses248
      • 4.2 Une solution au problème de la moyenne250
      • 4.3 Compléter l'exercice : les spécifications qui manquent257
      • 4.4 Compléter l'exercice : remplir le tableau261
      • 5. Exercices d'application266
      • 6. Notes bibliographiques271
      • 7. Résumé271
      • 8. Bibliographie272
      • Chapitre 6
      • Récursivité
      • 1. Introduction273
      • 2. Introduction à la récursivité ; les chaînes de caractères274
      • 2.1 Présentation de la récursivité274
      • 2.2 Quelques exemples de spécifications récursives283
      • 2.3 Exercices résolus288
      • 2.4 Exercices314
      • 3. Les nombres et la récursivité316
      • 3.1 Arithmétique316
      • 3.2 Factorielle et autres exercices usés317
      • 3.3 Fractions318
      • 3.4 Fonction réelle319
      • 4. Nombres et chaînes de caractères : édition d'un entier320
      • 5. Problèmes323
      • 5.1 Recherche par dichotomie dans un tableau trié323
      • 5.2 Palindromes323
      • 5.3 Le drapeau de Dijkstra325
      • 6. Résumé327
      • Chapitre 7
      • Récursivité ou itération ?
      • 1. Introduction329
      • 2. Retour sur la récursivité330
      • 2.1 Premier exemple330
      • 2.2 Deuxième exemple334
      • 2.3 Troisième exemple335
      • 3. Récursivité ou itération336
      • 4. Exercices340
      • 5. Résumé352
      • Partie 2
      • Chapitre 8
      • Trier
      • 1. Introduction353
      • 2. Spécifier un algorithme de tri354
      • 2.1 Présentation du problème du tri354
      • 2.2 Etude de la postcondition du tri356
      • 3. Quelques algorithmes simples366
      • 3.1 Tri par permutations : introduction367
      • 3.2 Tri par permutations370
      • 3.3 Tri « à bulle » (bubble sort)372
      • 3.4 D'autres tris par permutations374
      • 4. Fusionner deux tableaux triés388
      • 4.1 Définition d'un vecteur389
      • 4.1.1 Définition des prédicats391
      • 4.1.2 Primitives de placement dans le vecteur392
      • 4.1.3 Accès aux composantes du vecteur393
      • 4.1.4 Exemples395
      • 4.2 Fusion de deux vecteurs triés400
      • 4.2.1 Spécification de l'algorithme de fusion401
      • 4.2.2 Analyse de la fusion403
      • 5. Exercices406
      • 5.1 Tri par insertion dichotomique406
      • 5.2 Un tri topologique407
      • 5.3 Compléter les spécifications407
      • 6. Notes bibliographiques409
      • 7. Résumé409
      • 8. Bibliographie409
      • Chapitre 9
      • Édition d'un nombre
      • 1. Introduction411
      • 2. Édition d'un entier dans une base quelconque412
      • 2.1 Nombre de chiffres d'un entier412
      • 2.2 Résolution du problème d'édition414
      • 2.3 Résolution du problème réciproque417
      • 3. Conversion des adresses Internet421
      • 3.1 Conversion d'un entier en adresse « Internet Protocol »421
      • 3.1.1 Introduction421
      • 3.1.2 Conversion d'une adresse IPv4 en un entier422
      • 3.1.3 Conversion d'une adresse entière en une adresse IPv4435
      • 3.2 Exercice445
      • 4. Conversion d'un nombre entier en chiffre romain447
      • 5. Vérification des identifiants d'entreprises447
      • 6. Vérification des identifiants de livres451
      • 7. Résumé453
      • 8. Bibliographie453
      • Chapitre 10
      • Introduction aux fichiers
      • 1. Introduction455
      • 2. Notions élémentaires456
      • 2.1 Fichiers et articles456
      • 2.2 Organisation et accès aux fichiers459
      • 2.3 Association d'un fichier physique à un programme460
      • 3. Organisation séquentielle463
      • 3.1 Introduction463
      • 3.2 Traitement d'un fichier séquentiel en lecture468
      • 3.3 Parcours d'un fichier séquentiel472
      • 3.4 Traitement en écriture d'un fichier séquentiel478
      • 3.5 Mise à jour d'un fichier à organisation séquentielle482
      • 4. L'organisation directe et l'accès sélectif485
      • 4.1 Correspondance à l'aide d'une table d'accès486
      • 4.2 Correspondance à l'aide d'une fonction de répartition487
      • 5. Problèmes489
      • 5.1 Statistiques d'import/export489
      • 5.2 Exploiter un questionnaire d'attitude491
      • 5.3 Exploiter les réponses à une enquête d'utilité publique491
      • 5.4 Rechercher les anagrammes dans un dictionnaire492
      • 6. Notes bibliographiques496
      • 7. Résumé496
      • 8. Bibliographie496
      • Chapitre 11
      • Simuler
      • 1. Introduction497
      • 2. Générer des nombres pseudo-aléatoires499
      • 2.1 Quelques générateurs499
      • 2.1.1 Le 147-générateur501
      • 2.1.2 Générateurs de Hamming503
      • 2.2 Tester une suite de nombres pseudo-aléatoires507
      • 2.2.1 Test de l'histogramme511
      • 3. Jeux de hasard515
      • 3.1 Simuler une roulette515
      • 3.2 Simuler un dé518
      • 4. Simulation de processus dynamiques518
      • 4.1 Propagation d'une rumeur519
      • 4.2 Course poursuite521
      • 5. Simulation statistique de phénomènes déterministes524
      • 5.1 Calculer π524
      • 5.2 Évaluer une intégrale définie526
      • 6. Simulation de phénomènes aléatoires528
      • 6.1 A la chasse aux mouches528
      • 6.2 Propagation d'une rumeur534
      • 6.3 Fiabilité des systèmes541
      • 6.4 Dispersion des valeurs des composants d'un circuit électronique543
      • 7. Notes bibliographiques547
      • 8. Résumé547
      • 9. Bibliographie547
      • Chapitre 12
      • Crypter
      • 1. Introduction549
      • 2. Intégrité549
      • 2.1 Présentation549
      • 2.2 Comparer deux empreintes552
      • 2.3 Condenser le contenu d'un fichier556
      • 3. Confidentialité560
      • 3.1 Principes mathématiques de la confidentialité560
      • 3.2 Cryptographie à clé secrète561
      • 3.3 Cryptographie à clé symétrique562
      • 3.4 Codage élémentaire : XOR562
      • 3.5 Codage de Vernam565
      • 3.6 Codage élémentaire à substitution mono-alphabétique simple567
      • 3.7 La méthode de Vigenère568
      • 4. Notes bibliographiques570
      • 5. Conclusion571
      • 6. Bibliographie571
      • Index573

  • Origine de la notice:
    • Abes ;
    • Electre
  • Disponible - 681.21 HAR

    Etage 3 - Informatique - Informatique