La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

2.1 - Historique Chapitre 2 : Introduction au langage C++

Présentations similaires


Présentation au sujet: "2.1 - Historique Chapitre 2 : Introduction au langage C++"— Transcription de la présentation:

1 2.1 - Historique Chapitre 2 : Introduction au langage C++
Principales Améliorations : Ajout du type booléen C C++ AP4 - Programmation Orientée Objet

2 2.2 - Implantation de module en C++
Chapitre 2 : Introduction au langage C++ Implantation de module en C++ Programme simple AP4 - Programmation Orientée Objet

3 2.2 - Implantation de module en C++
Chapitre 2 : Introduction au langage C++ Implantation de module en C++ Fichier Interface Programme simple AP4 - Programmation Orientée Objet

4 2.2 - Implantation de module en C++
Chapitre 2 : Introduction au langage C++ Implantation de module en C++ Fichier Interface Programme simple Fichier d’implémentation AP4 - Programmation Orientée Objet

5 2.2 - Implantation de module en C++
Chapitre 2 : Introduction au langage C++ Implantation de module en C++ Extension : Fichier Interface .h (Header) Programme simple .c Ou .cpp Fichier d’implémentation AP4 - Programmation Orientée Objet

6 2.3 - Structure d'un programme en C++
Chapitre 2 : Introduction au langage C++ Structure d'un programme en C++ Une fonction principale main() AP4 - Programmation Orientée Objet

7 2.3 - Structure d'un programme en C++
Chapitre 2 : Introduction au langage C++ Structure d'un programme en C++ Une fonction principale main() Exemple n°1 : int main() { ; } AP4 - Programmation Orientée Objet

8 2.3 - Structure d'un programme en C++
Chapitre 2 : Introduction au langage C++ Structure d'un programme en C++ Une fonction principale main() Exemple n°1 : int main() { ; } en tête AP4 - Programmation Orientée Objet

9 2.3 - Structure d'un programme en C++
Chapitre 2 : Introduction au langage C++ Structure d'un programme en C++ Une fonction principale main() Exemple n°1 : int main() { ; } en tête Équivalent du begin et end en ADA AP4 - Programmation Orientée Objet

10 2.3 - Structure d'un programme en C++
Chapitre 2 : Introduction au langage C++ Structure d'un programme en C++ Une fonction principale main() Exemple n°1 : } int main() { ; } en tête Équivalent du begin et end en ADA Bloc d’instructions AP4 - Programmation Orientée Objet

11 2.3 - Structure d'un programme en C++
Chapitre 2 : Introduction au langage C++ Structure d'un programme en C++ Une fonction principale main() Exemple n°1 : } int main() { ; } en tête Équivalent du begin et end en ADA Bloc d’instructions Instruction vide AP4 - Programmation Orientée Objet

12 2.3 - Structure d'un programme en C++
Chapitre 2 : Introduction au langage C++ Structure d'un programme en C++ Une fonction principale main() Exemple n°1 : } int main() { ; } en tête Équivalent du begin et end en ADA Bloc d’instructions Instruction vide Quelques règles AP4 - Programmation Orientée Objet

13 2.4 - Les commentaires en C++
Chapitre 2 : Introduction au langage C++ Les commentaires en C++ 2 méthodes : AP4 - Programmation Orientée Objet

14 2.4 - Les commentaires en C++
Chapitre 2 : Introduction au langage C++ Les commentaires en C++ 2 méthodes : Exemple n°2 : /* Voila comment ajouter des commentaires à vos programmes */ Cette méthode permet de faire un commentaires sur plusieurs lignes AP4 - Programmation Orientée Objet

15 2.4 - Les commentaires en C++
Chapitre 2 : Introduction au langage C++ Les commentaires en C++ 2 méthodes : Exemple n°2 : Exemple n°3 : /* Voila comment ajouter des commentaires à vos programmes */ int main() // Voila comment //ajouter des commentaires à vos //programmes Cette méthode permet de faire un commentaires sur plusieurs lignes Cette méthode permet de faire un commentaires sur une seule ligne AP4 - Programmation Orientée Objet

16 2.5 - Les types de base en C/C++
Chapitre 2 : Introduction au langage C++ Les types de base en C/C++ char Caractère int Entier float Réel double Réel très précis void Type rien utilisé pour faire des procédures bool Booléen (seulement en C++) AP4 - Programmation Orientée Objet

17 2.6 - Les définitions de variables en C/C++
Chapitre 2 : Introduction au langage C++ Les définitions de variables en C/C++ Exemple n°4 : int main() { int A, B; double C; B=A; } En C, pas de déclarations possible après la première instruction AP4 - Programmation Orientée Objet

18 2.6 - Les définitions de variables en C/C++
Chapitre 2 : Introduction au langage C++ Les définitions de variables en C/C++ Exemple n°4 : int main() { int A, B; double C; B=A; } En C, pas de déclarations possible après la première instruction Exemple n°5 : int main() { int A, B; B=A; double C; } En C++, tout est possible !! AP4 - Programmation Orientée Objet

19 2.7 - Les constantes en C/C++
Chapitre 2 : Introduction au langage C++ Les constantes en C/C++ Exemple n°6 : Const int A=2; AP4 - Programmation Orientée Objet

20 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Opérateurs Arythmétique A+B Addition A–B Soustraction A*B Produit A/B Division A%B Modulo -A Opérateur Unaire AP4 - Programmation Orientée Objet

21 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Opérateurs Arythmétique Exemple n°7 : int main() { int A, B; double C; C = A + B; A = C + 1; char D = 'b'; D = D + 1; } Possible : A + B int C double Et double > int AP4 - Programmation Orientée Objet

22 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Opérateurs Arythmétique Exemple n°7 : int main() { int A, B; double C; C = A + B; A = C + 1; char D = 'b'; D = D + 1; } Possible : C sera tronqué Mieux vaut écrire ça : A = (int)C+ 1; AP4 - Programmation Orientée Objet

23 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Opérateurs Arythmétique Exemple n°7 : int main() { int A, B; double C; C = A + B; A = C + 1; char D = 'b'; D = D + 1; } Possible : Code ASCII de 'b' = 98 Donc = 99 99 soit 'c' Donc D = 99 AP4 - Programmation Orientée Objet

24 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Opérateurs relationnel == Égal != différent Exemple n°8 : if ( A == B ) { A++; C = A; } A=(B==2)*4 À évité : Si B est égale à 2 alors (B==2) vaudra 1 et donc A vaudra 1*4=4 AP4 - Programmation Orientée Objet

25 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Opérateurs logique && ET logique || OU logique ! NON logique Exemple n°9 : if (A < 1 && B > 3) { instructions; } AP4 - Programmation Orientée Objet

26 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Affectation Ordinaire Exemple n°10 : A = B + 3; B + C = A; INTERDIT!!! AP4 - Programmation Orientée Objet

27 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Incrémentation et Décrémentation i = i + 1;  i++; ou ++i; i = i – 1;  i--; ou --i; Exemple n°11 : Incrémentation avant affectation int i = 3; int n; n = ++i – 3; // n vaut 1, i vaut 4 n = i++ - 3; // n vaut 0, i vaut 4 Incrémentation après affectation AP4 - Programmation Orientée Objet

28 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Affectation élargie i = i + 2;  i += 2; A = 3 * A;  A *= 3; B = B / 3;  B /= 3; C = C - 2;  C -= 2; Exemple n°12 : AP4 - Programmation Orientée Objet

29 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Opérateurs de décalages et logique bit à bit A = A << 1; A *= 2; A = A >> 1; A /= 2; ~ Complément à 1 & ET logique | OU logique ^ OU Exclusif logique AP4 - Programmation Orientée Objet

30 2.8 - Les opérateurs et expression en C/C++
Chapitre 2 : Introduction au langage C++ Les opérateurs et expression en C/C++ Priorités des opérateurs Catégorie d'opérateurs Opérateurs Assoc fonction, tableau, membre de structure, pointeur sur un membre de structure () [] . -> G=>D opérateurs unaires ! ~ * & sizeof (type) D=>G multiplication, division, modulo * / % addition, soustraction + - opérateurs binaires de décalage << >> opérateurs relationnels < <= > >= opérateurs de comparaison == != et binaire & ou exclusif binaire ^ ou binaire | et logique && ou logique || opérateur conditionnel ?: opérateurs d'affectation = += -= *= /= %= &= ^= |= <<= >>= opérateur virgule , AP4 - Programmation Orientée Objet

31 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle Notion de Bloc Un bloc est une suite d'instructions qui est délimité par { et } Exemple n°13 : { int X=1; X *= 2; } cout << X; AP4 - Programmation Orientée Objet

32 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle Notion de Bloc Un bloc est une suite d'instructions qui est délimitée par { et } Exemple n°14 : { int X=1; X *= 2; } cout << X; Bloc "Père" AP4 - Programmation Orientée Objet

33 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle Notion de Bloc Un bloc est une suite d'instructions qui est délimité par { et } Exemple n°14 : { int X=1; X *= 2; } cout << X; Bloc "Fils" AP4 - Programmation Orientée Objet

34 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction if Structure générale : Exemple n°13 : if (Condition) { instructions; } else if (C==0) { cout << "perdu" << endl; C = 1; } else cout << "gagné << endl; Les {} ne sont pas obligatoire si il n'y a qu'une seule instructions dans le bloc AP4 - Programmation Orientée Objet

35 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction if Structure générale : Exemple n°13 : if (Condition) { instructions; } else if (C==0) { cout << "perdu" << endl; C = 1; } else cout << "gagné << endl; Exemple n°14 : if (C==0) i++; Le bloc else n'est pas obligatoire si il ne contient pas d'instructions. AP4 - Programmation Orientée Objet

36 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction if Exemple n°15 : if (i==0) if (A>10) { instructions; } else AP4 - Programmation Orientée Objet

37 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction switch Exemple n°16 : int i = 2; switch (i) { case 0 : instructions; break; case 1 : instructions; case 2 : instructions; default : instructions; } Toujour en char ou int AP4 - Programmation Orientée Objet

38 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction switch Exemple n°16 : int i = 2; switch (i) { case 0 : instructions; break; case 1 : instructions; case 2 : instructions; default : instructions; } On termine toujours par break si on ne souhaite pas que les instructions des autres case soit executer . AP4 - Programmation Orientée Objet

39 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction switch Exemple n°16 : int i = 2; switch (i) { case 0 : instructions; break; case 1 : instructions; case 2 : instructions; default : instructions; } Le default n'est pas obligatoire La valeur de i n'est évaluer qu'une seule fois AP4 - Programmation Orientée Objet

40 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction do...while Exemple n°17 : p = i = 1; do { p = p * i; i++; } while (i != 10); La répétitive est exécutée au moins une fois AP4 - Programmation Orientée Objet

41 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction while Exemple n°18 : p = i = 1; while (i != 10) { p *= i; i++; } Pas d'obligation d'exécution AP4 - Programmation Orientée Objet

42 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction for Exemple n°18 : { int i, Somme = 0; for ( i = 1; i <= 10 ; i++ ) Somme += i; } A = 0; Partie d'initialisation AP4 - Programmation Orientée Objet

43 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction for Exemple n°18 : { int i, Somme = 0; for ( i = 1; i <= 10 ; i++ ) Somme += i; } A = 0; Partie d'initialisation Condition de continuité AP4 - Programmation Orientée Objet

44 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction for Exemple n°18 : { int i, Somme = 0; for ( i = 1; i <= 10 ; i++ ) Somme += i; } A = 0; Partie d'initialisation Partie Incrémentation Condition de continuité AP4 - Programmation Orientée Objet

