Vous êtes sur la page 1sur 36

Programmation Orientée

Objet par C++

SATAURI Imane
ENSAM – CASABLANCA
Langage de
programmation
 L’ordinateur est une machine
étonnante
et complexe.
 Il ne comprend qu'un langage très
simple constitué de 0 et de 1.

Un message tel que :


Langage
1010010010100011010101001010
binaire
Peut
signifier

« Affiche une fenêtre à l'écran »

SATAURI Imane 2
Langage de
programmation
 Les informaticiens ont créé des
langages intermédiaires, plus
simples que le binaire.
 Il existe aujourd'hui des centaines
de langages de programmation.
Le On obtient un
programmatio programme en
Le programme Compilate binaire que
n de
écrit dans un l’ordinateur
langage de
ur
traduction
traduit en comprend:
programmation 10100100101000
« binaire »
1101

 Le compilateur permet de transformer votre code,


écrit dans un langage de programmation, en un vrai
programme exécutable.

SATAURI Imane 3
Langage de programmation C++
Langage de haut • Java
niveau • C# .net
Plus simple et plus • Python
éloigné du • Ruby
fonctionnement de la
machine
Nivea
ux
des
langag
es
Langage de bas
niveau • C
Plus complexe et plus
• C ++
proche du
fonctionnement de la
• Objective -
machine C
01101001
10010101 • Assembleur
1101
Binaire
SATAURI Imane 4
Histoire de C++
• 1979: Bjarne Stroustrup crée le langage
C with class
• 1983: C with class devient C++ après
l’ajout des références, de la surcharge
d’opérateurs et les fonctions virtuelles
• 1989: la version 2.0 de C++ qui apporte
l’héritage multiple et les classes
abstraites et d’autres nouveautés
• 1998: la standarisation au niveau
international du langage C++
• 2011: Révision majeure du C++11
Bjarne
Stroustrup
SATAURI Imane créateur de C+ 5
Langage de
programmation C++
 D’une façon simpliste: C++ est un sur-ensemble de
C.
C++= C + améliorations + orienté objet

 C++ = C +
Notion de classe
méthodes (ou fonction membre)
héritage
polymorphisme…

SATAURI Imane 6
Langage C++
 Il est très répandu, il fait partie des langages
de programmation les plus utilisés sur la
planète.
 Il est rapide, ce qui en fait un langage de
choix pour les applications critiques qui ont
besoin de performances
 Il est portable: un même code source peut
théoriquement être transformé sans
problème en exécutable sous Windows, Mac
OS et Linux
 Il existe de nombreuses bibliothèques pour
le C++.

SATAURI Imane 7
Premier programme C++
directive de préprocesseur:
inclure la bibliothèque
iostream
Commentaire qui indique que vous allez utiliser
s’étale sur plusieurs l'espace de noms std dans la suite
ligne /* …*/ du fichier de code

Tous les Commentaire sur


programmes une seule ligne
commencent par
la fonction main

SATAURI Imane 8
Premier Programme C++

Cout suivi de l’opérateur d’insertion (<<)pour afficher


des données à l’écran
endl: end line provoque un retour à la ligne

Comme toute fonction en c+


+, la fonction main est
délimité par { }.
Les instructions entre { et }
constitue un bloc

La fonction main() retourne un


entier
Si la valeur 0 est retourné
indique que le programme s’est
termine correctement
SATAURI Imane 9
Second programme C++

SATAURI Imane 10
Quelques règles
d’écriture
 Les identificateurs: servent à désigner les
différents objets manipulés par le
programme (variables, fonctions, objets,
structures…)
 Ils sont formés d’une suite de caractère
choisis parmi les lettres et les chiffres. Le
premier caractère doit être une lettre
Exemples:
lg_lig, valeur_5, _total, _89
 les identificateurs ligne et Ligne désignent
deux objets différents.

SATAURI Imane 11
Quelques règles
d’écriture
 Certains « mots-clés » sont réservés par le
langage à un usage bien défini et ne
peuvent pas être utilisés comme
identificateurs

SATAURI Imane 12
Fichier
Prog1.cpp
source
Création d’un programme
Inclut les
Préprocesseur
1 fichiers en-
C++
tête
Fichier
temporaire Le résultat est
toujours un
fichier source
2 Compilateur

Prog1.s

3 Assembleur
Fichier objet

Prog1.o
C++

Modules objets
Éditeur de liens pour les
4 fonctions de la
librairie
Prog1.exe
SATAURI Imane 13
Les types de base de C++

 Lestypes de base en C++ sont: char, int et


float

 Les types dérivés:


◦ de types structurés comme les tableaux,
les structures ou les unions, et surtout les
classes ;
◦ d’autres types simples comme les
pointeurs ou les énumérations.

SATAURI Imane 14
Les types de base de C++
Les entiers

SATAURI Imane 15
Les types de base de C++
Les réels

SATAURI Imane 16
Déclarations des variables
Typevariable nomvariable;

Exemples:
int n;
int n =20;
const float x=0.3;
double y;
bool ok=false;
char c=‘a’;

SATAURI Imane 17
Opérateurs et expressions
 Lesopérateurs sont des symboles qui permettent
de manipuler des variables, c'est-à-dire effectuer
des opérations, les évaluer, etc. 

On distingue plusieurs types d'opérateurs :


 les opérateurs de calcul (arithmétiques):
