Formation les bases de la programmation en C

Apprenez à programmer en C, tutoriel & guide de travaux pratiques en pdf.

1 Les bases de la programmation en C
1.1 Historique
1.2 La compilation
1.3 Les composants élémentair es du C
1.3.1 Les identificateurs
1.3.2 Les mots-clefs
1.3.3 Les commentaires
1.4 Structure d’un programme C
1.5 Les types predefinis
1.5.1 Le type caractere
1.5.2 Les types entiers
1.5.3 Les types flottants
1.6 Les constantes
1.6.1 Les constantes entieres
1.6.2 Les constantes reelles
1.6.3 Les constantes caracteres
1.6.4 Les constantes chaınes de caracteres
1.7 Les operateurs
1.7.1 L’affectation
1.7.2 Les operateurs arithmetiques
1.7.3 Les operateurs relationnels
1.7.4 Les operateurs logiques booleens
1.7.5 Les operateurs logiques bit a bit
1.7.6 Les operateurs d’affectation composee
1.7.7 Les operateurs d’incrementation et de decrementation
1.7.8 L’operateur virgule
1.7.9 L’operateur conditionnel ternaire
1.7.10 L’operateur de conversion de type
1.7.11 L’operateur adresse
1.7.12 Regles de priorite des operateurs
1.8 Les instructions de branchement conditionnel
1.8.1 Branchement conditionnel if—else
1.8.2 Branchement multiple switch
1.9 Les boucles
1.9.1 Boucle while
1.9.2 Boucle do—while
1.9.3 Boucle for
1.10 Les instructions de branchement non conditionnel
1.10.1 Branchement non conditionnel break
1.10.2 Branchement non conditionnel continue
1.10.3 Branchement non conditionnel goto
1.11 Les fonctions d’entrees-sorties classiques
1.11.1 La fonction d’ecriture printf
1.11.2 La fonction de saisie scanf
1.11.3 Impression et lecture de caracteres
1.12 Les conventions d’ecriture d’un programme C
2 Les types composes
2.1 Les tableaux
2.2 Les structures
2.3 Les champs de bits
2.4 Les unions
2.5 Les enumerations
2.6 Definition de types composes avec typedef
3 Les pointeurs
3.1 Adresse et valeur d’un objet
3.2 Notion de pointeur
3.3 Arithmetique des pointeurs
3.4 Allocation dynamique
3.5 Pointeurs et tableaux
3.5.1 Pointeurs et tableaux a une dimension
3.5.2 Pointeurs et tableaux a plusieurs dimensions
3.5.3 Pointeurs et chaınes de caracteres
3.6 Pointeurs et structures
3.6.1 Pointeur sur une structure
3.6.2 Structures auto-referencees
4 Les fonctions
4.1 Definition d’une fonction
4.2 Appel d’une fonction
4.3 Declaration d’une fonction
4.4 Duree de vie des variables
4.4.1 Variables globales
4.4.2 Variables locales
4.5 Transmission des parametres d’une fonction
4.6 Les qualificateurs de type const et volatile
4.7 La fonction main
4.8 Pointeur sur une fonction
4.9 Fonctions avec un nombre variable de parametres
5 Les directives au preprocesseur
5.1 La directive #include
5.2 La directive #define
5.2.1 Definition de constantes symboliques
5.2.2 Definition de macros
5.3 La compilation conditionnelle
5.3.1 Condition liee a la valeur d’une expression
5.3.2 Condition liee a l’existence d’un symbole
6 La gestion des fichiers
6.1 Ouverture et fermeture d’un fichier
6.1.1 La fonction fopen
6.1.2 La fonction fclose
6.2 Les entrees-sorties formatees
6.2.1 La fonction d’ecriture fprintf
6.2.2 La fonction de saisie fscanf
6.3 Impression et lecture de caracteres
6.4 Relecture d’un caractere
6.5 Les entrees-sorties binaires
6.6 Positionnement dans un fichier
7 La programmation modulaire
7.1 Principes elementaires
7.2 La compilation separee
7.2.1 Fichier en-tete d’un fichier source
7.2.2 Variables partagees
7.3 L’utilitaire make
7.3.1 Principe de base
7.3.2 Creation d’un Makefile
7.3.3 Macros et abbreviations
7.3.4 Regles generales de compilation
A La librairie standard
A.1 Entrees-sorties <stdio.h>
A.1.1 Manipulation de fichiers
A.1.2 Entrees et sorties formatees
A.1.3 Impression et lecture de caracteres
A.2 Manipulation de caracteres <ctype.h>
A.3 Manipulation de chaınes de caracteres <string.h>
A.4 Fonctions mathematiques <math.h>
A.5 Utilitaires divers <stdlib.h>
A.5.1 Allocation dynamique
A.5.2 Conversion de chaınes de caracteres en nombres
A.5.3 Generation de nombres pseudo-aleatoires
A.5.4 Arithmetique sur les entiers
A.5.5 Recherche et tri
A.5.6 Communication avec l’environnement
A.6 Date et heure <time.h>
B Le debogueur GDB
B.1 Demarrer gdb
B.2 Quitter gdb
B.3 Executer un programme sous gdb
B.4 Terminaison anormale du programme
B.5 Afficher les donnees
B.6 Appeler des fonctions
B.7 Modifier des variables
B.8 Se deplacer dans la pile des appels
B.9 Poser des points d’arret
B.10 Gerer les points d’arret
B.11 Les points d’arret conditionnels
B.12 Executer un programme pas a pas
B.13 Afficher la valeur d’une expression a chaque point d’arret
B.14 Executer automatiquement des commandes aux points d’arret
B.15 Les raccourcis des noms de commande
B.16 Utiliser l’historique des commandes
B.17 Interface avec le shell
B.18 Resume des principales commandes