45 2.9 - Les instructions de contrôle
Chapitre 2 : Introduction au langage C++ Les instructions de contrôle L'instruction for Exemple n°18 : { int i, Somme = 0; for ( i = 1; i <= 10 ; i++ ) Somme += i; } A = 0; 1 2 4 3 1 2 3 2 4 3 2 4 AP4 - Programmation Orientée Objet

46 2.10 - Les fonctions 2.10.1 - Les Déclarations
Chapitre 2 : Introduction au langage C++ Les fonctions Les Déclarations Exemple n°19 : float F1 (int, char, int, float); main () { A = F1(3,'c',2,3.14); void F2(); } Peut s'écrire : void F2(void); Mais pas void F2; AP4 - Programmation Orientée Objet

47 2.10 - Les fonctions 2.10.2 - Les Définitions
Chapitre 2 : Introduction au langage C++ Les fonctions Les Définitions Exemple n°20 : float F1 (int, char, int, float); { instructions; return A; } int Max (int A, int B, int C) int M = (A > B)? A : B; return (M > C)? M : C; Équivalent à : if (A > B) M = A; else M = B; AP4 - Programmation Orientée Objet

48 2.10 - Les fonctions 2.10.3 - Appel d'une fonction
Chapitre 2 : Introduction au langage C++ Les fonctions Appel d'une fonction Une Fonction peut être appelée que si sa déclaration est accessible AP4 - Programmation Orientée Objet

49 2.10.4 - Les variables locales et les variables globales
Chapitre 2 : Introduction au langage C++ Les fonctions Les variables locales et les variables globales Exemple n°21 : void F(); int A = 0; main() { int B = 0; float A; F(); char C; instructions; } A++; int C; Variable Globale AP4 - Programmation Orientée Objet

50 2.10.4 - Les variables locales et les variables globales
Chapitre 2 : Introduction au langage C++ Les fonctions Les variables locales et les variables globales Exemple n°21 : void F(); int A = 0; main() { int B = 0; float A; F(); char C; instructions; } A++; int C; Variable Globale Variables locales à main() AP4 - Programmation Orientée Objet

51 2.10.4 - Les variables locales et les variables globales
Chapitre 2 : Introduction au langage C++ Les fonctions Les variables locales et les variables globales Exemple n°21 : void F(); int A = 0; main() { int B = 0; float A; F(); char C; instructions; } A++; int C; Variable Globale Variables locales à main() Variables locales à ce bloc AP4 - Programmation Orientée Objet

52 2.10.4 - Les variables locales et les variables globales
Chapitre 2 : Introduction au langage C++ Les fonctions Les variables locales et les variables globales Exemple n°21 : void F(); int A = 0; main() { int B = 0; float A; F(); char C; instructions; } A++; int C; Variable Globale Variables locales à main() Variables locales à ce bloc Variables locales à F() AP4 - Programmation Orientée Objet

53 2.10.5 - Les variables statiques
Chapitre 2 : Introduction au langage C++ Les fonctions Les variables statiques Exemple n°22 : int A; main () { instructions; F(); } void F(void) int B = 1; static int C = 1; B++; C++; La variable C est statique dans la fonction F() AP4 - Programmation Orientée Objet

54 2.10.6 - Passage de paramètres 2.10.6.1 - Passage par valeurs (IN)
Chapitre 2 : Introduction au langage C++ Les fonctions Passage de paramètres Passage par valeurs (IN) Exemple n°23 : void Echange(int A, int B) { int C = A; A = B; B = C; } int main() int X1 = 1, X2 = 2; Echange(X1,X2); instructions; Paramètres formels Paramètres réels passés par valeur AP4 - Programmation Orientée Objet

55 2.10.6 - Passage de paramètres
Chapitre 2 : Introduction au langage C++ Les fonctions Passage de paramètres Passage par référence (seulement C++) Exemple n°24 : Equivalent au mode IN OUT void Echange2(const int &A, int &B) { int C = A; A = B; B = C; } int main() int X1 = 1, X2 = 2; Echange2(X1,X2); instructions; AP4 - Programmation Orientée Objet

56 2.10.6 - Passage de paramètres
Chapitre 2 : Introduction au langage C++ Les fonctions Passage de paramètres Passage par référence (seulement C++) Exemple n°25 : tst.cpp Exemple n°26 : lib.cpp Exemple n°27 : lib.h #include "lib.h" int F(int, int); #include "lib.h" int F(int X1, int X2) { instructions; } #include "lib.h" main() { int A=1, B=2; int C; C=F(A,B); } Ou #include "lib.h" int F(int, int=0); AP4 - Programmation Orientée Objet

57 2.10.6 - Passage de paramètres
Chapitre 2 : Introduction au langage C++ Les fonctions Passage de paramètres Passage par adresse On remet ça à plus tard  AP4 - Programmation Orientée Objet

58 2.10 - Les fonctions 2.10.7 - la fonction inligne
Chapitre 2 : Introduction au langage C++ Les fonctions la fonction inligne Exemple n°28 : -> Récursivité impossible -> Pas instanciée donc pas de pointeur -> Le compilateur ne respecte pas forcement ce mot clé! inligne int Min(int A, int B) { return A<B?A:B; } AP4 - Programmation Orientée Objet

59 2.10.8 - Surcharge des fonctions
Chapitre 2 : Introduction au langage C++ Les fonctions Surcharge des fonctions Deux fonctions portant le même nom seront disctinctes : -> si elles n'ont pas le même nombre de paramètres -> si le type de paramètres est différents AP4 - Programmation Orientée Objet

60 2.10.9 - Types de résultats d'une fonction
Chapitre 2 : Introduction au langage C++ Les fonctions Types de résultats d'une fonction Il faut éviter de retourner une référence à une variable locale Exemple n°29 : int F() { int C; C=1; return C; } Il ne faut pas mettre &C AP4 - Programmation Orientée Objet

61 2.10 - Les fonctions 2.10.10 - Exemple
Chapitre 2 : Introduction au langage C++ Les fonctions Exemple Exemple n°30 : Déclaration de la variable A extern int A; void F1(); static void F2 (); void F3(); int main; { F1(); F2(); } void F1() static int X=1; int Y=1; static void F2() instructions; Déclaration de la fonction F1() Déclaration de F2() mais pas instanciable à partir d'un autre fichier Déclaration de la fonction F3() Déclaration et affectation de la variable statique X Définition de la fonction F1() Définition de la fonction F2() AP4 - Programmation Orientée Objet

62 } } 2.10 - Les fonctions 2.10.10 - Exemple
Chapitre 2 : Introduction au langage C++ Les fonctions Exemple Exemple n°31 : Déclaration de la variable globale A int A; static int B; int C; void F3(); static void F4; void F3() { instructions; } static void F4() Déclaration de la variable statique globale B Déclaration de la variable globale C } Définition de la fonction F3() } Définition de la fonction F4() AP4 - Programmation Orientée Objet

63 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Les tableaux à un indice Exemple d'utilisation tableau en C Exemple n°32 : #include <stdio.h> int main(void) { int i, som, nbm ; double moy ; int t[20] ; for (i=0 ; i<20 ; i++) printf ("donnez la note numéro %d : ", i+1) ; scanf ("%d", &t[i]) ; } for(i=0, som=0 ; i<20 ; i++) som += t[i] ; moy = som / 20 ; printf ("\n\n moyenne de la classe : %f\n", moy) ; for (i=0, nbm=0 ; i<20 ; i++ ) if (t[i] > moy) nbm++ ; printf ("%d élèves ont plus de cette moyenne", nbm) ; return 0 ; AP4 - Programmation Orientée Objet

64 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Les tableaux à un indice Quelques règles L'affectation globale de tableau est impossible en C : Exemple n°33 : int Tab1[10], Tab2[10]; for(int i=0;i<10;i++) Tab1[i]=1; Tab1 = Tab2; Interdit car pas géré pas le language C Un indice peut prendre la forme de n'importe quelle expression arithmétique de type entier (ou caractère, compte tenu des règles de conversion systématique). AP4 - Programmation Orientée Objet

65 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Les tableaux à un indice Quelques règles La dimension d'un tableau (son nombre d'éléments) ne peut être qu'une constante ou une expression constante. Aucun contrôle de "débordement d'indice" n'est mis en place par la plupart des compilateurs. AP4 - Programmation Orientée Objet

66 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Les tableaux à plusieurs indices Exemple n°34 : Création d'un tableau de 5 lignes et 3 colonnes int tab1[5][3]; tab1[i-3][i +j]=1; Assignation de la valeur 1 à la cellule placé à la (i-4)ème ligne et la (i+j-1)ème colonne du tableau d'entiers Tab1 AP4 - Programmation Orientée Objet

67 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Notion de pointeur – les opérateurs * et & Introduction Exemple n°35 : réserve une variable nommée ad comme étant un "pointeur" sur des entiers int * ad; int n; n = 20; ad = &n; *ad = 30; cette instruction place dans la variable ad l'adresse de la variable n affecter à la lvalue *ad la valeur 30 AP4 - Programmation Orientée Objet

68 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Notion de pointeur – les opérateurs * et & Quelques exemples Exemple n°36 : Les variables ad1, ad2 et ad sont donc des pointeurs sur des entiers int * ad1, * ad2; int n = 10, p = 20; ad1 = &n; ad2 = &p; ad1 = * ad2 + 2; *ad1 +=3 ; On place dans ad1 et ad2 les adresses de n et p affecte à *ad1 la valeur de l'expression : *ad2 + 2 une déclaration telle que: int * ad réserve un emplacement pour un pointeur sur un entier. Elle ne réserve pas en plus un emplacement pour un tel entier. AP4 - Programmation Orientée Objet

69 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Notion de pointeur – les opérateurs * et & Incrémentation de pointeurs *ad++; incrémente la valeur sur laquelle pointe ad ad++; incrémente l'adresse contenue dans ad de manière qu'elle désigne l'objet suivant AP4 - Programmation Orientée Objet

70 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Notion de pointeur – les opérateurs * et & Comment simuler une transmission par adresse avec un pointeur Un nom de tableau est un pointeur constant : 9 int Tab[10]; int *Ptr; Ptr=Tab; Tab: AP4 - Programmation Orientée Objet

71 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Notion de pointeur – les opérateurs * et & Comment simuler une transmission par adresse avec un pointeur Un nom de tableau est un pointeur constant : 9 int Tab[10]; int *Ptr; Ptr=Tab; Tab: Ptr AP4 - Programmation Orientée Objet

72 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Notion de pointeur – les opérateurs * et & Comment simuler une transmission par adresse avec un pointeur Un nom de tableau est un pointeur constant : 9 int Tab[10]; int *Ptr; Ptr=Tab; Tab: Ptr AP4 - Programmation Orientée Objet

73 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 1ère solution : 9 int Tab[10]; for(int i=0;i<10;i++) Tab[i]=1; Tab: i AP4 - Programmation Orientée Objet

74 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 1ère solution : 9 int Tab[10]; for(int i=0;i<10;i++) Tab[i]=1; Tab: i AP4 - Programmation Orientée Objet

75 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 1ère solution : 9 int Tab[10]; for(int i=0;i<10;i++) Tab[i]=1; Tab: 1 i AP4 - Programmation Orientée Objet

76 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 1ère solution : 9 int Tab[10]; for(int i=0;i<10;i++) Tab[i]=1; Tab: 1 i 1 AP4 - Programmation Orientée Objet

77 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 1ère solution : 9 int Tab[10]; for(int i=0;i<10;i++) Tab[i]=1; Tab: 1 i 1 AP4 - Programmation Orientée Objet

