Cours Partie I EMSI Poo C++ [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Programmation Orientée Objet (OOP) Mise en œuvre

C++

G. Cherradi 2020 https://www.researchgate.net/profile/Ghyzlane_Cherradi

OBJECTIFS GÉNÉRAUX

01

Ce cours donnera un aperçu des concepts et des paradigmes sous tendant les langages de programmation;

02

Ce cours vise à donner à l’étudiant(e) une connaissance appliquée de la programmation et de la philosophie orientée objet

03

Introduire/Maîtriser le langage C++ (syntaxe, encapsulation, héritage, polymorphisme, templates, exceptions, etc.)

G.CHERRADI

Programmation Orientée objet (POO)

2

PROGRAMME S1 → Introduction (produit logiciel, programmation). → Paradigmes et langages de programmation → Type de donnée abstrait (ADT) → Notion d’objet https://www.youracclaim.com/organizations/ibm/badges → Introduction à C++ ( objet, class, encapsulation, héritage, polymorphisme, interface, etc.) Contrôle des connaissances (Quiz) + Badges S2 → Meta-programmation , foncteur , C++/C#

https://www.youracclaim.com/organizations/ibm/badges

→ Modèle évènementiel windows : patterns → Programmation windows C# G.CHERRADI

Programmation Orientée objet (POO)

3

PRODUCTION LOGICIEL Qu’est qu’un logiciel? Application (store), SiteWeb, jeux, microcontrôleur, etc.

Produire Code source, exécutable.

//www.ibm.com/skills/badges/

Mais avant le codage ???

4

QU’EST CE QUE LA PROGRAMMATION? Définissons la «programmation» au sens large comme l'activité qui commence par une spécification et conduit à sa solution sur un ordinateur.

Expressions des besoins

Langage de modélisation (ex: Merise, UML)

Langage de programmation (ex: C,C++, java, python)

Outil de traduction Compilateur /interpréteurs

Logiciel

Client inscrivent leur réflexion dans des modèles de pensée théoriques appelés paradigmes.

inscrivent leur réflexion dans des modèles de pensée théoriques appelés paradigmes.

G.CHERRADI

Programmation Orientée objets (POO)

5

CYCLES DE VIE

//www.ibm.com/skills/badges/

6

QU’EST CE QUE LA PROGRAMMATION? Programmer, c'est donc :

Observer le réel en construire un modèle en choisissant une vision ou domaine d'interprétation (application d'un paradigme).

Traduire ce modèle pour une machine via un langage dit «Langage de programmation».

G.CHERRADI

Programmation Orientée objets (POO)

7

LES PARADIGMES DE LA PROGRAMMATION Paradigme - Modèle théorique de pensée qui oriente la recherche et la réflexion scientifiques (Larousse). - Un outil de pensée, une manière de voire les choses (A. Comte-Sponville).

Si le seul outil que vous avez est un marteau, vous verrez tout problème comme un clou. [Abraham Marslow]

Paradigme de programmation - Un outil de pensée qui oriente la façon d'analyser, de concevoir et de coder un programme (G. Caplat). - Un paradigme de programmation est une façon d'approcher la programmation informatique et de traiter les solutions aux problèmes et leur formulation dans un langage de programmation approprié. Il s'oppose à la méthodologie, qui est une manière d'organiser la solution des problèmes spécifiques du génie logiciel.

Tout comme il existe plusieurs sciences, chacune proposant sa vision des choses, il existe plusieurs paradigmes de programmation, chacun supportant une façon de décrire des comportements .

G.CHERRADI

Programmation Orientée objets (POO)

8

LES PARADIGMES ET LANGAGES DE PROGRAMMATION

-

Il y a beaucoup moins de paradigmes que de langages de programmation,

-

Chaque “paradigme” permet la programmation facile d’un certain niveau de interactivité;

-

Chaque paradigme est défini par un ensemble de concepts de programmation;

Langages



Paradigmes -

Un paradigme = un ensemble de concepts;

Concepts

G.CHERRADI

Programmation Orientée objets (POO)



9

LES LANGAGES DE PROGRAMMATION 1ère génération: langage machine, notation directement compréhensible par la machine.

2ème génération: langage d'assemblage, les instructions du processeur et les divers registres disponibles sont représentés par des mots clés mnémotechniques (1950).

3ème génération : langages de haut niveau, langages procéduraux et structurés - Besoins de gros programmes de calcul numérique ==> FORTRAN (1956) - Besoin d'un langage permettant d'exprimer et de structurer aisément les constructions algorithmiques : Algol 60, Algol 68, Pascal (1971), Modula-2 (1983), C (1972), - Besoins de simulation du monde réel : Simula-67, Smalltalk (1972, 1980), Eiffel, C++ (1986), Java (2000)

4ème génération : langage de programmation permettant par exemple l'interrogation de base de données avec une syntaxe proche du langage humain (SQL, Postscript, metafont). 5ème génération :des langages destinés à résoudre des problèmes à l'aide de contraintes, et non d'algorithmes écrits. Ces langages reposent beaucoup sur la logique. Parmi les plus connus, on trouve Prolog, OPS5 et Mercury. G.CHERRADI

Programmation Orientée objets (POO)

10

LES LANGAGES DE PROGRAMMATION

https://www.tiobe.com/tiobe-index/

TIOBE Index for September 2020. September Headline: Programming Language C++ is doing very well.

C

G.CHERRADI

Programmation Orientée objets (POO)

11

LES PARADIGMES DE PROGRAMMATION

Procédurale

Modulaire Programmation procédurale

Problème de base Abstraction

Programmation structurée

Programmation impérative l'algorithme s'exprime par des ordres séquentiels d’exécution des instructions

Instruction 1 Instruction 2 ….. Instruction 20 Goto: instruction 2 ….. Instruction 1000

Résultat

G.CHERRADI

Programmation Orientée objets (POO)

12

LA PROGRAMMATION PROCÉDURALE (STRUCTURÉE) Procédurale -

-

Basée sur des instructions/commandes: « fait quelque chose » – Exemples: Fortran, COBOL, Pascal, C, etc...

Basée sur le concept de procédure/fonction ou routine ou sous programme. Les sous-programmes utilisent des variables locales et agissent sur des arguments fournis explicitement en paramètre, par valeur ou par référence. Un sous programme peut être appelé à partir d’un autre sous-programme procédure ou à partir de lui même (récursivité).

Modulaire Abstraction

Structures de Données + Procédures = Programme //Structure domino Typedef struct { Int M1; // marque droite Int M2; // marque gauche } domino;

G.CHERRADI

bool est_double (Domino*d){ Return (d->M1==d->m2); } Int main (void ){ Domino*o; Bool a =est_double(o); } Programmation Orientée objets (POO)

13

LA PROGRAMMATION PROCÉDURALE (STRUCTURÉE) Procédurale

# include Données const int taille_max=100; float vecteur [taille_max]; int top=0; Fonctions bool pile_vide() bool pile_pleine () void initialiser_pile () void inserer_pile (float valeur) float enlever_pile()

Modulaire Abstraction { return (top ==0); } { return (top==taille_max); { top =0;} { vecteur[top]=valeur; top+=1;} {return vecteur[top]; top-=1;}

Utilisation void main(){ initialiser_pile (); inserer_pile (5.2f); inserer_pile (3.2f); while (!pile_vide()) { cout