Programmation Initiation Aux Langages C et C++ (3) Bruno Permanne 2006.

Slides:



Advertisements
Présentations similaires
La boucle for : init7.c et init71.c
Advertisements

Cours de C – Séance dexercices 12 Octobre Exercice 5 Idem quexercice 1 : lire une ligne au clavier Sans limitation de la longueur de la ligne (utilisez.
Introduction au Langage C,C++
Erratum C Surcharge For(int x=0; … 2.
Rappels C.
Cours n° 7 Standard Template Library II.
Cours n° 6 Standard Template Library I.
Le langage C++ Les boucles.
Introduction au langage C++
Patrick Reuter maître de conférences
Responsables : Joël Falcou et Jean-Thierry Lapresté
Cours n° 9 Conception et Programmation à Objets
Cours n° 8 Conception et Programmation à Objets
POO.
la programmation en langage C
Diffusion Nationale TOULOUSE -Avril 2006 STSWEB Structures : Divisions et groupes Modifier une division.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
Nous allons vous présenter: - Photoshop - Algorithme et programmation
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Bibliothèque standard du C++
Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Programmation Initiation Aux Langages C et C++ (2) Bruno Permanne 2006.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Structures de données IFT Abder Alikacem Espace de nommage Département d’informatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Espace de nommage Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Conteneurs STL.
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
Un langage de programmation hybride
Package IFT1025 Jian-Yun Nie.
8PRO100 Éléments de programmation Les types composés.
Introduction au C++ héritage / polymorphisme
Standard Template Library
Héritage Lhéritage permet de spécialiser une classe en définissant une relation de type « est une sorte de ». #include comptebancaire.h class CompteEpargne.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 4 Polymorphisme II.
Une introduction à Java
Structures de données IFT-10541
Formation C++. Hello World ! #include /* Commentaire sur plusieurs lignes */ int main() { //Affiche hello world std::cout
Introduction à la programmation orientée objets
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Introduction Semaine 1 Département d’informatique et de génie logiciel Édition Septembre 2009.
Faculté Polytechnique de Mons
2.1 - Historique Chapitre 2 : Introduction au langage C++
Programmer en langage c
La notion de type revisitée en POO
Héritage multiple En langage C++, il est possible d’utiliser l’héritage multiple. Il permet de créer des classes dérivées à partir de plusieurs classes.
GESTION ET TRAITEMENT DES ERREURS
Introduction à la programmation objet en C++
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Les opérateurs L’amitié Les opérateurs Introduction
Les types composés Les enregistrements.
Les surcharges d'opérateurs
ISBN Chapitre 10 L'implémentation des sous- programmes.
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
Conception de Programmes - IUT de Paris - 1ère année Cours 2 – Références et passage de paramètres Les Références –Introduction aux références.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O. et au.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Introduction à la programmation objet avec java
Ecrire 10 fois "Bonjour" sur 10 lignes différentes
1 Listes des méthodes de la classe string, et exemples.
Les flux en C++ Les flux d’entrées sorties Les flux standards.
Int 10. Int 6.
Transcription de la présentation:

Programmation Initiation Aux Langages C et C++ (3) Bruno Permanne 2006

Programmation Sommaire Programmation Orientée Objet Programmation Orientée Objet sans objet Programmation Orientée Objet avec objet Programmation Evènementielle Bruno Permanne 2006

Programmation Orientée Objet Introduction Un objet est une sorte de grande structure Il regroupe les données et les traitements relatifs aux différents aspects d'une même fonctionnalité. Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple Définissons un objet très simple nommé Tirelire Cet objet sera défini par: Le nombre de pièces qu'il peut contenir (donnée de construction) Le fait qu'on puisse ajouter des pièces Le fait qu'on doive le casser pour récupérer les pièces ConstruireTirelire CasserTirelire AjouterPieces Tirelire NbPieces Taille Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation classique entête #include <cstdlib> #include <iostream> using namespace std; void NouvelleTirelire(int); void AjouterPieces(int); void CasserTirelire(void); int Taille, NbPieces; Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation classique, fonctions void NouvelleTirelire(int t) { Taille=t; NbPieces=0; cout<<"Nouvelle tirelire vide"<<endl; } void AjouterPieces(int n) if (n<Taille) NbPieces+=n; cout <<n<<" Pieces ajoutees"<<endl; else cout <<"tirelire pleine!"<<endl; void CasserTirelire(void) cout <<"La tirelire contenait: "<<NbPieces<<" Pieces"<<endl; Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation classique, fonctions int main(int argc, char *argv[]) { NouvelleTirelire(50); AjouterPieces(5); AjouterPieces(10); CasserTirelire(); system("PAUSE"); return EXIT_SUCCESS; } Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation classique, exécution Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation classique, critique Cette approche n'est pas encapsulée Car on peut quand même connaître et/ou modifier la taille et le nombre de pièces sans faire appel aux fonctions que nous avons créées. Car ces variables sont de portée globale C'est un problème si le programme est de grande taille. Il faut absolument cacher les variables internes de la tirelire D'où l'approche objet Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation objet entête, et classe #include <cstdlib> #include <iostream> using namespace std; class Tirelire { private: int Taille, NbPieces; // données membres public: Tirelire(int); // prototype constructeur void AjouterPieces(int); // prototype méthode ~Tirelire(); // prototype destructeur }; Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation objet, méthodes Tirelire::Tirelire(int t) // constructeur { Taille=t; NbPieces=0; cout<<"Nouvelle tirelire vide"<<endl; } void Tirelire::AjouterPieces(int n) // méthode if (n<Taille) NbPieces+=n; cout <<n<<" Pieces ajoutees"<<endl; else cout <<"tirelire pleine!"<<endl; Tirelire::~Tirelire(void) // destructeur cout <<"La tirelire contenait: "<<NbPieces<<" Pieces"<<endl; Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation objet, instanciation statique int main(int argc, char *argv[]) { Tirelire MaTirelire(50); // l'objet est créé MaTirelire.AjouterPieces(5); MaTirelire.AjouterPieces(10); MaTirelire.~Tirelire(); //l'objet n'est pas détruit system("PAUSE"); return EXIT_SUCCESS; } // l'objet est détruit Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation objet, instanciation dynamique int main(int argc, char *argv[]) { Tirelire* Matirelire=new Tirelire(50); // l'objet est créé MaTirelire->AjouterPieces(5); MaTirelire->AjouterPieces(10); delete MaTirelire(); // l'objet est détruit system("PAUSE"); return EXIT_SUCCESS; } Retour sommaire Bruno Permanne 2006

Programmation Orientée Objet Exemple, programmation objet, autres concepts Surdéfinition (ou surcharge) de méthode Surdéfinition d'opérateurs Héritage, classes amies, classes virtuelles pures Patrons de classes Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés S'applique à windows, linux, unix, OSx, etc. Des objets reçoivent des données (exemple objet d'affichage) Des objets provoquent l'exécution de méthodes (boutons) A l'intérieur des méthodes, la programmation est séquentielle Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple Créons une application affichant le texte "HelloWorld" quand on appuie sur un bouton On lance d'abord wxDevCPP On fait FichierNouveauProjet On choisis WxWidgets Dialog, puis name: HelloWin, puis projet C++ Faire ok, sauvegarder le projet puis create Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple On obtient la fenêtre suivante: Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple On clique sur Static Text à droite puis dans la fenêtre HelloWin: Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple On Peut choisir une taille de caractères plus grande de l'objet StaticText par la propriété (colonne de gauche) FontEditFont: Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple Sur le même principe, on ajoute un bouton, dans la propriété Label du bouton,on peut écrire par exemple Exécuter Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple Dans l'onglet Events (évènements) du bouton AddNewFunction, la méthode WxButton1Click est crée. Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple On la retrouve dans le fichier HelloWinDlg.cpp (onglets du haut) comme une nouvelle méthode de l'objet fenêtre HelloWinDlg Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple La méthode HelloWinDlg ::WxButton1Click sera donc appelée quand le bouton Exécuter sera clické. Dans cette méthode, on va écrire le code qui permettra l'affichage du message souhaité "Hello World" Le résultat doit ressembler à cela void HelloWinDlg::WxButton1Click(wxCommandEvent& event) { // insert your code here WxStaticText1->SetLabel("Hello World !"); } Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple Voilà le travail effectué. Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple On compile: Retour sommaire Bruno Permanne 2006

Programmation Evènementielle Et objet des systèmes fenêtrés, exemple On appuie sur le bouton Exécuter : Retour sommaire Bruno Permanne 2006

Programmation Fin de la troisième partie Bruno Permanne 2006