Pr. Ayoub Ellahyani Email: ayoub.ellahyani@yahoo.com Responsable : Programmatio

Pr. Ayoub Ellahyani Email: ayoub.ellahyani@yahoo.com Responsable : Programmation I Plan de Cours • Introduction • Types de base, variables, constantes • Opérateurs et expressions • Les entrées sorties en C • Les structures de contrôle • Les tableaux • Les pointeurs Chapitre I Introduction Introduction • Généralités sur le langage C (Historique) • C est un langage de programmation impératif généraliste, de bas niveau. Le langage C a été créé en 1972 par Denis Ritchie avec un objectif relativement limité : écrire un système d’exploitation (UNIX). Mais ses qualités opérationnelles l’ont très vite fait adopter par une large communauté de programmeurs. • Il fut limité à l’usage interne de Bell jusqu’en 1978, date à laquelle Brian Kernighan et Denis Ritchie publièrent les spécifications définitives du langage : The C programming Language. • Mais ce langage a continué d’évoluer après cette date à travers les différents compilateurs qui ont vu le jour. Son succès international a contribué à sa normalisation, d’abord par l’ANSI (American National Standard Institute), puis par l’ISO (International Standards Organization), plus récemment en 1993 par le CEN (Comité européen de normalisation) et enfin, en 1994, par l’AFNOR. En fait, et fort heureusement, toutes ces normes sont identiques, et l’usage veut qu’on parle de « C ANSI » ou de « C norme ANSI ». • L’ISO a publié en 1999, sous la référence ISO/IEC 9899:1999, une extension de la norme du langage C, plus connue sous l’acronyme C99. Bien qu’ancienne, celle-ci est loin d’être implémentée dans sa totalité par tous les compilateurs. Introduction • Généralités sur le langage C (Intérêt) • Polyvalent : Il permet le développement de systèmes d’exploitation, de programmes scientifiques et de programmes de gestion. • Langage structuré et évolué qui permet néanmoins d’effectuer des opérations de bas niveau (assembleur d’Unix). • Prés de la machine • Indépendant de la machine • Portabilité (en respectant la norme !) : Recompilation des sources sur la nouvelle plate-forme. • Compact • Rapide code très proche du langage machine. • Extensible nombreuses bibliothèques • Père syntaxique du C++, Java, PHP etc. Introduction • Généralités sur le langage C (Inconvénients) • Trop permissif Programmation spaghetti et autres … Warning interdit • Programme difficile à maintenir si La programmation est trop compacte Les commentaires sont insuffisants • Portabilité Dès que l’on utilise des bibliothèques externes, la portabilité devient difficile. Introduction • Exemple de programme en langage C Introduction • Structure d'un programme en langage C Introduction • Structure d'un programme en langage C • La ligne : main() se nomme un « en-tête ». Elle précise que ce qui sera décrit à sa suite est en fait le programme principal (main). Le programme (principal) proprement dit vient à la suite de cet en-tête. Il est délimité par les accolades «{»et «}». On dit que les instructions situées entre ces accolades forment un « bloc ». • Les trois instructions : int i ; float x ; float racx ; sont des « déclarations ». La première précise que la variable nommée i est de type int , c’est-à-dire qu’elle est destinée à contenir des nombres entiers (relatifs). Les deux autres déclarations précisent que les variables x et racx sont de type float, c’est à dire qu’elles sont destinées à contenir des nombres flottants (approximation de nombres réels). Remarque: en C, comme dans la plupart des langages actuels, les déclarations des types des variables sont obligatoires et doivent être regroupées au début du programme (on devrait plutôt dire: au début de la fonction main). Cependant, suivant la norme C99, une déclaration peut figurer à n’importe quel emplacement, pour peu qu’elle apparaisse avant que la variable correspondante ne soit utilisée. Introduction • Structure d'un programme en langage C • L’instruction : printf ("Bonjour\n") ; appelle en fait une fonction prédéfinie (fournie avec le langage, et donc que vous n’avez pas à écrire vous-même) nommée printf. Ici, cette fonction reçoit un argument qui est : « Bonjour\n » Les guillemets servent à délimiter une « chaîne de caractères » (suite de caractères). La notation \n est conventionnelle : elle représente un caractère de fin de ligne • L’instruction suivante : printf ("Je vais vous calculer %d racines carrées\n", NFOIS) ; ressemble à la précédente avec cette différence qu’ici la fonction printf reçoit deux arguments. Ici, on demande à printf d’afficher suivant ce format : "Je vais vous calculer %d racines carrées\n" la valeur de NFOIS , c’est-à-dire, la valeur 5. Ce format est, comme précédemment, une chaîne de caractères. Toutefois, vous constatez la présence d’un caractère %. Celui-ci signifie que le caractère suivant est, non plus du texte à afficher tel quel, mais un « code de format ». Ce dernier précise qu’il faut considérer la valeur reçue (en argument suivant, donc ici 5) comme un entier et l’afficher en décimal. Introduction • Structure d'un programme en langage C • L’instruction : for (i=0 ; i<NFOIS ; i++) Son rôle est de répéter le bloc (délimité par des accolades «{» et «}») figurant à sa suite, en respectant les consignes suivantes: • avant de commencer cette répétition, réaliser : i = 0 • avant chaque nouvelle exécution du bloc (tour de boucle), examiner la condition : i < NFOIS si elle est satisfaite, exécuter le bloc indiqué entre les accolades «{» et «}»), sinon passer à l’instruction qui se trouve après le bloc for (i.e. après l’accolade } ). • à la fin de chaque exécution du bloc, réaliser : i++ : il s’agit là d’une notation propre au langage C qui est équivalente à : i = i + 1 En définitive, vous voyez qu’ici notre bloc sera répété cinq fois. Introduction • Structure d'un programme en langage C • La première instruction du bloc répété par l’instruction for affiche simplement le message Donnez un nombre:. Notez qu’ici nous n’avons pas prévu de changement de ligne à la fin. • La seconde instruction du bloc : scanf ("%f", &x) ; est un appel de la fonction prédéfinie scanf dont le rôle est de lire une information au clavier. Comme printf, la fonction scanf possède en premier argument un format exprimé sous forme d’une chaîne de caractères, ici : "%f" ce qui correspond à une valeur flottante. les arguments suivants (ici, il n’y en a qu’un &x) précisent dans quelles variables on souhaite placer les valeurs lues. Introduction • Structure d'un programme en langage C • Les lignes : if (x < 0.0) printf ("Le nombre %f ne possède pas de racine carrée\n", x) ; else{ racx = sqrt (x) ; printf ("Le nombre %f a pour racine carrée : %f\n", x, racx) ; } constituent une instruction de choix basée sur la condition x < 0.0. Si cette condition est vraie, on exécute l’instruction suivante, c’est-à-dire : printf ("Le nombre %f ne possède pas de racine carrée\n", x) ; Si elle est fausse, on exécute l’instruction suivant le mot else, c’est-à-dire, ici, le bloc : { racx = sqrt (x) ; printf ("Le nombre %f a pour racine carrée : %f\n", x, racx) ; } La fonction sqrt fournit la valeur de la racine carrée d’une valeur flottante qu’on lui transmet en argument. Introduction • Structure d'un programme en langage C • Les trois premières lignes de notre programme : #include <stdio.h> #include <math.h> #define NFOIS 5 sont en fait un peu particulières. Il s’agit de directives qui seront prises en compte avant la traduction (compilation) du programme. Les deux premières directives demandent en fait d’introduire (avant compilation) des instructions (en langage C) situées dans les fichiers stdio.h et math.h. Pour l’instant, notez que, dès lors que vous faites appel à une fonction prédéfinie, il est nécessaire d’incorporer de tels fichiers, nommés « fichiers en- têtes », qui contiennent des déclarations appropriées concernant cette fonction : stdio.h pour printf et scanf, math.h pour sqrt. La troisième directive demande simplement de remplacer systématiquement, dans toute la suite du programme, le symbole NFOIS par 5. Introduction • Un second exemple de programme en langage C Voici un second exemple de programme destiné à vous montrer l’utilisation du type « caractère ». Il demande à l’utilisateur de choisir une opération parmi l’addition ou la multiplication, puis de fournir deux nombres entiers ; il affiche alors le résultat correspondant. Introduction • Quelques règles d'écriture Les identificateurs Les identificateurs servent à désigner les différents « objets » manipulés par le programme : variables, fonctions, constantes, étiquettes de structure, d'union ou d'énumération, membres de structure ou d'union, types, macros, etc. ). Comme dans la plupart des langages, ils sont formés d'une suite de caractères choisis parmi les lettres ou les chiffres, le premier d'entre eux étant nécessairement une lettre. Certains « mots-clés » sont réservés par le langage à un usage bien défini et ne peuvent pas être utilisés comme identificateurs. • le caractère souligné (_) est considéré comme une lettre. Il peut donc apparaître au début d'un identificateur. Voici quelques identificateurs corrects : lg_lig valeur_5 _total _89 • les majuscules et les minuscules sont autorisées mais ne uploads/Industriel/ cours-c 1 .pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager