[PDF] [PDF] COURS et TP DE LANGAGE C++ - IUTenligne

Le langage C++ possède assez peu d'instructions, il fait par contre appel à des L'expression int carre(int x) est appelée le prototype complet de la fonction 



Previous PDF Next PDF





[PDF] COURS et TP DE LANGAGE C++ - IUTenligne

Le langage C++ possède assez peu d'instructions, il fait par contre appel à des L'expression int carre(int x) est appelée le prototype complet de la fonction 



[PDF] COURS DINFORMATIQUE: LANGAGE C NOTES DE COURS - ENIT

Informatique Langage C - Notes de cours C A 2007/08 Chapitre III – Types de base, opérateurs, expressions On trouvera dans un programme des variables et  



[PDF] Programmation en langage C - Inria

Un programme en langage C est constitué des six groupes de composants imprime la valeur 0, puisque res a été modifié au cours du programme et pointe commande et que l'on appuie sur TAB, le nom de la commande est complété s' il



[PDF] Le livre du C pour les vrais debutants en programmation - ACCUEIL

4 1 En langage machine ou dans un langage de notre cru Un premier programme complet En langage C, les paramètres sont transmis par valeur d'entre vous qui souhaiteraient utiliser cet ouvrage comme support de cours, voici



[PDF] Apprendre à programmer avec Python 3 - INFOREF

texte complet peut être consulté dans l'annexe C, page 445 Python est un langage qui continue à évoluer, soutenu par une communauté d'utilisateurs La source qui a inspiré mes premières ébauches du livre est le cours de A Downey,  



[PDF] PDF Python - Cours de Python - Université de Paris

22 mar 2018 · Le langage de programmation Python a été créé en 1989 par Guido van Voici maintenant un exemple complet de lecture d'un fichier avec 



[PDF] Cours didactique Langage C pour débutant

Cours didactique : Série Langage C ET-TAHIR Aziz 1 2016-2018 Notre programme complet ressemble donc à ceci : Code : C #include # include 



[PDF] Le langage C - livre gratuit

De la même façon, les cours et livres d'algorithmie présentaient peut simplement s'asseoir et écrire un programme complet sans aucune erreur dès la



[PDF] Cours de C++

2 nov 2005 · Cours de C++ François Laroussinie Les briques de base du langage: ▻ Ce qui permet de stocker des Exemple de programme complet

[PDF] cours langage c pour debutant

[PDF] livre langage c pdf

[PDF] table de division pdf

[PDF] table de multiplication de 12 ? imprimer

[PDF] langage c pdf exercices corrigés

[PDF] cours langage c++ pour débutants pdf

[PDF] cours langage c pdf pour debutant

[PDF] tp corrigé langage c

[PDF] langage c++ cours pdf

[PDF] apprendre le latin livre

[PDF] apprendre latin autodidacte

[PDF] aprender latin pdf

[PDF] cours de francais pour etranger bordeaux gratuit

[PDF] cours de francais pour etranger metz

[PDF] cours de français gratuit vaud

[PDF] COURS et TP DE LANGAGE C   - IUTenligne

Programmation en langage C

Anne CANTEAUT

INRIA - projet CODES

B.P. 105

78153 Le Chesnay Cedex

Anne.Canteaut@inria.fr

C 2

Table des mati`eres3

Table des mati`eres

1 Les bases de la programmation en C 9

1.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2 La compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3 Les composants ´el´ementaires du C . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3.1 Les identificateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3.2 Les mots-clefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.3 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.4 Structure d"un programme C . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.5 Les types pr´ed´efinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.5.1 Le type caract`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.5.2 Les types entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5.3 Les types flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6 Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6.1 Les constantes enti`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.6.2 Les constantes r´eelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.6.3 Les constantes caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.6.4 Les constantes chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . 19

1.7 Les op´erateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.7.1 L"affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.7.2 Les op´erateurs arithm´etiques . . . . . . . . . . . . . . . . . . . . . . . 20

1.7.3 Les op´erateurs relationnels . . . . . . . . . . . . . . . . . . . . . . . . 21

1.7.4 Les op´erateurs logiques bool´eens . . . . . . . . . . . . . . . . . . . . . 21