Les bases de la programmation en C

Historique

Le C a ete concu en 1972 par Dennis Richie et Ken Thompson, chercheurs aux Bell Labs,afin de developper un systeme d’exploitation UNIX sur un DEC PDP-11. En 1978, Brian Kernighan et Dennis Richie publient la definition classique du C dans le livre The C Programming language [6]. Le C devenant de plus en plus populaire dans les annees 80, plusieurs groupes mirent sur le marche des compilateurs comportant des extensions particulieres. En 1983, l’ANSI (American National Standards Institute) decida de normaliser le langage ; ce travail s’acheva en 1989 par la definition de la norme ANSI C. Celle-ci fut reprise telle quelle par l’ISO (International Standards Organization) en 1990. C’est ce standard, ANSI C, qui est decrit dans le present document.

La compilation

Le C est un langage compile (par opposition aux langages interpretes). Cela signifie qu’un programme C est decrit par un fichier texte, appele fichier source. Ce fichier n’etant evidemment pas executable par le microprocesseur, il faut le traduire en langage machine. Cette operation est effectuee par un programme appele compilateur. La compilation se decompose en fait en 4 phases successives :
1. Le traitement par le preprocesseur : le fichier source est analyse par le preprocesseur qui effectue des transformations purement textuelles (remplacement de chaınes de caracteres, inclusion d’autres fichiers source . . . ).

Les composants elementaires du C

Un programme en langage C est constitue des six groupes de composants elementaires suivants :
– les identificateurs,
– les mots-clefs,
– les constantes,
– les chaınes de caracteres,
– les operateurs,
– les signes de ponctuation.
On peut ajouter a ces six groupes les commentaires, qui sont enleves par le preprocesseur.

Les identificateurs

Le role d’un identificateur est de donner un nom a une entite du programme. Plus precisement, un identificateur peut designer :
– un nom de variable ou de fonction,
– un type defini par typedef, struct, union ou enum,
– une etiquette.
Un identificateur est une suite de caracteres parmi :
– les lettres (minuscules ou majuscules, mais non accentuees),
– les chiffres,
– le “blanc souligne” ( ).

Les types predefinis

Le C est un langage type. Cela signifie en particulier que toute variable, constante ou fonction est d’un type precis. Le type d’un objet definit la facon dont il est represente en memoire.
La memoire de l’ordinateur se decompose en une suite continue d’octets. Chaque octet de la memoire est caracterise par son adresse, qui est un entier. Deux octets contigus en memoire ont des adresses qui different d’une unite. Quand une variable est definie, il lui est attribue une adresse. Cette variable correspondra a une zone memoire dont la longueur (le nombre d’octets) est fixee par le type.
La taille memoire correspondant aux differents types depend des compilateurs ; toutefois,la norme ANSI specifie un certain nombre de ontraintes.
Les types de base en C concernent les caracteres, les entiers et les flottants (nombres reels).
Ils sont designes par les mots-clefs suivants :
char
int
float double
short long unsigned

Le type caractere

Le mot-clef char designe un objet de type caractere. Un char peut contenir n’importe quel element du jeu de caracteres de la machine utilisee. La plupart du temps, un objet de type char est code sur un octet ; c’est l’objet le plus elementaire en C. Le jeu de caracteres utilise correspond generalement au codage ASCII (sur 7 bits). La plupart des machines utilisent desormais le jeu de caracteres ISO-8859 (sur 8 bits), dont les 128 premiers caracteres correspondent aux caracteres ASCII. Les 128 derniers caracteres (codes sur 8 bits) sont utilises pour les caracteres propres aux differentes langues. La version ISO-8859-1 (aussi appelee ISO-LATIN-1) est utilisee pour les langues d’Europe occidentale. Ainsi, le caractere de code 232 est le e, le caractere 233 correspond au e. . . Pour plus de details sur l’historique du codage des caracteres pour les differentes langues ainsi que sur la norme UNICODE (sur 16 bits,qui permet de coder les caracteres pour toutes les langues) et sur la norme ISO/IEC-10646 (sur 32 bits, ce qui permet d’ajouter les caracteres anciens), consulter l’article de J. Andre et M. Goossens.

….

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Programmation en langage C (807 KO) (Cours PDF)
Programmation en langage C

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *