Université Paris-Saclay

L3 et Magistère 1ère année de Physique Fondamentale

Cours de langage C appliqué à la physique 2023-2024

Bartjan van Tent


Dernière mise à jour : lundi 18/03/2024

Travail personnel février - mars 2024

Consultez les sujets proposés ici :

Dépot des projets

La date limite pour le dépot des projets est le jeudi 28 mars à 18h00.

Les projets doivent être déposés sur e-Campus, dans S5 : Informatique, activité Devoir Projet informatique.
Il faut strictement adhérer aux règles suivantes concernant le nom et le format du fichier à déposer.

Le nom doit être de la forme suivante : Projet_Nom_Prenom.tar.gzNom et Prenom sont à remplacer par votre nom et prénom, sans accents ni traits d'union éventuels. Exemple : si votre prénom et nom sont Xavier-Marie Sérénité, le nom de votre fichier est Projet_Serenite_XavierMarie.tar.gz.

Tous les fichiers de votre projet doivent être regroupés dans un seul fichier .tar, puis ce fichier doit être comprimé avec gzip. Vous créez le fichier .tar avec la commande suivante (à exécuter dans le répertoire où se trouvent vos fichiers) :

tar cvf Projet_Nom_Prenom.tar liste_de_fichiers

liste_de_fichiers est une liste de tous vos fichiers (utiles) du projet, séparés par des espaces. Exemple : si vous (Xavier-Marie Sérénité) voulez inclure les fichiers Projet.cpp et valeurs.dat ainsi que tous les fichiers du sous-répertoire figures, il faut taper :

tar cvf Projet_Serenite_XavierMarie.tar Projet.cpp valeurs.dat figures

Attention : le nom du fichier .tar se trouve directement après les "cvf" et avant les autres noms de fichiers. Il ne faut pas se tromper dans cet ordre, sinon vous risquez de vous faire écraser un fichier.
Enfin vous comprimez le fichier .tar avec la commande :

gzip Projet_Nom_Prenom.tar

ce qui crée le fichier Projet_Nom_Prenom.tar.gz à déposer sur e-Campus.
La création du fichier .tar.gz selon les instructions ci-dessus est obligatoire, même si vous n'avez qu'un seul fichier .cpp à soumettre.
Attention : la taille de votre fichier .tar.gz ne doit pas dépasser les 10 Mo.
Vous pouvez vérifier le contenu du fichier .tar.gz avec la commande :

tar ztvf Projet_Nom_Prenom.tar.gz

N'oubliez pas de vérifier (plusieurs fois !) que tous les fichiers dont vous aurez besoin pour montrer et exécuter votre programme pendant l'examen oral sont inclus dans le fichier .tar.gz. L'utilisation d'autres fichiers pendant l'examen oral n'est pas autorisée.
Attention : si vous avez choisi un sujet libre, il faut inclure dans la soumission aussi un fichier .txt ou .pdf décrivant le sujet.

Soutenances

Les soutenances auront lieu les mardi 2, 9 et 23 avril (et pour trois étudiants du groupe 1, le vendredi 26 avril). Les dates et heures précises de votre passage se trouvent sur la page e-Campus du cours.
Les étudiants qui ne sont pas disponibles à l'heure prévue (pour une raison légitime) doivent immédiatement contacter leur examinateur.

Les soutenances auront lieu dans vos salles d'informatique habituelles. Pendant ces oraux vous utiliserez les ordinateurs du magistère (dans un répertoire spécial pour la soutenance) et non pas votre ordinateur portable. Il faut donc vérifier que votre projet s'exécute bien sur les ordinateurs du magistère même si vous avez l'habitude de travailler sur votre ordinateur portable.

Travaux dirigés

Transparents de cours

(Les chapitres vont apparaître au fur et à mesure que le cours avance.)

Poly de cours (écrit par François Naulin)

(Je n'ai pas recompilé les chapitres individuels qui n'ont pas changé, c'est donc normal de voir des dates de 2021.)
  1. Introduction
  2. Bases Linux, premier programme en C, compilation, exécution
  3. Représentation des nombres entiers et réels en binaire
  4. Variables, constantes, types, opérateurs
  5. Tests et boucles
  6. Entrées, sorties, fichiers, en C++
  7. Fonctions
  8. Adresses, pointeurs
  9. Tableaux dynamiques
  10. Générateur aléatoire uniforme sur [0,1], applications
  11. Introduction à la programmation de la résolution numérique d'équations différentielles par les méthodes d'Euler et de Runge-Kutta
  12. Structures
  13. Fichiers sources, compilation séparée, visibilité
Poly complet (contenant tous les chapitres) : cliquer ici

Les chapitres 3, 12 et 13, ainsi que les commandes Linux et le graphisme avec Python matplotlib, sont hors programme en ce qui concerne l'examen écrit.

Compléments de cours (hors programme, pas à jour)

  1. Tableaux standards du C
  2. Rapport entre tableaux standards, adresses et pointeurs
  3. Entrées, sorties, fichiers, en C strict
  4. Chaînes de caractères, en C strict

Graphisme avec Python Matplotlib

  1. Notice écrite pour ce cours
  2. Site de Matplotlib

Pour se connecter aux ordinateurs du Magistère depuis chez soi

Projets

Sujets d'examen avec corrigés

  1. Mars 2017 avec corrigé
  2. Mars 2018 avec corrigé
  3. Mai 2019 avec corrigé
  4. Mai 2021 avec corrigé
  5. Avril 2022 avec corrigé
  6. Mai 2023 avec corrigé