Université Paris-Saclay

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

Cours de langage C appliqué à la physique 2025-2026

Bartjan van Tent


Dernière mise à jour : vendredi 05/09/2025

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

Pour travailler chez soi sur un ordinateur sous Windows

[Cette option alternative était essentielle l'année dernière quand la connexion à distance sur les ordinateurs du Magistère ne marchait pas suite à la cyberattaque, mais elle pourrait toujours être intéressante.]
Voici une manière simple pour travailler chez vous sur un ordinateur sous Windows en utilisant Cygwin, qui ressemble le plus possible à la façon de travailler dans les salles du Magistère.
  1. Télécharger le fichier setup-x86_64.exe. Mettez-le à un endroit sûr dont vous vous rappelez, car vous en aurez besoin non seulement pour installer Cygwin initialement, mais aussi plus tard pour mettre votre installation à jour ou pour installer des paquets supplémentaires.
  2. Lancer le programm setup-x86_64.exe. Pour les premières questions vous pouvez accepter les choix par défaut. Dans la liste des mirroirs vous choisissez celui qui vous convient, par exemple un site localisé en France.
  3. Ensuite vous arrivez sur l'écran où il faut choisir les paquets à installer. Mettez-vous dans la vue "Categories" si ce n'est pas déjà le cas et dépliez "All" pour voir les catégories. En plus des paquets installés par défaut, il faudra installer de la catégorie "Devel" le paquet "gcc-g++" et de la catégorie "Editors" le paquet "emacs-w32". (Pour les installer il faut changer le mot "Skip" en la dernière version non pas indiquée comme "(test)".) Vous pouvez toujours relancer setup-x86_64.exe plus tard pour installer des paquets en plus.
  4. Continuez et enfin patientez pendant l'installation.
Maintenant vous pouvez lancer une fenêtre terminal Cygwin soit à partir du menu de Windows, soit en cliquant sur l'icône sur le bureau (si vous n'avez pas changé ces choix pendant l'installation). Après ça fonctionne comme sur les ordinateurs du Magistère : vous lancez emacs avec la commande "emacs votre_programme.cpp &" et vous pouvez utiliser les autres commandes Linux comme "ls", "cp", "mv", "mkdir" etc.
Pour compiler et exécuter votre programme, vu que "ccc" est une commande spéciale des ordinateurs du Magistère que vous n'avez donc pas ici, il faut utiliser pour compiler

g++ -Wall votre_programme.cpp

ce qui crée un fichier exécutable appelé "a.exe". Vous l'exécutez ensuite avec la commande

./a

L'option "-Wall" est pour que le compilateur n'affiche pas seulement les erreurs de compilation, mais aussi des avertissements s'il pense que quelque chose n'est pas bonne, comme sur les ordinateurs du Magistère.
Comment faire ensuite pour les fonctions de la bibliothèque du Magistère ?
En principe il devrait être possible de copier tous les fichiers source de la bibliothèque du Magistère, qui se trouvent dans le répertoire /public/mphyo/bibli_fonctions/ , et de la compiler sous Cygwin et utilisant "make" (il faut alors installer le paquet "make" de la catégorie "Devel"), mais je ne l'ai pas encore essayé pour tester.

Une solution plus simple, si vous n'utilisez que les fonctions "rk4" et "make_plot_py" de la bibliothèque, est de copier-coller ces fonctions directement dans votre programme. Voici la fonction rk4.

Pour l'instant je n'ai pas encore réussi à faire fonctionner les graphiques de Python matplotlib sous Cygwin, donc la fonction "make_plot_py" n'est pas encore utile. Si vous avez déjà une façon de faire des graphiques avec Python matplotlib sous Windows, vous pouvez pour votre projet simplement faire la partie Python à part en utilisant le fichier de résultats fourni par votre programme C (il n'est pas obligatoire d'utiliser make_plot_py pour faire appel au Python depuis le C).

Projets

Sujets d'examen avec corrigés

  1. Mai 2021 avec corrigé
  2. Avril 2022 avec corrigé
  3. Mai 2023 avec corrigé
  4. Mai 2024 avec corrigé
  5. Mai 2025 avec corrigé