1.7.5 Les op´erateurs logiques bit `a bit . . . . . . . . . . . . . . . . . . . . . 22

1.7.6 Les op´erateurs d"affectation compos´ee . . . . . . . . . . . . . . . . . . 22

1.7.7 Les op´erateurs d"incr´ementation et de d´ecr´ementation . . . . . . . . . 23

1.7.8 L"op´erateur virgule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.7.9 L"op´erateur conditionnel ternaire . . . . . . . . . . . . . . . . . . . . . 23

1.7.10 L"op´erateur de conversion de type . . . . . . . . . . . . . . . . . . . . 24

1.7.11 L"op´erateur adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.7.12 R`egles de priorit´e des op´erateurs . . . . . . . . . . . . . . . . . . . . . 24

1.8 Les instructions de branchement conditionnel . . . . . . . . . . . . . . . . . . 25

1.8.1 Branchement conditionnelif---else. . . . . . . . . . . . . . . . . . 25

1.8.2 Branchement multipleswitch. . . . . . . . . . . . . . . . . . . . . . . 25

1.9 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.9.1 Bouclewhile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.9.2 Boucledo---while. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4Table des mati`eres

1.9.3 Bouclefor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.10 Les instructions de branchement non conditionnel . . . . . . . . . . . . . . . . 28

1.10.1 Branchement non conditionnelbreak. . . . . . . . . . . . . . . . . . 28

1.10.2 Branchement non conditionnelcontinue. . . . . . . . . . . . . . . . 28

1.10.3 Branchement non conditionnelgoto. . . . . . . . . . . . . . . . . . . 29

1.11 Les fonctions d"entr´ees-sorties classiques . . . . . . . . . . . . . . . . . . . . . 29

1.11.1 La fonction d"´ecritureprintf. . . . . . . . . . . . . . . . . . . . . . . 29

1.11.2 La fonction de saisiescanf. . . . . . . . . . . . . . . . . . . . . . . . 31

1.11.3 Impression et lecture de caract`eres . . . . . . . . . . . . . . . . . . . . 32

1.12 Les conventions d"´ecriture d"un programme C . . . . . . . . . . . . . . . . . . 33

2 Les types compos´es 35

2.1 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.2 Les structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.3 Les champs de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.4 Les unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.5 Les ´enum´erations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.6 D´efinition de types compos´es avectypedef. . . . . . . . . . . . . . . . . . . 41

3 Les pointeurs 43

3.1 Adresse et valeur d"un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.2 Notion de pointeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.3 Arithm´etique des pointeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.4 Allocation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.5 Pointeurs et tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.5.1 Pointeurs et tableaux `a une dimension . . . . . . . . . . . . . . . . . . 50

3.5.2 Pointeurs et tableaux `a plusieurs dimensions . . . . . . . . . . . . . . 52

3.5.3 Pointeurs et chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . . 53

3.6 Pointeurs et structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.6.1 Pointeur sur une structure . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.6.2 Structures auto-r´ef´erenc´ees . . . . . . . . . . . . . . . . . . . . . . . . 56

4 Les fonctions 59

4.1 D´efinition d"une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.2 Appel d"une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.3 D´eclaration d"une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.4 Dur´ee de vie des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4.1 Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.4.2 Variables locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.5 Transmission des param`etres d"une fonction . . . . . . . . . . . . . . . . . . . 64

4.6 Les qualificateurs de typeconstetvolatile. . . . . . . . . . . . . . . . . . 66

4.7 La fonctionmain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.8 Pointeur sur une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.9 Fonctions avec un nombre variable de param`etres . . . . . . . . . . . . . . . . 74

Table des mati`eres5

5 Les directives au pr´eprocesseur 77

5.1 La directive#include. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.2 La directive#define. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.2.1 D´efinition de constantes symboliques . . . . . . . . . . . . . . . . . . . 78

5.2.2 D´efinition de macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.3 La compilation conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3.1 Condition li´ee `a la valeur d"une expression . . . . . . . . . . . . . . . . 79

5.3.2 Condition li´ee `a l"existence d"un symbole . . . . . . . . . . . . . . . . 80

6 La gestion des fichiers 81

