Chapitre 1: Introduction Ecole Polytechnique Fédérale de Lausanne, 1999 3 1 Int
Chapitre 1: Introduction Ecole Polytechnique Fédérale de Lausanne, 1999 3 1 Introduction Ce cours présente le langage C, un langage essentiel dans l’enseignement de la programmation parce qu’il occupe une place prépondérante en informatique, qu’il possède la majorité des constructions qu’on retrouve dans les autres langages structurés modernes et que sa syntaxe a servi de base à nombre de ces langages. Ce cours est à l’informatique à peu près ce que l’algèbre et le calcul différentiel et intégral sont aux mathémati- ques. Les notions qu’il présente ne permettent de résoudre que des problèmes simples, mais elles sont fonda- mentales. Le cours est composé d’une série d’exercices introduisant progressivement les instructions du C. Il n’est pas nécessaire de les faire tous systématiquement. En fonction de ses capacités, le lecteur peut en faire un plus ou moins grand nombre. Ces exercices sont là d’une part pour s’entraîner et pour mieux comprendre les instruc- tions présentées, et d’autre part pour vérifier l’acquisition des connaissances. Ce cours se termine par des mini-projets montrant à quoi sert un ordinateur dans l’industrie et la recherche: • calcul de la trajectoire d’un projectile • rotation 3-D • calcul d’un pont en treillis • labyrinthe 2 Description générale de l’ordinateur Cette section décrit très brièvement l’architecture des ordinateurs et le codage de l’information dans un ordi- nateur. Ces informations sont utiles pour mieux comprendre l’organisation et le fonctionnement des program- mes en C. 2.1 Architecture des ordinateurs La Figure 1 montre les éléments principaux d’un ordinateur. Celui-ci comporte essentiellement une mémoire électronique et un processeur connectés entre eux et connectés aux périphériques (le disque dur, le clavier, l’écran, etc.). La mémoire électronique est rapide. Elle contient les données (valeurs numériques, textes, des- sins...) et les programmes (listes d’instructions qui font précisément l’objet de ce cours). Quand on éteint l’ordinateur, cette mémoire s’efface, à part une petite partie qui permet de relancer l’ordinateur au réenclenche- ment. La mémoire électronique est trop petite pour contenir tout ce qu’on veut mémoriser. C’est pourquoi l’ordinateur a à sa disposition des mémoires plus grandes mais plus lentes: le disque dur et les disquettes. Ces mémoires-là retiennent les informations quand on éteint l’ordinateur. FIGURE 1: La structure d’un ordinateur @1000 @1004 @1008 @100c @1010 @1014 @1018 @101c @1020 @1024 @1028 bus processeur mémoire 1 octet = 8 bits Chapitre 2: Description générale de l’ordinateur 4 Sections de Génie Mécanique et de Physisque, Cours de Programmation I: Le langage C Le processeur possède une unité arithmétique et logique qui prend les instructions une à une dans la mémoire électronique et les exécute. A l’enclenchement l’ordinateur commence par exécuter des instructions à la case- mémoire numéro zéro et, jusqu’à ce qu’on l’éteigne, il n’arrête pas d’en exécuter et d’en réexécuter, chargeant sa mémoire avec des programmes en provenance du disque ou créés selon vos ordres. Tout ce qui apparaît sur l’écran lorsque vous enclenchez l’ordinateur a été dessiné par des programmes, à peu près identiques sur chaque station de travail. Ces programmes détectent également les mouvements de la souris et les touches pressées sur le clavier. Ils manipulent les informations enregistrées sur les disques et les disquet- tes. Ils exécutent des éditeurs de textes ou graphiques, des calculateurs. De tels programmes peuvent être déve- loppés à l’aide d’autres programmes précisément prévus pour cela. Bien évidemment le tout premier programme a dû être développé d’une autre façon, mais c’était il y a longtemps. 2.2 Le codage de l’information Tout fonctionne en binaire dans un ordinateur, c'est-à-dire en manipulant les seules valeurs 0 et 1, représen- tées habituellement dans la machine par les tensions de 0 et 5V respectivement. Ces chiffres binaires, 0 et 1, à partir desquels on construit des nombres plus grands sont appelés bits, abréviation de binary digit. Toutes les données manipulables par un ordinateur sont ainsi représentées par des séquences de bits: • Un caractère: 8 bits (code entre 0 et 255) • Un entier: 32 bits • Un réel en virgule flottante (32 ou 64 bits). • sons: décomposés en échantillons • images: décomposées en pixels. Pour comprendre le codage de l’information, il faut connaître les puissances de 2: Codage d’un entier de 8 bits. La figure 2 montre comment est codé un entier de 8 bits. La valeur binaire. 01100001 correspond à l’entier 97. Pour savoir cela, on aligne au dessus de chaque bit l’exposant de 2 corres- pondant à la position du bit, et l’on additionne toutes les puissances de 2 pour lesquelles le bit est 1. Dans notre cas, cela donne 64+32+1 = 97. Il est facile d’étendre cela à 8, 16, 32 ou 64 bits. Les nombres de 64 bits permet- tent de stocker des valeurs astronomiques (264 ~= 16.1018), soit 16 milliards de milliards. Codage des caractères. Les caractères sont généralement représentés sur 8 bits. Par convention, on fait cor- respondre certaines valeurs aux caractères de l’alphabet. La convention de codage la plus fréquente est la con- vention ASCII, qui fait correspondre les valeurs 97, 98, 99, ... aux caractères ‘a’, ‘b’, ‘c’, ..., et les valeurs 65, 66, 67, ... aux caractères ‘A’, ‘B’, ‘C’, ... La figure 3 résume ce codage des caractères. Notez que les caractères 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 FIGURE 2: Codage binaire 0 0 0 1 1 2 4 8 0 1 1 0 16 32 64 128 = 97 = ‘a’ = 0x61 0x1 0x6 3 2 1 0 7 6 5 4 position puissance de 2 valeur binaire représentation hexadécimale Chapitre 2: Description générale de l’ordinateur Ecole Polytechnique Fédérale de Lausanne, 1999 5 figurant en italique dans cette table ne sont pas affichables tels quels mais sont ce que l'on appelle des caractè- res de contrôle (retour à la ligne, changement de page, bip sonore, etc...) Notation hexadécimale. Comme la notation binaire demande énormément de chiffres pour représenter un nombre et que la notation décimale usuelle ne permet pas de manipuler les puissances de 2 facilement, on uti- lise souvent la notation hexadécimale, c'est-à-dire en base 16. Pour convertir un nombre noté en binaire en notation hexadécimale, il suffit de grouper les bits par blocs de 4, correspondant à des valeurs entre 0 et 15, notées 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a ( = 10), b ( = 11), c ( = 12), d ( = 13), e ( = 14), f ( = 15). On peut ainsi repré- senter la valeur décimale 97, dans la figure 2, par la valeur hexadécimale 0x61. Par convention et pour éviter les confusions, on fait toujours commencer les valeurs hexadécimales par les caractères 0x. Les codages des nombres réels, des sons et des images sont un peu plus compliqués, mais se réduisent tou- jours à des séquences de nombres entiers manipulés par l'ordinateur sous forme de chaînes de bits. 2.3 Fonctionnement d’un processeur Au bas niveau (niveau matériel), la seule chose qu’un microprocesseur sait faire, c’est prendre une ou deux valeurs en mémoire et les stocker temporairement dans un registre interne (un registre est une petite mémoire très rapide interne au microprocesseur), leur faire subir des opérations simples (et logique, ou logique, addi- tion, soustraction), et remettre le résultat en mémoire. Ces trois fonctions (prendre les valeurs en mémoire, opé- ration simples, et remettre les valeurs en mémoire) s’appellent les instructions du processeur. Toutes les opérations complexes que vous ferez avec votre ordinateur se décomposent en une séquence (parfois très lon- gue) d’instructions. Les microprocesseurs modernes effectuent environ 1 instruction par cycle d’horloge. Lorsque l’on sait que les microprocesseurs actuellement sur le marché fonctionnent à 500Mhz (et certains à 1Ghz), cela laisse au microprocesseur le temps d’effectuer 500 millions d’instructions par seconde. Chaque type d’instruction a un code (par exemple 0 pour charger une valeur de la mémoire dans un registre du processeur, 1 pour le mouvement inverse, 2 pour l’addition de deux valeurs contenues dans un registre, etc.). Un programme simple pourrait donc être la séquence de chiffres suivante: 0 NU 16 DL 32 SP 48 0 64 @ 80 P 96 ‘ 112 p 1 SH 17 D1 33 ! 49 1 65 A 81 Q 97 a 113 q 2 SX 18 D2 34 " 50 2 66 B 82 R 98 b 114 r 3 EX 19 D3 35 # 51 3 67 C 83 S 99 c 115 s 4 ET 20 D4 36 $ 52 4 68 D 84 T 100 d 116 t 5 EQ 21 NK 37 % 53 5 69 E 85 U 101 e 117 u 6 AK 22 SY 38 & 54 6 70 F 86 V 102 f 118 v 7 BL 23 EB 39 ’ 55 7 71 G 87 W 103 g 119 w 8 BS 24 CN 40 ( 56 8 72 H 88 X 104 h 120 x 9 HT 25 EM 41 ) 57 9 73 I 89 Y 105 i 121 y 10 LF 26 SB 42 * 58 uploads/Finance/ cours-c.pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 18, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.9492MB