18
09/01/2016 1 Programmation Orientée Objet par C++ ZAKRANI Abdelali ENSAM – CASABLANCA Année universitaire 2013-2014 ZAKRANI / MOO par UML / 13-14 2 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 : 1010010010100011010101001010 « Affiche une fenêtre à l'écran » Peut signifier Langage binaire

Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

Embed Size (px)

Citation preview

Page 1: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

1

Programmation Orientée Objet

par C++

ZAKRANI Abdelali

ENSAM – CASABLANCA

Année universitaire 2013-2014

ZAKRANI / MOO par UML / 13-14 2

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 :

1010010010100011010101001010

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

Peut

signifier

Langage binaire

Page 2: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

2

ZAKRANI / MOO par UML / 13-14 3

Langage de programmation

Le compilateur permet de transformer votre code, écrit dans un

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

Le programme écrit

dans un langage de

programmation

Le

programmation

de traduction

traduit en

« binaire »

On obtient un

programme en binaire

que l’ordinateur

comprend:

101001001010001101

Les informaticiens ont créé des langages

intermédiaires, plus simples que le binaire.

Il existe aujourd'hui des centaines de langages

de programmation.

Compilateur

ZAKRANI / MOO par UML / 13-14 4

Langage de programmation C++

Niveaux

des

langages

Langage de haut niveau Plus simple et plus éloigné du

fonctionnement de la machine

Langage de bas niveau Plus complexe et plus proche du

fonctionnement de la machine

0110100110

0101011101

• Java

• C# .net

• Python

• Ruby

• C

• C ++

• Objective - C

• Assembleur

Binaire

Page 3: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

3

ZAKRANI / MOO par UML / 13-14 5

Histoire de C++

Bjarne Stroustrup

créateur 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

ZAKRANI / MOO par UML / 13-14 6

Langage de programmation C++

C++ = C +

Notion de classe

méthodes (ou fonction membre)

héritage

polymorphisme…

D’une façon simpliste: C++ est un sur-ensemble de C.

C++= C + améliorations + orienté objet

Page 4: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

4

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++.

ZAKRANI / MOO par UML / 13-14 7

Langage C++

ZAKRANI / MOO par UML / 13-14 8

Premier programme C++ directive de préprocesseur: inclure

la bibliothèque iostream

indique que vous allez utiliser l'espace de

noms std dans la suite du fichier de code

Commentaire qui s’étale

sur plusieurs ligne /* …*/

Commentaire sur une

seule ligne Tous les programmes

commencent par la

fonction main

Page 5: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

5

Cout suivi de l’opérateur d’insertion (<<)pour afficher des données à

l’écran

endl: end line provoque un retour à la ligne

ZAKRANI / MOO par UML / 13-14 9

Premier Programme C++

La fonction main() retourne un entier

Si la valeur 0 est retourné indique que le

programme s’est termine correctement

Comme toute fonction en c++, la

fonction main est délimité par { }.

Les instructions entre { et }

constitue un bloc

ZAKRANI / MOO par UML / 13-14 10

Second programme C++

Page 6: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

6

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.

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

ZAKRANI / MOO par UML / 13-14 12

Quelques règles d’écriture

Page 7: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

7

ZAKRANI / MOO par UML / 13-14 13

Cré

ati

on

d’u

n p

rogra

mm

e C

++

Prog1.cpp

Préprocesseur C++

Fichier temporaire

Compilateur

Prog1.s

Assembleur

Prog1.o

Éditeur de liens

Prog1.exe

1

2

3

4

Inclut les fichiers en-tête

Modules objets pour les fonctions

de la librairie

Fichier source

Le résultat est

toujours un fichier

source

Fichier objet

Les types 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.

ZAKRANI / MOO par UML / 13-14 14

Les types de base de C++

Page 8: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

8

Les entiers

ZAKRANI / MOO par UML / 13-14 15

Les types de base de C++

Les réels

ZAKRANI / MOO par UML / 13-14 16

