Vous êtes sur la page 1sur 18

09/01/2016

Programmation Oriente Objet


par C++
ZAKRANI Abdelali
ENSAM CASABLANCA
Anne universitaire 2013-2014

Langage de programmation

Lordinateur est une machine tonnante


et complexe.

Il ne comprend qu'un langage trs simple


constitu de 0 et de 1.

Un message tel que :


1010010010100011010101001010
Langage binaire
Peut
signifier

Affiche une fentre l'cran

ZAKRANI / MOO par UML / 13-14

09/01/2016

Langage de programmation

Les informaticiens ont cr des langages


intermdiaires, plus simples que le binaire.

Il existe aujourd'hui des centaines de langages


de programmation.

Le programme crit
dans un langage de
programmation

Le
programmation
Compilateur
de traduction
traduit en
binaire

On obtient un
programme en binaire
que lordinateur
comprend:
101001001010001101

Le compilateur permet de transformer votre code, crit dans un


langage de programmation, en un vrai programme excutable.

ZAKRANI / MOO par UML / 13-14

Langage de programmation C++

Langage de haut niveau


Plus simple et plus loign du
fonctionnement de la machine

Java
C# .net
Python
Ruby

Niveaux
des
langages

Langage de bas niveau

C
C ++
Objective - C

Plus complexe et plus proche du


fonctionnement de la machine
0110100110
0101011101

Assembleur

Binaire
ZAKRANI / MOO par UML / 13-14

09/01/2016

Histoire de C++
1979: Bjarne Stroustrup cre le langage C with class
1983: C with class devient C++ aprs lajout des
rfrences, de la surcharge doprateurs et les fonctions
virtuelles
1989: la version 2.0 de C++ qui apporte lhritage
multiple et les classes abstraites et dautres nouveauts
1998: la standarisation au niveau
international du langage C++
2011: Rvision majeure du C++11

Bjarne Stroustrup
crateur de C++
ZAKRANI / MOO par UML / 13-14

Langage de programmation C++

Dune faon simpliste: C++ est un sur-ensemble de C.


C++= C + amliorations + orient objet

C++ = C +
Notion de classe
mthodes (ou fonction membre)
hritage
polymorphisme

ZAKRANI / MOO par UML / 13-14

09/01/2016

Langage C++

Il est trs rpandu, il fait partie des langages de


programmation les plus utiliss sur la plante.
Il est rapide, ce qui en fait un langage de choix pour les
applications critiques qui ont besoin de performances
Il est portable: un mme code source peut
thoriquement tre transform sans problme en
excutable sous Windows, Mac OS et Linux
Il existe de nombreuses bibliothques pour le C++.

ZAKRANI / MOO par UML / 13-14

Premier programme C++


directive de prprocesseur: inclure
la bibliothque iostream
Commentaire qui stale
sur plusieurs ligne /* */

Tous les programmes


commencent par la
fonction main

indique que vous allez utiliser l'espace de


noms std dans la suite du fichier de code

Commentaire sur une


seule ligne

ZAKRANI / MOO par UML / 13-14

09/01/2016

Premier Programme C++


Cout suivi de loprateur dinsertion (<<)pour afficher des donnes
lcran
endl: end line provoque un retour la ligne
Comme toute fonction en c++, la
fonction main est dlimit par { }.
Les instructions entre { et }
constitue un bloc

La fonction main() retourne un entier


Si la valeur 0 est retourn indique que le
programme sest termine correctement

ZAKRANI / MOO par UML / 13-14

Second programme C++

ZAKRANI / MOO par UML / 13-14

10

09/01/2016

Quelques rgles dcriture


Les identificateurs: servent dsigner les diffrents
objets manipuls par le programme (variables, fonctions,
objets, structures)
Ils sont forms dune suite de caractre choisis parmi
les lettres et les chiffres. Le premier caractre doit tre
une lettre
Exemples:
lg_lig, valeur_5, _total, _89
les identificateurs ligne et Ligne dsignent deux objets
diffrents.

ZAKRANI / MOO par UML / 13-14

11

Quelques rgles dcriture

Certains mots-cls sont rservs par le langage


un usage bien dfini et ne peuvent pas tre utiliss
comme identificateurs

ZAKRANI / MOO par UML / 13-14

12

09/01/2016

Cration dun programme C++

Fichier source
1

Prog1.cpp

Fichier temporaire
2

Inclut les fichiers


en-tte

Prprocesseur C++

Compilateur

Le rsultat est
toujours un fichier
source

Prog1.s
3

Assembleur
Fichier objet

Prog1.o
4

diteur de liens

Modules objets
pour les fonctions
de la librairie

Prog1.exe

ZAKRANI / MOO par UML / 13-14

13

Les types de base de C++

Les types de base en C++ sont: char, int et float

Les types drivs:


de types structurs comme les tableaux, les structures
ou les unions, et surtout les classes ;
dautres types simples comme les pointeurs ou les
numrations.

ZAKRANI / MOO par UML / 13-14

14

09/01/2016

Les types de base de C++

Les entiers

ZAKRANI / MOO par UML / 13-14

15

Les types de base de C++

Les rels

ZAKRANI / MOO par UML / 13-14

16

09/01/2016

Dclarations des variables


Typevariable nomvariable;

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

ZAKRANI / MOO par UML / 13-14

17

Oprateurs et expressions

Les oprateurs sont des symboles qui permettent de


manipuler des variables, c'est--dire effectuer des
oprations, les valuer, etc.

