L3-Mag1 Phys. Fond., cours C 19-20 Informatique 21 octobre 2019 L3 et Magistère
L3-Mag1 Phys. Fond., cours C 19-20 Informatique 21 octobre 2019 L3 et Magistère 1` ere année, Physique Fondamentale, année 2019-2020 Cours de langage C appliqué à la physique Bartjan van Tent 1. Introduction 2. Bases Linux , premier programme C, compilation, exécution 3. Représentation binaire des nombres entiers et réels en mémoire 4. Variables, constantes, types, opérateurs 5. Tests et boucles 6. Entrées, sorties, chiers, 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 diérentielles par les méthodes d'Euler et de Runge-Kutta 12. Structures 13. Fichiers sources, compilation séparée, visibilité Polycopié écrit par François Naulin (Consulter les mises à jour sur le site : http ://hebergement.u-psud.fr/mpo-informatique/) 1 L3 Mag1 Phys. Fond., cours C 19-20 1. Introduction 21 octobre 2019 1. Introduction 1 But du cours et des TD L'intitulé général du cours et des TD est Informatique mais les sujets abordés ne représentent qu'un aspect bien particulier de ce domaine : l'apprentissage du langage C en vue d'application à la physique. On abordera les sujets suivants : éléments du langage C ANSI notions de Linux pour utilisateur règles générales de programmation, indépendantes du langage utilisé, à observer pour écrire des programmes justes, e caces et lisibles donc faciles à faire évoluer. Liste des documents mis à la disposition des étudiants : transparents de cours polycopié de cours polycopié de TD comprenant : énoncés d'exercices résumé des commandes de base de l'éditeur emacs résumé des commandes Linux de base Tous les documents sont disponibles sur le site : http ://hebergement.u-psud.fr/mpo-informatique/ 2 Le système d'exploitation Linux Le système d'exploitation est Linux (Debian). Pour l'utilisateur il apparaît comme un langage de commande (com- plètement indépendant du C) qui permet de faire eectuer à la machine toutes sortes d'opérations : création et manipulation des chiers, communication avec diérents périphériques, entre utilisateurs, avec le réseau Internet, installation, création, compilation et exécution de logiciels, etc. Linux est un système d'exploitation stable, gratuit et libre. Ceux qui, au prix d'un peu de travail, peuvent l'ins- taller sur leur ordinateur personnel, retrouvent un environnement identique à celui du Magistère et de la plupart des laboratoires de recherche et de nombreuses entreprises. Ils ont accès gratuitement à de nombreux logiciels, en particulier scienti ques, de très haute qualité. Son inconvénient est qu'il ne permet pas toujours aisément l'utilisation de certains périphériques ou l'installation de nouveaux logiciels. La documentation sur Linux abonde aussi bien dans les librairies que sur Internet. Ce qu'on en apprendra, le strict nécessaire pour nos besoins, n'est qu'une toute petite partie de ses possibilités. Pour l'écriture des programmes il est proposé d'utiliser l'éditeur 1 emacs. D'autres éditeurs pourront être installés si nécessaire. 3 Le langage C C is not just another programming language, it's the lingua franca of programming and the bedrock of modern computing ; most operating systems, networks, web browsers and many other programming languages such as Python are written in C. Né au début des années 70, c'est un langage polyvalent et universellement répandu, particulièrement utilisé par les informaticiens. Ses avantages sont, en particulier les suivants : il est à la fois pas trop éloigné du langage de base de l'ordinateur, ce qui permet une communication assez directe et rapide avec lui, et évolué, ce qui permet une communication pas trop laborieuse avec le cerveau humain il est aisé de faire interagir les programmes C avec le système d'exploitation il est la base du C++ il existe des compilateurs 2 gratuits d'excellente qualité, ainsi qu'une documentation abondante, gratuite ou bon marché. 1. Un éditeur est un logiciel permettant d'écrire du texte brut (par opposition au texte mis en forme par un traitement de texte) dans un chier. 2. Le compilateur est le programme qui traduit le C en instructions exécutables par la machine. 2 L3 Mag1 Phys. Fond., cours C 19-20 1. Introduction 21 octobre 2019 Exemple des temps d'exécution (en ms) d'un programme test (tri) selon le langage : Langage C Java PHP Python Temps d'exécution 2.7 47.8 89.2 92. Ses inconvénients : pour le calcul scienti que il n'a pas l'élégance et la clarté du Fortran (mais ce dernier n'a pas la même polyvalence et est principalement cantonné aux laboratoires de recherche alors que le C est largement utilisé dans les entreprises et, d'autre part, le C++ permet de compenser les lacunes du C) il se prête bien à l'écriture de programmes remarquablement obscurs. Il existe d'ailleurs un concours interna- tional annuel du programme le plus incompréhensible. C'est donc le C qui est enseigné, en vue du C++ étudié en seconde année de Magistère. Quelques éléments mineurs de C++ 3 sont cependant introduits dès la première année, quand ils permettent de faire plus simplement que leurs équivalents en C. Remarque Dans le domaine scienti que Maple et Mathematica sont très intéressants pour le calcul formel mais trop lents pour les calculs numériques. Ce cours s'adresse non seulement à ceux qui n'ont jamais programmé en C, mais aussi à ceux qui n'ont jamais programmé du tout. Seuls des rudiments y sont présentés. Des notions importantes sont à peine abordées (pré- processeur, chiers, chaînes de caractères, structures). De nombreuses subtilités ne sont pas mentionnées. Cependant ce qui est présenté permet déjà de faire des calculs intéressants, en particulier en physique. De plus ce cours voudrait être une base su sante à partir de laquelle il est aisé d'étendre ses connaissances à l'aide de documents écrits. 4 Liste de livres de référence pour Linux et le C En principe l'essentiel de ce qui est au programme doit se trouver dans le cours et il n'est pas nécessaire d'acheter un livre. Cependant, il peut être très utile d'en consulter un pour véri er une syntaxe ou un point délicat, obtenir un complément d'explication ou étudier des éléments du C qui ne sont que peu ou pas abordés dans le cours. Pour débuter : Le livre du C premier langage, Claude Delannoy, (s'adresse en particulier à des lecteurs qui ne connaissent aucun langage de programmation mais peut convenir aussi aux autres pour démarrer le C) Programmer en langage C, Claude Delannoy, (plus complet que le précédent, reste abordable pour un lecteur commençant l'étude du C) Pour approfondir les points délicats ou les notions complexes, des livres tendant vers l'exhaustivité mais di ciles pour un débutant : La référence du C norme ANSI/ISO, Claude Delannoy Le langage C Norme ANSI, Brian W. Kernighan et Denis M. Ritchie, (écrit par les fondateurs du C) Le langage C ANSI, Philippe Drix, Dunod Il existe aussi de très bons sites pour le C sur Internet, voir en particulier : http ://cpp.developpez.com/cours/cpp/ et, plus généralement http ://www.developpez.com/ Pour Linux le cours oral et le polycopié su sent largement. Pour ceux qui veulent en apprendre plus, plusieurs livres très utiles sont disponibles à la bibliothèque universitaire, tel : Linux in a Nutshell, J.P. Hekman, etc. O'REILLY 5 Les logiciels mis à disposition des étudiants compilateurs C, C++ Python, Matplotlib (langage interprété, graphisme) Gnuplot, root (tracé de courbes et surfaces, traitement de données) 3. Signalés explicitement comme tels. 3 L3 Mag1 Phys. Fond., cours C 19-20 1. Introduction 21 octobre 2019 bibliothèque mathématique gsl X g, Inkscape (dessin vectoriel) Latex (traitement de texte, en particulier scienti que) OpenO ce (analogue à O ce de Microsoft) Gimp (traitement d'images) OpenGL (animation) et tous les logiciels courants d'une distribution Linux. 4 L3 Mag1 Phys. Fond., cours C 19-20 2. Bases Linux, premier programme C 21 octobre 2019 2. Bases Linux, premier programme C, compilation, exécution 1 Bases de Linux pour l'utilisateur 1.1 Commandes, ligne de commande Pour utiliser un ordinateur fonctionnant avec Linux il faut d'abord fournir un identi ant (c'est à dire un nom d'utilisateur) et un mot de passe 4. Dans la suite on prend l'exemple d'un utilisateur nommé averell et d'un ordinateur nommé vega . Ensuite des commandes peuvent être transmises de deux façons : 1. par des icônes, des menus et des raccourcis clavier (comme dans Microsoft Windows) 2. par l'écriture de ces commandes dans une fenêtre particulière nommée Terminal . Cette écriture se fait à l'aide du clavier mais aussi de la souris et de quelques procédés qui permettent de réduire au minimum les caractères à taper. C'est la seconde méthode qui est décrite ici. Le système indique qu'il est prêt à recevoir des commandes dans la fenêtre Terminal en inscrivant à l'écran, dans cette fenêtre, pour l'exemple envisagé ici, la suite de caractères : [averell@vega ∼]$ qui s'appelle l' invite (ou prompt ). Pour abréger on l'écrira parfois simplement $ dans la suite. L'espace vierge situé à la suite de cette invite, sur la même ligne, s'appelle la ligne de commande , c'est là que l'utilisateur uploads/Industriel/ 0760-cours-de-langage-c.pdf
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 29, 2022
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 2.0595MB