[PDF] [PDF] Programmation en C Le langage C comme tout





Previous PDF Next PDF



[PDF] Le livre du C pour les vrais debutants en programmationpdf - pssfp

4 1 Canevas général d'écriture d'un programme en langage C ment nous vous apprenons à les exprimer en langage C ce qui vous permet d'emblée de



[PDF] Apprenez à programmer en C / C++ - Free

29 juil 2006 · C'est votre jour de chance Vous venez de tomber sur un cours de programmation pour débutants vraiment pour débutants Il n'y a aucune honte à 



[PDF] le-langage-c-1pdf - Zeste de Savoir

3 juil 2022 · Vous souhaitez apprendre à programmer mais vous ne savez pas comment vous y prendre? Vous connaissez déjà le C mais vous avez besoin de 



[PDF] Programmer en langage C - Claude Delannoy 5 éditionpdf

– C++ pour les programmeurs C N°12231 2007 620 pages C DELANNOY – Apprendre le C++ N°12135 2007 



[PDF] Apprenez rapidement et simplement les bases du langage C

9 Cycle de développement du programme 10 Votre premier programme C La meilleure façon d'apprendre un langage de programmation est de créer et



[PDF] Les bases de la programmation en C - IBISC

Le C est un langage compilé (par opposition aux langages interprétés) Cela signifie qu'un programme C est décrit par un fichier texte appelé fichier 



[PDF] Programmation C++ (débutant)/Notions de base

Le langage C est un langage de programmation inventé par MM Dans ce cours nous allons d'abord apprendre les notions non orientées objet du C++ (donc 



[PDF] INITIATION AU LANGAGE C - CNRS

Il existe des milliers de langages de programmation informatique : Pascal Java Fortran C C++ etc Ce sont des langages formels avec une syntaxe stricte qui 



[PDF] Programmation en C

Le langage C comme tout langage de programmation est un moyen de communication avec l'ordi- nateur plus abordable En effet un interpr`ete le compilateur 

Ecole Nationale Sup´erieure

de Techniques Avanc

´eesProgrammation en C

Pierre-Alain Fouque et David Pointcheval

E-mail :Pierre-Alain.Fouque@ens.fr

Web :http://www.di.ens.fr/~fouque/

Table des mati`eres

1 Introduction 11

1.1 L"ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2 Programmer en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.1 G´en´eralit´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.2 Un ´editeur de texte :emacs. . . . . . . . . . . . . . . . . . . . . . 12

1.2.3 Analyse du programme . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.2.4 Un compilateur C :gcc. . . . . . . . . . . . . . . . . . . . . . . . 16

1.3 Quelques g´en´eralit´es sur la syntaxe du langage C . . . . . . . . . . . . . . 17

1.3.1 Mise en page et indentation . . . . . . . . . . . . . . . . . . . . . . 17

1.3.2 Les identificateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3.3 Les instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3.4 Organisation d"un programme C . . . . . . . . . . . . . . . . . . . . 18

2 Les types 21

2.1 Les types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2 Les types de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.1 Les types entiers (int,short int,long intetlong long int) . 22

2.2.2 Les types flottants (float,doubleetlong double) . . . . . . . . . 22

2.2.3 Le type caract`ere (char) . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3 Les types structur´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.1 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.2 Les tableaux `a plusieurs dimensions . . . . . . . . . . . . . . . . . . 24

2.3.3 Les structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.4 Les pointeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.5 Nouveaux types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3 Les variables et les constantes 27

3.1 D´eclaration des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.1 D´eclaration des types simples . . . . . . . . . . . . . . . . . . . . . 28

3.1.2 D´eclaration des tableaux et pointeurs . . . . . . . . . . . . . . . . . 28

3.1.3 D´eclaration des objets complexes . . . . . . . . . . . . . . . . . . . 29

3.2 Initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3.1 Types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3.2 Types complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4 Dur´ee de vie et visibilit´e des variables . . . . . . . . . . . . . . . . . . . . . 31

1

2TABLE DES MATI`ERES

4 Les entr´ees-sorties 35

4.1 L"affichage avecprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.1 Simple affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.2 Formattage des sorties . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 La saisie avecscanf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5 Les op´erateurs et les expressions 39

5.1 Les op´erateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.1.1 Les op´erateurs arithm´etiques . . . . . . . . . . . . . . . . . . . . . . 40

5.1.2 Op´erateur de conversion de type (" cast ") . . . . . . . . . . . . . . 42

5.1.3 Op´erateur de taille . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.1.4 Op´erateurs logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.5 Op´erateurs de masquage . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.6 Op´erateurs de relations . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.7 Op´erateur d"affectation . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.8 Op´erateurs abr´eg´es . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2 Les expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6 Les structures de contrˆole 45