6.1 Ouverture et fermeture d"un fichier . . . . . . . . . . . . . . . . . . . . . . . . 81

6.1.1 La fonctionfopen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

6.1.2 La fonctionfclose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

6.2 Les entr´ees-sorties format´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

6.2.1 La fonction d"´ecriturefprintf. . . . . . . . . . . . . . . . . . . . . . 83

6.2.2 La fonction de saisiefscanf. . . . . . . . . . . . . . . . . . . . . . . . 83

6.3 Impression et lecture de caract`eres . . . . . . . . . . . . . . . . . . . . . . . . 83

6.4 Relecture d"un caract`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

6.5 Les entr´ees-sorties binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

6.6 Positionnement dans un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7 La programmation modulaire 89

7.1 Principes ´el´ementaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

7.2 La compilation s´epar´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

7.2.1 Fichier en-tˆete d"un fichier source . . . . . . . . . . . . . . . . . . . . . 91

7.2.2 Variables partag´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.3 L"utilitairemake. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.3.1 Principe de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.3.2 Cr´eation d"unMakefile. . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.3.3 Macros et abbr´eviations . . . . . . . . . . . . . . . . . . . . . . . . . . 96

7.3.4 R`egles g´en´erales de compilation . . . . . . . . . . . . . . . . . . . . . . 97

A La librairie standard 99

A.1 Entr´ees-sorties. . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 A.1.1 Manipulation de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . 99 A.1.2 Entr´ees et sorties format´ees . . . . . . . . . . . . . . . . . . . . . . . . 99 A.1.3 Impression et lecture de caract`eres . . . . . . . . . . . . . . . . . . . . 100 A.2 Manipulation de caract`eres. . . . . . . . . . . . . . . . . . . . . 101 A.3 Manipulation de chaˆınes de caract`eres. . . . . . . . . . . . . . 102 A.4 Fonctions math´ematiques. . . . . . . . . . . . . . . . . . . . . . . 103 A.5 Utilitaires divers. . . . . . . . . . . . . . . . . . . . . . . . . . 104 A.5.1 Allocation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 A.5.2 Conversion de chaˆınes de caract`eres en nombres . . . . . . . . . . . . . 104 A.5.3 G´en´eration de nombres pseudo-al´eatoires . . . . . . . . . . . . . . . . 104 A.5.4 Arithm´etique sur les entiers . . . . . . . . . . . . . . . . . . . . . . . . 104 A.5.5 Recherche et tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.5.6 Communication avec l"environnement . . . . . . . . . . . . . . . . . . 105

6Table des mati`eres

A.6 Date et heure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

B Le d´ebogueur GDB 107

B.1 D´emarrergdb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 B.2 Quittergdb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 B.3 Ex´ecuter un programme sousgdb. . . . . . . . . . . . . . . . . . . . . . . . . 108 B.4 Terminaison anormale du programme . . . . . . . . . . . . . . . . . . . . . . 109 B.5 Afficher les donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 B.6 Appeler des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 B.7 Modifier des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 B.8 Se d´eplacer dans la pile des appels . . . . . . . . . . . . . . . . . . . . . . . . 113 B.9 Poser des points d"arrˆet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

B.10 G´erer les points d"arrˆet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

B.11 Les points d"arrˆet conditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . 116 B.12 Ex´ecuter un programme pas `a pas . . . . . . . . . . . . . . . . . . . . . . . . 117 B.13 Afficher la valeur d"une expression `a chaque point d"arrˆet . . . . . . . . . . . 119 B.14 Ex´ecuter automatiquement des commandes aux points d"arrˆet . . . . . . . . . 120 B.15 Les raccourcis des noms de commande . . . . . . . . . . . . . . . . . . . . . . 123 B.16 Utiliser l"historique des commandes . . . . . . . . . . . . . . . . . . . . . . . . 123 B.17 Interface avec le shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 B.18 R´esum´e des principales commandes . . . . . . . . . . . . . . . . . . . . . . . . 124

Bibliographie 127

Index128

Liste des tableaux7

Liste des tableaux

1.1 Codes ASCII des caract`eres imprimables . . . . . . . . . . . . . . . . . . . . . 15

1.2 Les types entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.3 Les types flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

quotesdbs_dbs2.pdfusesText_2