Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMaddie Charton Modifié depuis plus de 10 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.