Conception de Programmes - IUT de Paris - 1ère année - 98-991 Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O. et au.

Slides:



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

POO par Jenny Benois-Pineau 25/03/2017.
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Programmation Orienté Objet en C++
Cours n° 7 Standard Template Library II.
Cours n° 6 Standard Template Library I.
Introduction au langage C++
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
Cours n° 8 Conception et Programmation à Objets
UML - Présentation.
POO.
C.
Introduction à la POO: Les classes vs les objets
Principes de programmation (suite)
Principes de la technologie orientée objets
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Standard Template Library (STL)
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é.
Bases de la programmation en C++
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Structures de données IFT-2000
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-2000
Structures de données IFT-10541
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Introduction au paradigme orienté-objet (suite)
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Un langage de programmation hybride
Chapitre 9 Les sous-programmes.
Introduction au C++ héritage / polymorphisme
Standard Template Library
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
INF1101 Algorithmes et structures de données
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000
Structures de données IFT-10541
Introduction à la programmation orientée objets
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 3 Polymorphisme I.
Héritage et composition
Structures des données
ALGORITHMIQUE ET PROGRAMMATION C
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.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Introduction à la programmation objet en C++
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Méthodes et outils de conception Introduction à la programmation Paramètre de retour Appel d’une fonction Portée des variables Définition Pourquoi les.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Les opérateurs L’amitié Les opérateurs Introduction
Les surcharges d'opérateurs
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
CSI2520 Un langage de programmation impérative et concurrente.
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.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
Initiation au JavaScript
Modélisation des documents: DTD et Schéma
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.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Transcription de la présentation:

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 C++ Un exemple de programme C++ Compilation et édition de liens Quelques éléments du langage C++

Conception de Programmes - IUT de Paris - 1ère année Objectifs du cours Programmation orientée objet Qualité logicielle Structuration des programmes Introduction au langage C++ Pratique de l’algorithmique

Conception de Programmes - IUT de Paris - 1ère année Organisation du cours Intervenants –Yann Chevaleyre –Jean-Pierre Dupuy –Kais Klai –Denis Poitrenaud –David Serrat Contrôle des connaissances –1 projet tutoré (à réaliser par binôme), –1 DST, –1 mini-projet sous la forme d’un TD à rendre. Matériel et logiciel –Visual C++ sous WNT, –g++ sous Linux.

Conception de Programmes - IUT de Paris - 1ère année Programmation Orientée Objet Objectifs –Correction des programmes –Réutilisation des composants logiciels –Adaptabilité des programmes Moyens –Structuration par les données –Encapsulation des données –Abstraction des données –Composition –Héritage –Polymorphisme –Ramasse-miettes Langages –Smalltalk, Eiffel, Ada 95, C++,...

Conception de Programmes - IUT de Paris - 1ère année Structuration par les données Principe –Associer aux types de données, les fonctions permettant de manipuler celles-ci. Remarque –C’est déjà le cas en C pour certains types de bases (les opérateurs arithmétiques, les fonctions de traitement des chaînes de caractères, etc …).

Conception de Programmes - IUT de Paris - 1ère année Encapsulation et abstraction des données L’accès aux données est réalisé par l’intermédiaire des fonctions On fait abstraction de l’implantation effective des données Appel (avec éventuellement des paramètres) fonction 1 fonction 2... fonction n data 1 data 2 data m Retour (avec éventuellement un résultat) type 1

Conception de Programmes - IUT de Paris - 1ère année Composition fonction 1... fonction n data 1 data m type 1 fonction 1... fonction n data 1 data m type k fct 1 fct 2... fct n

Conception de Programmes - IUT de Paris - 1ère année Le langage C++ Le C++ a été défini par Bjarne Stroustrup dans le début des années 80. Le C++ est normalisé (ANSI) depuis Presque tout le langage C fait partie du C++. Un livre de référence (disponible à la bibliothèque): –Le langage C++, Bjarne Stroustrup, International Thomson Publishing, 2 nde édition, 1996

