Introduction au Langage C                Début du programme                               Inclusion de la bibliothèque #in...
Introduction au Langage C   Définition dune variable     nom:       Unique pour chaque variable       Commence toujours pa...
Introduction au Langage C   Types de variable     charcaractères                [..] signifie facultatif     int entiers...
Introduction au Langage C   Déclaration dune variable     Type nom_de_la_variable [= valeur]   Exemple:     int nb;     fl...
Introduction au Langage C   Affichage de la valeur dune variable     en C       printf("format de laffichage", variables) ...
Introduction au Langage C  Affichage de la valeur dune variable    en C++      cout <<chaîne 1 <<variable 1<<chaîne 2 <<va...
Introduction au Langage C   Instructions de base     opérateurs de base       +,-,*, /  opérateurs arithmétique de base  ...
Introduction au Langage C   Instructions de base     opérateurs de base       a = 2+3                 valeur de a:   5    ...
Introduction au Langage C   Instructions de base    boucle pour     for(expr1;expr2;expr3)     {         instructions     ...
Introduction au Langage C   Instructions de base    boucle pour      exemple          // somme des 100 premiers entiers   ...
Introduction au Langage C  Instructions de base    boucle tant que     while (expression)     {          instructions;    ...
Introduction au Langage C   Instructions de base     boucle répéter      do      {           instructions;      } while (e...
Introduction au Langage C   Instructions de base     instruction conditionnelle simple si alors      if (expression)      ...
Introduction au Langage C   Instructions de base     instruction conditionnelle simple si alors sinon      if (expression)...
Introduction au Langage C  Instructions de base    instruction conditionnelle multiple     switch (expression)     {      ...
Introduction au Langage C  Instructions de base    instruction conditionnelle multiple      exemple     int c=a;     switc...
Introduction au Langage C  Instructions de base    linstruction break      permet dinterrompre prématurément une      bouc...
Introduction au Langage C   Les Pointeurs     Deux manières dutiliser une variable       Par son nom adressage direct    ...
Introduction au Langage C   Les Pointeurs       Par son adresse adressage indirect          une variable de type pointeur...
Introduction au Langage C     Les Pointeurs        déclaration dun pointeur          type * nom_du_pointeur        exemple...
Introduction au Langage C            Les Pointeurs                initialisation dun pointeur                   Il faut lu...
Introduction au Langage C   Les tableaux statiques à 1 dimension     définition       Ensemble de variables de même type, ...
Introduction au Langage C       Les tableaux statiques à 1 dimension          accès aux éléments du tableau            Nom...
Introduction au Langage C   Les tableaux statiques à 2 dimensions et   plus     définition       Il sagit dun tableau de t...
Introduction au Langage C   Les tableaux statiques à 2 dimensions   et plus     accès aux éléments       nom_tableau[ind1]...
Introduction au Langage C   Lien entre le nom dun tableau à 1   dimension et les pointeurs     Nom du tableau = adresse du...
Introduction au Langage C   Lien entre le nom dun tableau à 2   dimension et les pointeurs     un tableau 2d est un tablea...
Introduction au Langage C         Lien entre le nom dun tableau à 2         dimension et les pointeurs                    ...
Introduction au Langage C   Initialisation dynamique dun tableau     Tableau une dimension       int * t;       t = (int*)...
Introduction au Langage C   Initialisation dynamique dun tableau     Tableau à deux dimensions n*m       déclaration dynam...
Introduction au Langage C  Initialisation dynamique dun tableau    Tableau à deux dimensions n*m     int **TAB,l;     TAB ...
Introduction au Langage C  Les structures de données    intérêt      Rassembler des données hétérogènes      caractérisant...
Introduction au Langage C  Les structures de données    déclaration    struct nom_structure    {       type1 nomchamps1;  ...
Introduction au Langage C  Les structures de données    exemple et utilisation     struct pt     {        int x;        in...
Introduction au Langage C  Les structures de données    simplification de lécriture    typedef struct pt     struct pt    ...
Introduction au Langage C  Les structures de données    accès aux données      Deux cas de figure         On dispose du no...
Introduction au Langage C  Les structures de données    accès aux données      Deux cas de figure         On dispose de la...
Introduction au Langage C  Les fonctions    définition       Ensemble dinstructions pouvant être       appelés de manière ...
Introduction au Langage C  Les fonctions    règles dutilisation      Lordre, le type et le nombre des arguments      doive...
Introduction au Langage C                              Prototype de  Les fonctions                la fonction             ...
Introduction au Langage C  Les fonctions    Les paramètres se passent par valeur      Recopie en mémoire des paramètres da...
Introduction au Langage C  Les fonctions    exemple:     void permutter(int a, int b)     {                               ...
Introduction au Langage C  Les fonctions    Passage darguments par adresse      On passe non pas la valeur de la variable ...
Introduction au Langage C  Les fonctions    exemple:     void permutter(int *pa, int *pb)     {                           ...
Introduction au Langage C  Les Fichiers    Les fichiers sont soit:      binaires (un float sera stocké comme il est codé e...
Introduction au Langage C  Les Fichiers    Les Fonctions       Prototypées dans stdio.h, io.h, fcntl.h       Ouverture d’u...
Introduction au Langage C  Les Fichiers    Les Fonctions       Écriture dans un fichier           int write(int handle, vo...
Introduction au Langage C  Les Fichiers    Exemple     // inclusion des entêtes des fonctions     #include <io.h>     #inc...
Prochain SlideShare
Chargement dans…5
×

Chapitre2 prog dsplf3

1 378 vues

Publié le

0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 378
Sur SlideShare
0
Issues des intégrations
0
Intégrations
163
Actions
Partages
0
Téléchargements
133
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Chapitre2 prog dsplf3

  1. 1. Introduction au Langage C Début du programme Inclusion de la bibliothèque #include <stdio.h> contenant la fonction printf void main() Point dentré du programme { printf("Bonjour!n"); première instruction } Fin du programme 2
  2. 2. Introduction au Langage C Définition dune variable nom: Unique pour chaque variable Commence toujours par une lettre Différenciation minuscule-majuscule type: Conditionne le format de la variable en mémoire Peut être soit un type standard ou un type utilisateur valeur: Peut évoluer pendant lexécution initialisation grâce à lopérateur daffectation 3
  3. 3. Introduction au Langage C Types de variable charcaractères [..] signifie facultatif int entiers short [int] entiers courts long [int] entiers longs float nombres décimaux double nombres décimaux de précision supérieure long double nombres décimaux encore plus précis unsigned int entier non signé 4
  4. 4. Introduction au Langage C Déclaration dune variable Type nom_de_la_variable [= valeur] Exemple: int nb; float pi = 3.14; char c = a; long i,j,k; double r = 6.2879821365; 5
  5. 5. Introduction au Langage C Affichage de la valeur dune variable en C printf("format de laffichage", variables) Exemple int i =8;int j = 10; printf("i vaut: %d j vaut: %d n",i,j); float r = 6.28; printf("le rayon = %f n",r); Autres formats: %c caractère %lf double %s chaîne de caractères %e réel en notation scientifique 6
  6. 6. Introduction au Langage C Affichage de la valeur dune variable en C++ cout <<chaîne 1 <<variable 1<<chaîne 2 <<variable 2; Exemple int i =8;int j = 10; cout <<"i vaut:" << i <<"j vaut:"<<j <<n; float r = 6.28; cout<<"le rayon = "<< r <<n; 7
  7. 7. Introduction au Langage C Instructions de base opérateurs de base +,-,*, /  opérateurs arithmétique de base %  reste dune division entière ==  test dégalité != test de différence <, >, <=, >= test de comparaison !  négation ||  ou logique pour évaluer une expression &&  et logique pour évaluer une expression 8
  8. 8. Introduction au Langage C Instructions de base opérateurs de base a = 2+3 valeur de a: 5 r = 3%2 valeur de a: 1 a = (3==3) valeur de a: 1 a = (6==5) valeur de a: 0 a = (2!=3) valeur de a: 1 a = (6<=3) valeur de a: 0 a = !1 valeur de a: 0 a =((3==3) || (6<=3)) valeur de a: 1 a =((3==3) && (6<=3)) valeur de a: 0 9
  9. 9. Introduction au Langage C Instructions de base boucle pour for(expr1;expr2;expr3) { instructions } expr1: évaluée 1 seule fois en début de boucle expr2: évaluée avant chaque itération. Si vrai alors les instructions de la boucle sont exécutées sinon la boucle est terminée expr3: évaluée à la fin de chaque itération 10
  10. 10. Introduction au Langage C Instructions de base boucle pour exemple // somme des 100 premiers entiers int i,s; s= 0 for(i=0;i<=100;i = i+1) { s = s+i; / / ou s+=i; } cout <<"s = "<<s<<n; 11
  11. 11. Introduction au Langage C Instructions de base boucle tant que while (expression) { instructions; } expression est évaluée avant chaque itération. Si le résultat est vrai alors les instructions sont exécutées sinon on sort de la boucle exemple i =0; n = 20; while (i<n) { i++; } 12
  12. 12. Introduction au Langage C Instructions de base boucle répéter do { instructions; } while (expression) expression est évaluée après chaque itération. Si le résultat est vrai alors les instructions sont exécutées sinon on sort de la boucle exemple i =0; n = 20; do { i++; } while(i<n) 13
  13. 13. Introduction au Langage C Instructions de base instruction conditionnelle simple si alors if (expression) { instructions; } expression est évaluée après chaque itération. Si le résultat est vrai alors les instructions sont exécutées sinon on sort de la boucle. exemple int i =5; int n; if (i<=20) { n =0; } 14
  14. 14. Introduction au Langage C Instructions de base instruction conditionnelle simple si alors sinon if (expression) { instructions1; } sinon { instrutions2; } expression est évaluée après chaque itération. Si le résultat est vrai alors les instructions1 sont exécutées sinon on exécute lensemble instructions2 exemple int i =5;int n; if (i<=20) n =0; else n=5; 15
  15. 15. Introduction au Langage C Instructions de base instruction conditionnelle multiple switch (expression) { case valeur1: instructions1;break; case valeur2: instructions2;break; . . . case valeur3: instruction3;break; default: instruction4;break; } expression est évaluée. Si le résultat vaut valeur1, alors instruction1 est exécutée et on quitte le switch, sinon si expression vaut valeur2, ……, sinon on va dans default pour exécuter instruction4. 16
  16. 16. Introduction au Langage C Instructions de base instruction conditionnelle multiple exemple int c=a; switch (c) { case a: file();break; case b: save();break; case q: quitter();break; default: beep();break; } 17
  17. 17. Introduction au Langage C Instructions de base linstruction break permet dinterrompre prématurément une boucle et de se brancher vers la première instruction nappartenant pas à la boucle exemple: int i;int n=20; for (i=0;i<10;i++) Quand n vaut { 31 alors la if (n==31) break; boucle est interrompue n=n+2; } cout <<n<<n; 18
  18. 18. Introduction au Langage C Les Pointeurs Deux manières dutiliser une variable Par son nom adressage direct compilateur réserve de la mémoire pour la variable exemple: int x =17; 19
  19. 19. Introduction au Langage C Les Pointeurs Par son adresse adressage indirect une variable de type pointeur contient ladresse dune autre variable Le lien entre pointeur et la variable pointée est géré par le programmeur exemple: int x =17; px pointe int * px = &x; vers x 20
  20. 20. Introduction au Langage C Les Pointeurs déclaration dun pointeur type * nom_du_pointeur exemples char *buffer; int *pf; float *ppi; Cest au programmeur dinitialiser le pointeur 21
  21. 21. Introduction au Langage C Les Pointeurs initialisation dun pointeur Il faut lui fournir ladresse dune variable existant en mémoire Il doit pointer vers une zone mémoire réservée par le compilateur comme étant une variable utilisation de lopérateur dadressage & int f; création du int *pf,*pg; lien entre le pointeur et la pf = &f; variable allocation dynamique dune variable pg =(int*)malloc(sizeof(int)); de type int création du .lien entre pg et lespace . libération de mémoire free(gf); lespace réservé réservé 22
  22. 22. Introduction au Langage C Les tableaux statiques à 1 dimension définition Ensemble de variables de même type, de même nom caractérisées par un index. déclaration type nom_tableau[dimension] exemples: char buffer[80]; doit être une int mat[10]; constante 23
  23. 23. Introduction au Langage C Les tableaux statiques à 1 dimension accès aux éléments du tableau Nom_tableau[indice] exemples: buffer[5] = c; mat[6] = 10; le premier élément commence à lindice 0 !! Les valeurs ne sont pas initialisées !! Les débordements ne sont pas vérifiés 24
  24. 24. Introduction au Langage C Les tableaux statiques à 2 dimensions et plus définition Il sagit dun tableau de tableaux déclaration type nom_tableau[dim1][dim2]…[dimn] exemples: char buffer[20][80]; int mat[6][10]; char livres[100][60][80]; 25
  25. 25. Introduction au Langage C Les tableaux statiques à 2 dimensions et plus accès aux éléments nom_tableau[ind1][ind2]…[indn] exemples: livre[30][15][20] = c; mat[5][6] =13; cout << mat[5][6]<<n; 26
  26. 26. Introduction au Langage C Lien entre le nom dun tableau à 1 dimension et les pointeurs Nom du tableau = adresse du premier élément du tableau nom_tableau[i] peut sécrire *(nom_tableau+i) exemples: char buffer[80]; *buffer = C; accès au premier caractère *(buffer + 5) = V; accès au 6 ème caractère 27
  27. 27. Introduction au Langage C Lien entre le nom dun tableau à 2 dimension et les pointeurs un tableau 2d est un tableau de tableau de dimension 1 On peut donc dire que le nom dun tableau 2d est ladresse dun tableau dadresse de tableaux de dimension 1 On dit aussi quil sagit dun pointeur de pointeur exemple: int TAB[6][7]; int **p; déclaration dun pointeur de pointeur p = TAB; initialisation du pointeur de pointeur 28
  28. 28. Introduction au Langage C Lien entre le nom dun tableau à 2 dimension et les pointeurs TAB tableaux dentiers 0 1 2 3 4 5 6 0 1tableaux de pointeurs vers des tableaux 2 dentiers 3 4 5 29
  29. 29. Introduction au Langage C Initialisation dynamique dun tableau Tableau une dimension int * t; t = (int*)malloc(20*sizeof(int)); fonction de calcul automatique de la taille nom du dun entier tableau en octet fonction nombre dallocation déléments dynamique de dans le la mémoire tableau 30
  30. 30. Introduction au Langage C Initialisation dynamique dun tableau Tableau à deux dimensions n*m déclaration dynamique du tableau de n pointeurs et des n tableaux à une dimension de m éléments quelques lignes de code sont nécessaires 31
  31. 31. Introduction au Langage C Initialisation dynamique dun tableau Tableau à deux dimensions n*m int **TAB,l; TAB = (int**)malloc(n*sizeof(int*)); for (l=0;l<n;l++) { TAB[l] = (int*)malloc(m*sizeof(int)); } //désallocation: for (l=0;l<n;l++) free(TAB[l]); free(TAB); 32
  32. 32. Introduction au Langage C Les structures de données intérêt Rassembler des données hétérogènes caractérisant une entité pour en faire un type utilisateur. exemple: point dans lespace 3 entiers nœud dun arbre binaire 2 adresses vers les fils, 3 entiers pour les données du nœud noms et références des pièces mécaniques constituant une voiture 600 tableaux de caractères + 600 entiers pour la référence 33
  33. 33. Introduction au Langage C Les structures de données déclaration struct nom_structure { type1 nomchamps1; type2 nomchamps2; . . . typeN nomchampsN; }; 34
  34. 34. Introduction au Langage C Les structures de données exemple et utilisation struct pt { int x; int y; int z; char nom; }; main() { struct pt p; } 35
  35. 35. Introduction au Langage C Les structures de données simplification de lécriture typedef struct pt struct pt { { int x; Notations int x; int y; équivalentes int y; int z; int z; char nom; char nom; } point; }; typedef struct pt point; main() { point p; } 36
  36. 36. Introduction au Langage C Les structures de données accès aux données Deux cas de figure On dispose du nom de la variable Accès par: NomVariable.NomChamps exemple main() { point p1; p1.x = 8; p1.y = 9; p1.z = 10; cout <<p1.x<<p1.y<<p1.z<<n; } 37
  37. 37. Introduction au Langage C Les structures de données accès aux données Deux cas de figure On dispose de ladresse de la variable (pointeur) Accès par: NomVariable->NomChamps exemple main() { point *pp1, p1; pp1 = &p1; pp1->x = 8; pp1->y = 9; pp1->z = 10; cout <<pp1->x<<pp1->y<<pp1->z<<n; } 38
  38. 38. Introduction au Langage C Les fonctions définition Ensemble dinstructions pouvant être appelés de manière répétitive par un nom déclaration type arg_ret nom_f( type arg1,type arg2, …type argn) { ensemble instructions } - arg_ret est largument renvoyé par la fonction (instruction return - nom_f est le nom de la fonction - arg1 …argn sont les arguments envoyés à la fonction 39
  39. 39. Introduction au Langage C Les fonctions règles dutilisation Lordre, le type et le nombre des arguments doivent être respectés lors de lappel de la fonction Lappel dune fonction doit être située après sa déclaration ou celle de son prototype (voir exemple transp suivant) Si la fonction ne renvoie rien alors préciser le type void 40
  40. 40. Introduction au Langage C Prototype de Les fonctions la fonction min exemple: int min(int a, int b); Programme void main() principal { cout <<min(a,b)<<; } int min(int a, int b) Fonction min { et son bloc if (a <b) return a; dinstruction else return b; s } 41
  41. 41. Introduction au Langage C Les fonctions Les paramètres se passent par valeur Recopie en mémoire des paramètres dans des paramètres temporaires. Toute modification des paramètres dans la fonction est sans effet sur les paramètres originelles Quand on quitte la fonction, les paramètres temporaires sont effacés de la mémoire Recopie dans le sous programme appelant de la valeur du paramètre retourné par la fonction return. 42
  42. 42. Introduction au Langage C Les fonctions exemple: void permutter(int a, int b) { Aucune int temp; action sur temp = a; les paramètres a = b; b= temp; x et y } void main() { int x=3;int y =5; permutter(x,y); cout << "x="<<x<<" y="<<y<<n; x=3 y=5 } 43
  43. 43. Introduction au Langage C Les fonctions Passage darguments par adresse On passe non pas la valeur de la variable mais son adresse Il est donc possible par les pointeurs de modifier le contenu de ladresse, donc la variable originelle Permet de modifier plusieurs arguments à la fois dans une fonction Permet de passer des tableaux en argument 44
  44. 44. Introduction au Langage C Les fonctions exemple: void permutter(int *pa, int *pb) { Action sur int temp; temp = *pa; les paramètres *pa = *pb; x et y *pb= temp; } void main() { int x=3;int y =5; permutter(&x,&y); cout << "x="<<x<<" y="<<y<<n; x=5 y=3 } 45
  45. 45. Introduction au Langage C Les Fichiers Les fichiers sont soit: binaires (un float sera stocké comme il est codé en mémoire , doù gain de place mais incompatibilité entre logiciels) formaté ASCII (un float binaire sera transformé en décimal puis on écrira le caractère correspondant à chaque chiffre). Pour accéder aux données, on le fait soit: De manière séquentielle (on accède au contenu dans lordre du stockage) Par un accès direct (on peut directement accéder à nimporte quel endroit du fichier) 46
  46. 46. Introduction au Langage C Les Fichiers Les Fonctions Prototypées dans stdio.h, io.h, fcntl.h Ouverture d’un fichier handle = open(char *nomfic, int mode); nomfic: pointeur vers une chaîne de caractère contenant le chemin, le nom du fichier et l’extension du fichier mode: variable entière dont chaque bit possède une signification particulière. Utilisation de constantes prédéfinies O_RDONLY Ouverture pour lecture seule O_WRONLY Ouverture pour écriture seule O_RDWR Ouverture pour lecture et écriture O_APPEND Ajout des données à la fin du fichier O_CREAT Crée le fichier s’il n’existe pas O_BINARY Ouvre le fichier en mode Binaire (Stockage de l’info comme elle est stockée dans la mémoire de l’ordinateur) O_TEXT Ouvre le fichier en mode Texte. (On mémorise le code ASCII de chaque nombre ou caractère) 47
  47. 47. Introduction au Langage C Les Fichiers Les Fonctions Écriture dans un fichier int write(int handle, void *bloc, unsigned taille); Handle: numéro entier caractérisant le fichier (renvoyé lors de l’ouverture du fichier avec la fonction open) Bloc: pointeur vers le bloc de données Taille: taille en octet de ce bloc Lecture dans un fichier (idem écriture avec fonction read) int read(int handle, void *bloc, unsigned taille); Fermeture d’un fichier int close(int handle) 48
  48. 48. Introduction au Langage C Les Fichiers Exemple // inclusion des entêtes des fonctions #include <io.h> #include <fcntl.h> #include <string.h> main() { int handle; // numéro caractérisant le fichier char string[40]; // tableau de caractères int length; // Variable mémorisant la taille du bloc de données int x=40; // entier x valant 40 int y=102; // entier y valant 102 // ouverture du fichier Monfichier.txt avec création sil nexiste pas // Fichier ouvert en écriture en mode texte handle = open("c:Monfichi.txt",O_CREAT |O_RDWR |O_APPEND); // Fonction (idem à printf) qui écrit un message formaté dans un tableau // de caractères (printf lécrit vers lécran) length=sprintf(string,"valeur de x=%d valeur de y=%d n",x,y); // Ecriture de la chaîne de caractères dans le fichier write(handle,string,length); // Fermeture du fichier close(handle); } 49

×