Volumes horaires
- CM 16.5
- Projet -
- TD 16.5
- Stage -
- TP 12.0
Crédits ECTS
Crédits ECTS 3.5
Objectif(s)
Spécifier un problème algorithmique
Décomposer un problème algorithmique
Utiliser des structures de données “plus complexes”
Implémenter et tester un algorithme
Comprendre les notions liées à l’execution du programme (gestion mémoire, etc…)
Quentin GIORGI
Contenu(s)
types, structures de données.
Pointeurs et gestion de la mémoire
Pointeur vers un objet alloué, notation type* ?? = &??. On considère que les pointeurs sont sur 64 bits. Déréférencement d’un pointeur valide, notation *??.
Pointeurs comme moyen de réaliser une structure récursive. Pointeur NULL.
Allocation (malloc) et désallocation (free) dynamique.Création d’un objet sur le tas avec malloc et sizeof (on peut présenter size_t pour cet usage mais sa connaissance n’est pas exigible). Libération avec free.
Définition d’un type structuré par struct nom_s {type 1 champ 1 ; … type ?? champ ?? ;} et ensuite typedef struct nom_s nom (la syntaxe doit cependant être rappelée si les étudiants sont amenés à écrire de telles définitions). Lecture et écriture d’un champ d’une valeur de type structure par ??.champ ainsi que ??->champ.
Structure de liste. Implémentation par un tableau, par des maillons chaînés. comparaison théorique et expérimentale.
Structure de pile. Structure de file. Implémentation par un tableau, par des maillons chaînés.
Transtypage de données depuis et vers le type void* dans l’optique stricte de l’utilisation de fonctions comme malloc.
fonctions
Définition et déclaration de fonction, passage des paramètres par valeur, y compris des pointeurs. Cas particuliers : passage de paramètre de type tableau, simulation de valeurs de retour multiples.
Gestion mémoire:
Utilisation de la pile et du tas par un programme compilé. (en lien avec le cours d’archi)
Notion de portée syntaxique et durée de vie d’une variable. Allocation des variables locales et paramètres sur la pile.
outils et techniques de programmation (langage C) :
flot de compilation : compile - link - exec V1 (en combinaison avec les messages d’erreur)
débugueur pour exécuter pas à pas + utilisation avec les pointeurs
Makefiles en TP : écriture d’un makefile très simple
Utilisation de assert lors d’opérations sur les pointeurs, les tableaux, les chaînes, etc…
gestion des erreurs
Cours algo prog de 1ere Année.
E1 = Examen écrit ou sur machine d'une durée de 2h00
CC = TP et/ou QCM
Le cours est programmé dans ces filières :
- Cursus ingénieur - Premier Cycle - Semestre 3
Code de l'enseignement : 2AMCS221
Langue(s) d'enseignement :
Le cours est rattaché aux structures d'enseignement suivantes :
- Equipe Informatique
Vous pouvez retrouver ce cours dans la liste de tous les cours.