78 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 2ère solution : 9 int Tab[10], *Ptr; Ptr=Tab; for(int i=0;i<10;i++,Ptr++) *Ptr=1; Tab: Ptr AP4 - Programmation Orientée Objet

79 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 2ère solution : 9 int Tab[10], *Ptr; Ptr=Tab; for(int i=0;i<10;i++,Ptr++) *Ptr=1; Tab: Ptr AP4 - Programmation Orientée Objet

80 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 2ère solution : 9 int Tab[10], *Ptr; Ptr=Tab; for(int i=0;i<10;i++,Ptr++) *Ptr=1; Tab 1 i Ptr AP4 - Programmation Orientée Objet

81 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 2ère solution : 9 int Tab[10], *Ptr; Ptr=Tab; for(int i=0;i<10;i++,Ptr++) *Ptr=1; Tab 1 i 1 Ptr AP4 - Programmation Orientée Objet

82 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 2ère solution : 9 int Tab[10], *Ptr; Ptr=Tab; for(int i=0;i<10;i++,Ptr++) *Ptr=1; Tab 1 i 1 2 Ptr AP4 - Programmation Orientée Objet

83 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 2ère solution : 9 int Tab[10], *Ptr; Ptr=Tab; for(int i=0;i<10;i++,Ptr++) *Ptr=1; Tab 1 i 1 2 Ptr AP4 - Programmation Orientée Objet

84 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à un indice Rédiger un pgrm qui définit et remplit un tableau de 10 entiers avec la valeur 1 : 2ère solution : int Tab[10], *Ptr; Ptr=Tab; for(int i=0;i<10;i++,Ptr++) *Ptr=1; *Ptr=1;  Tab[i]=1;  *(Tab+i)=1; AP4 - Programmation Orientée Objet

85 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à plusieurs indices 3 int Tab[3][4]; Int *Ptr; Ptr=Tab; Tab: 2 Lignes Colonnes Tab[2][3] AP4 - Programmation Orientée Objet

86 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à plusieurs indices 3 int Tab[3][4]; Int *Ptr; Ptr=Tab; Tab: 2 Ptr AP4 - Programmation Orientée Objet

87 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à plusieurs indices 3 int Tab[3][4]; Int *Ptr; Ptr=Tab; Tab: 2 Ptr AP4 - Programmation Orientée Objet

88 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Utilisation des pointeurs dans les tableaux Cas de tableaux à plusieurs indices 3 int Tab[3][4]; Int *Ptr; Ptr=Tab; Tab: 2 Ptr (Tab+1): (Tab+2): AP4 - Programmation Orientée Objet

89 } 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Tableaux transmis en argument Cas de tableaux à un indice a) Tableaux de taille fixe : En pile : void Remplir(int T[]) // ou void Remplir(int T[10]) // ou void Remplir(int *T) { for(int i=0;i<10;i++) T[i]=5; } int main() int Tab[10]; Remplir(Tab); } Tab main 9 AP4 - Programmation Orientée Objet

90 } } 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Tableaux transmis en argument Cas de tableaux à un indice a) Tableaux de taille fixe : En pile : } void Remplir(int T[]) // ou void Remplir(int T[10]) // ou void Remplir(int *T) { for(int i=0;i<10;i++) T[i]=5; } int main() int Tab[10]; Remplir(Tab); T i Remplir } Tab main 9 AP4 - Programmation Orientée Objet

91 } 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Tableaux transmis en argument Cas de tableaux à un indice b) Tableaux à nombre d'éléments variable En pile : Ajouter un 2ème paramètre : la taille du tableau N void Remplir2(int T[], int Nb) { for(int i=0;i<Nb;i++) T[i]=5; } int main() int Tab[10], N=10; Remplir2(Tab, N); } Tab main N-1 AP4 - Programmation Orientée Objet

92 } } 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Tableaux transmis en argument Cas de tableaux à un indice b) Tableaux à nombre d'éléments variable En pile : Ajouter un 2ème paramètre : la taille du tableau N } void Remplir2(int T[], int Nb) { for(int i=0;i<Nb;i++) T[i]=5; } int main() int Tab[10], N=10; Remplir2(Tab, N); T Nb Remplir2 10 } Tab main N-1 AP4 - Programmation Orientée Objet

93 2.11 - Les tableaux et les pointeurs
Chapitre 2 : Introduction au langage C++ Les tableaux et les pointeurs Tableaux transmis en argument Cas de tableaux à plusieurs indices Obligatoire void Toto(bool T[][15]) { T[1][4]=true; } int main() bool Tab[10][15]; Toto(Tab); AP4 - Programmation Orientée Objet

94 Résumé sur les passages
Chapitre 2 : Introduction au langage C++ Résumé sur les passages En pile : int main() { int A=1, B=1, C=1; F(A, B, &C); } void F(int X, int &Y, int *Z) X=2; Y=2; *Z=2; } X Y Z F } Passage par valeur (IN) A B C main Passage par référence (IN/OUT) 1 1 1 Passage par adresse (IN/OUT) AP4 - Programmation Orientée Objet

95 Résumé sur les passages
Chapitre 2 : Introduction au langage C++ Résumé sur les passages En pile : int main() { int A=1, B=1, C=1; F(A, B, &C); } void F(int X, int &Y, int *Z) X=2; Y=2; *Z=2; } X Y Z 1 F } Passage par valeur (IN) A B C main Passage par référence (IN/OUT) 1 1 1 Passage par adresse (IN/OUT) AP4 - Programmation Orientée Objet

96 Résumé sur les passages
Chapitre 2 : Introduction au langage C++ Résumé sur les passages En pile : int main() { int A=1, B=1, C=1; F(A, B, &C); } void F(int X, int &Y, int *Z) X=2; Y=2; *Z=2; } X Y Z 1 F } Passage par valeur (IN) A B C main Passage par référence (IN/OUT) 1 1 1 Passage par adresse (IN/OUT) AP4 - Programmation Orientée Objet

