Vous êtes sur la page 1sur 259

Historique et importance du C++

Notions de base en C++


Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Initiation à la programmation en C++ (IPCPP)

John O. R. AOGA
Couriel: johnaoga@gmail.com Tel: (00229)97 999 277

Option I / UIT Parakou

2014-2015

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 1/ 1 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Information sur le cours

horaire : 32h
Formule pédagogique : C+ TD+TP
Objectif : A la fin de cet enseignement, l’étudiant va acquérir
les bases de la programmation en C++ et pourra écrire des
programmes de taille moyenne en C++ dans un
environnement de développement intégré (Codeblocks ou
DevCpp, QT Creator, Visual C++, ...).
Bibliographie ?

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 2/ 2 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Information sur le cours

1 Herbert Schildt : C++, A Beginner’s Guide


2 Ivor Horton : Beginning Visual C++ 2008/ 2010,
www.ebook3000.com
3 Bruce Eckel : Penser en C++, Volume 1 et 2,
www.developez.com
4 Mathieu Nebra et Matthieu Schaller : Programmez avec le
langage C++, partie 1 http://fr.openclassrooms.com/
5 Claude Delannoy : Apprendre le C++, Eyrolles

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 3/ 2 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Contenu

1 Historique et importance du C++

2 Notions de base en C++

3 Les variables et Les types de données

4 Les structures de contrôle

5 Les tableaux et chaı̂nes de caractères

6 Les fonctions

7 Les pointeurs et références

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 4/ 3 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Quand et Pourquoi programmer ?

La programmation consiste à écrire des programmes


c’est-à-dire une séquence d’instruction qui sera exécuter par
l’ordinateur
Tâche Réfléchir Algorithme Programme Exécution

Programme Microprocesseur
?
(langage) −−−−−−−−−−−−−−→ (...101111000 ...)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 5/ 4 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Quand et Pourquoi programmer ?

La programmation consiste à écrire des programmes


c’est-à-dire une séquence d’instruction qui sera exécuter par
l’ordinateur
Tâche Réfléchir Algorithme Programme Exécution

Programme Microprocesseur
Compilation
(langage) −−−−−−−−−−−−−−−→ (...101111000 ...)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 6/ 4 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Où programmer ?

Dans un environnement de Développement (IDE)

1 Sous Linux : Compilateur G++ et Installer QtCreator


2 Sous Windows : Compilateur MinGw et Installer QtCreator
Prise en main de l’environnement de développement !

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 7/ 4 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 8/ 4 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 9/ 4 / 89


Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 10/ 4 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 11/ 4 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 12/ 4 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 13/ 4 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 14/ 4 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Comment programmer ? - Cycle de vie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 15/ 4 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Les structures de contrôle
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 0 : Introduction
Qui programme ?

Le programmeur !

Conseils :
Repenser le problème (le reformuler éventuellement !) ;
Toujours penser l’algorithme de ce qui est à faire ;
Pratiquer ! Pratiquer et encore Pratiquer ;
Etre patient, rigoureux, astucieux et organiser.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 16/ 4 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Historique
Les structures de contrôle
Importance
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 1 : Historique et importance du C++


Historique

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 17/ 5 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Historique
Les structures de contrôle
Importance
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 1 : Historique et importance du C++


Importance

Pourquoi pas d’autres langages ? (Par exemple Java)


langage l’un des plus célèbres et des utilisés au monde (les
jeux vidéos, des logiciels très puissants comme la collection
adobe Photoshop Illustrator ..., etc)
Langage robuste avec des complexités intrinsèque et
d’apprentissage très acceptable
Lectures :
10 raisons de faire du C++ :
http://nuclearsquid.com/writings/10-reasons-why-you-should-supposedly-know-cpp/
Faire C++ au lieu de C quand on est débutant : http://blog.developpez.com/gpu/?p=155

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 18/ 6 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Premier Programme en C++

Comment Commencer ? Créer un projet et un des fichiers


Ouvrir QtCreator
Projet Fichier Nouveau fichier ou projet Projet Non Qt
Projet C++ Donner un nom
Fichier Fichier Nouveau fichier ou projet Fichier et classes C++
Fichier source c++ nom.cpp (ou cc)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 19/ 7 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Premier Programme en C++

Que comprendre ?

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 20/ 7 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Premier Programme en C++

Que comprendre ?⇒ Le squelette général d’un programme C++

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 21/ 7 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Premier Programme en C++

Que comprendre ?⇒ Les instructions de Préprocesseur

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 22/ 7 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Premier Programme en C++

Que comprendre ?⇒ L’instruction d’indication d’un nom de


domaine

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 23/ 7 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Premier Programme en C++

Que comprendre ?⇒ La fonction main()

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 24/ 7 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Premier Programme en C++

Que comprendre ?⇒ Les autres instructions

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 25/ 7 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Gestions et analyses des erreurs

Que faire quand une erreur survient ?

Lire et comprendre le message d’erreurs (voir le fichier, le


numéro de la ligne ou le code d’erreur à titre indicatif) ;
Toujours corriger les erreurs progressivement de la première à
la dernière (une erreur peut en entraı̂ner une autre).

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 26/ 8 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Un tour dans le répertoire du projet

Que représente tous ces fichiers ?

les fichiers source (.cpp ou .cc) ;


les fichiers objet (ou .o) ;
le makefile ;
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 27/ 9 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Traitement et données

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 28/ 10 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Traitement et données

Pour la résolution d’un problème deux éléments rendre en


jeux et sont interdépendants

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 29/ 10 / 89
Historique et importance du C++
Notions de base en C++
Premier Programme en C++
Les variables et Les types de données
Gestions et analyses des erreurs
Les structures de contrôle
Un tour dans le répertoire du projet
Les tableaux et chaı̂nes de caractères
Traitements et données
Les fonctions
Les pointeurs et références

Chapitre 2 : Notions de base en C++


Traitement et données

Les éléments qui rentrent alors en jeux dans un code


les expressions et les opérateurs ;
les variables ;
les fonctions ;
les structures de contrôle ;
les autres éléments (les tableaux, les pointeurs, les références,
...)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 30/ 10 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Concept général

Rappels
1 Les différentes étapes du cycle de vie d’un programmeur

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 31/ 11 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Concept général

Rappels
1 Les différentes étapes du cycle de vie d’un programmeur
2 Réfléchir Ecrire le Programme C++ Compiler
-erreurs
Tester l’exécutable

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 32/ 11 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Concept général

Rappels
1 Les différentes étapes du cycle de vie d’un programmeur
2 Réfléchir Ecrire le Programme C++ Compiler
-erreurs
Tester l’exécutable
3 Traitement et données (exemple de la résolution de l’équation
du second degré)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 33/ 11 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Concept général

Rappels
1 Les différentes étapes du cycle de vie d’un programmeur
2 Réfléchir Ecrire le Programme C++ Compiler
-erreurs
Tester l’exécutable
3 Traitement et données (exemple de la résolution de l’équation
du second degré)
4 Les traitements s’opèrent sur les données et les données
influencent les traitements ⇒ delta dans l’exemple

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 34/ 11 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Concept général

Rappels
1 Les différentes étapes du cycle de vie d’un programmeur
2 Réfléchir Ecrire le Programme C++ Compiler
-erreurs
Tester l’exécutable
3 Traitement et données (exemple de la résolution de l’équation
du second degré)
4 Les traitements s’opèrent sur les données et les données
influencent les traitements ⇒ delta dans l’exemple
5 Besoin d’utiliser la valeur d’une donnée plusieurs fois ⇒
Mémoriser la valeur sous un nom ⇒ Notion de variable
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 35/ 11 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Concept général

