Esisar rubrique Formation 2022

Informatique - 2AMCS221

  • 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…)

Responsable(s)

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

Prérequis

Cours algo prog de 1ere Année.

Contrôle des connaissances

E1 = Examen écrit ou sur machine d'une durée de 2h00
CC = TP et/ou QCM

Calendrier

Le cours est programmé dans ces filières :

cf. l'emploi du temps 2023/2024

Informations complémentaires

Code de l'enseignement : 2AMCS221
Langue(s) d'enseignement : FR

Le cours est rattaché aux structures d'enseignement suivantes :

Vous pouvez retrouver ce cours dans la liste de tous les cours.