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

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Premier programme en C :
POO par Jenny Benois-Pineau 25/03/2017.
Les fonctions A quoi ça sert ?
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++
Programmation Orienté Objet en C++
Cours n° 1 Présentation du langage C++
Le langage C++ Les types structurés
C++ 6ème cours Patrick Reuter maître de conférences
Cours n° 8 Conception et Programmation à Objets
C.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la POO: Les classes vs les objets
Langage C Licence Informatique 3ème année
Principes de programmation (suite)
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Programmation orientée objet
TRAITEMENT DE STRUCTURES
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
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é.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
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-2000
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
CSI1502 Principes fondamentaux en conception des logiciels
C++ : variables Déclaration de variables
Procédures et fonctions
Plan cours La notion de pointeur et d’adresse mémoire.
Faculté Polytechnique de Mons
2.1 - Historique Chapitre 2 : Introduction au langage C++
La notion de type revisitée en POO
Les adresses des fonctions
ALGORITHMIQUE ET PROGRAMMATION C
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.
Cours n° 1 Présentation du langage C++
Tutorat en bio-informatique
Introduction à la programmation objet en C++
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
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
CSI2520 Un langage de programmation impérative et concurrente.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
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.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
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.
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.
Héritage Conception par Objet et programmation Java
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 «
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
PRO-1027 Programmation Scientifique en C
Langage de Programmation Orientée Objet : C++
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.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
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++ Quelques éléments du langage C++ –Déclaration de type et de variable –Constantes –Entrées/sorties simples –Les types bool et string Appel de fonction et pile d’exécution

Conception de Programmes - IUT de Paris - 1ère année Objectifs du cours Qualité logicielle –Correction, rapidité –Extensiblité, réutilisabilité, –... Structuration des programmes –Fonction, fichier, –Module, classe,... Programmation orientée objet Introduction au langage C++

Conception de Programmes - IUT de Paris - 1ère année Organisation du cours Intervenants –Marie-José Caraty (Td et cours) –Jean-Pierre Dupuy (Td) –Denis Poitrenaud (Td et cours) –Mikal Ziane (Td) Contrôle des connaissances –2 Projets 2 * coef. 1 –DSTcoef. 3 Compilateurs –Visual C++ sous Windows NT, –g++ sous Linux.

Conception de Programmes - IUT de Paris - 1ère année Programmation Orientée Objet Objectifs –Initiation à la conception –Correction des programmes –Réutilisation des composants logiciels –Extensibilité 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, Java, C++,...

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, 3 ème édition, 1999

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 Les constantes (mot réservé const ) –Déclaration de constantes syntaxe: const = exemple: const double pi = ; –Indique qu’un identificateur doit garder une valeur constante. pi = ; // Erreur : interdit de changer de valeur –Il est donc interdit d’y affecter une valeur : on peut uniquement l’initialiser et cette initialisation est obligatoire. const double pi; // Erreur : constante non initialisée –C’est le compilateur qui réalise ces vérifications –Avantage par rapport aux macros: le contrôle de type

Conception de Programmes - IUT de Paris - 1ère année Les constantes et les pointeurs –Un pointeur vers une variable ne peut pointer vers une constante const double pi = ; double* p1 = π // Erreur : on peut modifier pi via p1 –Déclaration de pointeur vers une constante const double* p2 = π // OK double e = 2.7; p2 = &e; // OK *p2 = 2.72; // Erreur : p2 pointe sur une constante –Déclaration de pointeur constant double* const p3 = &e; // OK *p3 = 2.72; // OK p3 = π // Erreur : p3 est une constante –Déclaration de pointeur constant vers une constante const double* const p4 = π // OK *p4 = ; // Erreur : p4 pointe sur une constante p4 = π // Erreur : p4 est une constante

Conception de Programmes - IUT de Paris - 1ère année Paramètres constants 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, de toute façon, la fonction n’a pas d’effet de bord car les paramètres sont 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 !

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, cerr  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 type bool –Type de base spécifique au C++ –2 valeurs possibles : true et false –Toute expression conditionnelle (comme i==0 ) renvoie un bool Le type string –Type de la bibliothèque standard du C++ (STL) –Chaînes de caractères à longueur variable –Usage simplifié (par rapport à char* ) –Nombreuses fonctions disponibles