Une variable est un moyen en programmation de stocker des


données et d’y associer un nom

Une variable correspond à une zone nommée en mémoire de


l’ordinateur qui porte un nom.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 36/ 11 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Caractéristiques d’une variable

Une variable possède trois (03) caractéristiques :


1 son Identificateur = le nom par lequel la donnée est désignée ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 37/ 12 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Caractéristiques d’une variable

Une variable possède trois (03) caractéristiques :


1 son Identificateur = le nom par lequel la donnée est désignée ;
Ex : delta, a, b, c (pour l’équation du 2nd degré)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 38/ 12 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Caractéristiques d’une variable

Une variable possède trois (03) caractéristiques :


1 son Identificateur = le nom par lequel la donnée est désignée ;
Ex : delta, a, b, c (pour l’équation du 2nd degré)
2 son Type = le ”genre” de la donnée contenue dans la variable ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 39/ 12 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Caractéristiques d’une variable

Une variable possède trois (03) caractéristiques :


1 son Identificateur = le nom par lequel la donnée est désignée ;
Ex : delta, a, b, c (pour l’équation du 2nd degré)
2 son Type = le ”genre” de la donnée contenue dans la variable ;
Ex : entier, réel, chaı̂ne de caractères (< type de donnée)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 40/ 12 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Caractéristiques d’une variable

Une variable possède trois (03) caractéristiques :


1 son Identificateur = le nom par lequel la donnée est désignée ;
Ex : delta, a, b, c (pour l’équation du 2nd degré)
2 son Type = le ”genre” de la donnée contenue dans la variable ;
Ex : entier, réel, chaı̂ne de caractères (< type de donnée)
3 sa Valeur = le contenu même de la donnée ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 41/ 12 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Caractéristiques d’une variable

Une variable possède trois (03) caractéristiques :


1 son Identificateur = le nom par lequel la donnée est désignée ;
Ex : delta, a, b, c (pour l’équation du 2nd degré)
2 son Type = le ”genre” de la donnée contenue dans la variable ;
Ex : entier, réel, chaı̂ne de caractères (< type de donnée)
3 sa Valeur = le contenu même de la donnée ;
Ex : les nombres entiers 200, 17, ... (une expression !)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 42/ 12 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Déclaration d’une variable

La déclaration d’une variable est le fait de créer une variable

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 43/ 13 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Déclaration d’une variable

La déclaration d’une variable est le fait de créer une variable


Comment se fait une déclaration d’un programme c++ ?
1ère Forme : Conseillé
Type Identificateur (valeur d’initialisation) ;

Ex : int n(10) ; double delta(0) ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 44/ 13 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Déclaration d’une variable

La déclaration d’une variable est le fait de créer une variable


Comment se fait une déclaration d’un programme c++ ?
1ère Forme : Conseillé
Type Identificateur (valeur d’initialisation) ;

Ex : int n(10) ; double delta(0) ;


2ème Forme : Déconseillé
Type Identificateur ;

Ex : int n ; double delta ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 45/ 13 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Déclaration d’une variable

On peut déclarer plusieurs variables d’un MEME TYPE ensemble


Forme Générale
Type Identificateur (valeur d’initialisation)[,Identificateur (valeur
d’initialisation)] ;

Ex : double a(1.5), b(2.0), delta(0.0) ; équivalent à


double a(1.5) ;
double b(2.0) ;
double delta(0.0) ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 46/ 13 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Initialisation d’une variable

Initialisation d’une variable est le fait de lui donner une


valeur au cours de sa déclaration

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 47/ 14 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Initialisation d’une variable

Initialisation d’une variable est le fait de lui donner une


valeur au cours de sa déclaration

Si une variable n’est pas initialisée elle peut prendre n’importe


qu’elle valeur. (exemple)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 48/ 14 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Convention de nommage

Règles pour nommer une variable


1 nom uniquement en lettres, en chiffre et du caractère
underscore ( )[Pas d’espace, ni d’autres symboles]
2 le premier caractère est nécessairement une LETTRE ou
3 les majuscules et les minuscules sont permises (mais pas
équivalent on dit que le c++ connaı̂t la CASSE)
4 les accents et les opérateurs ne sont pas autorisés
5 le nom ne doit pas être un mot réservé du C++

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 49/ 15 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Convention de nommage

Exemples : a , n carre, n , delta, x1, x2, x0


Exercice : Dire les variables qui sont mal déclarées et justifier votre
réponse

1 n carré 1 lelement
2 n-carre 2 myname
3 N carrE 3 1nbre
4 return 4 n

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 50/ 15 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Convention de nommage

Exemples : a , n carre, n , delta, x1, x2, x0


Exercice : Dire les variables qui sont mal déclarées et justifier votre
réponse

1 n carré un accent ! (é) 1 lelement


2 n-carre un opérateur (-) 2 myname
3 N carrE 3 1nbre Chiffre au début !
4 return mot clé ! (return 0 ;) 4 n

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 51/ 15 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Type d’une variable

Les principaux types élémentaires


int les nombres entiers ;
double les nombres réels ;

... et aussi
unsigned int les nombres entiers positifs ;
char les caractères ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 52/ 16 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Affectation

l’Affectation est l’opération qui consiste à changer la valeur


d’une variable. Elle se fait, en C++, par l’intermédiaire du
symbole  =  (A NE PAS CONFONDRE AVEC LE
”EGAL” DES MATHEMATIQUES !)

Forme Générale
Identificateur = expression ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 53/ 17 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Affectation

Exemples :
1 nbre = 2; //j’affecte la valeur 2 à la variable nbre ;
2 delta = b ∗ b − 4 ∗ a ∗ c;.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 54/ 17 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Affectation

Exemples :
1 nbre = 2 //j’affecte la valeur 2 à la variable nbre ;
2 delta = b ∗ b − 4 ∗ a ∗ c;.

L’affectation des expressions s’effectue en deux temps


1 Le programme évalue l’expression à droite de l’opérateur
d’affectation ;
2 Le programme met la valeur obtenue dans la zone mémoire de
la variable de gauche (écrase l’ancienne valeur !) ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 55/ 17 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables et Les types de données


Les constantes

Les constantes c’est des variables dont on ne veut pas


changer la valeur tout le long de notre programme
Exemples : PI (π = 3.14), la vitesse de la lumière (C = 3000m/s),
le nombre d’Avogadro, la constante de Plank, des valeurs
personnalisées, ....
Déclaration (initialisation obligatoire ; affectation impossible)
const Type Identificateur (valeur d’initialisation) ;
Exemple : const double pi = 3.14 ; Exercice : Déclarer deux variable que vous
nommerez comme vous voulez, initialiser ces variables respectivement à 10 et 20. Ecrire les instructions pour
inter-changer les valeurs des deux variables.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 56/ 18 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction de sortie

Instruction d’affichage est cette instruction qui nous permet


d’afficher des éléments au niveau de l’écran ⇒C ++ cout
Deux parties généralement :
1 le flot de sortie standard (terminal/console) : cout
2 l’information à afficher précédée du double chevron orienté
vers la gauche (<<)

Exemple : cout<<”Hello world”<<endl ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 57/ 19 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction de sortie

PS : endl = end of ligne = retour à la ligne équivalent à :


<<”\n” ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 58/ 19 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction de sortie

On peut directement faire afficher aussi des expressions :

Remarque : En l’absence de : using namespace std vous deviez


écrire

Exemple pas par pas

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 59/ 19 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction de sortie