97 Résumé sur les passages
Chapitre 2 : Introduction au langage C++ Résumé sur les passages En pile : int main() { int A=1, B=1, C=1; F(A, B, &C); } void F(int X, int &Y, int *Z) X=2; Y=2; *Z=2; } X Y Z 1 F } Passage par valeur (IN) A B C main Passage par référence (IN/OUT) 1 1 1 Passage par adresse (IN/OUT) AP4 - Programmation Orientée Objet

98 Résumé sur les passages
Chapitre 2 : Introduction au langage C++ Résumé sur les passages En pile : int main() { int A=1, B=1, C=1; F(A, B, &C); } void F(int X, int &Y, int *Z) X=2; Y=2; *Z=2; } X Y Z 1 F 2 } Passage par valeur (IN) A B C main Passage par référence (IN/OUT) 1 1 1 Passage par adresse (IN/OUT) AP4 - Programmation Orientée Objet

99 Résumé sur les passages
Chapitre 2 : Introduction au langage C++ Résumé sur les passages En pile : int main() { int A=1, B=1, C=1; F(A, B, &C); } void F(int X, int &Y, int *Z) X=2; Y=2; *Z=2; } X Y Z 1 F 2 } Passage par valeur (IN) A B C main Passage par référence (IN/OUT) 1 1 2 1 Passage par adresse (IN/OUT) AP4 - Programmation Orientée Objet

100 Résumé sur les passages
Chapitre 2 : Introduction au langage C++ Résumé sur les passages En pile : int main() { int A=1, B=1, C=1; F(A, B, &C); } void F(int X, int &Y, int *Z) X=2; Y=2; *Z=2; } X Y Z 1 F 2 } Passage par valeur (IN) A B C main Passage par référence (IN/OUT) 1 1 2 1 2 Passage par adresse (IN/OUT) AP4 - Programmation Orientée Objet

