Correction d Examen du Module POO : C++

Documents pareils
Introduction à l héritage en C++

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Programmation C++ (débutant)/instructions for, while et do...while

INFO-F-105 Language de programmation I Séance VI

Programmation stochastique

Cours d Algorithmique et de Langage C v 3.0

Cours 1: Java et les objets

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Introduction au pricing d option en finance

1.6- Génération de nombres aléatoires

Programme Compte bancaire (code)

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

et Programmation Objet

Claude Delannoy. 3 e édition C++

Avertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE

Introduction à C++ et à wxwidgets

Le langage C++ (partie I)

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Département Automatisation et Informatisation Année Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers


Programmation en C/C++

Logistique, Transports

Faculté des Sciences Mathématiques, Physiques et Naturelles de Tunis

Approche Contract First

Une introduction à Java

TP1 : Initiation à Java et Eclipse

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction au langage C

Projet de programmation (IK3) : TP n 1 Correction

Environnements de développement (intégrés)

IRL : Simulation distribuée pour les systèmes embarqués


650 S. S'abonner au Monde à partir de 1

MON GUIDE POUR CREER UN COMPTE ET REMPLIR UN FORMULAIRE I- Créer un compte sur le site Campus France Cameroun

Examen d informatique première session 2004

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

CHAPITRE V. Recherche et tri

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

DOSSIER DE 2014/2015

II. Modèle conceptuel le modèle entité-association

as Architecture des Systèmes d Information

COMPARAISONDESLANGAGESC, C++, JAVA ET

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Plan Pédagogique du cours

Cours d initiation à la programmation en C++ Johann Cuenin

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

DIRECTIVE CONCERNANT LES FRAIS DE DÉPLACEMENT ET LE REMBOURSEMENT DES DÉPENSES

Les structures. Chapitre 3

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Java Licence Professionnelle CISII,

DOSSIER D INSCRIPTION PÉDAGOGIQUE

Programmer en JAVA. par Tama

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TP1. Outils Java Eléments de correction

IUT ANNECY Département Mesures Physiques Cours d informatique Initiation au langage C

MASTER 2 MENTION DROIT DU PATRIMOINE, PARCOURS DROIT DES ASSURANCES

Création d objet imbriqué sous PowerShell.

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Notions fondamentales du langage C# Version 1.0

Sciences de l'information et de la communication. Enseignant-e-s. Année/Structure/Enseignements. H/sem.

PROJET 1 : BASE DE DONNÉES REPARTIES

Cours de C/C++ par la pratique. Hugues Talbot

Intitulé : Logistique & Transport

Comment lire et comprendre son relevé (bulletin) de notes

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE ABDELHAMID IBN BADIS MOSTAGANEM TUNISIE MAROC ALGERIE

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Le prototype de la fonction main()

Cours de Programmation Impérative: Zones de mémoires et pointeurs

- LOGICIEL DE SAISIE DES NOTES DE FRAIS

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Chapitre 1 : La gestion dynamique de la mémoire

Corrigé des exercices sur les références

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

TP : Gestion d une image au format PGM

Langage Java. Classe de première SI

Dérivation : Résumé de cours et méthodes

Module.NET 3 Les Assemblys.NET

Évolution du budget automobile des ménages français depuis

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

FRAIS DE VEHICULE 2012

I I H E M DOSSIER D INSCRIPTION

ROYAUME DU MAROC. Ministère de l Eductaion Nationale, de l Enseignement Supérieur de la Formation des Cadres et de la Recherche Scientifique

Chère cliente, cher client,

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Programmation système I Les entrées/sorties

Systeme d'exploitation

I. Introduction aux fonctions : les fonctions standards

Alfstore workflow framework Spécification technique

Transcription:

Université Mohammed Premier Faculté des Sciences d Oujda Dépt de Maths et Info. Année universitaire 2014/2015 Filière SMA (Semestre 5) Module : POO : Langage C++ Correction d Examen du Module POO : C++ Exercice 1 : (8 pts) Session Ordinaire Écrire les résultats de ce programme. Chaque résultat doit être justifié. #include <iostream> using namespace std ; #define cube(x) x*x*x Inline int CUBE(int X) { return X*X*X ; main() { int a = 1 ; int b = cube(a) ; int c = cube(a++); int f = cube(++a); cout <<"a ="<< a <<" b="<< b <<" c="<< c << " f="<< f <<endl ; int D = 2 ; int E = CUBE(D); int H = CUBE(D++); int K = CUBE(++D); cout <<"D ="<< D <<" E="<< E <<" H="<< H << " K="<< K <<endl ; system("pause"); Réponse 1 : a = 1 b = a * a * a = 1 b =1 et a = 1 c = (a++ * a++) * a++ = (1 * 1)* 1 = 1 c =1 et a = 4 f = (++a * ++a) * ++a = (6 * 6) * 7 = 252 f = 252 et a = 7 D = 2 E = CUBE(2) = (2 * 2)* 2 = 8 E = 8 et D = 2 H = CUBE(D++) = (2 * 2)* 2 = 8 H = 8 et D = 3 K =CUBE(++D) = (4 * 4)* 4 = 64 K = 64 et D = 4 Page1/5