Exercice 1 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 60/ 19 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction de sortie

Exercice 1 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 61/ 19 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction de sortie

Exercice 2 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 62/ 19 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction de sortie

Exercice 2 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 63/ 19 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction d’entrée

Instruction de saisie est cette instruction qui nous permet de


recevoir la valeur d’une variable saisie au clavier ⇒C ++ cin
Deux parties généralement :
1 le flot d’entrée standard (le clavier) : cin
2 la variable qui va prendre la valeur saisie précédée du double
chevron orienté vers la droite (>>)

Exemple : cin>>n ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 64/ 20 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction d’entrée

Il est possible aussi de faire :

équivalent à trois(03) cin : cin >> n1 ; cin >> n2 ; cin >> n3 ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 65/ 20 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : instruction d’Entrée et de


Sortie
Instruction d’entrée

ATTENTION !

Exercice : Reprendre l’exemple de l’inter-changement et demander


cette fois ci la valeur de val1 et de val2

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 66/ 20 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Les valeurs littérales et leurs types

Les valeurs littérales sont des données utilisées directement


sans l’aide d’une variable dans un programme (delta = b*b -
4*a*c ;  4  est une valeur littérale et de type int)
Exemples :
1 (type int)
3.14 (type double) * remarquer le point au lieu de la virgule
-1. (type double) équivalent à -1.0
3e-3 (type double) équivalent à 3 ∗ 10−3 ou 0.003 *
remarquer le  e  de la notation scientifique

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 67/ 21 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Les opérateurs

Les opérateurs usuels


[+(addition),-(soustraction),*(multiplication),/(division)]
Exemples d’expression :
delta = b*b - 4*a*c ;
x = a*b*(a+b)-(a/b)*2 ; * remarquer les parenthèses
Attention au niveau des opérations
type 1 opérateur type 1 = type 1 ; Exemple : division entière
int/int = int * 1/2 = 0 et non 0.5 ;
type 1 opérateur type 2 = le plus grand type (double
supérieur à int) ; Exemple : 2+3.14=5.15.
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 68/ 22 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Les opérateurs

Les opérateurs [+=,-=,*=,/=]


Exemples d’expression :
a+ = 2; équivalent à a = a + 2;
a∗ = b; équivalent à a = a ∗ b;
Les opérateurs [−− (décrémentation) et ++ (incrémentation)]
ajout ou soustraction de 1
i + + ou + + i ⇔ i = i + 1 ;
i − − ou − − i ⇔ i = i − 1.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 69/ 22 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Les opérateurs

Division entière : l’opérateur modulo (%) équivaut au reste


de la division entière (UNIQUEMENT POUR LES int)
Exemples d’expression :
11%3 = 2 car 11 = 3 ∗ 3 + 2
12%4 = 0 car 12 = 4 ∗ 3 + 0
Remarquer la possibilité d’affecter un int a un double(normale)
mais du double en int la valeur perd sa partie décimale

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 70/ 22 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Les opérateurs

ATTENTION piège avec la division entière : ayez toujours en tête


que la division d’un int par un int donne toujours un int

il faut faire mettre


par exemple 2.0 pour
résoudre le problème

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 71/ 22 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Les Fonctions mathématiques avec l’instruction de préprocesseur #include < cmath >

sin, cos, tan : fonctions trigonométriques (en radians)


asin, acos, atan : sinus, cosinus et tangente inverses
sinh, cosh, tanh : sinus, cosinus et tangente hyperboliques
exp, log , log 10 : exponentiel, logarithme népérien(ln), ln à
base 10 (log)
pow : puissance. (pow (a, n)) équivaut à ”a exposant n”
sqrt : racine carrée
ceil, floor : arrondi à l’entier supérieur, arrondi à l’entier
inférieur
abs : valeur absolue.
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 72/ 23 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Remarques

1 les fonctions trigonométriques reçoivent des angles en radian


π∗angle en degre
angle en radian = 180

2 l’existence de constantes prédéfinies telles que :


M PI contient la valeur de pi
M E contient la valeur 2,71828 base des logarithmes naturels

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 73/ 24 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Exercices

Exercice1 : Écrivez un programme age qui : demande son âge à


l’utilisateur ; lit la réponse de l’utilisateur et l’enregistre dans une
variable age de type entier ; calcule l’année de naissance (à un an
près) de l’utilisateur et l’enregistre dans la variable annee de type
entier ; affiche l’année de naissance ainsi calculée. Compilez et
exécutez votre programme

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 74/ 25 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Exercices

Exercice2 : Écrivez un programme calcul qui :


1. déclare les variables x et y de type entier ;
2. déclare les variables a, b, c et d de type réel ;
3. affecte la valeur 2 à x et 4 à y ;
4. calcule la somme, la différence, le produit, et le quotient de x par y, et
affecte les résultats à a, b, c et d ;
5. affiche les valeurs de a, b, c et d.
6. Compilez et exécutez le programme.
7. Vous devez constater que le quotient de x par y (c’est-à-dire x / y)
donne un résultat nul.
8. Modifiez ensuite votre programme en déclarant x et y avec le type réel.
9. Recompilez et exécutez.
10. Que constatez-vous ?
11. Même question avec x de type entier et y de type réel. (Expliquez.)
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 75/ 25 / 89
Concept général
Historique et importance du C++
Caractéristiques d’une variable
Notions de base en C++
Déclaration d’une variable
Les variables et Les types de données
Initialisation d’une variable
Les structures de contrôle
Convention de nommage
Les tableaux et chaı̂nes de caractères
Type d’une variable
Les fonctions
Affectation
Les pointeurs et références
Les constantes

Chapitre 3 : Les variables : Expressions et les opérateurs


Exercices

Exercice3 : A parti du code sujet.cpp fourni, ajouter les instructions


adéquates après le commentaire  // Ajoutez votre code
ici :  pour permettre la permutation des valeurs de 3 variables.
Compiler le code et rendre le même fichier avec le code ajouté.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 76/ 25 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Concept général

Les structures de contrôle nous permettent de faire des


traitements alternatifs ou répétitifs dans un programme. Les
structures de contrôle introduisent aussi la notion de bloc et
de condition Il en existe trois(03) formes :

1 les branchements conditionnels ;


2 les itérations (structures de controle itératives) ;
3 les boucles conditionnelles.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 77/ 26 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Concept général

La notion de bloc en c++ renvoie à la notion d’ensemble


d’instructions. Un block commence par une accolade
ouvrante  {  et se termine par une accolade fermante
 } 

Deux (02) propriétés fondamentales :


1 les blocs peuvent être imbriqués : à l’intérieur d’un même bloc
on peut avoir plusieurs autres blocs ;
2 les blocs ne peuvent pas se chevaucher.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 78/ 26 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Format général

Le branchement conditionnel nous permet d’exécuter une partie de


notre programme si une ou plusieurs conditions sont remplies. ⇒
les SI =⇒ en c++ on parle de  IF 
forme if

Faire un test sur Condition et SI


c’est vrai exécuter les instructions.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 79/ 27 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Format général

Le branchement conditionnel nous permet d’exécuter une partie de


notre programme si une ou plusieurs conditions sont remplies. ⇒
les SI =⇒ en c++ on parle de  IF 
forme if - else

SI Condition 1 vrai exécuter


Instructions 1 SINON exécuter
Instruction 2.
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 80/ 27 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : forme if-else if-else

Nous avons plusieurs condition a


