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

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Programmation Orienté Objet en C++
Rappels C.
Introduction au langage C
Introduction au langage C++
C++ 6ème cours Patrick Reuter maître de conférences
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
GEF 243B Programmation informatique appliquée
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
C.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
FLSI602 Génie Informatique et Réseaux
Principes de programmation (suite)
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Langage Oriente Objet Cours 2.
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Un langage de programmation hybride
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Plan cours La notion de pointeur et d’adresse mémoire.
Structures de données IFT-2000
L’essentiel du langage C
Le langage C Rappel Pointeurs & Allocation de mémoire.
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Notions de pointeurs en C
La notion de type revisitée en POO
et quelques rappels sur certains éléments du langage C
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
Algorithmique et langage C. Et me la renvoyer bien sûr… Developpez.com, wiki, siteduzero et autre sont les bienvenus… (les questions sont en orange) C’est.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Un survol du language C.
Cours n° 1 Présentation du langage C++
 Syntaxe du langage PHP
Tutorat en bio-informatique
Les types composés Les enregistrements.
ISBN Chapitre 10 L'implémentation des sous- programmes.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Langage de programmation
8PRO107 Éléments de programmation Les adresses et les pointeurs.
PRO-1027 Programmation Scientifique en C
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Transcription de la présentation:

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 - Implantation de module en C++ Chapitre 2 : Introduction au langage C++ 2.2 - Implantation de module en C++ Programme simple AP4 - Programmation Orientée Objet

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

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

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

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

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

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

2.3 - Structure d'un programme en C++ Chapitre 2 : Introduction au langage C++ 2.3 - 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

2.3 - Structure d'un programme en C++ Chapitre 2 : Introduction au langage C++ 2.3 - 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

2.3 - Structure d'un programme en C++ Chapitre 2 : Introduction au langage C++ 2.3 - 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

2.3 - Structure d'un programme en C++ Chapitre 2 : Introduction au langage C++ 2.3 - 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

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

2.4 - Les commentaires en C++ Chapitre 2 : Introduction au langage C++ 2.4 - 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

2.4 - Les commentaires en C++ Chapitre 2 : Introduction au langage C++ 2.4 - 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

2.5 - Les types de base en C/C++ Chapitre 2 : Introduction au langage C++ 2.5 - 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

2.6 - Les définitions de variables en C/C++ Chapitre 2 : Introduction au langage C++ 2.6 - 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

2.6 - Les définitions de variables en C/C++ Chapitre 2 : Introduction au langage C++ 2.6 - 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

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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.1 - 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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.1 - 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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.1 - 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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.1 - 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 98 + 1 = 99 99 soit 'c' Donc D = 99 AP4 - Programmation Orientée Objet

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.2 - 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

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

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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.5 - 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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.6 - 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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.7 - 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

2.8 - Les opérateurs et expression en C/C++ Chapitre 2 : Introduction au langage C++ 2.8 - Les opérateurs et expression en C/C++ 2.8.8 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.1 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.1 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.1 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.2 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.2 - 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

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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.3 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.3 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.3 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.4 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.5 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.6 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.6 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.6 - 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

2.9 - Les instructions de contrôle Chapitre 2 : Introduction au langage C++ 2.9 - Les instructions de contrôle 2.9.6 - 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

2.10 - Les fonctions 2.10.1 - Les Déclarations Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.1 - 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

2.10 - Les fonctions 2.10.2 - Les Définitions Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.2 - 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

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

2.10.4 - Les variables locales et les variables globales Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.4 - 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

2.10.4 - Les variables locales et les variables globales Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.4 - 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

2.10.4 - Les variables locales et les variables globales Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.4 - 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

2.10.4 - Les variables locales et les variables globales Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.4 - 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

2.10.5 - Les variables statiques Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.5 - 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

2.10.6 - Passage de paramètres 2.10.6.1 - Passage par valeurs (IN) Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.6 - Passage de paramètres 2.10.6.1 - 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

2.10.6 - Passage de paramètres Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.6 - Passage de paramètres 2.10.6.1 - 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

2.10.6 - Passage de paramètres Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.6 - Passage de paramètres 2.10.6.2 - 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

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

2.10 - Les fonctions 2.10.7 - la fonction inligne Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.7 - 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

2.10.8 - Surcharge des fonctions Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.8 - 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

2.10.9 - Types de résultats d'une fonction Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.9 - 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

2.10 - Les fonctions 2.10.10 - Exemple Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.10 - 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

} } 2.10 - Les fonctions 2.10.10 - Exemple Chapitre 2 : Introduction au langage C++ 2.10 - Les fonctions 2.10.10 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.1 - Les tableaux à un indice 2.11.1.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.1 - Les tableaux à un indice 2.11.1.2 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.1 - Les tableaux à un indice 2.11.1.2 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.2 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.3 - Notion de pointeur – les opérateurs * et & 2.11.3.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.3 - Notion de pointeur – les opérateurs * et & 2.11.3.2 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.3 - Notion de pointeur – les opérateurs * et & 2.11.3.3 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.3 - Notion de pointeur – les opérateurs * et & 2.11.3.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.3 - Notion de pointeur – les opérateurs * et & 2.11.3.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.3 - Notion de pointeur – les opérateurs * et & 2.11.3.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.2 - 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

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

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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.4 - Utilisation des pointeurs dans les tableaux 2.11.4.2 - 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

} 2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.5 - Tableaux transmis en argument 2.11.5.1 - 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

} } 2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.5 - Tableaux transmis en argument 2.11.5.1 - 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

} 2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.5 - Tableaux transmis en argument 2.11.5.1 - 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

} } 2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.5 - Tableaux transmis en argument 2.11.5.1 - 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

2.11 - Les tableaux et les pointeurs Chapitre 2 : Introduction au langage C++ 2.11 - Les tableaux et les pointeurs 2.11.5 - Tableaux transmis en argument 2.11.5.2 - 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

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

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

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

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

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

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

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

2.12 - Allocation dynamique de mémoire Chapitre 2 : Introduction au langage C++ 2.12 - 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

2.12 - Allocation dynamique de mémoire Chapitre 2 : Introduction au langage C++ 2.12 - 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

2.12 - Allocation dynamique de mémoire Chapitre 2 : Introduction au langage C++ 2.12 - 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

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

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

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

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

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

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

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

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

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

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

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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.1 - Représentation des chaines 2.14.1.1 - 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

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

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

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

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

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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.1 - Représentation des chaines 2.14.1.3 - 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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.1 - Représentation des chaines 2.14.1.3 - 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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.1 - Représentation des chaines 2.14.1.4 - 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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.1 - Représentation des chaines 2.14.1.4 - 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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.2 - 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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.2 - 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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.2 - 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

2.14 - Les chaînes de caractères Chapitre 2 : Introduction au langage C++ 2.14 - Les chaînes de caractères 2.14.2 - 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

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

2.15 - Les Entrées/Sorties 2.15.1 - En C++ Chapitre 2 : Introduction au langage C++ 2.15 - Les Entrées/Sorties 2.15.1 - En C++ cout << "qu'elle heure est-il?";  cin >> Heure; int main() { int A=12; float B=123.4567; 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

2.15 - Les Entrées/Sorties 2.15.2 - En C Chapitre 2 : Introduction au langage C++ 2.15 - Les Entrées/Sorties 2.15.2 - 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

2.16.1.1 - Ouverture / Fermeture Chapitre 2 : Introduction au langage C++ 2.16 - Les fichiers 2.16.1 - Les fichiers en C 2.16.1.1 - 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

2.16 - Les fichiers 2.16.1 - Les fichiers en C 2.16.1.2 - Read / Write Chapitre 2 : Introduction au langage C++ 2.16 - Les fichiers 2.16.1 - Les fichiers en C 2.16.1.2 - 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 : http://www.cplusplus.com/ref/cstdio/ AP4 - Programmation Orientée Objet

2.16 - Les fichiers 2.16.1 - Les fichiers en C 2.16.1.2 - Read / Write Chapitre 2 : Introduction au langage C++ 2.16 - Les fichiers 2.16.1 - Les fichiers en C 2.16.1.2 - 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

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

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

2.17.1 - Définition et utilisations Chapitre 2 : Introduction au langage C++ 2.17 - Les Espaces de noms 2.17.1 - 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

2.18 - Direction de prétraitement Chapitre 2 : Introduction au langage C++ 2.18 - Direction de prétraitement 2.18.1 - Forme d'une directive #........... 2.18.2 - #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

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

2.18 - Direction de prétraitement Chapitre 2 : Introduction au langage C++ 2.18 - Direction de prétraitement 2.18.3 - 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

2.1 - Structures 2.19.1 - Déclaration 2.19.2 - Accès aux membres Chapitre 2 : Introduction au langage C++ 2.1 - Structures 2.19.1 - Déclaration struct Client { char Nom[25]; int Age; }; Indispensable!! 2.19.2 - 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

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

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

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

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

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