Ce cours contient un cours complet d'algorithmique et programmation en C++ couvrant la programmation procédurale :

    • vous y trouvez des cours et des exercices auto-évalués que vous pouvez suivre en totale autonomie
    • ce cours couvre un niveau L1

Vous pouvez suivre ce cours :

    • soit pour vous auto-former depuis zéro en C++
    • soit en complément de cours d'algorithmique et de programmation en C++
    • soit pour réviser et vous remettre à niveau pour suivre ensuite des cours de niveau supérieur en L2 ou L3
    • soit pour apprendre C++ si vous savez déjà programmer dans un autre langage

Ce cours contient des compléments sur la programmation procédurale en C++ (qui est un pré-requis pour ce cours).
Vous trouverez des cours et des exercices concernant l'utilisation des structures de données suivantes :
    • structures
    • tableaux à une dimension et à deux dimensions statiques et dynamiques
    • fichiers textes
Vous trouverez des cours et des exercices concernant l'accès indirect aux variables (pointeurs et références) et l'allocation dynamique de mémoire.
Enfin vous trouverez un cours et des exercices sur les espaces de noms.

Ce cours contient un cours complet de programmation orientées objet en C++ contenant des cours et des exercices auto-corrigés que vous pouvez suivre en totale autonomie.

Ce cours suppose que vous savez déjà programmer en C++ en utilisant les fonctions, procédures, les tableaux et les structures. Si ce n'est pas le cas, vous pouvez suivre les deux cours de programmation en C++ suivants.

L’objectif de ce module est de comprendre en détail les principales structures de données linéaires :

    • tableaux statiques,
    • tableaux dynamiques,
    • tables de hachage,
    • listes chaînées.

L'accès à leur éléments par des itérateurs sera abordé dans le détail.

Conséquemment, la performance de leurs accès (en terme de complexité) doit être maîtrisée, de sorte que l’étudiant apprenne à choisir de façon éclairée une SDD adaptée à une situation donnée.

Pour les besoins de ce cours, l’accent sera mis sur certains aspects fondamentaux de la programmation en C++ :

    • les pointeurs et la gestion de mémoire en C++,
    • les constructeurs, le destructeur et l’importance du constructeur par recopie,
    • la surcharge des opérateur
    • ...

Par ailleurs, une attention toute particulière sera centrée sur l’efficacité des méthodes, notamment dans le cas de la recopie des collections.

Enfin, quelques exemples de réalisations de structures de données adaptées à des problèmes précis seront montrés, comme des tableaux bi-dimensionnels ou des matrices creuses.