Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLucille Lebreton Modifié depuis plus de 9 années
1
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 C++ Un exemple de programme C++ Compilation et édition de liens Quelques éléments du langage C++
2
Conception de Programmes - IUT de Paris - 1ère année - 98-992 Objectifs du cours Programmation orientée objet Qualité logicielle Structuration des programmes Introduction au langage C++ Pratique de l’algorithmique
3
Conception de Programmes - IUT de Paris - 1ère année - 98-993 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.
4
Conception de Programmes - IUT de Paris - 1ère année - 98-994 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++,...
5
Conception de Programmes - IUT de Paris - 1ère année - 98-995 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 …).
6
Conception de Programmes - IUT de Paris - 1ère année - 98-996 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
7
Conception de Programmes - IUT de Paris - 1ère année - 98-997 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
8
Conception de Programmes - IUT de Paris - 1ère année - 98-998 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 1989. 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
9
Conception de Programmes - IUT de Paris - 1ère année - 98-999 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; };
10
Conception de Programmes - IUT de Paris - 1ère année - 98-9910 #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
11
Conception de Programmes - IUT de Paris - 1ère année - 98-9911 La classe Date jo mo an Init(int, int, int) Inc(int) Jour () Mois() Annee() Date
12
Conception de Programmes - IUT de Paris - 1ère année - 98-9912 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
13
Conception de Programmes - IUT de Paris - 1ère année - 98-9913 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++ »
14
Conception de Programmes - IUT de Paris - 1ère année - 98-9914 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;
15
Conception de Programmes - IUT de Paris - 1ère année - 98-9915 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);
16
Conception de Programmes - IUT de Paris - 1ère année - 98-9916 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; }
17
Conception de Programmes - IUT de Paris - 1ère année - 98-9917 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 = 3.1416; // OK pi = 3.14159; // 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
18
Conception de Programmes - IUT de Paris - 1ère année - 98-9918 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 !
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.