testé. SI une des conditions est
vraie on exécute les instructions
correspondantes.
Exemples :
delta (si c’est inférieur,
supérieur ou égal à zero)
l’appréciation des moyennes
pour attribution des mentions
(Echec, passable, A-bien, Bien,
T-bien, ...)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 81/ 28 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Les if imbriqués

les branchements étant des


structures en blocs ils peuvent
s’imbriquer les un dans les
autres
Exemple : Pour la comparaison
de trois valeurs (x, y, z)

Attention ! Ne pas en abuser. Se


limiter au maximum à 3 niveaux
d’imbrication pour une plus grande
lisibilité du code
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 82/ 29 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les conditions

Une condition est un cas particulier d’expression qui ne peut


prendre que les valeurs (vrai ou faux). true ou false en c++
⇒ on parle d’expression logique
les expressions logiques peuvent être stockées dans le type
 bool  mis pour booléen

une condition peut être :


true ou false ;
une variable de type bool ;
une expression logique simple ;
une expression logique complexe (constituée de plusieurs
expressions simples) ;
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 83/ 30 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les conditions : expressions logiques simples

une expression logique simple est obtenue par l’utilisation


des opérateurs de comparaisons usuelles

Si vous le fait vous aurai


un avertissement
semblable à ceci si vous
utilisé g++ comme
compilateur :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 84/ 31 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les conditions : opérateurs logique et les expressions logiques complexes

une expression logique complexe est obtenue par


combinaison d’expressions logiques simples ou des valeurs
littérales true/false grâce aux opérateurs logiques
Opérateur logique ET
c + +  and  ou  && 
=⇒

Remarquer que le symbole & est doublé


Exemple : a > 10 && a < 12
la condition est vraie si et seulement si les deux parties sont vraies

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 85/ 32 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les conditions : opérateurs logique et les expressions logiques complexes

une expression logique complexe est obtenue par


combinaison d’expressions logiques simples ou des valeurs
littérales true/false grâce aux opérateurs logiques
Opérateur logique OU
c ++  or  ou  || 
=⇒

Remarquer que le symbole | est doublé


Exemple : a < 10 || a > 12
la condition est vraie si au moins une des deux parties est vraie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 86/ 32 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les conditions : opérateurs logique et les expressions logiques complexes

une expression logique complexe est obtenue par


combinaison d’expressions logiques simples ou des valeurs
littérales true/false grâce aux opérateurs logiques
Opérateur logique NON
c + +  not  ou  ! 
=⇒

Exemple : not(a < 10) pour dire a >= 10


La négation de l’expression, si true ça devient false et si false ça
devient true

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 87/ 32 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Exemples

Exemple 1 :
Voilà un exemple d’utilisation
de la forme if
Ce programme affiche Bonjour
si c’est la première vous êtes là
La variable booléen est ensuite
Remarquer l’utilisation de la passée à false pour empêcher
variable booléenne directement que le programme affiche une
comme condition autre fois ”Bonjour”.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 88/ 33 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Exemples

Exemple 2 : Utilisation de condition simple dans une


structure if-else

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 89/ 33 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Exemples

Exemple 3 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 90/ 33 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Exemples

Exemple 4 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 91/ 33 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Exemples

Exemple 5 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 92/ 33 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Exemples

Exemple 6 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 93/ 33 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Erreurs classiques

1 mettre = au lieu de == (le code compile bien dans la majorité


des cas mais le bloc if ne fait pas ce qu’on lui demande) ;

2 oublier les accolades quand l’on a plus d’une instruction

3 un code comme ceci  if(condition) ;  ne fait absolument


rien.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 94/ 34 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Quiz
Code :

Quiz 1 : Si on rentre n=1 et


p=2 quel sera le résultat ?

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 95/ 35 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Quiz
Code :

Quiz 1 : Le résultat sera le C :

n’oublier pas les règles que l’expression avec and


n’est vrai que quand les deux parties ont vraies
tandis que l’expression avec or il suffit qu’une
partie soit vraie ;
remarquer l’utilisation de l’expression
arithmétique.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 96/ 35 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Quiz
Code :

Quiz 2 : Si on rentre n=1 et


p=3 quel sera le résultat ?

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 97/ 35 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Quiz
Code :

Quiz 2 : Le résultat sera le B :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 98/ 35 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Quiz
Code :

Quiz 3 : Si on rentre n=2 et


p=1 quel sera le résultat ?

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 99/ 35 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Branchements conditionnels : Quiz
Code :

Quiz 3 : Le résultat sera le A :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 100/ 35 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Cas particulier de if else-if else : switch

Tester plusieurs valeurs d’une même variable ⇒ SWITCH

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 101/ 36 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : Concept général

Les boucles sont des structures de contrôle répétitives. Elles


permettent de répéter un bloc d’instructions un certain
nombre de fois (itérations) ou jusqu’à ce qu’une condition ne
soit plus vérifiée (boucles conditionnelle)

1 les boucles for : itérations ;


2 les boucles while : boucles conditionnelles ;
3 les boucles do-while : boucles conditionnelles.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 102/ 37 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : Les itérations for

Les itérations sont des boucles qui nous permettent de


répéter un bloc d’instruction nombre n connu.
Format général
for(initialisation ; condition ; itération)

Initialisation ⇒ la valeur de début de la boucle ;


Condition ⇒ la condition qui doit être vérifiée pour répéter ;
Itération ⇒ le pas d’incrémentation ou de décrémentation.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 103/ 38 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : Les itérations for

On peut les utiliser pour faire toutes opérations répétitives


ou le nombre de répétition est connu d’avance.
1 Répéter des affichages ou des saisies N fois.
2 Déterminer le maximum, le minimun, la moyenne d’un nombre N
d’éléments connus.
10 10
i∗i
P P
3 Calculer une somme : par exemple S1 = i ou encore S2 = i!
i=1 i=1
10
Q
4 Calculer un produit : par exemple factoriel P1 = i ou encore
i=1
N
1
i2 +
Q
P2 = ei
i=2

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 104/ 38 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : Les itérations for

la variable i est appelée variable compteur ou compteur simplement

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 105/ 38 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : Les itérations for

Exemples d’approfondissement
1 Calculer factorielle de n (n !) ;
2 Calculer la moyenne de 5 notes prises au clavier. Détermier aussi le
maximun, le minimum, la variance et l’écart type ;
3 Afficher une table de multiplication par un nombre fourni au clavier ;
4 Afficher la table de multiplication de tous les chiffres de 2 à 9 ;
5 Réaliser un triangle d’un caractère fourni par l’utilisateur ainsi que le
niveau du triangle (premier niveau une *, suivante **, suivant
encore *** ainsi de suite) ;
6 Réaliser le triangle de pascal ;
7 Afficher les nombres premiers inférieur à un nombre fourni au clavier.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 106/ 38 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : Les itérations for

Des cas d’erreurs


Autres cas :
Mauvaise condition
Faire des pas de 2

Une boucle qui ne fait rien


Aller en arrière

Les boucles infinie !

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 107/ 38 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les itérations : Attention boucle infinie

Les boucles infinies sont des boucles qui s’exécutent un


nombre indéterminé de fois Les erreurs qui peuvent très vite
conduire à une boucle infinie
Affecter ou modifier la valeur de la variable compteur dans la
boucle ;
Vouloir une boucle qui doit aller vers l’avant et décrémenter la
valeur d’itération (et vice versa) ;
Ne pas avoir la même variable au niveau de l’initialisation, de
la condition et de l’itération.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 108/ 39 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les itérations : Quiz

Quiz 1 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 109/ 40 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les itérations : Quiz

Quiz 1 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 110/ 40 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les itérations : Quiz

