« INFO523 : Programmation C » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(14 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Cours du semestre 5 de la licence STIC INFO.
Cours du semestre 5 de la licence STIC INFO.


* Responsable pour 2012--2013: Xavier Provençal.
* Responsable pour 2016--2017: Jacques-Olivier Lachaud (C/TD/TP), Rodolphe Lepigre (TP)
* Xavier Provençal (C/TD/TP), Pierre-Étienne Meunier (TP).


Pensez à consulter les [[Comment compiler le C ?|indications pour compiler un petit programme sur une machine des salles de TP]].
Pensez à consulter les [[Comment compiler le C ?|indications pour compiler un petit programme sur une machine des salles de TP]].
Ligne 14 : Ligne 13 :




== Quelques ressources pour l'étudiant (2011-2012) ==
== Quelques ressources pour l'étudiant (2016-2017) ==


# Notes de cours [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/notes-de-cours.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/notes-de-cours.pdf PDF]
# Notes de cours (Mis à jour le 24/9/2016) [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/notes-de-cours.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/notes-de-cours.pdf PDF]
#* Leçon 1, programmes "Hello World !": [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-1-a.c lesson-1-a.c] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-1-b.c lesson-1-b.c] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-1-c.c lesson-1-c.c]
#* Leçon 2, affichage d'un damier: [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-2-a.c lesson-2-a.c] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-2-b.c lesson-2-b.c] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-2-c.c lesson-2-c.c] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-2-d.c lesson-2-d.c] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-2-e.c lesson-2-e.c] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-2-f.c lesson-2-f.c]
#* Leçon 3, labyrinthes: [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Cours/Lessons/lesson-3-a.c lesson-3-a.c]
# Fiches de TD
# Fiches de TD
#* TD 1 : tableaux, entrées-sorties [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-1.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-1.pdf PDF]
#* TD 1 : tableaux, entrées-sorties [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-1.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-1.pdf PDF]
Ligne 22 : Ligne 24 :
#* TD 3 : skip-listes [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-3.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-3.pdf PDF]
#* TD 3 : skip-listes [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-3.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-3.pdf PDF]
#* TD 4 : pointeurs, manipulation de bits, tableau de bits/booléens, ensembles par fonction caractéristique [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-4.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-4.pdf PDF]
#* TD 4 : pointeurs, manipulation de bits, tableau de bits/booléens, ensembles par fonction caractéristique [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-4.ps PostScript] [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/TDs/td-4.pdf PDF]
# TPs et autres travaux pratiques [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Tests/doc/html/index.html Pages des TPs]
# TPs et autres travaux pratiques. Les énoncés sont sur la [http://www.lama.univ-savoie.fr/~lachaud/Cours/INFO523/Tests/doc/html/index.html Pages des TPs].
#* Les TPs 2 et 3 sont évalués et à rendre via [http://www.lama.univ-savoie.fr/TPLab TPLab]
#* Pour la première fois, on pourra aussi regarder la page [[Comment_compiler_le_C_%3F]]
#* Pour la première fois, on pourra aussi regarder la page [[Comment_compiler_le_C_%3F]]
#* Si vous n'accédez pas aux pages "manual" en salle TP, on les trouve en ligne : [[http://www.linux-france.org/article/man-fr/ Manual pages]]
#* Si vous n'accédez pas aux pages "manual" en salle TP, on les trouve en ligne : [[http://www.linux-france.org/article/man-fr/ Manual pages]]
Ligne 38 : Ligne 41 :
= Historique =
= Historique =


* Responsable pour 2011--2012: [http://www.lama.univ-savoie.fr/~lachaud Jacques-Olivier Lachaud] (C/TD/TP), Xavier Provençal (TP)
* Responsable pour 2015--2016: Jacques-Olivier Lachaud (C/TD/TP)
* Responsable pour 2010--2011: [http://www.lama.univ-savoie.fr/~lachaud Jacques-Olivier Lachaud] (C/TD/TP), Xavier Provençal (TP)
* Responsable pour 2014--2015: Jacques-Olivier Lachaud (C/TD/TP)
* Responsable pour 2013--2014: Jacques-Olivier Lachaud (C/TD/TP)
* Responsable pour 2012--2013: Xavier Provençal (C/TD/TP), Pierre-Étienne Meunier (TP)
* Responsable pour 2011--2012: Jacques-Olivier Lachaud (C/TD/TP), Xavier Provençal (TP)
* Responsable pour 2010--2011: Jacques-Olivier Lachaud (C/TD/TP), Xavier Provençal (TP)
* Responsable pour 2009--2010: Emilie Charrier (C/TD/TP)
* Responsable pour 2009--2010: Emilie Charrier (C/TD/TP)
* Responsable pour 2008--2009: Lionel Vaux (C/TD/TP)
* Responsable pour 2008--2009: Lionel Vaux (C/TD/TP)
Ligne 45 : Ligne 52 :
== Déroulement (2012-2013) ==
== Déroulement (2012-2013) ==


* (Cours 1): jeudi 13 septembre. Langage C, intérêts et défauts. Compilation. Eléments de base du langage (types simples). (=> I.6).
* (Cours 1): 13 septembre. Langage C, intérêts et défauts. Compilation. Eléments de base du langage (types simples). (=> I.6).
* (Cours 2): 17 septembre. Types complexes (tableaux, structures, pointeurs), conditions et structures de contrôle (if, while, for) (=> II).
* (TD 1): 20 septembre. Manipulation de chaînes de caractères et tableaux.
* (Cours 3): 24 septembre. Fonctions, passage de paramètres, récursivité. Pointeurs et tableaux (I).
* (TD 2): 27 septembre. Pointeurs et tableaux.
* (Cours 4): 1 octobre. Pointeurs et tableaux (II), allocation dynamique, tableaux à taille variable (I).
* (TP 1): 3 octobre. Quelques algorithmes simples, tracés, et récursivité.
* (TD 3): 4 octobre. Pointeurs et tableaux (II), tableaux à deux dimensions.
* (Cours 5): 10 octobre. Tableaux à taille variable (II), Structures auto-référentes (arbre binaire de recherche) (I).
* (TD 4): 11 octobre. Skip-Listes (I).
* (TD 5): 16 octobre. Skip-Listes (II).
* (Cours 6): 17 octobre. Skip-Listes (suite et fin). Précompilateur et compilation séparée.
* (TP 2): 19 octobre. Mini-Tétris Simplifié.
* (TD 6): 23 octobre. (salle machine) Compilation séparée et implémentation de listes chaînées.
* (TP 3): 26 octobre. Mini-tetris graphique avec GTK.


== Déroulement (2011-2012) ==
== Déroulement (2011-2012) ==

Dernière version du 26 septembre 2016 à 13:21

Cours du semestre 5 de la licence STIC INFO.

  • Responsable pour 2016--2017: Jacques-Olivier Lachaud (C/TD/TP), Rodolphe Lepigre (TP)

Pensez à consulter les indications pour compiler un petit programme sur une machine des salles de TP.

Références

  • The C programming language, de Kernighan et Ritchie;
  • Le langage C, version française du précédent;
  • Le polycopié de Bernard Cassagne, disponible ici, au format html (consultable en ligne) ou pdf;
  • Le wikilivre Programmation C: un livre de cours sur le mode wikipedia.


Quelques ressources pour l'étudiant (2016-2017)

  1. Notes de cours (Mis à jour le 24/9/2016) PostScript PDF
  2. Fiches de TD
  3. TPs et autres travaux pratiques. Les énoncés sont sur la Pages des TPs.
    • Les TPs 2 et 3 sont évalués et à rendre via TPLab
    • Pour la première fois, on pourra aussi regarder la page Comment_compiler_le_C_?
    • Si vous n'accédez pas aux pages "manual" en salle TP, on les trouve en ligne : [Manual pages]
  4. Annales

N'hésitez pas à contribuer au wiki, et en particulier à cette page: clarifications, compléments, exemples… Si vous n'avez pas compris un point particulier, vous pouvez signaler votre problème sur la page de discussion (onglet en haut de cette page) ou par les moyens habituels. Il sera ensuite très positif de revenir sur cette page et de consigner ce qui vous posait problème et ce qui vous a permis de mieux comprendre.

Historique

  • Responsable pour 2015--2016: Jacques-Olivier Lachaud (C/TD/TP)
  • Responsable pour 2014--2015: Jacques-Olivier Lachaud (C/TD/TP)
  • Responsable pour 2013--2014: Jacques-Olivier Lachaud (C/TD/TP)
  • Responsable pour 2012--2013: Xavier Provençal (C/TD/TP), Pierre-Étienne Meunier (TP)
  • Responsable pour 2011--2012: Jacques-Olivier Lachaud (C/TD/TP), Xavier Provençal (TP)
  • Responsable pour 2010--2011: Jacques-Olivier Lachaud (C/TD/TP), Xavier Provençal (TP)
  • Responsable pour 2009--2010: Emilie Charrier (C/TD/TP)
  • Responsable pour 2008--2009: Lionel Vaux (C/TD/TP)

Déroulement (2012-2013)

  • (Cours 1): 13 septembre. Langage C, intérêts et défauts. Compilation. Eléments de base du langage (types simples). (=> I.6).
  • (Cours 2): 17 septembre. Types complexes (tableaux, structures, pointeurs), conditions et structures de contrôle (if, while, for) (=> II).
  • (TD 1): 20 septembre. Manipulation de chaînes de caractères et tableaux.
  • (Cours 3): 24 septembre. Fonctions, passage de paramètres, récursivité. Pointeurs et tableaux (I).
  • (TD 2): 27 septembre. Pointeurs et tableaux.
  • (Cours 4): 1 octobre. Pointeurs et tableaux (II), allocation dynamique, tableaux à taille variable (I).
  • (TP 1): 3 octobre. Quelques algorithmes simples, tracés, et récursivité.
  • (TD 3): 4 octobre. Pointeurs et tableaux (II), tableaux à deux dimensions.
  • (Cours 5): 10 octobre. Tableaux à taille variable (II), Structures auto-référentes (arbre binaire de recherche) (I).
  • (TD 4): 11 octobre. Skip-Listes (I).
  • (TD 5): 16 octobre. Skip-Listes (II).
  • (Cours 6): 17 octobre. Skip-Listes (suite et fin). Précompilateur et compilation séparée.
  • (TP 2): 19 octobre. Mini-Tétris Simplifié.
  • (TD 6): 23 octobre. (salle machine) Compilation séparée et implémentation de listes chaînées.
  • (TP 3): 26 octobre. Mini-tetris graphique avec GTK.

Déroulement (2011-2012)

  • (Cours 1): mardi 13 septembre. Langage C, intérêts et défauts. Compilation. Eléments de base du langage (types simples, variables, expressions), e/s. (=> I.10).
  • (Cours 2): mercredi 14 septembre. Fonctions, récursivité, passage de paramètres (=> II.4).
  • (Cours 3): lundi 19 septembre. passage par adresse, pointeurs, void*, tableau = pointeur vers 1ere case, exemple de la copie par bloc (=> II.10)
  • (TD 1): mercredi 21 septembre. fiche TD 1: tableaux, fonctions en C, boucles, e/s, conditionnelles
  • (TP 1): mercredi 21 septembre. TP 1 Annee bissextile, puissance4, traces Logo, Koch.
  • (Cours 4): lundi 26 septembre. Allocation statique. Pile d'exécution. Allocation dynamique. Tableau de taille variable (debut).
  • (TD 2): mercredi 28 septembre. fiche TD 2: pointeurs, chaînes de caractères, recherche de sous-mots.
  • (Cours 5): lundi 3 octobre. Tableau de taille variable (fin). Tableaux et pointeurs. Tableaux et structures. Tableaux à deux dimensions. Structures auto-référentes. Pointeurs de fonction.
  • (TD 3): mercredi 5 octobre. fiche TD 2: ordre lexicographique, concatenation d'un tableau de chaînes de caractères et sa pile d'exécution.
  • (TP 2): mercredi 5 octobre. TP tetris mode texte. Tableau, boucles, listes, déboggeur.
  • (Cours 6): lundi 10 octobre. Compilation séparée. Préprocesseur. C et programmation objet. static/extern.
  • (TD 4): mercredi 12 octobre. fiche TD 3 : skip-liste
  • (TD 5): lundi 17 octobre. fiche TD 3 : skip-liste.
  • (TD 6): mercredi 19 octobre. fiche TD 4 : pointeurs, manipulation de bits, etc.
  • (TP 3): vendredi 21 octobre. TP tetris graphique avec GTK. Programmation événementielle.

Déroulement (2010-2011)

  • (Cours 1): lundi 20 septembre. Langage C, intérêts et défauts. Compilation. Eléments de base du langage (types simples, variables, expressions). (=> I.5).
  • (TD 1): mercredi 29 septembre. Instructions et structures de contrôle usuelles (conditionnelles, boucles) (=> I.10)
  • (TD 2): jeudi 30 septembre. TD 1 tableaux, fonctions en C, E/S simples.
  • (Cours 2): vendredi 1er octobre. Fonctions, passage de paramètres, pointeurs (=> II.5).
  • (TD 3): vendredi 1er octobre. TD 1 tableaux, fonctions en C, E/S simples (II).
  • (Cours 3): lundi 4 octobre. Fonctions, passage de paramètres, pointeurs, allocation dynamique (=> II.10)
  • (Cours 4): lundi 4 octobre. Un exemple complet : les piles en C (II.11).
  • (TP 1): mercredi 6 octobre. Boucles, puissance 4, tracés avec gnuplot, récursivité.
  • (TD 4): vendredi 8 octobre. Exercices simples sur les pointeurs.
  • (TD 5): lundi 11 octobre. Pile d'exécution. Structures auto-référents. Début skip-liste.
  • (TP 2): mercredi 13 octobre. Tetris texte.
  • (TD 6): vendredi 15 octobre. Skip-listes. Compilation séparée et bonnes habitudes de développement C.
  • (TP 3): jeudi 21 octobre. Tetris graphique avec GTK.