Le langage C Faculté Polydisciplinaire de Taza 1 Références Livre Méthodologi
Le langage C Faculté Polydisciplinaire de Taza 1 Références Livre Méthodologie de la programmation en C : Bibliothèque standard – API Posix. Jean-Pierre Braquelaire. 3ème édition Dunod Le langage C. B.W. Kernighan et D.M. Ritchie. 2ème édition, MASSON. Cours en ligne sur internet Le langage C. Francois Pellegrini, ENSEIRB www.developpez.com 2 Partie 1 : de l’algorithmique au C 3 Plann partie 2 Rappel Introduction au langage C Structure d’un programme C De l’algorithmique au C 4 Rappel Programmation? L’ordinateur ne comprend que le binaire (langage machine) Trop élémentaire, trop long à programmer et à débugger Il existe des langages de programmation dits « évolués » (proches du langage courant) Meilleure expressivité et généricité Moins de risques d’erreurs Pour chaque langage, il existe un programme « qui le traduit » en langage machine Modes de traduction : Compilation + Interprétation Programme source Traducteur Programme exécutable 5 Rappel Mais avant de programmer !!!!! Les bonnes pratiques Les étapes de réalisation d’un programme Spécification Spécification Analyse Analyse Traduction en langage de programmation Traduction en langage de programmation Compilation Compilation Tests et modifications Tests et modifications Enoncé du problème Enoncé du problème Cahier des charges Cahier des charges Algorithme Programme Exécutable Version finale de l’exécutable Version finale de l’exécutable 6 Introduction au C Langage C Inventé aux Bell Labs / ATT en 1970 Conçu pour être le langage de programmation d’Unix, premier système d’exploitation écrit dans langage autre qu’un langage machine Diffusé grâce à Unix Popularisé par sa concision, son expressivité et son efficacité Disponible actuellement sur quasiment toutes les plateformes 7 Introduction au C Langage C Un langage impératif : le programmeur spécifie explicitement l’enchaînement des instructions devant être exécutés : Fais ceci, puis cela Fais ceci, si cela est vrai Fais ceci, tant de fois ou tant que cela est vrai Un langage de haut niveau Programmation structurée Organisation des données (regroupement structurel) Organisation des traitements (fonctions) Possibilité de programmer « façon objet » Un langage compilé : compilateur comme cc ou gcc 8 Introduction au C Ce que nous allons voir maintenant Spécification Spécification Analyse Analyse Traduction en langage C Traduction en langage C Compilation Compilation Tests et modifications Tests et modifications Enoncé du problème Enoncé du problème Cahier des charges Cahier des charges Algorithme Programme C Exécutable Version finale de l’exécutable Version finale de l’exécutable 9 Structure d’un programme C Programme C Un programme est la spécification d’un processus de traitement d’informations Un programme impératif spécifie précisément les traitements devant être réalisés sous la forme de suites d’instructions élémentaires Ces instructions opèrent sur les valeurs numériques contenues dans des variables nommées 10 Structure d’un programme C Structure d’un programme C Votre programme doit obligatoirement contenir une fonction principale « main ( ) », qui est exécutée lorsque le programme est lancé. La structure d’un programme C est la suivante : Par la suite, quelques mensonges bienveillants (omissions) vont glisser entre les lignes Par la suite, quelques mensonges bienveillants (omissions) vont glisser entre les lignes int main () { int main () { Déclaration des variables Déclaration des variables Corps Corps } } #include<stdlib.h> #include<stdlib.h> monProgramme.c monProgramme.c return EXIT_SUCCESS; return EXIT_SUCCESS; 11 Structure d’un programme C Structure d’un programme C : fonction principale int main () { int main () { Déclaration des variables Déclaration des variables Corps Corps } } #include<stdlib.h> #include<stdlib.h> monProgramme.c monProgramme.c Le nom du fichier contenant le programme Le nom du fichier contenant le programme Fichier entête contenant des fonctionnalités nécessaires pour votre programme Fichier entête contenant des fonctionnalités nécessaires pour votre programme Fonction principale Fonction principale Accolade ouvrante marquant le début de la fonction Accolade ouvrante marquant le début de la fonction Accolade fermante marquant la fin de la fonction Accolade fermante marquant la fin de la fonction Liste exhaustive des variables utilisées dans la fonction Liste exhaustive des variables utilisées dans la fonction Traitements réalisés par la fonction Traitements réalisés par la fonction return EXIT_SUCCESS; return EXIT_SUCCESS; Termine l’exécution du programme Termine l’exécution du programme 12 Structure d’un programme C Mon premier programme : Hello World On sauvegarde ce programme dans un fichier qui se nomme hello.c Une question : ca vous fait penser à quoi la fonction printf()? Une autre question : la machine comprend-elle mon programme C? La dernière (promis) : cela suffit-il pour pouvoir visionner le message Hello World? Alors que faut-il faire? #include <stdio.h> #include <stdlib.h> int main() { printf("Hello World") ; return EXIT_SUCCESS; } 13 Structure d’un programme C Mon premier programme : Hello World La machine ne comprend que le langage machine, donc mon programme hello.c …. Donc il faut traduire mon programme hello.c en langage machine à l’aide d’un traducteur du langage C vers le langage machine. Un programme appelé compilateur (habituellement nommé cc ou gcc) vérifie la syntaxe de mon programme (on dit d’une façon générale, code source) et le traduit en code objet, compris par le processeur. Le programme en code objet ainsi obtenu peut être exécuté sur la machine (après édition de liens) 14 Structure d’un programme C Mon premier programme : Hello World Schéma simplifié de la compilation gcc gcc Fichier exécutable Fichier exécutable #include <stdio.h> #include <stdlib.h> int main() { printf(" Hello World"); return EXIT_SUCCESS; } #include <stdio.h> #include <stdlib.h> int main() { printf(" Hello World"); return EXIT_SUCCESS; } .c .c a.out a.out Compilateur Compilateur Fichier code source en langage C Fichier code source en langage C Editeur de texte ou environnement de développement Editeur de texte ou environnement de développement 15 Structure d’un programme C Mon premier programme : Hello World En pratique deux façons sont possibles pour compiler hello.c : En ligne de commande (cmd sous windows et un terminal sous linux): Vous utilisez un éditeur de texte comme Emacs (Linux) ou Bloc-notes (Windows), et un compilateur comme gcc (à télécharger gratuitement sur le net) Dans le répertoire ou se trouve le fichier à compiler, vous tapez : gcc hello.c Dans ce cas un fichier exécutable nommé « a.out » est généré dans le même répertoire, pour l’exécuter, taper « ./a.out » sous linux et « a.out » sous windows En utilisant un environnement de développement La plupart des environnements incluent un compilateur en plus de l’éditeur de texte Pour compiler, il y a un bouton « compile », généralement dans le menu « build » Pour exécuter votre programme, sélectionner toujours dans le même menu, l’icône « run » 16 Structure d’un programme C Mon premier programme : Hello World Quelques environnements de développement Sous Windows Eclipse Netbeans Visual C++ Turbo c++ Dev-C++ Sous Linux Eclipse Netbeans KDevelop … 17 De l’algorithmique au C Algorithmique et le langage C Spécification Spécification Analyse Analyse Traduction en langage C Traduction en langage C Compilation Compilation Tests et modifications Tests et modifications Enoncé du problème Enoncé du problème Cahier des charges Cahier des charges Algorithme Programme C Exécutable Version finale de l’exécutable Version finale de l’exécutable 18 De l’algorithmique au C Rappel sur la structure d’un algorithme 19 De l’algorithmique au C Algorithme et programmation C Déclarations Corps Entête Algorithme somme variable X, Y: Entier Début X4 Ecrire("Donner Y ") Lire(Y) Ecrire(X+Y) Fin int main ( ) { int X, Y ; X=4 ; printf("Donner Y"); scanf("%d",&Y); printf("%d",X+Y); return EXIT_SUCCESS; } 20 De l’algorithmique au C Traduction de l’entête d’un algorithme Syntaxe en pseudo-code: Algorithme <nom_algorithme> Syntaxe en langage C : int main ( ) (éventuellement ajouter au début du fichier #include <stdio.h>) 21 De l’algorithmique au C Traduction des déclarations d’un algorithme : variables Syntaxe en pseudo-code: variable <nom_variable> : <type_variable> Syntaxe en langage C : <type_variable> <nom_variable> ; Exemple : Ne pas oublier le point virgule ; Ne pas oublier le point virgule ; Syntaxe en algo Syntaxe en C variable X : Entier int X; variable Y, Z : Réel float Y, Z; 22 De l’algorithmique au C Traduction des déclarations d’un algorithme : variables La langage C défini d’autres types (voir plus loin) Types en algorithmique Types en langage C Booléen Type non défini en C mais on peut avoir des expressions booléennes (0 ou différent de zéro) Entier short = 16 bits int = taille du mot machine, long = 32 bits Réel float = virgule flottante à simple précision double = virgule flottante à double précision Caractère char = 8 bits Chaîne de caractères Type non défini, mais on utilise les pointeurs char * ou les tableaux char [ ] 23 De l’algorithmique au C Traduction des déclarations d’un algorithme : Tableaux Syntaxe en pseudo-code: variable <nom_var> : Tableau[Taille] de <Type> Syntaxe en langage C : <Type> <nom_var> [Taille]; Exemple : Ne pas oublier le point virgule ; Ne pas oublier le point virgule ; Syntaxe en algo Syntaxe en C variable tab : Tableau[2] d’Entiers int tab[2]; variable string : Tableau[3] de caractères char string[3]; 24 De l’algorithmique au C Traduction des déclarations d’un algorithme : Tableaux à deux dimension Syntaxe en pseudo-code: variable <nom_var> : Tableau[Taille1][Taille2] de <Type> Syntaxe en langage C : <Type> <nom_variable> [Taille1] [Taille2]; Exemple Syntaxe en algo Syntaxe en C variable uploads/Ingenierie_Lourd/ cours-programmation1 1 .pdf
Documents similaires










-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 05, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 10.0602MB