Extrait du cours langage C: Cours et référence
A – PRESENTATION
1 – HISTORIQUE DU LANGAGE C
Dennis Ritchie (laboratoires Bell – US) a défini ce langage évolué afin de pouvoir implanter le système Unix sur différents types de machines. Auparavant, les systèmes d’exploitation étaient écrits entièrement en assembleur spécifique à la machine visée. Écrite en langage C, la plus grande partie du système Unix (noyau, librairies et commandes) peut être mise en œuvre sur toute machine possédant un compilateur C.
Depuis, ce langage a conquis le monde des entreprises et les universités malgré ses quelques défauts (syntaxe parfois illisible, pas assez de contrôles sémantiques…).
On peut citer deux versions et une extension de ce langage :
• version originale non normalisée : C standard ancienne et amenée à disparaître peu à peu.
• version normalisée : C ainsi.
• version objet : C++ (étudiée en deuxième année)
2 – EXEMPLE D’UN PROGRAMME SIMPLE
Les exemples de ce polycopié sont toujours fournis avec deux versions, à gauche un programme C, à droite le programme équivalent en Pascal.
B – APPRENTISSAGE DU LANGAGE
Ce polycopié présente les principes de programmation en langage C en comparant sa syntaxe à celle du langage Pascal sur des exemples simples. Ce polycopié contient deux parties : un cours pour apprendre le langage et une description du langage élément par élément.
Les exemples sont inspirés d’un cours écrit par Kernighan et Ritchie. Ils peuvent être compilés et essayés.
Cours langage C
1 – LE PREMIER PROGRAMME C
Voici un programme très simple :
Langage C – salut.c
commentaire
main()
{
printf(« bonjour à tous\n »);
}
nom de la fonction
début de bloc = groupe d’instructions
corps du programme, instructions
fin du bloc
Comme un programme Pascal, un source C contient des définitions de données : constantes, types, variables et des instructions : fonctions et procédures. Le langage C ne fait pas de différence entre fonctions et procédures, les procédures sont des fonctions dont on n’utilise pas le résultat.
Tout programme exécutable doit contenir une et une seule fonction appelée main, cette fonction est le point d’entrée du programme et peut se trouver n’importe où dans le source.
La fonction printf permet d’afficher des données mises en page (print formatted). Son mode d’emploi est printf(format, données…), voir page 3. Le format est une chaîne de caractères indiquant comment il faut afficher les données. Dans cet exemple, on affiche seulement le format, il n’y a pas de données ; \n envoie un retour à la ligne. Il n’y a pas comme en Pascal deux fonctions, l’une pour écrire un retour à la ligne et une autre pour ne pas en écrire – on met ou pas ce \n :
2 – VARIABLES SIMPLES
Langage C – somme.c
commentaire
main()
{
int a, b, c, somme;
a = 1; b = 2; c = 3;
somme = a + b + c;
printf(« somme=%d\n »,somme);
}
définition (création) des variables
affectation de valeurs
calcul
affichage de la variable somme
Remarquer les différences avec le langage Pascal en ce qui concerne les définitions des variables locales : les définitions sont à l’intérieur du bloc, les noms des types sont un peu différents et précèdent la liste des noms..
Cours langage C
3 – ENTREES/SORTIES
Langage C – somme2.c
commentaire
main()
{
int a=4, b=9;
printf(« %d + %d = %d\n », a,b, a+b);
}
définition et initialisation de deux variables
affichage avec un format
Le premier paramètre de la fonction printf est appelé format, c’est une chaîne qui contient du texte normal et des jokers (%d), les jokers sont remplacés par les valeurs fournies, dans l’ordre où elles se trouvent. Il existe différents jokers pour chaque type de données : %c pour un char, %f pour un float.
Pour entrer un entier dans une variable voici comment on fait, le & est indispensable, voir pages 34 et 36
4 – INSTRUCTIONS CONDITIONNELLES
Langage C – signe.c
commentaire
main()
{
float nb;
printf(« entrer un nombre : »);
scanf(« %f »,&nb);
if (nb >= 0.0) printf(« positif\n »);
else printf(« négatif\n »);
}
définition (création) de la variable
read(nb)
test sur nb
Noter que les chaînes sont mises entre guillements (double quotes), ex : « oui » et les caractères simples sont mis entre apostrophes, ex : ‘c’ ; les confondre peut provoquer des erreurs difficile à déceler.
Les conditions sont écrites comme en C-Shell et Awk. Lorsqu’on doit effectuer plusieurs instructions c’est à dire un bloc, on les encadre par des accolades {…} qui jouent le rôle de begin…end.
.……
Cours langage C: Cours et référence (584 KO) (Cours PDF)