Description
Table des matières
- Introduction à l’algorithmique
- 1. Les fondements de l’informatique
- 1.1 Architecture de Von Neumann
- 1.2 La machine de Turing
- 1.3 Représentation interne des instructions et des données
- 1.3.1 Le binaire
- 1.3.2 Les octets et les mots
- 1.3.3 L’hexadécimal
- 2. L’algorithmique
- 2.1 Programmer, c’est un art
- 2.2 Définition : L’algorithme est une recette
- 2.3 Pourquoi utiliser un algorithme ?
- 2.4 Le formalisme
- 2.4.1 Les algorigrammes
- 2.4.2 L’algorithme sous forme de texte
- 2.5 La complexité
- 2.6 Les structures algorithmiques
- 3. Les langages d’implémentation
- 3.1 Quel langage ?
- 3.2 Classifications des langages
- 3.2.1 Haut niveau, bas niveau
- 3.2.2 Diverses classifications
- 3.2.3 Compilé ou interprété
- 3.3 La machine virtuelle
- 3.4 Python
- 3.4.1 Les avantages
- 3.4.2 Un premier programme Python
- 4. Exercices
- 1. Les fondements de l’informatique
- Les variables et opérateurs
- 1. La variable
- 1.1 Principe
- 1.2 Déclaration
- 1.3 Les types
- 1.3.1 Les nombres
- 1.3.2 Autres types numériques
- 1.3.3 Les caractères
- 1.3.4 Le type booléen
- 1.4 Affectation
- 1.4.1 Affectation de valeurs
- 1.4.2 Affectation de variables
- 1.5 Saisie et affichage
- 1.5.1 La fonction print()
- 1.5.2 La fonction input()
- 1.6 Les constantes
- 2. Opérateurs et calculs
- 2.1 Les affectations
- 2.2 Les opérateurs arithmétiques
- 2.3 Les opérateurs booléens
- 2.4 Les opérateurs de comparaison
- 2.4.1 L’égalité
- 2.4.2 La différence
- 2.4.3 Inférieur, supérieur
- 2.5 Le cas des chaînes de caractères
- 2.6 La précédence des opérateurs
- 3. Pour aller plus loin
- 3.1 Les nombres négatifs
- 3.2 La représentation des nombres réels
- 3.3 Les dates
- 3.4 Les caractères
- 4. Types et langages
- 4.1 Langages typés ou non
- 4.2 La gestion de la mémoire
- 5. Les types spécifiques à Python
- 5.1 Les listes
- 5.2 Les tuples
- 5.3 Le type set
- 5.4 Les dictionnaires
- 6. Exercices
- 1. La variable
- Tests et logique booléenne
- 1. Les tests et conditions
- 1.1 Principe
- 1.2 Que tester ?
- 1.3 Tests SI
- 1.3.1 Forme simple
- 1.3.2 Forme complexe
- 1.4 Tests imbriqués
- 1.5 Choix multiples
- 1.6 Des exemples complets
- 1.6.1 Le lendemain d’une date
- 1.6.2 La validité d’une date
- 1.6.3 L’heure dans n secondes
- 2. L’algèbre booléen
- 2.1 L’origine des tests
- 2.2 Petites erreurs, grosses conséquences
- 2.2.1 Ariane 5
- 2.2.2 Mars Climate Orbiter
- 2.3 George Boole
- 2.4 L’algèbre
- 2.4.1 Établir une communication
- 2.4.2 La vérité
- 2.4.3 La loi ET
- 2.4.4 La loi OU
- 2.4.5 Le contraire
- 2.4.6 Les propriétés
- 2.4.7 Quelques fonctions logiques
- 2.4.8 Avec plus de deux variables
- 2.5 Une dernière précision
- 3. Exercices
- 1. Les tests et conditions
- Les boucles
- 1. Les structures itératives
- 1.1 Définition
- 1.2 Quelques usages simples
- 2. Tant Que
- 2.1 Structure générale
- 2.2 Boucles infinies et “break”
- 2.3 Des exemples
- 2.3.1 Une table de multiplication
- 2.3.2 Une factorielle
- 2.3.3 x à la puissance y
- 2.3.4 Toutes les tables de multiplication
- 2.3.5 Saisie de notes et calcul de moyennes
- 2.3.6 Rendez la monnaie
- 2.3.7 Trois boucles
- 3. Répéter … Jusqu’à
- 3.1 Différences fondamentales
- 3.2 Quelques exemples adaptés
- 3.2.1 La factorielle
- 3.2.2 Les trois boucles
- 4. Pour … Fin Pour
- 4.1 Une structure pour compter…
- 4.2 … mais pas indispensable
- 4.3 Quelle structure choisir ?
- 4.4 Un piège à éviter
- 4.5 Quelques exemples
- 4.5.1 De nouveau trois boucles
- 4.5.2 La factorielle
- 4.5.3 Racine carrée avec précision
- 4.5.4 Calcul du nombre PI
- 5. Exercices
- 1. Les structures itératives
- Les tableaux et structures
- 1. Présentation
- 1.1 Principe et définition
- 1.1.1 Simplifier les variables
- 1.1.2 Les dimensions
- 1.1.3 Les types
- 1.1.4 Déclaration
- 1.1.5 Utilisation
- 1.1.6 Les tableaux dynamiques
- 1.2 Python et les tableaux
- 1.3 Représentation en mémoire
- 1.3.1 Représentation linéaire
- 1.3.2 Représentation par référence
- 1.1 Principe et définition
- 2. Manipulations simples
- 2.1 Recherche d’un élément
- 2.2 Le plus grand/petit, la moyenne
- 2.3 Le morpion
- 3. Algorithmes avancés
- 3.1 Les algorithmes des tris
- 3.1.1 Le principe
- 3.1.2 Le tri par création
- 3.1.3 Le tri par sélection
- 3.1.4 Le tri à bulles
- 3.1.5 Le tri par insertion
- 3.1.6 Le tri Shell
- 3.2 Recherche par dichotomie
- 3.1 Les algorithmes des tris
- 4. Structures et enregistrements
- 4.1 Principe
- 4.2 Déclaration
- 4.2.1 Type structuré
- 4.2.2 Enregistrement
- 4.3 Utiliser les enregistrements
- 4.3.1 Utiliser les champs
- 4.3.2 Un enregistrement dans une structure
- 4.3.3 Un tableau dans une structure
- 4.4 Les tableaux d’enregistrements
- 4.4.1 Les tables
- 4.4.2 Une table comme champ
- 4.5 Et Python ?
- 5. Exercices
- 1. Présentation
- Les sous-programmes
- 1. Présentation
- 1.1 Principe
- 1.2 Déclaration et définition
- 1.2.1 Dans un algorithme
- 1.2.2 En Python
- 1.3 Appel
- 1.4 Fonctions et procédures
- 1.4.1 Les procédures
- 1.4.2 Les fonctions
- 1.5 Variables locales et globales
- 1.5.1 Locales
- 1.5.2 Globales
- 1.5.3 Variables globales et Python
- 1.6 Les paramètres
- 1.6.1 Les procédures
- 1.6.2 Les fonctions
- 1.6.3 Paramètres et Python
- 1.6.4 Petite application fonctionnelle
- 1.7 Sous-programmes prédéfinis
- 1.7.1 Un choix important
- 1.7.2 Quelques exemples
- 1.8 Dernier cas : les tableaux
- 2. Les sous-programmes récursifs
- 2.1 Principe
- 2.2 Un premier exemple : la factorielle
- 2.3 Un exemple pratique : les tours de Hanoï
- 3. Exercices
- 1. Présentation
- Les fichiers
- 1. Les différents fichiers
- 1.1 Préambule
- 1.2 Problématique
- 1.3 Définition
- 1.4 Les formats
- 1.4.1 Types de contenus
- 1.4.2 Le fichier binaire
- 1.4.3 Le fichier texte
- 1.4.4 Quel format utiliser ?
- 1.5 Les accès aux fichiers
- 1.5.1 Séquentiel
- 1.5.2 Accès direct
- 1.5.3 Indexé
- 1.5.4 Autre ?
- 2. Les enregistrements
- 2.1 Les délimiteurs
- 2.2 Largeur fixe
- 2.3 Principes d’accès
- 2.3.1 Étapes de base
- 2.3.2 Identificateurs de fichiers et canaux
- 2.3.3 Les modes d’ouverture
- 3. Fichier texte séquentiel
- 3.1 Ouvrir et fermer un fichier
- 3.2 Lire et écrire des enregistrements
- 3.2.1 Lecture
- 3.2.2 Écriture
- 3.3 Les enregistrements structurés
- 3.4 Exemple en Python
- 4. Les fichiers binaires
- 4.1 Nouvelles instructions
- 4.2 Exemple
- 5. Exercices
- 1. Les différents fichiers
- Notions avancées
- 1. Les pointeurs et références
- 1.1 Rappels sur la mémoire et les données
- 1.1.1 Structure de la mémoire
- 1.1.2 Python : des limites qui n’en sont pas
- 1.1.3 Brefs exemples en C
- 1.2 Le pointeur
- 1.2.1 Principe et définition
- 1.2.2 Le C roi des pointeurs
- 1.2.3 Applications
- 1.3 Notation algorithmique
- 1.3.1 Déclarer et utiliser les pointeurs
- 1.3.2 Allocation dynamique
- 1.4 Python et les références
- 1.4.1 Différences entre le C et Python
- 1.4.2 Références sur les objets
- 1.4.3 Les types primitifs
- 1.4.4 Références sur structures
- 1.4.5 Le piège en Python
- 1.1 Rappels sur la mémoire et les données
- 2. Les listes chaînées
- 2.1 Listes chaînées simples
- 2.1.1 Principe
- 2.1.2 Création
- 2.1.3 Parcours de la liste
- 2.1.4 Recherche
- 2.1.5 Ajout d’un élément
- 2.1.6 Suppression d’un élément
- 2.1.7 Supprimer toute la liste
- 2.1.8 Parcours récursif
- 2.2 L’implémentation en Python
- 2.3 Autres exemples de listes
- 2.3.1 Listes circulaires
- 2.3.2 Listes d’éléments triés
- 2.3.3 Listes doublement chaînées
- 2.3.4 Files et piles
- 2.1 Listes chaînées simples
- 3. Les arbres
- 3.1 Principe
- 3.2 Définitions
- 3.2.1 Base
- 3.2.2 Terminologie
- 3.2.3 Description horizontale
- 3.2.4 Description verticale
- 3.2.5 L’arbre binaire
- 3.3 Parcours d’un arbre
- 3.4 Arbre binaire ordonné
- 3.4.1 Principe
- 3.4.2 Recherche d’un élément
- 3.4.3 Ajout d’un élément
- 3.4.4 Suppression d’un nœud
- 4. Exercices
- 1. Les pointeurs et références
- Une approche de l’objet
- 1. Principe de l’objet, une notion évidente
- 1.1 Avant de continuer
- 1.2 Rappels sur la programmation procédurale
- 1.2.1 Les données
- 1.2.2 Les traitements
- 1.3 L’objet
- 1.3.1 Dans la vie courante
- 1.3.2 En informatique
- 1.4 Classe, objets
- 1.5 Déclaration et accès
- 1.6 Les méthodes
- 1.7 Portée des membres
- 1.8 Encapsulation des données
- 1.9 L’héritage
- 1.9.1 Principe
- 1.9.2 Commerce
- 1.9.3 Hiérarchie
- 1.9.4 Simple ou multiple
- 1.10 Le polymorphisme
- 1.10.1 Principe
- 1.10.2 Le polymorphisme ad hoc
- 1.10.3 Le polymorphisme d’héritage
- 1.10.4 Le polymorphisme paramétrique
- 2. Manipuler les objets
- 2.1 Les constructeurs
- 2.1.1 Déclaration
- 2.1.2 Appel implicite
- 2.1.3 L’héritage
- 2.2 Les destructeurs
- 2.3 Les membres statiques
- 2.4 Classes et méthodes abstraites
- 2.5 Interfaces
- 2.1 Les constructeurs
- 3. L’objet en Python
- 3.1 Les langages objet
- 3.2 Déclaration des classes et objets
- 3.3 Héritage
- 3.4 Interfaces
- 4. Exercices
- 1. Principe de l’objet, une notion évidente
- Corrigés des exercices
Reviews
There are no reviews yet.