Conception de Programmes - IUT de Paris - 1ère année #include using namespace std; void main() { string s1; // initialisée à "" (chaine vide) cin >> s1; // saisie cout << "s1 = " << s1 << endl; // affichage string s2 = "abcd"; // initialisée à "abcd" cout << "s2 = " << s2 << endl; if (s1 == s2) // comparaison cout << "s1 == s2" << endl; else if (s1 < s2)// comparaison cout << "s1 < s2" << endl; else cout s2" << endl;

Conception de Programmes - IUT de Paris - 1ère année int i; for(i=0; i<s1.length(); i++) // longueur cout << s1[i] << s1[i]; // lecture d'un caractère cout << endl; for(i=0; i<s1.length(); i++) s1[i] = 'a'; // affectation d'un caractère cout << "s1 = " << s1 << endl; s1 = s2; // affectation s1 = s1 + s2; // concaténation cout << "s1 = " << s1 << endl; char s[10]; strcpy(s, s1.c_str()); // conversion en const char* }

Conception de Programmes - IUT de Paris - 1ère année Autres fonctions disponibles empty capacity append assign insert erase replace copy swap find compare... Attention, ces fonctions (comme la fonction length ) doivent être appelées avec une syntaxe particulière: string s = "une chaine"; cout << s.length();

Conception de Programmes - IUT de Paris - 1ère année Les variables et la gestion de la mémoire Au lancement d’un programme –Le code est chargé (code segment) –L’espace mémoire nécessaire pour stocker les variables globales est alloué (data segment) –Les variables globales qui le nécessitent sont initialisées –La fonction main est appelée A chaque appel de fonction –L’espace mémoire nécessaire pour stocker les paramètres et les variables locales est alloué (stack segment) –Les paramètres sont initialisés par recopie des valeurs des paramètres effectifs –Les variables locales qui le nécessitent sont initialisées Au retour de la fonction –L’espace mémoire alloué à l’appel est désalloué

Conception de Programmes - IUT de Paris - 1ère année Pile d'exécution: fonctions sans paramètres #include void g(); void main() { double pi = 3.14; cout << "pi = " << pi << endl; g(); cout << "pi = " << pi << endl; } void g() { double pi = ; cout << "pi = " << pi; } Exécution: pi = pi = pi =

Conception de Programmes - IUT de Paris - 1ère année Evolution de la pile d'exécution L’espace mémoire accessible par les instructions d’une fonction est limité aux paramètres et variables locales de la fonction (et aux variables globales) global main pi: 3.14 entrée dans main global main pi: 3.14 g pi: entrée dans g global main pi: 3.14 après le retour de g

Conception de Programmes - IUT de Paris - 1ère année Pile d'exécution: paramètres valeurs #include void g(int); void main() { float pi = 3.14; int a; cout << "pi = " << pi << endl; cout << "entrez un entier : "; cin >> a; g(a); cout << "pi = " << pi << endl; } void g(int x) { float pi = ; cout << x << " * pi = " << x*pi << endl; } Exécution : pi= entrez un entier : 2 2 * pi= pi =

Conception de Programmes - IUT de Paris - 1ère année Evolution de la pile d'exécution global main pi:3.14 a:? entrée dans main global main pi:3.14 a:2 après la saisie de a global main pi:3.14 a:2 entrée dans g g x:2 pi: global main pi:3.14 a:2 après le retour de g

Conception de Programmes - IUT de Paris - 1ère année Pile d'exécution: paramètres pointeurs #include void saisie (float*); void main() { float pi = 3.14; cout << "pi = " << pi << endl; saisie(&pi); cout << "pi = " << pi << endl; } void saisie(float* px) { cout << "*px = " << *px << endl; cout << "entrez un nombre : "; cin >> *px; cout << "*px = " << *px << endl; } Exécution: pi = *px = entrez un nombre: *px = pi =

Conception de Programmes - IUT de Paris - 1ère année Evolution de la pile d'exécution global main pi:3.14 entrée dans main global main pi:3.14 entrée dans saisie saisie px: global main pi: après la saisie de (*px) saisie px: global main pi: après le retour de saisie px "pointe" sur pi