addition (+), multiplication (*), division (/),
soustraction (-), unaire (l’opposé -).
 les opérateurs d'assignation (+=, -=, *=, /=)
 les opérateurs
d'incrémentation/décrémentation (++, --)
 les opérateurs de comparaison (<=, <, >=,
>, ==, !=)
SATAURI Imane 18
Opérateurs et expressions
 Les opérateurs logiques:
 && (ET logique)
 || ( OU logique)
 ! (NON logique)
 L’opérateur relationnel: (? et :)
En C++, l’instruction:

if ( a>b ) max = a ;
max= a>b ? a : b ;
else max = b ;

SATAURI Imane 19
QUIZ
1. Vérifier la validité des noms des variables
suivants  :(valide/invalide)
 
a) id2
b) 4eme
c) x#y
d) _id
e) no-commande
f) taux change
g) _2344
h) %id
SATAURI Imane 20
QUIZ
2. Comment écrire un commentaire sur une
seule ligne ?

a) // mon commentaire //

b) // mon commentaire

c) /* mon commentaire */

d) /* mon commentaire

SATAURI Imane 21
QUIZ
3. Quel est la première étape de la
compilation?

a) Prétraitement par le préprocesseur

b) Assembleur

c) Editeur de liens

d) Compilateur

SATAURI Imane 22
QUIZ
4. Quel l’en-tête qui permet
d’utiliser la fonction sqrt() en C+
+?

a) Qmath
b) Cmath
c) Math

SATAURI Imane 23
Quiz
5. Quels sont les mots clés
introduits par C++?
a) Break
b) Private
c) Struct
d) Long int
e) Class
f) new

SATAURI Imane 24
QUIZ
6. Quels résultats fournit le programme
suivant :
A:i=1n=0
B : i = 11 n = 11
C : i = 21 j = 6 n = 120
D : i = 18 n = 18
E : i = 12 j = 4 n = 12

SATAURI Imane 25
Les instructions de
contrôle
L’instruction if
Syntaxe
if (expression) instruction_1
else instruction_2
Ou
if (expression) instruction_1

 expression : expression quelconque
 instruction_1 et instruction_2 : instructions
quelconques (simple, bloc ou instruction
structurée.)

SATAURI Imane 26
Les instructions de
contrôle
L’instruction if
Exemple:
if ( ++i < limite) cout << "OK" ;

est équivalent à :
◦i=i+1;
◦ If ( i < limite ) cout << "OK" ;

Questions:
1. if (a = b) { ..... } ?
2. if (a<=b) if (b<=c) cout << "ordonné" ;
else cout << "non ordonné" ;
SATAURI Imane 27
Les instructions de
contrôle
L’instruction switch:
Syntaxe:
switch (expression)
{ case constante_1 :
[ suite_d’instructions_1 ]
case constante_2 : [ suite_d’instructions_2 ]
..............
case constante_n : [ suite_d’instructions_n ]
[ default : suite_d’instructions ]
}

SATAURI Imane 28
Les instructions de
contrôle
L’instruction do … while
Syntaxe:
do instruction
while (expression) ;

SATAURI Imane 29
Les instructions de
contrôle
L’instruction for
Syntaxe:
for ([ expression_déclaration_1 ] ; [ expression_2 ] ;
[ expression_3 ])
instruction

SATAURI Imane 30
Les instructions de branchement
inconditionnel
L’instruction break

début tour 1
Bonjour
fin tour 1
début tour 2
bonjour
fin tour 2
Le programme a début tour 3
affiché début tour 3 bonjour
et bonjour puis après la boucle
i==3, il sort de la
boucle
SATAURI Imane 31
Les instructions de branchement
inconditionnel
L’instruction continue

début tour 1
début tour 2
début tour 3
début tour 4
Le programme
bonjour
affiche début tour 1
à 3 puis i>=4, il
début tour 5
affiche bonjour bonjour

SATAURI Imane 32
Les instructions de branchement
inconditionnel te ns
et a
L’instruction goto c e d es
e z u nc s
l is q ta lle
ti on s e
’u cti con nn
N u ir io
tr c pt
n s s e
i de xc
e
début tour 1
Bonjour
fin tour 1
début tour 2
bonjour
fin tour 2
Le programme a début tour 3
affiché début tour 3 bonjour
et bonjour puis après la boucle
i==3, il se banche
à sortie
SATAURI Imane 33
Exercices

Détecter le problème?

Détecter l’erreur?

SATAURI Imane 34
Quiz
 Quelles erreurs ont été commises dans
chacun des groupes d’instructions suivants :
1. Il manque un point-virgule
if (a<b) cout << "ascendant"dans la première instruction
if (a<b) cout <<
else cout << "non ascendant" ;
"ascendant« ;

2.
int n ;
...
switch (2*n+1)
L’expression 2*n+1 n’est
{ case 1 : cout << "petit" ;
une expression constante
case n : cout << "moyen" ;
}
SATAURI Imane 35
Quiz (suite)
 Quelleserreurs ont été commises dans
chacun des groupes d’instructions suivants :
3.
const int LIMITE=100;
int n ;
...
switch (n)
OK
{ case LIMITE-1 : cout << "un peu moins" ;
case LIMITE : cout << "juste" ;
case LIMITE+1 : cout << "un peu plus" ;
}

SATAURI Imane 36