Quiz 2 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 111/ 40 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les itérations : Quiz

Quiz 2 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 112/ 40 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les itérations : Quiz

Quiz 3 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 113/ 40 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les itérations : Quiz

Quiz 3 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 114/ 40 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : boucles conditionnelles

While
Forme
while(condition){
//bloc

La boucle while tournera tant que la condition est vraie.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 115/ 41 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : boucles conditionnelles

do -While

Forme
do{
//bloc

}while(condition) ;

La boucle do-while tournera une fois avant de vérifier la


condition.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 116/ 41 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Les boucles : boucles conditionnelles

do-While et while

Ces deux codes ferons presque la même chose seulement que


la boucle do-while va s’exécuter une fois d’abord avant de
vérifier la condition tandis que while vérifiera la condition
avant même la première répétition.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 117/ 41 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Instructions break et continue

Break (switch et boucles) : interrompre le déroulement


normale du bloc. Elle s’utilise souvent sous condition

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 118/ 42 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Instructions break et continue

Continue (boucles) : passer prématurément au tour de


boucle suivant. Elle s’utilise souvent sous condition

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 119/ 42 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Instructions break et continue

Continue (boucles) : passer prématurément au tour de


boucle suivant. Elle s’utilise souvent sous condition

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 120/ 42 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


La portée des variables

Variables globales
Les variables globales sont connues du compilateur dans la partie
du programme source suivant leur déclaration et ceci dans tous les
blocs.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 121/ 43 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


La portée des variables

Variables globales
Les variables globales sont connues du compilateur dans la partie
du programme source suivant leur déclaration et ceci dans tous les
blocs.

Variables locales
Les variables locales sont connues du compilateur à l’intérieur du
bloc où elles sont déclarées. Leur portée est donc limitée à ce bloc.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 122/ 43 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Exercices

3.0. Qu’affiche ce code à l’écran ?

3.1. Le test suivant : if (choix ==0 o 0 k0 O 0 ) peut-il remplacer :


if (choix ==0 o 0 kchoix ==0 O 0 ) et pourquoi ?
3.2. Que se passe-t-il si on retire tous les ”break” de l’exemple sur
switch et la valeur de la variable nbEnfants = 1.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 123/ 44 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Exercices

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 124/ 44 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Exercices

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 125/ 44 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Exercices

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 126/ 44 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Exercices

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 127/ 44 / 89
Historique et importance du C++
Concept général
Notions de base en C++
Branchements conditionnels
Les variables et Les types de données
Les conditions
Les structures de contrôle
Les boucles
Les tableaux et chaı̂nes de caractères
La portée des variables
Les fonctions
Exercices
Les pointeurs et références

Chapitre 4 : Les structures de contrôle


Exercices

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 128/ 44 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Situation de départ

Création de cinq variables pour gérer, par exemple, les scores dans
un jeu :

Problème : Et si le nombre d’éléments devient grand ?

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 129/ 45 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Situation de départ

Tendance à vouloir utiliser une boucle pour un traitement plus


optimal

Problème : Ce code ne marche pas car  scorei  n’existe pas. Que


faire ?

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 130/ 45 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Situation de départ

Problème : Et s’il y avait beaucoup plus de données à manipuler


(taille de départ et limite de remplissage inconnu)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 131/ 45 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Situation de départ

La solution à tout ces problèmes ce sont les tableaux


Définition
Un tableau est une collection de données (valeurs) homogène
(=même type). Il s’agit de gérer plusieurs variables de même type.

L’exemple de score : on aurait voulu avoir ça !

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 132/ 45 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Situation de départ

Quand les utiliser ?


Gérer les données statistiques ;
Gérer plusieurs variables du même type ;
Conserver plusieurs données pour en faire un des traitements
particulier ;
Faire des opérations sur des ensembles de données de même
type ;
Manipuler plusieurs données simultanément.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 133/ 45 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Situation de départ

1 un tableau pour gérer les inscriptions à un cours par exemple


2 un tableau qui contient les départements d’un pays
3 un jeu à un nombre fixé de joueurs
4 un tableau contenant les coordonnées (x,y) d’un point

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 134/ 45 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Situation de départ

1 Les tableaux dynamiques : vector


2 Les tableaux statiques : array ou ”à la C”

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 135/ 45 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : déclaration

Un tableau dynamique est une collection de données


homogène dont la taille peut varier et dont les éléments
peuvent diminuer ou augmenter au cours de l’exécution du
programme inclure d’abord la librairie vector :
#include < vector >
Déclarations
vector < Type > identificateur ;

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 136/ 46 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : initialisation (05 formes)

1 vide

2 ensemble de valeurs initiales

3 taille initiale et tous les éléments sont nuls

4 taille initiale et tous les élements à une valeur données

5 copie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 137/ 47 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : initialisation (05 formes)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 138/ 47 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : affectation globale et accès direct aux éléments

accès au tableau élément par élément grâce au crochet


 tab[i] 

i est appelé indice et varie de 0 à N-1 (avec N la taille du


tableau)
Application de toutes les opérations sur les variables simples
aux éléments individuels d’un tableau
accès globale par l’affectation : tab1 = tab2 (copie tous les
éléments de tab2 dans tab1 et les deux continuent de façon
indépendante.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 139/ 48 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : affectation globale et accès direct aux éléments

Attention :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 140/ 48 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : accès global et utilisation

Taille d’un tableau


identificateur.size() ;
Permet de connaı̂tre la taille du tableau. Génère un type nommé
size t qui n’est rien d’autre qu’un unsigned int

Affichage de tous les éléments, remplissage, opérations sur


l’ensemble : Trois moyens
1 Ensemble de valeur (boucle itérative C++11)
2 Boucles classiques
3 Les itérateurs (nous ne verrons pas ici)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 141/ 49 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : accès global et utilisation

Ensemble de valeurs (boucle itérative C++11)


Deux formes :
1 Pour utilisation sans modification

2 Pour utilisation avec modification

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 142/ 49 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : accès global et utilisation

Exemple

Dans la première
boucle
for ages  est
modifiable et dans
la seconde non !

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 143/ 49 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : accès global et utilisation

Si vous aviez un compilateur conçu sur une norme inférieure


à C++11

Cette erreur prouve que le programmeur à C++98 < C++11

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 144/ 49 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : accès global et utilisation

Les boucles classiques


1 Format général

2 Exemple

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 145/ 49 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : accès global et utilisation

Exemples
For (c++11)

For classique

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 146/ 49 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : accès global et utilisation

Exemples
Remplir un tableau avec le For de C++11

Equivalent en initialisation de type 4

Equivalent en initialisation de type 4 et copie

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 147/ 49 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : les fonctions associées

Format général :

Exemple avec size

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 148/ 50 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : les fonctions associées

Liste de fonctions utiles

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 149/ 50 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : Exercice

Exercice1 :
Déclarer un tableau dynamique d’entier et demander sa taille. Remplir les éléments du tableaux sous les conditions
suivantes :
Ajouter les valeurs positives
Si une valeur négative est donnée supprimer le dernier élément
Si la valeur est 0 effacer le tableau
Corrigé :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 150/ 51 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector : Exercice

Exercice2 :
Déclarer un tableau dynamique de réels. Remplir les éléments du
tableaux sous les conditions suivantes :
Ajouter les valeurs positives
Si une valeur négative est donnée supprimer le dernier élément
Si la valeur est 0 effacer le tableau
Si la valeur donnée est -1 sortez de la boucle et afficher la
valeur le tableau
Faire la moyenne des éléments du tableau et afficher les indices des
notes supérieures à la moyenne.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 151/ 51 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector de vector : tableaux dynamiques multidimensionnels

Les tableaux dynamiques multidimensionnels sont des


tableaux dynamiques de tableau dynamique
Gestion de plusieurs notes par étudiant sachant que les
étudiants peuvent ne pas avoir le même nombre de note
Gérer les statistiques de mêmes types par rapport à plusieurs
paramètres
...

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 152/ 52 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector de vector : tableaux dynamiques multidimensionnels

Exemple de déclaration d’un tableau de tableau de int avec


une initialisation de type 4

Une autre forme d’initialisation de type 2

Un tableau dynamique de tableaux dynamique n’est pas une


matrice !

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 153/ 52 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


vector de vector : tableaux dynamiques multidimensionnels

Attention ! Une erreur due à la version de c++. Un espace


doit être mis entre les chevrons de fin
Ce cas produira une erreur si vous n’êtes pas en C++11

Ceci marchera partout

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 154/ 52 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques : array (ou ”a la C”)

Les tableaux statiques sont des tableaux à taille fixe et dont


la taille ne varie pas au cours de l’exécution du programme
Deux formes :
les arrays (disponible en c++11)
les tableaux ”à la C” vielle version des arrays (buid in array)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 155/ 53 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques : array (ou ”a la C”)

Les array sont des tableaux statiques sur lesquels on peut


effectuer les mêmes opérations comme sur un tableau
dynamique à l’exception des cas de modifications de la taille
du tableau (ajout, suppression, ...)
inclure d’abord la librairie array : #include < array > Déclaration :

Exemple :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 156/ 53 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques : array (ou ”a la C”)

Initialisation des array


Initialisation vide :

Initialisation par ensemble d’éléments :

Exemple :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 157/ 53 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques : array (ou ”a la C”)

Utilisations
Les mêmes boucles que celles utilisées au niveau des vectors
Fonction spécifique size() pour la taille disponible aussi

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 158/ 53 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques : array (ou ”a la C”)

Tableaux statiques multidimensionnels


C’est comme dans le cas des vector
Quelques exemples :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 159/ 53 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques : array (ou ”a la C”)

Remarquer l’initialisation sans les accolades qui se différencie de


l’initialisation avec les accolades des vector de vector.
Représentation d’une matrice

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 160/ 53 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux à plusieurs dimensions

Les tableaux à plusieurs dimensions encore appelé tableaux


multidimensionnels peuvent sont les types de tableaux que
nous avons déjà vu mais peut être aussi un mélange de
vector et d’array
Exemples :
un tableau de cordonnées de points dont le nombre est
inconnu (mais on sait au moins que la taille du tableau des
cordonnées est 2)
un tableau de notes d’étudiants contenant les notes de chaque
matière par étudiant
...
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 161/ 54 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques ”a la C”)

Les tableaux statiques ”à la C” sont équivalents aux array


mais ne permettent pas d’opérations d’affectation globale, ni
l’utilisation des méthodes spécifiques comme size()
Déclaration
Type identificateur[Taille] ;
Type identificateur[Taille1][Taille2]... ; //le cas multidimensionnel

Exemples

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 162/ 55 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques ”a la C”)