On distingue plusieurs types d'oprateurs :


les oprateurs de calcul (arithmtiques): addition
(+), multiplication (*), division (/), soustraction (-), unaire
(loppos -).
les oprateurs d'assignation (+=, -=, *=, /=)
les oprateurs d'incrmentation/dcrmentation
(++, --)
les oprateurs de comparaison (<=, <, >=, >, ==, !=)
ZAKRANI / MOO par UML / 13-14

18

09/01/2016

Oprateurs et expressions

Les oprateurs logiques:


&& (ET logique)
|| ( OU logique)
! (NON logique)

Loprateur relationnel: (? et :)
En C++, linstruction:
if ( a>b ) max = a ;
else max = b ;

max= a>b ? a : b ;

ZAKRANI / MOO par UML / 13-14

19

QUIZ
1. Vrifier la validit des noms des variables
suivants :(valide/invalide)

a)
b)
c)
d)
e)
f)
g)
h)

id2
4eme
x#y
_id
no-commande
taux change
_2344
%id
ZAKRANI / MOO par UML / 13-14

20

10

09/01/2016

QUIZ
2. Comment crire un commentaire sur une seule ligne ?

a) // mon commentaire //
b) // mon commentaire
c) /* mon commentaire */
d) /* mon commentaire

ZAKRANI / MOO par UML / 13-14

21

QUIZ
3. Quel est la premire tape de la compilation?
a) Prtraitement par le prprocesseur
b) Assembleur
c) Editeur de liens
d) Compilateur

ZAKRANI / MOO par UML / 13-14

22

11

09/01/2016

QUIZ
4. Quel len-tte qui permet dutiliser la
fonction sqrt() en C++?
Qmath
b) Cmath
c) Math
a)

ZAKRANI / MOO par UML / 13-14

23

Quiz
5. Quels sont les mots cls introduits par
C++?
a) Break
b) Private
c) Struct
d) Long int
e) Class
f) new
ZAKRANI / MOO par UML / 13-14

24

12

09/01/2016

QUIZ
6. Quels rsultats 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

ZAKRANI / MOO par UML / 13-14

25

Les instructions de contrle


Linstruction if
Syntaxe

if (expression) instruction_1
else instruction_2
Ou
if (expression) instruction_1
O
expression : expression quelconque
instruction_1 et instruction_2 : instructions
quelconques (simple, bloc ou instruction structure.)
ZAKRANI / MOO par UML / 13-14

26

13

09/01/2016

Les instructions de contrle


Linstruction 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" ;
ZAKRANI / MOO par UML / 13-14

27

Les instructions de contrle


Linstruction switch:
Syntaxe:

switch (expression)
{ case constante_1 : [ suite_dinstructions_1 ]
case constante_2 : [ suite_dinstructions_2 ]
..............
case constante_n : [ suite_dinstructions_n ]
[ default : suite_dinstructions ]
}
ZAKRANI / MOO par UML / 13-14

28

14

09/01/2016

Les instructions de contrle


Linstruction do while
Syntaxe:

do instruction
while (expression) ;

ZAKRANI / MOO par UML / 13-14

29

Les instructions de contrle


Linstruction for
Syntaxe:

for ([ expression_dclaration_1 ] ; [ expression_2 ] ; [ expression_3 ])

instruction

ZAKRANI / MOO par UML / 13-14

30

15

09/01/2016

Les instructions de branchement


inconditionnel

Linstruction break

Le programme a affich
dbut tour 3 et bonjour
puis i==3, il sort de la
boucle

dbut tour 1
Bonjour
fin tour 1
dbut tour 2
bonjour
fin tour 2
dbut tour 3
bonjour
aprs la boucle
31

ZAKRANI / MOO par UML / 13-14

Les instructions de branchement


inconditionnel

Linstruction continue

Le programme affiche
dbut tour 1 3 puis
i>=4, il affiche bonjour

ZAKRANI / MOO par UML / 13-14

dbut tour 1
dbut tour 2
dbut tour 3
dbut tour 4
bonjour
dbut tour 5
bonjour

32

16

09/01/2016

Les instructions de branchement


inconditionnel

Linstruction goto

Le programme a affich
dbut tour 3 et bonjour
puis i==3, il se banche
sortie

dbut tour 1
Bonjour
fin tour 1
dbut tour 2
bonjour
fin tour 2
dbut tour 3
bonjour
aprs la boucle

ZAKRANI / MOO par UML / 13-14

33

Exercices
Dtecter le problme?

Dtecter lerreur?

ZAKRANI / MOO par UML / 13-14

34

17

09/01/2016

Quiz

Quelles erreurs ont t commises dans chacun des


groupes dinstructions suivants :

1.
if (a<b) cout << "ascendant"
else cout << "non ascendant" ;

Il manque un point-virgule dans la


premire instruction
if (a<b) cout << "ascendant

2.
int n ;
...
switch (2*n+1)
{ case 1 : cout << "petit" ;
case n : cout << "moyen" ;

Lexpression 2*n+1 nest une


expression constante

}
ZAKRANI / MOO par UML / 13-14

35

Quiz (suite)

Quelles erreurs ont t commises dans chacun des


groupes dinstructions suivants :

3.

const int LIMITE=100;


int n ;
...
switch (n)
{ case LIMITE-1 : cout << "un peu moins" ;

OK

case LIMITE : cout << "juste" ;


case LIMITE+1 : cout << "un peu plus" ;
}

ZAKRANI / MOO par UML / 13-14

36

18