6.1 Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.2 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.2.1 Les boucleswhile. . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.2.2 Les bouclesfor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.2.3 Les bouclesdo while. . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.3 Les conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.3.1 Conditionif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.3.2 Conditionswitch. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.4 Sauts Inconditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.4.1break. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.4.2continue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.4.3return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.4.4goto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7 Programme Structur´e 53

7.1 Les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.1.1 D´eclaration d"une fonction . . . . . . . . . . . . . . . . . . . . . . . 54

7.1.2 Corps de la fonction . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.1.3 Retour de la r´eponse . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.1.4 Arguments d"une fonction . . . . . . . . . . . . . . . . . . . . . . . 55

7.1.5 Fonctionmain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.2 R´ecursivit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.3 Les modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

7.3.1 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

7.3.2 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7.4 Le pr´eprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.4.1 Inclusions et d´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.4.2 Compilation conditionnelle . . . . . . . . . . . . . . . . . . . . . . . 62

David Pointcheval- CNRS-ENS

TABLE DES MATI

`ERES3

7.4.3 Le pr´eprocesseurgcc. . . . . . . . . . . . . . . . . . . . . . . . . . 62

8 Les pointeurs, les tableaux et les structures 65

8.1 Pointeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

8.1.1 D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

8.1.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.1.3 Passagepar adresse. . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.2 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

8.3 Allocation dynamique de m´emoire . . . . . . . . . . . . . . . . . . . . . . . 67

8.4 Les structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

9 Les structures dynamiques 71

9.1 Structure de liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.2 Impl´ementation des listes chaˆın´ees . . . . . . . . . . . . . . . . . . . . . . . 72

9.3 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

9.3.1 Listes doublement chaˆın´ees . . . . . . . . . . . . . . . . . . . . . . . 72

9.3.2 Arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

10 L"environnement sous UNIX 75

10.1 Une construction sur mesure :make. . . . . . . . . . . . . . . . . . . . . . 76

10.1.1 Fichier de Configuration :Makefile. . . . . . . . . . . . . . . . . . 76

10.1.2 Wildcards et D´ependances . . . . . . . . . . . . . . . . . . . . . . . 77

10.1.3 Constantes et Variables . . . . . . . . . . . . . . . . . . . . . . . . . 77

10.1.4 Cibles Fictives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

10.1.5 Invocation de la Commandemake. . . . . . . . . . . . . . . . . . . 78

10.2 Une gestion des versions :cvs. . . . . . . . . . . . . . . . . . . . . . . . . 80

10.2.1 Cr´eation d"un projet . . . . . . . . . . . . . . . . . . . . . . . . . . 80

10.2.2 Fichier d"information . . . . . . . . . . . . . . . . . . . . . . . . . . 80

10.2.3 Modifications de la structure . . . . . . . . . . . . . . . . . . . . . . 80

10.2.4 Int´egration des modifications . . . . . . . . . . . . . . . . . . . . . 81

10.2.5 Gestion des versions . . . . . . . . . . . . . . . . . . . . . . . . . . 81

10.2.6 Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

10.3 Le d´ebogueur :gdb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

10.3.1 Lancement du d´ebogueur . . . . . . . . . . . . . . . . . . . . . . . . 82

10.3.2 Commandes de base . . . . . . . . . . . . . . . . . . . . . . . . . . 82

11 Quelques compl´ements 85

11.1 Les chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

11.1.1 Structure d"une chaˆıne de caract`eres . . . . . . . . . . . . . . . . . 85