Initialisation par ensemble de valeurs

Erreur au niveau de l’avant dernière ligne car initialisation avec un


ensemble de 4 éléments pour une tableau de 2 éléments.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 163/ 55 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les tableaux statiques ”a la C”)

utilisations
1 Accès direct par crochet comme pour les vector et pour les
array
2 Taille fixée par le programmeur
3 Tableau de plusieurs dimensions possibles
4 Utilisation des boucles itératives comme dans le cas des vector
et des array
5 Reconnus par toutes les versions de C++

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 164/ 55 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Exemples

Récupérer les valeurs d’un tableau et en afficher la somme :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 165/ 56 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les chaı̂nes de caractères : string

Les caractères sont représentés par le type char


Exemples :

Remarquer l’utilisation des apostrophes !

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 166/ 57 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les chaı̂nes de caractères : string

Représentation des chaı̂nes de caractères comme un tableau


de caractères
Tableau de char
char maChaine[taille];
char chaine[] = ”salut”;

Remarquer la non initialisation de la variable chaı̂ne à une taille qui


se déduis automatiquement
Vu sous l’angle ou une chaı̂ne de caractère un tableau de
caractères on peut y appliquer tout ce qu’on sait sur les tableaux

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 167/ 57 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les chaı̂nes de caractères : string

Cette représentation est contraignante et n’offre pas de


grande flexibilité
Ajout systématique
d’un caractère de fin de
chaı̂ne
Utilisation incontrôlée
de la mémoire
Type pas très intuitif
manipulation pas aisée

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 168/ 57 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les chaı̂nes de caractères : string

Les chaı̂nes de caractères seront représentées par le type


string
inclure d’abord la librairie string : #include < string >
Exemples :

Une chaı̂ne déclarée sans valeur est automatiquement mise à la


chaı̂ne vide ”” !
John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 169/ 57 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Les chaı̂nes de caractères : string

Initialisation string

Remarquer que dans le cas de l’affectation d’un caractère, la valeur


affectée à la chaı̂ne est la chaı̂ne réduite au caractère affecté

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 170/ 57 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : opération de concaténation

La concaténation est l’opération qui consiste à coller deux ou


plusieurs chaı̂nes ensemble. Elle se fait grâce à l’opération
d’addition(+)

l’opérateur += et les opérateurs de comparaisons == et != sont


aussi utilisables

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 171/ 58 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : opération de concaténation

Les possibilités de concaténation

Ou string correspond à une variable de type string, char une


variable de type char, ”...” une valeur littérale.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 172/ 58 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : manipulation

l’indexation des caractères dans un string


se fait en considérant que nous avons un tableau de caractère donc
on utilise les crochets et les indices vont de 0 à N-1.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 173/ 59 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : manipulation

Fonctions spécifiques
Tout comme pour les vector et les arrays, les string disposent de
certaines fonctions qui facilitent leur manipulation
Format général d’utilisation

Taille d’une chaı̂ne

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 174/ 59 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : manipulation

Insertion

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 175/ 59 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : manipulation

Remplacer ou supprimer des sous chaı̂nes

replace peut être utilisée pour supprimer des caractères. Il suffit par
exemple que chaine2 soit égal à ””

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 176/ 59 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : manipulation

Recherche de sous chaı̂nes

voir aussi find first of, find last of

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 177/ 59 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : manipulation

Recherche de sous chaı̂nes

si la sous chaı̂ne n’existe pas find et rfind renvoie string :: npos

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 178/ 59 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


string : manipulation

Récupérer une sous chaı̂ne

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 179/ 59 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Exercices

Exercice 1

Exercice 2

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 180/ 60 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Exercices

Exercice 3

Exercice 4

Exercice 5

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 181/ 60 / 89
Historique et importance du C++
Notions de base en C++
Situation de départ
Les variables et Les types de données
Les tableaux dynamiques : vector
Les structures de contrôle
Les tableaux statiques : array (ou ”a la C”)
Les tableaux et chaı̂nes de caractères
Les chaı̂nes de caractères : string
Les fonctions
Les pointeurs et références

Chapitre 5 : Les tableaux et chaı̂nes de caractères


Exercices

Exercice 6

Exercice 7

Exercice 8

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 182/ 60 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Concept Général : Notion de réutilisabilité

Ecrire un programme de calcul de combinaison nous amènera


à calculer factorielle de p de n − p et de n ⇒ même code 3
fois

Ecrire un programme de calcul matriciel nous amènera à


