INSTITUT DE TECHNOLOGIE DUT Génie Electrique et Informatique Industrielle PROGR
INSTITUT DE TECHNOLOGIE DUT Génie Electrique et Informatique Industrielle PROGRAMMATION EN C/C++ Polycopié de cours C.ALEXANDRE – C.PAUTOT i 1. INTRODUCTION ....................................................................................................................................... 1 1.1 L’informatique ............................................................................................................ 1 1.2 Le système de traitement de l’information ................................................................. 1 1.3 Le codage de l’information......................................................................................... 2 1.4 L’ordinateur ................................................................................................................ 5 1.5 Le système d’exploitation ........................................................................................... 6 1.6 Les applications logicielles ......................................................................................... 9 1.7 Le système de fichiers .............................................................................................. 10 1.8 Les répertoires (syntaxe Unix) ................................................................................. 10 1.9 Partitionnement et montage ...................................................................................... 11 1.10 Informations associées aux fichiers .......................................................................... 13 1.11 Protection des fichiers (Unix) ................................................................................... 14 1.12 Tableau comparatif des systèmes de fichiers ........................................................... 16 1.13 Les fichiers textes ..................................................................................................... 16 2. LANGAGES DE PROGRAMMATION .................................................................................................. 19 2.1 Définitions ................................................................................................................ 19 2.2 Méthodologie pour l’écriture d’un programme ........................................................ 20 2.3 Le langage C ............................................................................................................. 21 3. BASES DU LANGAGE C ......................................................................................................................... 23 3.1 Les variables ............................................................................................................. 23 3.2 L’instruction d’affectation ........................................................................................ 24 3.3 Les types entier ......................................................................................................... 27 3.4 Les types flottants (réels) .......................................................................................... 29 3.5 Les conversions de type ............................................................................................ 30 3.6 Les types char ........................................................................................................... 32 3.7 Communiquer avec le programme : les entrées-sorties standard ............................. 33 3.8 L’instruction printf ................................................................................................... 37 3.9 L’instruction scanf .................................................................................................... 40 3.10 Structure de choix : l’instruction if ........................................................................... 42 3.11 Structure de choix : les conditions en C ................................................................... 45 3.12 Structure de choix : l’instruction switch ................................................................... 49 3.13 Structure de répétition conditionnelle : l’instruction do... while .............................. 51 3.14 Structure de répétition conditionnelle : l’instruction while... ................................... 52 3.15 Structure de répétition inconditionnelle : l’instruction for... .................................... 53 3.16 Algorithmes élémentaires ......................................................................................... 56 4. LES FONCTIONS ..................................................................................................................................... 59 4.1 Introduction .............................................................................................................. 59 4.2 Premier exemple ....................................................................................................... 60 4.3 Fonction sans résultat ou sans paramètres ................................................................ 64 4.4 L’instruction return .............................................................................................. 66 4.5 Variables globales et locales..................................................................................... 67 4.6 Variable statique ....................................................................................................... 70 4.7 La récursivité ............................................................................................................ 71 4.8 Passage des paramètres par valeur. .......................................................................... 72 4.9 Les pointeurs ............................................................................................................ 74 4.10 Passage de pointeurs comme paramètres d’une fonction ......................................... 83 5. LES TABLEAUX ....................................................................................................................................... 85 ii 5.1 Tableaux à une dimension........................................................................................ 85 5.2 Remarques importantes sur les tableaux .................................................................. 90 5.3 Les tableaux à deux dimensions............................................................................... 93 5.4 Passage d’un tableau comme paramètre d’une fonction .......................................... 97 5.5 Relations entre tableaux et pointeurs ..................................................................... 100 5.6 Allocation dynamique de la mémoire .................................................................... 104 6. LES CHAINES DE CARACTERES ...................................................................................................... 107 6.1 Déclaration ............................................................................................................. 107 6.2 Lire ou écrire des chaînes ....................................................................................... 110 6.3 Connaître la longueur d’une chaîne ....................................................................... 117 6.4 Copier une chaîne dans une autre chaîne ............................................................... 118 6.5 Comparer deux chaînes .......................................................................................... 119 6.6 Concaténer deux chaînes ........................................................................................ 120 6.7 Rechercher un caractère dans une chaîne .............................................................. 121 6.8 Rechercher une chaîne dans une autre chaîne ........................................................ 121 6.9 Fonctions diverses .................................................................................................. 123 6.10 Le passage d’une chaîne comme paramètre d’une fonction. ................................. 124 6.11 Les tableaux de chaînes de caractères. ................................................................... 126 7. LES PARAMETRES DE LA FONCTION MAIN. ............................................................................... 129 8. LES STRUCTURES ................................................................................................................................ 133 8.1 Définition ............................................................................................................... 133 8.2 Transmission d’une structure en paramètre d’une fonction ................................... 137 8.3 La définition de types nouveaux ............................................................................ 140 9. LES FICHIERS ........................................................................................................................................ 143 9.1 Introduction ............................................................................................................ 143 9.2 Ouverture et fermeture d’un flux ........................................................................... 145 9.3 Buffers associés aux flux ....................................................................................... 149 9.4 Lecture et écriture dans un flux .............................................................................. 150 9.4.1 Les lectures et écritures par caractère ............................................................ 150 9.4.2 Les lectures et écritures par ligne ................................................................... 151 9.4.3 Les lectures et écritures formatées ................................................................. 153 9.4.4 Les lectures et écritures binaires .................................................................... 155 9.5 Positionnement dans un flux .................................................................................. 158 9.6 Utilisation d’un fichier de configuration ................................................................ 160 10. DIVERS ................................................................................................................................................ 163 10.1 Exécution de commandes....................................................................................... 163 10.2 Les opérateurs binaires ........................................................................................... 164 10.3 Les énumérations ................................................................................................... 165 10.4 Les opérateurs d’incrémentation et de décrémentation .......................................... 166 10.5 L’opérateur virgule ................................................................................................ 168 10.6 L’opérateur conditionnel ? ..................................................................................... 168 10.7 Les macros avec paramètres .................................................................................. 169 10.8 Ce que vous ne verrez pas ...................................................................................... 172 10.9 Définition de macro à l’invocation du compilateur ............................................... 172 10.10 Compilation conditionnelle ................................................................................ 173 11. EDITION DE LIEN ............................................................................................................................ 179 iii 11.1 Les pointeurs de fonction ....................................................................................... 179 11.2 Notion de processus ................................................................................................ 182 11.3 Les zones mémoires d’un processus ....................................................................... 183 11.4 Projets multi-fichiers : édition de liens ................................................................... 186 12. LES LIBRAIRIES ............................................................................................................................... 195 12.1 Les bibliothèques statiques (archive) ..................................................................... 195 12.2 Les bibliothèques dynamiques (partagées) ............................................................. 196 12.3 Avantages et inconvénients des bibliothèques dynamiques ................................... 200 12.4 La bibliothèque standard du C ................................................................................ 202 12.4.1 Les entrées-sorties <stdio.h> .......................................................................... 202 12.4.2 Les fonctions mathématiques <math.h> ......................................................... 203 12.4.3 Les manipulations de caractères <ctype.h> .................................................... 204 12.4.4 Les manipulations de chaînes <string.h> ....................................................... 204 12.4.5 Manipulations de l’heure <time.h> ................................................................ 205 12.4.6 Diverses fonctions utilitaires <stdlib.h> ......................................................... 205 13. INTRODUCTION A LA PROGRAMMATION EN C++ ............................................................... 207 13.1 Généralités .............................................................................................................. 207 13.2 Intérêt de la conception objet.................................................................................. 207 13.3 Un exemple de programmation classique ............................................................... 208 13.4 Les classes .............................................................................................................. 213 13.4.1 Définition ........................................................................................................ 213 13.4.2 Syntaxe ........................................................................................................... 213 13.4.3 Constructeur ................................................................................................... 214 13.4.4 Destructeur...................................................................................................... 214 13.4.5 Restriction d’accès .......................................................................................... 214 13.4.6 Les fonctions (méthodes) de la classe ............................................................ 215 13.4.7 Organisation en fichiers source et header ....................................................... 216 13.5 Création d’un objet ................................................................................................. 217 13.5.1 Au moyen d’une déclaration .......................................................................... 217 13.5.2 Avec l’opérateur new...................................................................................... 217 13.6 Manipulation des objets .......................................................................................... 219 13.6.1 Accès à une variable ....................................................................................... 219 13.6.2 Accès à une fonction....................................................................................... 219 13.7 Surcharge des fonctions et des opérateurs .............................................................. 221 13.8 Passage par référence.............................................................................................. 224 13.9 Héritage et composition .......................................................................................... 225 13.9.1 Introduction .................................................................................................... 225 13.9.2 La composition ............................................................................................... 226 13.9.3 L’héritage........................................................................................................ 226 13.9.3.1 Principe de l’héritage .............................................................................. 226 13.9.3.2 Restriction d’accès .................................................................................. 228 13.9.3.3 Substitution des membres hérités ........................................................... 229 13.9.3.4 Gestion des constructeurs ....................................................................... 230 13.9.3.5 Fonctions virtuelles ................................................................................ 232 13.10 Les flux d’entrée sortie ....................................................................................... 235 13.10.1 Généralités .................................................................................................. 235 13.10.2 Opérateur d'insertion et d’extraction de flux .............................................. 235 13.10.2.1 Extraction de flux >> ............................................................................. 235 13.10.2.2 Insertion de flux >> ................................................................................ 235 iv 13.10.3 Modification des formatages ...................................................................... 236 13.10.3.1 Liste des drapeaux .................................................................................. 236 13.10.3.2 Fonctions permettant de modifier les drapeaux ..................................... 237 13.10.3.3 Formatage de la sortie ............................................................................ 237 13.10.4 Manipulateurs non paramétriques .............................................................. 238 13.10.5 Entrée et sortie non formatées .................................................................... 239 13.10.5.1 La fonction get() ................................................................................ 239 13.10.5.2 La fonction getline() ...................................................................... 240 13.10.5.3 La fonction read() .............................................................................. 240 13.10.6 Fonctions de sortie non formatées ............................................................. 241 13.10.6.1 La fonction put ..................................................................................... 241 13.10.6.2 La fonction write ................................................................................ 241 13.10.7 Les fonctions de manipulations évoluées................................................... 241 13.11 Bibliographie ...................................................................................................... 242 1 1. Introduction 1.1 L’informatique C’est la manipulation de l’information à l’aide d’un ordinateur. Ordinateur : machine électronique programmable destinée au traitement de l’information numérique. Information : texte, son, image, données binaires (produites par un système électronique, utilisées par un système électronique), … 1.2 Le système de traitement de l’information ordinateur Système d’exploitation Dispositif électronique matériel (hardware) Logiciels (software) Applications Logicielles Interface de programmation Interface matériel/logiciel Interface de programmation, l’Application Programming Interface (API) : exemple, l’API Win32 pour Windows. Interface matériel/logiciel : exemple, le Basic Input Output System (BIOS). Jusqu’à MS- DOS, le BIOS sert d’interface entre l’ordinateur et le système d’exploitation. Cette méthode n’est plus utilisée aujourd’hui, l’interface est intégrée au système d’exploitation (voir HAL sous NT). 2 1.3 Le codage de l’information Un bit (contraction de Binary digIT) est un chiffre pouvant prendre la valeur 0 ou 1 (base 2). Dans un ordinateur, un bit est représenté par deux niveaux de tension électrique. Un nombre binaire est une suite de bits (comme un nombre décimal est une suite de chiffres compris entre 0 et 9). En décimal (base 10) : Le nombre 259 = 2*102 + 5*101 + 9*100 = 2*100 + 5*10 + 9*1 En binaire (base 2) : Le nombre 10101 = 1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 1*16 + 1*4 + 1*1 Un octet (ou byte) est une suite de 8 bits : L’octet 10000001 = 1*27 + 1*20 = 129 La valeur d’un octet est comprise entre 0 et 255. Pour raccourcir l’écriture, on utilise la notation hexadécimale (base 16). Un chiffre en base 16 peut prendre 16 valeurs allant de 0 à 15. Il peut être codé avec 4 bits. Comme les chiffres s’arrêtent à 9 en décimal, on utilise les lettre a, b, c, d ,e et f pour représenter les derniers états. 3 décimal binaire hexadécimal 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 a 11 1011 b 12 1100 c 13 1101 d 14 1110 e 15 1111 f L’octet 10000001 = 81 en hexa Notation pour les bases : (10000001)b = (81)h = (129)d 101011002 = ac16 = 17210 On utilise couramment les multiples suivants : multiple valeur Kilo 210 = 1024 Méga 220 = 1048576 = 1024 kilo Giga 230 = 1073741824 = 1024 méga Tera 240 = 1099511627776 = 1024 giga 4 Exemples : 1 kilobit = 1024 bits 128 mégaoctet = 128*1024*1024 octets Attention : uploads/Litterature/ ele002-programmation-c.pdf
Documents similaires










-
36
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 15, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.9383MB