11.1.2 Quelques commandes sur les chaˆınes de caract`eres . . . . . . . . . . 85

11.2 Gestion des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

11.2.1 Type fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

11.2.2 Cr´eation d"un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . 88

11.2.3 Lecture/´Ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.2.4 Fin de fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.2.5 Clˆoture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.3 C 99 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.4 La biblioth`eque standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4TABLE DES MATI`ERES

David Pointcheval- CNRS-ENS

Liste des Programmes

1 Introduction 11

1 Hello World (hello.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Programme g´en´erique (generique.c) . . . . . . . . . . . . . . . . . . . . . 19

2 Les types 21

3 Tableaux (tableaux.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4 Structure (structure.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Typedef (typedef.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Les variables et les constantes 27

6 Variables (variables.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

7 Variables - annexe (options.c) . . . . . . . . . . . . . . . . . . . . . . . . 33

4 Les entr´ees-sorties 35

8 Entr´ees/Sorties (io.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5 Les op´erateurs et les expressions 39

9 Op´erateurs arithm´etiques (arithmetique.c) . . . . . . . . . . . . . . . . . 40

6 Les structures de contrˆole 45

10 PGCD (pgcd.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

11 Carr´es (carres.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

12 Binaire (binaire.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

13 Parit´e (parite.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

14 Valeur (valeur.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7 Programme Structur´e 53

15 Incr´ementation (incrementation.c) . . . . . . . . . . . . . . . . . . . . . 55

16 Factorielle (fact.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

17 Fibonacci (fibo.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

18 D´eclaration des types et fonctions (complexe.h) . . . . . . . . . . . . . . . 59

19 D´efinition des fonctions (complexe.c) . . . . . . . . . . . . . . . . . . . . . 60

20 Module principal (complexe-main.c) . . . . . . . . . . . . . . . . . . . . . 60

8 Les pointeurs, les tableaux et les structures 65

21 Auto-Incr´ementation (auto-incrementation.c) . . . . . . . . . . . . . . . 66

22 Suite de Fibonacci - tableau (fibo-tableau.c) . . . . . . . . . . . . . . . 69

5

6LISTE DES PROGRAMMES

9 Les structures dynamiques 71

23 Listes chaˆın´ees (liste.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

10 L"environnement sous UNIX 75

24 Exemple de fichierMakefile(Makefile1) . . . . . . . . . . . . . . . . . . 77

25 Makefile : version compacte (Makefile2) . . . . . . . . . . . . . . . . . . . 78

26 Makefile : classique C (Makefile3) . . . . . . . . . . . . . . . . . . . . . . 79

27 D´ebordement (segmentation.c) . . . . . . . . . . . . . . . . . . . . . . . 83

11 Quelques compl´ements 85

28 Palindrome (palindrome.c) . . . . . . . . . . . . . . . . . . . . . . . . . . 86

29 Tableau vs. Pointeur (tblvsptr.c) . . . . . . . . . . . . . . . . . . . . . . 87

30 Tableau vs. Pointeur (tblvsptr1.c) . . . . . . . . . . . . . . . . . . . . . 88

31 Gestion des fichiers (copie.c) . . . . . . . . . . . . . . . . . . . . . . . . . 91

32 Erreurs dans la biblioth`eque standard (perror.c) . . . . . . . . . . . . . . 92

David Pointcheval- CNRS-ENS

Table des figures

1 Introduction 11

1.1 Organisation d"un ordinateur - Programmation en C . . . . . . . . . . . . 12

1.2 Les ´etapes de la programmation . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3 Raccourcis-clavier sousemacs. . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Options du compilateurgcc. . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Les types 21

2.1 Types entiers sous GCC/Linux . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2 Types flottants sous GCC/Linux . . . . . . . . . . . . . . . . . . . . . . . 23

3 Les variables et les constantes 27

3.1 D´eclaration des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2 D´eclaration des structures . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Les entr´ees-sorties 35

4.1 Affichage des variables avecprintf. . . . . . . . . . . . . . . . . . . . . . 37

4.2 Saisie avecscanf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Les op´erateurs et les expressions 39

5.1 Op´erateurs unaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.2 Op´erateurs binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.3 Cast automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.4 Op´erateurs abr´eg´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6 Les structures de contrˆole 45

7 Programme Structur´e 53

8 Les pointeurs, les tableaux et les structures 65

8.1 Tableau d"entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7

8TABLE DES FIGURES

9 Les structures dynamiques 71

9.1 Liste chaˆın´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.2 Liste doublement chaˆın´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

9.3 Arbres binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

10 L"environnement sous UNIX 75

11 Quelques compl´ements 85

David Pointcheval- CNRS-ENS

Avant-Propos

Ce document regroupe l"essentiel pour g´erer un (gros) projet en C sous un environne- ment de type UNIX. Mais avant tout, `a quoi sert un langage de programmation, tel que le langage C, `a l"heure o`u les ordinateurs ob´eissent `a la voix de leur maˆıtre?quotesdbs_dbs49.pdfusesText_49
[PDF] apprenez ? programmer en c: enfin un livre pour les débutants !

[PDF] apprenez ? programmer en java (2e édition) telecharger

[PDF] apprenez ? programmer en java - 2e édition pdf

[PDF] apprenez ? programmer en javascript pdf

[PDF] apprenez ? programmer en php pdf

[PDF] apprentissage 2017 salaire

[PDF] apprentissage dans la fonction publique territoriale

[PDF] apprentissage de l'écriture en maternelle

[PDF] apprentissage essec

[PDF] apprentissage fonction publique hospitalière

[PDF] apprentissage martinique

[PDF] apprentissage par le jeu piaget

[PDF] apprentissage par simulation

[PDF] apprentissages essentiels en lien avec le programme cadre de mathématiques

[PDF] approche actionnelle définition