remplir 2 matrices et afficher 3 matrices ⇒ 5 duplications
Jamais de copier coller ⇒ faire des fonctions

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 183/ 61 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Concept Général : Inconvénient de duplication de code

Duplication de code ⇒
code inutilement long

difficile à comprendre

difficile à maintenir : reporter chaque modification dans


chacune des copies

Portion de programme réutilisable ⇒ Fonctions

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 184/ 62 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Concept Général : Illustration

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 185/ 63 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Concept Général : Illustration

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 186/ 63 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Caractéristique d’une fonction

Fontion = portion de programme réutilisable ou importante en soi


Une fonction possède quatre (04) caractéristiques :
1 un corps : portion de programme à réutiliser ou mise en
évidence

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 187/ 64 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Caractéristique d’une fonction

Fontion = portion de programme réutilisable ou importante en soi


Une fonction possède quatre (04) caractéristiques :
1 un corps : portion de programme à réutiliser ou mise en
évidence
2 un nom : par lequel on désignera cette fonction

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 188/ 64 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Caractéristique d’une fonction

Fontion = portion de programme réutilisable ou importante en soi


Une fonction possède quatre (04) caractéristiques :
1 un corps : portion de programme à réutiliser ou mise en
évidence
2 un nom : par lequel on désignera cette fonction
3 des paramètres : (arguments) ensemble de variables
extérieures à la fonction dont le corps dépend pour fonctionner

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 189/ 64 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Caractéristique d’une fonction

Fontion = portion de programme réutilisable ou importante en soi


Une fonction possède quatre (04) caractéristiques :
1 un corps : portion de programme à réutiliser ou mise en
évidence
2 un nom : par lequel on désignera cette fonction
3 des paramètres : (arguments) ensemble de variables
extérieures à la fonction dont le corps dépend pour fonctionner
4 un type et une valeur de retour : (la  sortie  ) ce que la
fonction renvoie au reste du programme

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 190/ 64 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Caractéristique d’une fonction

Les  3 facettes  d’une fonction

1 Résumé / Contrat ( prototype  )

2 Création / Construction ( définition  )

3 Utilisation ( appel  )

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 191/ 64 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Caractéristique d’une fonction

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 192/ 64 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Caractéristique d’une fonction

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 193/ 64 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Appel de fonction

Appel de fonction ⇒ prendre le nom de la fonction et entre


parenthèse la liste des arguments.
Processus lors de l’appel d’une fonction :
1 les expressions passées en argument sont évaluées
2 les valeurs correspondantes sont affectées aux paramètres
3 le corps de la fonction est exécuté
4 l’expression suivant la première commande return est évaluée...
5 ...et retournée comme résultat de l’appel : finalité de l’appel

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 194/ 65 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Appel de fonction

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 195/ 65 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Appel de fonction : passage (valeur et référence)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 196/ 66 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Appel de fonction : passage (valeur et référence)

Passage par valeur : copie dans l’argument Les modifications


effectuées à l’intérieur de la fonction ne sont donc pas
répercutées à l’extérieur de la fonction.

Passage par référence : référence vers l’argument Une