Les types de base de C++

Page 9: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

9

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

Déclarations des variables

Les opé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 (<=, <, >=, >, ==, !=)

ZAKRANI / MOO par UML / 13-14 18

Opérateurs et expressions

Page 10: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

10

Les opérateurs logiques:

&& (ET logique)

|| ( OU logique)

! (NON logique)

L’opérateur relationnel: (? et :)

En C++, l’instruction:

ZAKRANI / MOO par UML / 13-14 19

Opérateurs et expressions

if ( a>b ) max = a ;

else max = b ; max= a>b ? a : b ;

ZAKRANI / MOO par UML / 13-14 20

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

Page 11: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

11

ZAKRANI / MOO par UML / 13-14 21

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 22

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

Page 12: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

12

4. Quel l’en-tête qui permet d’utiliser la

fonction sqrt() en C++?

a) Qmath

b) Cmath

c) Math

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

ZAKRANI / MOO par UML / 13-14 24

Quiz

Page 13: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

13

6. Quels résultats fournit le programme suivant :

ZAKRANI / MOO par UML / 13-14 25

QUIZ

A : i = 1 n = 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

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.)

ZAKRANI / MOO par UML / 13-14 26

Les instructions de contrôle

Page 14: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

14

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é" ;

ZAKRANI / MOO par UML / 13-14 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 ]

}

ZAKRANI / MOO par UML / 13-14 28

Les instructions de contrôle

Page 15: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

15

L’instruction do … while

Syntaxe:

do instruction

while (expression) ;

ZAKRANI / MOO par UML / 13-14 29

Les instructions de contrôle

L’instruction for

Syntaxe: for ([ expression_déclaration_1 ] ; [ expression_2 ] ; [ expression_3 ])

instruction

ZAKRANI / MOO par UML / 13-14 30

Les instructions de contrôle

Page 16: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

16

L’instruction break

ZAKRANI / MOO par UML / 13-14 31

Les instructions de branchement

inconditionnel

début tour 1

Bonjour

fin tour 1

début tour 2

bonjour

fin tour 2

début tour 3

bonjour

après la boucle

Le programme a affiché

début tour 3 et bonjour

puis i==3, il sort de la

boucle

L’instruction continue

ZAKRANI / MOO par UML / 13-14 32

Les instructions de branchement

inconditionnel

début tour 1

début tour 2

début tour 3

début tour 4

bonjour

début tour 5

bonjour

Le programme affiche

début tour 1 à 3 puis

i>=4, il affiche bonjour

Page 17: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

17

L’instruction goto

ZAKRANI / MOO par UML / 13-14 33

Les instructions de branchement

inconditionnel

début tour 1

Bonjour

fin tour 1

début tour 2

bonjour

fin tour 2

début tour 3

bonjour

après la boucle

Le programme a affiché

début tour 3 et bonjour

puis i==3, il se banche à

sortie

ZAKRANI / MOO par UML / 13-14 34

Exercices

Détecter le problème?

Détecter l’erreur?

Page 18: Programmation Orientée Objet par C++ Introduction 2015-2016.pdf

09/01/2016

18

Quelles erreurs ont été commises dans chacun des

groupes d’instructions suivants :

1.

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

else cout << "non ascendant" ;

2.

int n ;

...

switch (2*n+1)

{ case 1 : cout << "petit" ;

case n : cout << "moyen" ;

}

ZAKRANI / MOO par UML / 13-14 35

Quiz

L’expression 2*n+1 n’est une

expression constante

Il manque un point-virgule dans la

première instruction

if (a<b) cout << "ascendant« ;

Quelles erreurs ont été commises dans chacun des

groupes d’instructions suivants :

3.

const int LIMITE=100;

int n ;

...

switch (n)

{ case LIMITE-1 : cout << "un peu moins" ;

case LIMITE : cout << "juste" ;

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

}

ZAKRANI / MOO par UML / 13-14 36

Quiz (suite)

OK