101 2.12 - Allocation dynamique de mémoire
Chapitre 2 : Introduction au langage C++ Allocation dynamique de mémoire C'est de l'allocation d'espace mémoire à l'exécution et non à la compilation En C: int main() { int N; cout << "Nb d'étudiants"; cin >> N; //Allocation mémoire d'un tableau de N entiers int *Tab, *Pi; Pi=(int *)malloc(sizeof(int)); Tab=(int *)malloc(N*sizeof(int)); if ((Pi != NULL) && (Tab != NULL)) //instructions; free(Pi); free(Tab); } AP4 - Programmation Orientée Objet

102 2.12 - Allocation dynamique de mémoire
Chapitre 2 : Introduction au langage C++ Allocation dynamique de mémoire C'est de l'allocation d'espace mémoire à l'exécution et non à la compilation En C ++: int main() { int N; cout << "Nb d'étudiants"; cin >> N; //Allocation mémoire d'un tableau de N entiers int *Tab, *Pi; Pi=new int; Tab=new int[N]; if ((Pi != NULL) && (Tab != NULL)) //instructions; delete Pi; delete[] Tab; } AP4 - Programmation Orientée Objet

103 2.12 - Allocation dynamique de mémoire
Chapitre 2 : Introduction au langage C++ Allocation dynamique de mémoire C'est de l'allocation d'espace mémoire à l'exécution et non à la compilation En C ++: int main() { int N; cout << "Nb d'étudiants"; cin >> N; //Allocation mémoire d'un tableau de N entiers int *Tab, *Pi; Pi=new int; Tab=new int[N]; if ((Pi != NULL) && (Tab != NULL)) //instructions; delete Pi; delete[] Tab; } Attention : Ne pas croiser les allocations/libérations dynamiques entre les instructions C et C++ AP4 - Programmation Orientée Objet

104 2.13 - Exemple Chapitre 2 : Introduction au langage C++
#define AffChaine(Ch) cout << Ref++ << "—" << Ch << endl #define AffCarac(Car) cout << Ref++ << "—" << Car << endl; int main () { char Ref='A'; char *Chaine="merci"; char Mot[]="beaucoup"; char *p=Mot; char *Tab[3]={"ZERO","UN","DEUX"}; AffChaine(Chaine); AffCarac(Chaine[23]);; AffChaine(Mot+3); AffCarac(*++p); AffCarac(++*++p); AffChaine(Tab[1]); AffChaine(Tab[2]+1); Tab[0][2]='\Ø'; AffChaine (*Tab); retour 0; } quand on rencontrera ça on remplacera jusqu'aux bout de la ligne AP4 - Programmation Orientée Objet

105 2.13 - Exemple Chapitre 2 : Introduction au langage C++
#define AffChaine(Ch) cout << Ref++ << "—" << Ch << endl #define AffCarac(Car) cout << Ref++ << "—" << Car << endl; int main () { char Ref='A'; char *Chaine="merci"; char Mot[]="beaucoup"; char *p=Mot; char *Tab[3]={"ZERO","UN","DEUX"}; AffChaine(Chaine); AffCarac(Chaine[23]);; AffChaine(Mot+3); AffCarac(*++p); AffCarac(++*++p); AffChaine(Tab[1]); AffChaine(Tab[2]+1); Tab[0][2]='\Ø'; AffChaine (*Tab); retour 0; } quand on rencontrera ça on remplacera jusqu'au bout de la ligne obligatoire car il n'y en pas à la fin du #define inutile car le ";" est déjà présent a la fin du #define 1 2 3 AP4 - Programmation Orientée Objet

106 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

107 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' A--merci Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

108 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' A -- merci B -- r Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

109 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' 'C' A -- merci B -- r C -- ucoup Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

110 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' 'C' 'D' A -- merci B -- r C -- ucoup D -- e Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

111 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' 'C' 'D' 'E' A -- merci B -- r C -- ucoup D -- e E -- b Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot b p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

112 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' 'C' 'D' 'E' 'F' A -- merci B -- r C -- ucoup D -- e E -- b F -- UN Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot b p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

113 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' 'C' 'D' 'E' 'F' 'G' A -- merci B -- r C -- ucoup D -- e E -- b F -- UN G -- EUX Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot b p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

114 2.13 - Exemple Chapitre 2 : Introduction au langage C++ En Mémoire :
Affichage : Ref 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' A -- merci B -- r C -- ucoup D -- e E -- b F -- UN G -- EUX H -- ZE Chaine M E R C I 1 2 b e a u c o p Mot mot+1 mot+2 mot+3 Mot b p Tab Z E R O U N D E U X AP4 - Programmation Orientée Objet

115 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Convention La chaine de caractère se termine par le caractère '\Ø' de code ASCII 0 Chaque caractère est stocké sur un octet AP4 - Programmation Orientée Objet

116 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Cas des chaines constantes p char p*; p="Toto"; while (*p) cout << *p++; T o t AP4 - Programmation Orientée Objet

117 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Cas des chaines constantes p char p*; p="Toto"; while (*p) cout << *p++; T o t AP4 - Programmation Orientée Objet

118 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Cas des chaines constantes p char p*; p="Toto"; while (*p) cout << *p++; T o t AP4 - Programmation Orientée Objet

119 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Cas des chaines constantes p char p*; p="Toto"; while (*p) cout << *p++; T o t AP4 - Programmation Orientée Objet

120 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Cas des chaines constantes p char p*; p="Toto"; while (*p) cout << *p++; T o t code ASCII = 0 AP4 - Programmation Orientée Objet

121 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Initialisation des Tableaux de caractères char p[20]; p="Toto"; char p[20]="Toto"; // ou char p[20]={'T','o','t','o','\Ø'}; char p[]="Toto"; 19 p AP4 - Programmation Orientée Objet

122 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Initialisation des Tableaux de caractères char p[20]; p="Toto"; char p[20]="Toto"; // ou char p[20]={'T','o','t','o','\Ø'}; char p[]="Toto"; 19 p p T o t 19 AP4 - Programmation Orientée Objet

123 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Initialiser de tableaux de pointeurs sur des chaines char *Tab[7]={"lundi","mardi",...}; Tab l u n d i m a r d i AP4 - Programmation Orientée Objet

124 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères Représentation des chaines Initialiser de tableaux de pointeurs sur des chaines char *Tab[7][9]; Tab 8 l u n d i m a r 6 AP4 - Programmation Orientée Objet

125 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères généralités sur les fonctions portant sur des chaines renvoie la longueur de la chaine #include <cstring> // en c #include <string.h> // en c++ char Ch[]="Toto"; int lg=strlen(Ch); strcat(ch1;ch2); strcat(ch1;ch2;lgmax); strcmp(ch1;ch2); strcpy(ch1;ch2); AP4 - Programmation Orientée Objet

126 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères généralités sur les fonctions portant sur des chaines renvoie la longueur de la chaine opère la concaténation de la ch2 dans la ch1 #include <cstring> // en c #include <string.h> // en c++ char Ch[]="Toto"; int lg=strlen(Ch); strcat(ch1;ch2); strcat(ch1;ch2;lgmax); strcmp(ch1;ch2); strcpy(ch1;ch2); AP4 - Programmation Orientée Objet

127 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères généralités sur les fonctions portant sur des chaines renvoie la longueur de la chaine opère la concaténation de la ch2 dans la ch1 #include <cstring> // en c #include <string.h> // en c++ char Ch[]="Toto"; int lg=strlen(Ch); strcat(ch1;ch2); strcat(ch1;ch2;lgmax); strcmp(ch1;ch2); strcpy(ch1;ch2); compare lexicographique ch1 et ch2 et retourne : 0 si ch1 et ch2 identiques <0 si ch1 < ch2 >0 si ch1 > ch2 AP4 - Programmation Orientée Objet

128 2.14 - Les chaînes de caractères
Chapitre 2 : Introduction au langage C++ Les chaînes de caractères généralités sur les fonctions portant sur des chaines renvoie la longueur de la chaine opère la concaténation de la ch2 dans la ch1 #include <cstring> // en c #include <string.h> // en c++ char Ch[]="Toto"; int lg=strlen(Ch); strcat(ch1;ch2); strcat(ch1;ch2;lgmax); strcmp(ch1;ch2); strcpy(ch1;ch2); compare lexicographique ch1 et ch2 et retourne : 0 si ch1 et ch2 identiques <0 si ch1 < ch2 >0 si ch1 > ch2 copie la ch2 dans la ch1 AP4 - Programmation Orientée Objet

129 2.15 - Les Entrées/Sorties 2.15.1 - En C++
Chapitre 2 : Introduction au langage C++ Les Entrées/Sorties En C++ cout << "qu'elle heure est-il?";  cin >> Heure; int main() { int A=12; float B= ; cout << setw(5) << A; } Opérateur dans iostream AP4 - Programmation Orientée Objet

130 2.15 - Les Entrées/Sorties 2.15.1 - En C++
Chapitre 2 : Introduction au langage C++ Les Entrées/Sorties En C++ cout << "qu'elle heure est-il?";  cin >> Heure; int main() { int A=12; float B= ; cout << setw(5) << A; } Opérateur dans iostream setw() définie l'espace d'affichage setprecision() précision après la virgule AP4 - Programmation Orientée Objet

131 2.15 - Les Entrées/Sorties 2.15.2 - En C
Chapitre 2 : Introduction au langage C++ Les Entrées/Sorties En C int main() { int A; float B; char C; char D[10]; printf("bonjour, %d, %f toto %c %s\n",A,B,C,D); scanf("%d %f %c %s", &A, &B, &C, D); } spécification de format ici entier réel caractère chaine de caractère AP4 - Programmation Orientée Objet

132 2.16.1.1 - Ouverture / Fermeture
Chapitre 2 : Introduction au langage C++ Les fichiers Les fichiers en C Ouverture / Fermeture FILE *file; File=fopen("NomPhysique",Mode); fclose(File);//File == NomLogique Ne pas oublier d'inclure : cstdio en C++ ou stdio.h en C Modes Disponibles "a"  appened ouverture d'un fichier existant pour ajouter à la suite. si le fichier n'existe pas il sera créé "r"  read only "r+"  ouverture en lecture/écriture d'un fichier existant "w"  création et ouverture en write only. Si existant  remplacement "w+"  création et ouverture en lecture et écriture. Si existant  remplacement Attention : fopen() retourne NULL si le fichier n'a pu être ouvert AP4 - Programmation Orientée Objet

133 2.16 - Les fichiers 2.16.1 - Les fichiers en C 2.16.1.2 - Read / Write
Chapitre 2 : Introduction au langage C++ Les fichiers Les fichiers en C Read / Write int fgetc(File *Flux); int fputc(int c, File *Flux); char * fgets(char*Ch; int n, FILE * Flux); int fputs(const char * Ch, File * Flux); fscanf(File * Flux, char * Ch); fprintf(File * Flux, char * Ch); fwrite(&Client,sizeof(enregistrement),NbElement,File * Flux); fread(&Client,sizeof(enregistrement),NbElement,File * Flux); fseek(FILE * Flux , long Dplcmt, int Origine); rewind(File * Flux); ftell(File * Flux); Lien pour plus d'infos sur ces fonctions : AP4 - Programmation Orientée Objet

134 2.16 - Les fichiers 2.16.1 - Les fichiers en C 2.16.1.2 - Read / Write
Chapitre 2 : Introduction au langage C++ Les fichiers Les fichiers en C Read / Write int A=1; Tab[10]={1,2,3,4,5,6,7,8,9,10}; File * Fich; Fich=fopen("Essai","w"); if (Fich) { fwrite(tab,sizeof(int),7,Fich); fwrite(&A,sizeof(int),1,Fich); //fprintf(Fich,"%d",A); fclose(Fich); } fseek(Fich,Deplacement,Origine);//fonction de positionnement rewind(Fich); //reviens au début int ftell(Fich); //positionnement dans le fichier par rapport au début AP4 - Programmation Orientée Objet

135 2.16.1 - Quelques bases sur les fichiers en C++
Chapitre 2 : Introduction au langage C++ Les fichiers Quelques bases sur les fichiers en C++ AP4 - Programmation Orientée Objet

136 2.16.1 - Quelques bases sur les fichiers en C++
Chapitre 2 : Introduction au langage C++ Les fichiers Quelques bases sur les fichiers en C++ AP4 - Programmation Orientée Objet

137 2.17.1 - Définition et utilisations
Chapitre 2 : Introduction au langage C++ Les Espaces de noms Définition et utilisations namespace ProjetA{ int i; int j=10; void f(){cout << "lol";}; void g(); } int main() { using namespace ProjetA; j++; } AP4 - Programmation Orientée Objet

138 2.18 - Direction de prétraitement
Chapitre 2 : Introduction au langage C++ Direction de prétraitement Forme d'une directive # #define #define LONG 100 #define LARG (LONG-10) #define MAX(a,b) ((a)<(b)?(a):(b)) int main() { int B = 2*LARG } AP4 - Programmation Orientée Objet

139 2.18 - Direction de prétraitement
Chapitre 2 : Introduction au langage C++ Direction de prétraitement #undef #undef LONG #include #include < > // Fichiers de base du langage #include " " // Fichiers autres AP4 - Programmation Orientée Objet

140 2.18 - Direction de prétraitement
Chapitre 2 : Introduction au langage C++ Direction de prétraitement Compilation Conditionelle #if..... ... #endif #ifdef.... #ifndef... #if LANGUE==1 #define ERREUR"Faute" #elseif LANGUE==2 #define ERREUR"Error" #endif test.cpp Pile.cpp Pile.h "include "Pile.h" int main() { F(); } #include "Pile.h" void F() { cout << "Salut"; } #ifndef PILE_H #define PILE_H void F(); #endif AP4 - Programmation Orientée Objet

141 2.1 - Structures 2.19.1 - Déclaration 2.19.2 - Accès aux membres
Chapitre 2 : Introduction au langage C++ Structures Déclaration struct Client { char Nom[25]; int Age; }; Indispensable!! Accès aux membres Client UnClient; Client * PtrClient; PtrClient= & UnClient; UnClient.Age=20; PClient->Age=30;//(*PClient).Age=30; UnClient PtrClient Nom Age AP4 - Programmation Orientée Objet

142 2.1 - Structures 2.19.3 - Utilisation
Chapitre 2 : Introduction au langage C++ Structures Utilisation struct Elt { Client Donnees; Elt *pSuivant; }; pDebut Client1 AP4 - Programmation Orientée Objet

143 2.1 - Structures 2.19.3 - Utilisation
Chapitre 2 : Introduction au langage C++ Structures Utilisation struct Elt { Client Donnees; Elt *pSuivant; }; pDebut Client1 Client2 AP4 - Programmation Orientée Objet

144 2.1 - Structures 2.19.3 - Utilisation
Chapitre 2 : Introduction au langage C++ Structures Utilisation struct Elt { Client Donnees; Elt *pSuivant; }; pDebut Client1 Client2 AP4 - Programmation Orientée Objet

145 2.1 - Structures 2.19.3 - Utilisation
Chapitre 2 : Introduction au langage C++ Structures Utilisation struct Elt { Client Donnees; Elt *pSuivant; }; pDebut Client1 Client2 Client3 AP4 - Programmation Orientée Objet

146 2.1 - Structures 2.19.3 - Utilisation
Chapitre 2 : Introduction au langage C++ Structures Utilisation struct Elt { Client Donnees; Elt *pSuivant; }; pDebut Client1 Client2 Client3 AP4 - Programmation Orientée Objet


Télécharger ppt "2.1 - Historique Chapitre 2 : Introduction au langage C++"

Présentations similaires


Annonces Google