modification effectuée à l’intérieur de la fonction se répercute
alors à l’extérieur de la fonction (utilisation du & pour faire la
différence.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 197/ 66 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Appel de fonction : passage (valeur et référence)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 198/ 66 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Appel de fonction : passage (valeur et référence)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 199/ 66 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Appel de fonction : Exemple

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 200/ 67 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Prototypage de fonction

Toute fonction doit être annoncée avant d’être utilisée : prototype


prototype = déclaration de la fonction, sans en définir le corps
nom
paramètres
type de (la valeur de) retour

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 201/ 68 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Prototypage de fonction

Exemple :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 202/ 68 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Prototypage de fonction : Bonne pratique

Une fonction ne doit faire que ce pour quoi elle est prévue
(éviter les effets de bords)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 203/ 69 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Prototypage de fonction : Bonne pratique

Une fonction ne doit faire que ce pour quoi elle est prévue
(éviter les effets de bords)

Choisissez des noms pertinents pour vos fonctions et vos


paramètres

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 204/ 69 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Prototypage de fonction : Bonne pratique

Une fonction ne doit faire que ce pour quoi elle est prévue
(éviter les effets de bords)

Choisissez des noms pertinents pour vos fonctions et vos


paramètres

Commencez toujours par faire le prototype de votre fonction :


Demandez-vous ce qu’elle doit recevoir et retourner

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 205/ 69 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Prototypage de fonction : Remarques

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 206/ 70 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction

La définition d’une fonction sert, comme son nom l’indique, à


définir ce que fait la fonction.

Une fonction se définit dans un bloc

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 207/ 71 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : le corps

Une séquence d’instruction comme celle qu’on écrivait depuis

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 208/ 72 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : le corps

Une séquence d’instruction comme celle qu’on écrivait depuis

possibilité de déclarer des variables, d’utiliser les structures de


contrôle, les tableaux,...

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 209/ 72 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : le corps

Une séquence d’instruction comme celle qu’on écrivait depuis

possibilité de déclarer des variables, d’utiliser les structures de


contrôle, les tableaux,...

doit contenir au moins un return expression; si elle est du type


1. ou 2.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 210/ 72 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : le corps

Une séquence d’instruction comme celle qu’on écrivait depuis

possibilité de déclarer des variables, d’utiliser les structures de


contrôle, les tableaux,...

doit contenir au moins un return expression; si elle est du type


1. ou 2.

peut contenir un return; si elle est du type 3. et 4.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 211/ 72 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : return ?

return un ou plusieurs fois

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 212/ 73 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : return ?

Le type de la valeur retournée doit correspondre au type de sortie


dans l’en-tête

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 213/ 73 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : return ?

return met fin à l’exécution de la fonction :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 214/ 73 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Définition de fonction : return ?

Le compilateur doit être sûr de toujours pouvoir exécuter un return

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 215/ 73 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Les divers types de fonction

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 216/ 74 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Les divers types de fonction

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 217/ 74 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Méthodologie de construction

4 questions à toujours se poser avant la construction d’une fonction


Que doit faire ma fonction ? (toujours trouvé une seule chose
à la fois)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 218/ 75 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Méthodologie de construction

4 questions à toujours se poser avant la construction d’une fonction


Que doit faire ma fonction ? (toujours trouvé une seule chose
à la fois)

Quel(s) argument(s) ? (les entrées dont j’aurai besoin).

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 219/ 75 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Méthodologie de construction

4 questions à toujours se poser avant la construction d’une fonction


Que doit faire ma fonction ? (toujours trouvé une seule chose
à la fois)

Quel(s) argument(s) ? (les entrées dont j’aurai besoin).

Quel genre de passage ? (paramètre modifiable ou non ?)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 220/ 75 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Méthodologie de construction

4 questions à toujours se poser avant la construction d’une fonction


Que doit faire ma fonction ? (toujours trouvé une seule chose
à la fois)

Quel(s) argument(s) ? (les entrées dont j’aurai besoin).

Quel genre de passage ? (paramètre modifiable ou non ?)

Quel résultat ? (la sortie doit être de quel type ?)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 221/ 75 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Notions avancées : Arguments par défaut

Argument par défaut


Lors de son prototypage, une fonction peut donner des valeurs par
défaut à ses paramètres.

Remarques :
Fournir le paramètre lors de l’appel de la fonction n’est pas
nécessaire.
Les paramètres avec valeur par défaut doivent apparaı̂tre en
dernier dans la liste des paramètres d’une fonction

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 222/ 76 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Notions avancées : Arguments par défaut

Syntaxe :
Les arguments par défaut se spécifient dans le prototype et
non pas dans la définition de la fonction
Lors de l’appel à une fonction avec plusieurs paramètres ayant
des valeurs par défaut, les arguments omis doivent être les
derniers et omis dans l’ordre de la liste des paramètres.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 223/ 76 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Notions avancées : Arguments par défaut

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 224/ 76 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Notions avancées : Arguments par défaut

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 225/ 76 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Notions avancées : Surcharge de fonctions

Définition de surcharge
La surcharge des fonction est un mécanisme en C++ qui permet
de définir plusieurs fonctions de même nom si ces fonctions n’ont
pas les mêmes listes de paramètres : nombre ou types de
paramètres différents

Ce mécanisme est très utile pour écrire des fonctions ”sensibles”


au type de leurs arguments c’est-a-dire des fonctions
correspondant à des traitements de même nature mais s’appliquant
à des entités de types différents.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 226/ 77 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Notions avancées : Surcharge de fonctions

affiche(1); affiche(1.1); affiche(1, 1); ⇒ Résultats différents.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 227/ 77 / 89
Concept Général
Historique et importance du C++
Caractéristique d’une fonction
Notions de base en C++
Appel de fonction
Les variables et Les types de données
Prototypage de fonction
Les structures de contrôle
Définition de fonction
Les tableaux et chaı̂nes de caractères
Types de fonction
Les fonctions
Méthodologie de construction
Les pointeurs et références
Notions avancées

Chapitre 6 : Les fonctions


Notions avancées : Surcharge de fonctions

Attention !

Paramètres par défaut et Surcharge faire attention aux


ambiguı̈tés.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 228/ 77 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : les structures

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 229/ 78 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : les structures

Données structurées ; tableaux (données forcément homogènes)


⇒ type composé/composite (les structures)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 230/ 78 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : les structures

Pourquoi ?
Regrouper plusieurs types sous une même entité
représenter des entités qui doivent être décrites avec plusieurs
données (coordonnées (x,y,z,...), personne (nom, prénom,
age,...), date(jour,mois,année),...
faire retourner plusieurs valeurs à une fonction
simplifier la conception et l’écriture des programmes
(regroupements conceptuels ou thématique)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 231/ 78 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Déclaration

Déclaration

La déclaration d’une structure se met toujours avant le main. Au


même emplacement que les prototype.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 232/ 79 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Déclaration

Exemple 1 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 233/ 79 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Déclaration

Exemple 2 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 234/ 79 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Déclaration

Exemple 3 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 235/ 79 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Déclaration

Exemple 4 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 236/ 79 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Déclaration

Exemple 5 :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 237/ 79 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Déclaration

Exemple 6 : déclaration d’une autre structure dans une autre

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 238/ 79 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Initialisation

Déclaration : Exactement comme on déclare n’importe quelle


variable.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 239/ 80 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Initialisation

Exemple 1 : déclaration d’une autre structure dans une autre

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 240/ 80 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Initialisation

Initialisation

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 241/ 80 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Accès

Accès : nom de la variable de type structure point nom de la


variable à l’intérieur de la structure

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 242/ 81 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Alias

Alias d’un type = donner un autre a ce type se fait avec le mot clé
typedef suivant la syntaxe :

Pourquoi ?
bien définir les types des objets que l’on manipule
Écriture plus claire, plus compacte et plus systématique des
paramètres de fonctions
Faciliter la déclaration d’un tableau
rendre plus lisible le code

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 243/ 82 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Alias

Exemples :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 244/ 82 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Alias

Exemple : Utilisation d’un alias dans la définition d’un autre alias

Personne est une structure


John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 245/ 82 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Remarques

Les structures et les opérations


affectation globale (Personne p1, p2; p1 = p2)
affectation par valeur (c++11) p1 = {”nom”, 1.75, 40,0 M 0 }
toutes les opérations usuelles possible sur les variables à
l’intérieur de la structure individuellement
cin et cout possible sur les variables à l’intérieur de la
structure individuellement (cout << p1.age;)
comparaison globale impossible (p1 == p2)
cin et cout impossible (cout << p1; oucin >> p1)

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 246/ 83 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Remarques

Fonction à plusieurs valeurs de retour


1 renvoyer une structure contenant les valeurs à retourner ;
2 passer les  variables retour  par référence et les affecter à
l’intérieur de la fonction
3 renvoyer un tableau dynamique (vector), si les valeurs à
retourner sont de même type (homogène)
4 combiner 1 et 3 : structure avec champs vector ou (au choix)
vector de structures

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 247/ 83 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les Données structurées : Remarques

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 248/ 83 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les pointeurs

A quoi ça sert ?


1 à permettre à plusieurs portions de code de partager des
objets (données, fonctions,.. ) sans les dupliquer ⇒ référence
2 à pouvoir choisir des éléments non connus a priori (au moment
de la programmation) ⇒ généricité (exemple de vector)
3 à pouvoir manipuler des objets dont la durée de vie dépasse la
portée ⇒ allocation dynamique

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 249/ 84 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les divers types de pointeurs

1 les références (différents des vrais pointeurs, mais très sûres et


facile d’usage)
2 les pointeurs intelligents : unique ptr , shared ptr , weak ptr .
3 les vrais pointeurs (pointeurs à la c) : peuvent tout faire mais
peuvent s’avérer dangereux.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 250/ 85 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les références

Une référence est un autre nom pour un objet existant, un


synonyme, un alias
Une référence permet donc de désigner un objet indirectement
C’est exactement ce que l’on utilise lors d’un passage par
référence
La déclaration d’une référence se fait selon la syntaxe
suivante :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 251/ 86 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les références

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 252/ 86 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les références

le sens du const avec la déclaration d’une référence :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 253/ 86 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les références

Spécificités des références


1 doit absolument être initialisée (vers un objet existant)
2 ne peut être liée qu’à un seul objet
3 ne peut pas être référencée. On ne peut donc pas faire de
tableau de références.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 254/ 86 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les (vrais) pointeurs

Un pointeur est une variable qui contient l’adresse d’un autre


objet informatique notamment une variable.
Déclarer un pointeur ⇒ créer une zone mémoire capable de
recevoir une adresse
Affecter un pointeur ⇒ y recopier l’adresse d’un variable qui
existe
allouer un pointeur ⇒ construite une variable et indiquer son
adresse au pointeur
libérer un pointeur ⇒ détruire le pointeur.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 255/ 87 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les (vrais) pointeurs

Déclaration 1 :

Déclaration 2 :

Exemple :

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 256/ 87 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Les (vrais) pointeurs

C++ possède deux opérateurs particuliers en relation avec les


pointeurs : & et *
&variable renvoie l’adresse de la variable
*ptr renvoie la valeur de l’adresse pointée

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 257/ 87 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

Chapitre 7 : Les pointeurs et références


Allocation/Desallocation

C++ possède deux opérateurs new et delete permettant d’allouer


et de libérer dynamiquement de la mémoire.

tout pointeur alloué doit être libéré


tout pointeur déclarer doit être allouer.

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 258/ 88 / 89
Historique et importance du C++
Notions de base en C++
Les variables et Les types de données
Données structurées
Les structures de contrôle
Les pointeurs
Les tableaux et chaı̂nes de caractères
Les fonctions
Les pointeurs et références

EXERCICES

John O. R. AOGA Couriel: johnaoga@gmail.com Tel: (00229)97 999 277 IGCPP2014-2015 259/ 89 / 89

Vous aimerez peut-être aussi