Conception de Programmes - IUT de Paris - 1ère année Un premier programme C++ Définition d’un type de données et des fonctions associées class Date { public: void Init(int j, int m, int a=1999); void Inc(int = 1); int Jour() const; int Mois() const; int Annee() const; private: int jo, mo, an; };

Conception de Programmes - IUT de Paris - 1ère année #include void main(void) { Date d; d.Init(8, 3); d.Inc(); cout << d.Jour() << "/" << d.Mois << endl; d.Init(1, 1, 2000); cout << d.Jour() << "/" << d.Mois << endl; } Utilisation

Conception de Programmes - IUT de Paris - 1ère année La classe Date jo mo an Init(int, int, int) Inc(int) Jour () Mois() Annee() Date

Conception de Programmes - IUT de Paris - 1ère année void Date::Init(int j, int m, int a) { jo = j; mo = m; an = a; } int Date::Jour() const { return jo; // rend le jour de la date } etc... Définitions des fonctions

Conception de Programmes - IUT de Paris - 1ère année Compilation et Edition de liens Les fichiers sources ont l’extension.cpp Les fichiers d’entête ont l’extension.hpp Sous WNT: –Créer un projet de type « Console Application » –Indiquer les fichiers sources constituant le projet (par insertion ou édition) –Utiliser l’option « Build » du menu. Sous Linux –Utiliser la commande « g++ »

Conception de Programmes - IUT de Paris - 1ère année Quelques éléments de langage Commentaires a = 2 * b; // commentaire jusqu’au saut le ligne /* commentaire classique */ Déclarations de types enum Reponse {OUI, NON}; typedef char CH20[21]; struct Personne { int age; Reponse marie; CH20nom; }; Personne p;

Conception de Programmes - IUT de Paris - 1ère année Déclarations de variables void main() { int a; a = 5; int b = a; for (int i = 0; i < a; i++) b += 4; } Valeurs par défaut des paramètres void f(int, char = ‘a’, int = 10); f(1, ‘c’, 2); f(2, ‘z’); // f(2, ‘z’, 10); f(3); // f(3, ‘a’, 10);

Conception de Programmes - IUT de Paris - 1ère année Entrées/Sorties simples –iostream.h  le fichier définissant les classes correspondantes –cin, cout  les flux d’entrée et de sortie standards –>>, <<  les opérateurs de lecture et d’écriture –endl  saut de ligne (‘\n’) #include void main() { int i; char c; cout << "entrez un entier et un caractère" << endl; cin >> i >> c; cout << "i = " << i << "c = " << c << endl; }

Conception de Programmes - IUT de Paris - 1ère année Le mot réservé const –Indique qu’un identificateur doit garder une valeur constante. –Il est donc interdit d’y affecter une valeur : on peut uniquement l’initialiser. –Cette initialisation est obligatoire. const double p; // Erreur : constante non initialisée const double pi = ; // OK pi = ; // Erreur : interdit de changer de valeur double *p1 = π // Erreur : on peut modifier pi via p1 const double *p2 = π // OK double e = 2.7; p2 = &e; // OK *p2 = 2.72; // Erreur : p2 pointe sur une constante const double * const p3 = p2; // OK p3 = π // Erreur : interdit de changer de valeur

Conception de Programmes - IUT de Paris - 1ère année Paramètres const double puissance (const double, const double); –Le compilateur vérifie que les paramètres ne sont pas modifiés par la fonction. –const est peu utilisé dans ce cas car la fonction n’a de toute façon pas d’effet de bord car on a des paramètres passés par valeur. On évite juste certains bogues. void afficher (const Personne*); –Le compilateur vérifie que la personne pointée n’est pas modifiée. –On a la vitesse du passage par adresse et la sécurité du passage par valeur. En prime on évite certains bogues !