14/03/16 1 Programmation en langage C E L M o u k h t a r Z E M M O U R I E N S
14/03/16 1 Programmation en langage C E L M o u k h t a r Z E M M O U R I E N S A M – M e k n è s Version 1.0 – 2015 / 2016 E. Zemmouri, ENSAM - Meknès "C is a general-purpose programming language which features economy of expression, modern control flow and data structures, and a rich set of operators. C is not a "very high level" language, nor a "big" one, and is not specialized to any particular area of application." Kernighan & Richie, 1978 What is C 14/03/16 2 Sommaire • Généralités • Éléments de base de C o Identificateurs o Mots clés o Commentaires o Les types • Lecture / écriture • Structures de contrôle E. Zemmouri, ENSAM - Meknès Un peu d'histoire … • Le C a été conçu en 1972 par Dennis Richie et Ken Thompson o Deux chercheurs au Bell Labs o Objectif : développer un système d'exploitation UNIX • En 1978, Brian Kernighan et Dennis Richie publient la définition classique du C o Première édition du livre "The C programming language" • En 1983, l'ANSI décida de normaliser le langage o 1989 la définition de la norme ANSI C (ou C89) o Deuxième édition de "The C programming language" • L'ISO à repris la même norme en 1990 (ou C90) E. Zemmouri, ENSAM - Meknès 14/03/16 3 La compilation • C est un langage compilé o Par opposition au langages interprétés (Python, Matlab, …) • è Un programme C écrit dans un fichier source est traduit en totalité en langage machine avant exécution. • Quatre phases : o Traitement par le préprocesseur o Compilation o Assemblage o Édition de liens • Exemples de compilateurs o GCC du projet GNU o MinGW (Minimalist GNU for Windows) E. Zemmouri, ENSAM - Meknès La compilation E. Zemmouri, ENSAM - Meknès Préprocesseur Ficher source Messages d'erreurs Code assembleur Librairies de fonctions Fichier exécutable Compilateur Assemblage Editeur de liens Ficher objet Messages d'erreurs 14/03/16 4 Éléments de base du langage Premier programme • À éditer à l'aide d'un éditeur de texte o Fichier source hello.c • Compiler o gcc hello.c • Puis exécuter J E. Zemmouri, ENSAM - Meknès 14/03/16 5 Composants élémentaires du C • Six catégories de composants élémentaires : o Les identificateurs o Les mots clés o Les opérateurs o Les constantes o Les chaines de caractères o Les signes de ponctuation • Les commentaires sont enlevés par le préprocesseur E. Zemmouri, ENSAM - Meknès Identificateurs • Servent pour identifier (donner des noms) aux entités du programme : o variables, fonctions, types, … • Suite de caractères parmi : o les lettres (minuscules ou majuscules, non accentuées), o les chiffres, o le “blanc souligné _ • Commence par une lettre (ou _ ) • Ne doit pas être un des mots clés du langage. E. Zemmouri, ENSAM - Meknès 14/03/16 6 Mots clés • 32 mots clefs de la l'ANSI C • int float double char void short long signed unsigned struct enum union • const volatile static auto register extern typedef • if else for while do switch case default break continue goto • return sizeof E. Zemmouri, ENSAM - Meknès Les commentaires • Les commentaires permettent de documenter un programme. o Améliorer la lisibilité du programme • Un commentaire en C commence par /* et se termine par */ o Exemple /* ceci est un commentaire */ • // permet un commentaire sur une seule ligne • N.B. Les commentaires ne peuvent pas être imbriqués E. Zemmouri, ENSAM - Meknès 14/03/16 7 Les types de base • Le C est un langage typé : o è Toute variable, constante ou fonction est d’un type précis • Le type définit la représentation mémoire d'un objet • Les types de base en C concernent o les entiers o les flottants (nombres réels) o les caractères E. Zemmouri, ENSAM - Meknès Les types entiers • Le type entier représente l'ensemble des entiers relatifs (positifs et négatifs) • Plusieurs sous types : E. Zemmouri, ENSAM - Meknès Type Taille Valeurs Intervalle char 8 bits caractères [–128 , 127] short 16 bits Entiers courts [–32768 , 32767] int 32 bits Entiers [–231 , 231 – 1] long 64 bits Entiers long [–263 , 263 – 1] unsigned char 8 bits caractères [0 , 255] unsigned short 16 bits Entiers courts non signés [0 , 65536] unsigned int 32 bits Entiers non signés [0 , 232 – 1] unsigned long 64 bits Entiers long non signés [0 , 264 – 1] N.B. La taille mémoire des types en C dépend de la machine ! 14/03/16 8 Les types entiers • Exercice : o Ecrire un programme qui donne d'intervalle des nombres représentés par les types : char, short, int, et long, signed et unsigned. E. Zemmouri, ENSAM - Meknès Les types flottants • 3 types correspondant à différentes précisions : E. Zemmouri, ENSAM - Meknès Type Taille Valeurs float 32 bits Flottants simple précision double 64 bits Flottants double précision long double 128 bits Flottants précision étendue N.B. La taille mémoire des types en C dépend de la machine ! • Erreur de troncature : o Quelle que soit la machine utilisée, on est assuré que cette erreur (relative) ne dépassera pas 10-6 pour le type float et 10-10 pour le type long double. 14/03/16 9 Les types flottants • Exercice : o Ecrire un programme qui donne le plus grand nombre et le plus petit nombre proche de zéro (epsilon) qu'on peut représenter avec le type float. E. Zemmouri, ENSAM - Meknès Le type des caractères • Le type char représente le jeu de caractères de la machine • Un char en C est codé sur un octet (8 bits) • Un caractère est encodé en utilisant un entier avant sa représentation binaire en mémoire. • Plusieurs encodages sont utilisés: o ASCII (American Standard Code for Information Interchange) • Vesrion originale (1960) représente 128 caractères avec les nombres de 0 à 127 sur 7 bits. • Version étendue (1980) représente 256 sur 8bits o Unicode (1990) représente 65 536 sur 16 bits E. Zemmouri, ENSAM - Meknès 14/03/16 10 Le type des caractères • L'ensemble des caractère ASCII (Version originale) o Comment lire : R sur ligne 8 colonne 2 est encodé par 82. E. Zemmouri, ENSAM - Meknès Standard Code for Information Interchange.) In the 1960s, the original ASCII set encoded each keyboard character and several control characters using the inte- gers from 0 through 127. An example of a control character is Control+D, which is the command to terminate a shell window. As new function keys and some international characters were added to keyboards, the ASCII set doubled in size to 256 distinct values in the mid-1980s. Then, when characters and symbols were added from languages other than English, the Unicode set was created to support 65,536 values in the early 1990s. T able 2.5 shows the mapping of character values to the first 128 ASCII codes. The digits in the left column represent the leftmost digits of an ASCII code, and the digits in the top row are the rightmost digits. Thus, the ASCII code of the character 'R' at row 8, column 2 is 82. [TABLE 2.5] The original ASCII character set 0 1 2 3 4 5 6 7 8 9 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT 1 LF VT FF CR SO SI DLE DCI DC2 DC3 2 DC4 NAK SYN ETB CAN EM SUB ESC FS GS 3 RS US SP ! “ # $ % & ` 4 ( ) * + , - . / 0 1 5 2 3 4 5 6 7 8 9 : ; 6 < = > ? @ A B C D E 7 F G H I J K L M N O 8 P Q R S T U V W X Y 9 Z [ \ ] ^ _ ‘ a b c 10 d e f g h i j k l m 11 n o p q r s t u v w 12 x y z { | } ~ DEL CHAPTER 2 Software Development, Data Types, and Expressions [ 56 ] Copyright 2011 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. Due to electronic rights, some third party content may be suppressed from the eBook and/or eChapter(s). Editorial review has deemed that any suppressed content does not materially affect the overall learning experience. Cengage Learning reserves the right to remove additional content at any time if subsequent rights restrictions require it. Le type des caractères • Les caractères non imprimables : E. Zemmouri, ENSAM - Meknès Programmer en langage C 22 © Éditions Eyrolles Par ailleurs, la notion de caractère en C dépasse celle de caractère imprimable, c’est-à-dire auquel est obligatoirement associé un graphisme (et qu’on peut donc imprimer ou afficher sur uploads/Litterature/ 02-langage-c-pdf 1 .pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 25, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 1.4356MB