![]() ![]() | |
![]() | Programme détaillé | ![]() |
Cet enseignement est constitué de 7 semaines de cours, de TD ou de TP, dont les contenus sont :
Introduction à l'informatique :
définition de l'informatique, schéma d'un ordinateur,
notion d'environnement (nom, type, valeur et référence d'une variable), codage des données selon leur type (cas des caractères, des entiers, des réels)
structuration des programmes existants en une architecture logicielle, contenant de bas en haut (du plus simple au plus sophistiqué) :
schéma de résolution d'un problème en informatique : modélisation d'un problème et de sa solution, recherche d'un algorithme, traduction en langage de programmation, vérification du programme obtenu sur des exemples pertinents et nombreux.
Introduction au langage C : traduction du mémento dans le langage courant, illustration avec des exemples ;
forme générale d'un programme,
définition d'un identificateur (nom de variables, de fonctions, etc.),
bloc d'instructions, déclarations de constantes et de variables,
instructions d'affectation et appels de procédure d'entrée/sortie,
importance de l'ordre des déclarations (déclarations de variables à la fin).
Premiers programmes :
présentation des types de base (opérateurs et valeurs) et des expressions en C ;
instruction conditionnelle : if (expression) instruction [else instruction] ;
exemples de programmes simples avec entrée/sortie, possibilité d'utiliser les redirections sous Unix.
Travaux dirigés 1 : premiers programmes ; ennoncé (PDF, 30 kO).
Instructions conditionnelles multiples : instructions if ... else emboitées, instruction switch.
Instructions itératives :
instructions for ..., while ... et do ... while ... ;
équivalence entre ces instructions ;
précaution primordiale à prendre (terminaison), présentation rapide des quatre règles de la preuves de programme.
Tableaux et pointeurs :
définition de tableaux, intérêt ;
précaution fondamentale concernant les indices (appartenance à l'intervalle valide) ;
représentation en mémoire d'un tableau, explication de l'erreur de segmentation (segmentation fault) ;
définition de tableaux dynamiques (i.e. de taille variable), fonctions malloc et free.
Travaux dirigés 2 : itérations et tableaux ; ennoncé (PDF, 36 kO).
Références (C++) :
les risques de la manipulation de pointeurs comme des entiers ;
intérêt des références, fonctions new et delete.
Fonctions :
définition de fonctions, influence sur la lisibilité des programmes, problème de la duplication de code ;
passage de paramètres par valeur et par adresse, avantage des références par rapport aux pointeurs ;
exemples d'appel de fonction, illustration de la différence entre paramètres passés par valeur et par adresse.
Travaux pratiques 1 : calendrier Grégorien ; ennoncé (PDF, 16 kO).
Récursivité et complexité :
bientôt plus de détails...
Structures (C), compilation séparée :
bientôt plus de détails...
Travaux dirigés 3 : fonctions et récursivité ; ennoncé (PDF, 26 kO).
Classes (C++) :
bientôt plus de détails...
Travaux pratiques 2 : simulation d'une course ; ennoncé (PDF, 19 kO) et fichiers fournis (archive TGZ, 5 kO).
Héritage (C++) :
bientôt plus de détails...
Travaux pratiques 3 : bientôt.
Synthèse :
bientôt plus de détails...
Travaux pratiques 4 : bientôt.
Loria - A. Scheuer : Enseignements - Algo. et Prog. | Mars 2005 |