Exercice 2 : (12 pts) Écrire un programme qui permet de : 1/ Créer une classe de base nommée Vehicule. Un Vehicule possède trois membres protégés : Annee_achat de type int ; prix_achat et prix_courant de type double ; Et les méthodes publiques : affiche() permet d afficher les trois membres : Annee_achat, prix_achat et prix_courant ; calculeprix() permet de calculer le membre prix_courant d un Vehicule à l aide de la formule suivante : prix_courant = (1.0 ( (2015 - Annee_achat) *.01 ) * prix_achat ; Vehicule(int Annee, double prix) qui joue le rôle du constructeur de la classe en question. 2/ Réaliser ensuite une classe nommée Camion dérivée publiquement de la classe Vehicule. Cette classe fille comprend le membre protégé : Volume de type int ; Et les méthodes publiques : affiche() afin que l affichage donne également le membre Volume ; calculeprix() permet de calculer le membre prix_courant d un Camion à l aide de la formule suivante : prix_courant = ( 1 ( 0.1 * Volume / 1000 ) ) * prix_achat ; Camion(int Annee, double prix,int Vol) qui joue le rôle du constructeur de la classe en question. 3/ De plus, définir une classe nommée Voiture dérivée publiquement de la classe mère Vehicule. Cette sous classe de sa part contient trois membres protégés : nombre_portes de type int ; puissance et kilometrage de type double. Elle va également redéfinir les méthodes suivantes : affiche() afin que l affichage donne également les trois membres nombre_portes, puissance et kilometrage; calculeprix() permet de calculer le membre prix_courant d une Voiture à l aide de la formule suivante : prix_courant = (1 - [ (2015 - Annee_achat) * 0.02 + 0.05 * kilometrage / 10000]) * prix_achat; Voiture (int Annee, double prix, int portes, double cv, double km) qui joue le rôle du constructeur de la classe en question. 4/ Enfin, écrire le programme principal qui permet d appeler Un objet de type Vehicule Page2/5

Deux objets de type Voiture Trois objets de type Camion Pour chaque objet, le programme principal va appliquer les méthodes affiche() et calculeprix(). Réponse 2 : #include <iostream> #include <vector> using namespace std; // ============================== Vehicules ================================== class Vehicule { public: Vehicule(int Annee, double prix){ Annee_achat = Annee ; prix_achat = prix ; prix_courant = prix ; protected: int Annee_achat ; double prix_achat ; double prix_courant ; ; void Vehicule::affiche() { cout <<"Annee d'achat : "<< Annee_achat<<", prix d'achat : "<< prix_achat << ", prix actuel : " << prix_courant << endl; void Vehicule::calculePrix() { double decote = (2015 - Annee_achat) *.01; // ============================== Camions =================================== class Camion : public Vehicule { public: Camion(int Annee, double prix, int Vol); protected: int Volume ; ; Page3/5

Camion::Camion(int Annee, double prix,int Vol) : Vehicule(Annee, prix) { Volume = Vol ; void Camion::affiche() { cout << " ---- Camion ----" << endl; Vehicule::affiche(); cout << " Volume : " << Volume << endl; void Camion::calculePrix() { double decote = 0.1 * Volume / 1000.0; // ================================ Voitures ================================= class Voiture : public Vehicule { public: Voiture(int Annee, double prix,int portes, double cv, double km); protected: int nb_portes ; double puissance ; double kilometrage ; ; Voiture::Voiture(int Annee, double prix,int portes, double cv,double km) : Vehicule(Annee, prix) { nb_portes = portes ; puissance = cv ; kilometrage = km ; void Voiture::affiche() { cout << " ---- Voiture ----" << endl; Vehicule::affiche(); cout << nb_portes << " portes, " << puissance << " CV, " << kilometrage << " km." << endl; Page4/5

void Voiture::calculePrix() { double decote = (2015 - Annee_achat) *.02; decote += 0.05 * kilometrage / 10000; // ============================== main() ===================================== int main() { Vehicule Vh1(2010, 10000.00); Vh1.calculePrix() ; Vh1.affiche() ; Voiture V1(2008, 147325.79, 5, 180.0,12000); V1.calculePrix() ; V1.affiche(); Voiture V2(1995, 250000.00, 2, 280.0,81320); V2.calculePrix() ; V2.affiche() ; Voiture V3(2011, 7327.30, 3, 65.0,3000); V3.calculePrix() ; V3.affiche(); Camion C1(1982, 1230673.90,250); C1.calculePrix() ; C1.affiche(); Camion C2(2002, 4321098.00,1300); C2.calculePrix() ; C2.affiche(); system("pause"); return 0; Page5/5