Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E



Documents pareils
Programmation Objet - Cours II

Le langage C. Séance n 4

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

TP1 : Initiation à Java et Eclipse

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

TP : Gestion d une image au format PGM

Créer le schéma relationnel d une base de données ACCESS

FACTURATION. Menu. Fonctionnement. Allez dans le menu «Gestion» puis «Facturation» 1 Descriptif du dossier (onglet Facturation)

Prezi. Table des matières

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

FEN FICHE EMPLOIS NUISANCES

Mise à jour d avast! et de vos logiciels Ciel

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C


Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Rapport financier électronique

Ces Lettres d informations sont envoyées aux extranautes inscrits et abonnés sur le site assistance (voir point N 3).

TP, première séquence d exercices.

Algorithmique et Programmation, IMA

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

Sélection du contrôleur

Tp 1 correction. Structures de données (IF2)

INSTALLATION DBSWin En réseau

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

< Atelier 1 /> Démarrer une application web

Utiliser un tableau de données

Ingénérie logicielle dirigée par les modèles

Guide de l utilisateur Communauté virtuelle de pratique en gestion intégrée des risques

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

Guide d utilisation du contrôle parental FreeAngel (version 0.87)

v Sygic, a.s. All rights reserverd. Manuel utilisateur

GUIDE Excel (version débutante) Version 2013

GOL502 Industries de services

Notice de présentation. La mise à jour de la référence bancaire sous TelePAC

Guide d utilisation des services My Office

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Devenez un véritable développeur web en 3 mois!

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

EXCEL TUTORIEL 2012/2013

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Manuel. Administration P.CONSEIL. 12 avril Statut :

Recherche dans un tableau

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

Gestion des Factures

Notions fondamentales du langage C# Version 1.0

Manuel utilisateur Portail SAP

TD/TP 1 Introduction au SDK d Android

Programmation Web. Madalina Croitoru IUT Montpellier

Logiciel de facturation (ASP) pour les distributeurs de combustibles

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Comment créer et utiliser une fonction

Lycée polyvalent Langevin-Wallon Champigny sur Marne Val de Marne

Préparation à l installation d Active Directory

Utilisation d objets : String et ArrayList

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Introduction à la présentation graphique avec xmgrace

Manuel utilisateur Réservation d un Court via Internet. Procédure PC/Tablette/Smartphone

Alice Sécurité Enfants (version )

TD3: tableaux avancées, première classe et chaînes

Outils pour les réseaux de neurones et contenu du CD-Rom

Manuel d utilisation de la messagerie.

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Traduction des Langages : Le Compilateur Micro Java

Esterel The french touch star touch esterel advance

Édu-groupe - Version 4.3

Taxe de séjour - Manuel de l utilisateur. Déclaration en ligne. Logiciel 3D Ouest

Guide des fonctions avancées de mywishtv

GUIDE DE PRISE EN MAIN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Comment créer une facture

Assistant d e tablissement de Tableaux

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

3 : créer de nouveaux onglets dans Netvibes Cliquer sur le bouton «+» et renommer le nouvel onglet (par exemple Encyclopédies en ligne)

Super HUD- Guide Utilisateur

Algorithmique et programmation : les bases (VBA) Corrigé

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Utilisation du logiciel Epson Easy Interactive Tools

Manuel de l utilisateur à l intention des candidats externes

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Contrôle Parental Numericable. Guide d installation et d utilisation

Création du projet : 1 sur 13

PROCÉDURE ÉLECTRONIQUE DE REMISE DE NOTES

OCL - Object Constraint Language

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

Guide d utilisation pour

Acides et bases. Acides et bases Page 1 sur 6

Programmation en Java IUT GEII (MC-II1) 1

MES PREMIERS PAS SUR DITES «CHEESE»

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Configuration de la Borne Interactive

TP1 - Prise en main de l environnement Unix.

Transcription:

EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communication Cours Informatique II (SV) Jamila Sam ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E Règles et recommandations : 1. La série est à réaliser individuellement. L échange d informations est strictement interdit (y compris l échange de documents). 2. La série doit impérativement être réalisée sur les terminaux des salles CO020-023 et sur votre propre compte. Il ne doit y avoir qu un seul login sur votre compte durant le temps de la série notée. Instructions Max 1h15 Max 80 points (dont 10 en bonus) Série notée Sujet 1 1. Dans un navigateur, ouvrez la page donnee le jour du test.html suivez scrupuleusement les instructions qui apparaissent. 2. Vous pouvez ouvrir à nouveau le navigateur une fois ces manipulations faites, pour consulter la page web du cours. 3. Pour RENDRE la série notée, en fin d examen : (a) Cliquez à nouveau sur le lien série notée et allez au point 3 des instructions. Le menu qui apparaît comporte déjà le nom du fichier à rendre. (b) Pour envoyer un fichier, cliquez sur le bouton Browse correspondant au nom du fichier et sélectionnez le fichier en question dans la liste qui vous est proposée. Cliquez ensuite sur le bouton Envoyer. Les fichiers suivants sont à envoyer, même si non abordés : pharmacie.cc, dessin.cc Pour terminer, n oubliez pas de VALIDER VOTRE ENVOI. 3. Vous pouvez amener votre propre clavier, mais il vous appartient de tester avant la série que ce matériel fonctionne correctement. 4. Il n est pas permis : d utiliser du matériel électronique, d envoyer des emails, de vous connecter sur une autre machine ou d imprimer pendant la durée de la série notée. 5. Documents autorisés: les documents du cours (transparents, séries, corrigés). Il vous est possible de consulter cette documentation, et seulement celle-là, en ligne. 1 livre de référence sur le langage C++, au plus 100 feuilles de notes personnelles. En cas de doute, demandez l avis de l assistant responsable. Les corrigés dans anciens tests ne sont pas autorisés. 6. Il est impératif de mettre vos numéros SCIPER en commentaire au début de chacun de vos fichiers. 7. Vous commenterez les parties délicates de votre code (ceci peut-être fait en anglais). 8. Lisez attentivement chaque question de façon à ne faire que ce qui vous est demandé, et servezvous de l exemple de fonctionnement accompagnant les exercices pour vérifier votre solution. Si l énoncé ne vous paraît pas clair, ou si vous avez un doute, demandez des précisions à l un des assistants. 9. Si pour des raisons de langue, vous ne comprenez pas bien ce qui vous est demandé, n hésitez pas à faire appel à un assistant pour obtenir des clarifications. 10. Sauf mention explicite, les affichages ne doivent pas obligatoirement correspondre à ceux donnés en exemple de fonctionnement; les mêmes informations doivent être affichées, mais le format peut être différent. 11. La série comporte 2 exercices indépendants. 12. Le fait que le code soit compilable ou exécutable compte dans la notation mais ne constitue pas le seul critère. La correction tiendra compte également des solutions approchées.

À LA PAGE SUIVANTE SUITE À LA PAGE SUIVANTE SUITE

Exercice 1 : Pharmacie (70 points) Une pharmacie souhaite que vous l aidiez à modéliser les solutions chimiques qu elle manipule. Vous prendrez note des directives suivantes avant de commencer à coder : 1. Vous travaillerez dans le fichier pharmacie.cc et n utiliserez pas d autres fichiers. Quelques éléments y sont déjà fournis : un type énuméré InflDegre permettant de modéliser le danger d inflammabilité de certaines solutions; un programme principal auquel votre code devra strictement se conformer. Ce programme ne doit pas être modifié d une autre façon que ce que l énoncé vous suggère. 2. Vous compilerez sous la norme C++11. Suite de l énoncé à la page suivante 3. Il n est pas nécessaire d externaliser les définitions des méthodes en dehors de la classe. 4. Vous implémenterez des méthodes get et set uniquement si elles s avèrent vraiment nécessaires pour le fonctionnement du programme tel que demandé. 5. Votre code sera proprement encapsulé. 6. Votre programme devra être bien modularisé et évitera la duplication de code. 7. Si vous le jugez utile, vous êtes libres d ajouter d autres méthodes à celles qui vous seront explicitement demandées.

Voici les éléments devant être modélisés : 1) Solutions chimiques (POO de base, 15 points) Il s agit d abord d implémenter une classe Solution permettant de représenter une solution chimique. Une Solution est caractérisée par : son nom, comme acide chlorhydrique par exemple; son volume (un entier); et son ph (un double). La classe Solution comportera : un constructeur initialisant les attributs au moyen de valeurs passées en paramètre et un constructeur par défaut initialisant le nom à Inconnue, le volume à zéro et le ph à 7.0. une méthode label(ostream&) affichant, sur le flot passé en argument, le label à associer à la solution danslapharmacie.celabelspécifieralenom,levolumeetlephdelasolution selonleformatd affichage suivant : Vous ferez également en sorte qu il soit possible de mélanger deux solutions au moyen de l opérateur +. Soit deux solutions de nom, volume et ph respectifs : nom1, nom2, volume1 et volume2, ph1 et ph2. Le mélange de ces deux solutions au moyen de l opérateur + donne une nouvelle solution dont : 1. le nom est la concaténation nom1 + nom2 ; 2. le volume est la somme de volume1 et volume2; 3. et le ph est (que la chimie nous pardonne cette approximation) : (volume1*ph1 + volume2*ph2) / (volume1 + volume2) arrondi au nombre supérieur (utilisez la fonction double ceil(double) de cmath pour l arrondi). Il vous est demandé d implémenter la classe Solution en respectant une bonne encapsulation. entre // TEST 1 et // FIN TEST 1. Inconnue: 0 ml, PH=7 Chlorure d hydrogène + Eau: 850 ml, PH=8 2) Solutions corrosives et inflammables (héritage, polymorphisme, 23 points) Certaines substances peuvent être corrosives et d autres inflammables. On considérera pour simplifier qu une solution peut être soit corrosive soit inflammable mais pas les deux en même temps. Une solution quelconque n est ni inflammable ni corrosive. Une solution corrosive est caractérisée par une information supplémentaire indiquant si elle est nocive pour l environnement ou pas. Une solution inflammable est caractérisée par son degré d inflammabilité (de type InflDegre). Faites maintenant en sorte que la classe Solution se spécialise en deux sous-classes : Corrosif et. La hiérarchie de classes sera dotée : de constructeurs conformes au main fourni (une fois la portion de code entre // TEST 2 et // FIN TEST 2 décommentée). Par défaut, un Corrosif n est pas nocif pour l environnement. de redéfinitions spécifiques de la méthode label. Ces spécialisations ne contiendront aucune duplication de code et seront utilisables de façon polymorphique. Le label d une solution corrosive s affichera selon le modèle suivant : Ammoniaque: 100 ml, PH=11 Corrosif, Nocif pour l environnement ou Corrosif (selon que la solution est nocive pour l environnement ou pas). Le label d une solution inflammable précisera qu elle est dangereuse si son degré d inflammabilité est fort (vaut la valeur InflDegre::FORT) : Acétylène: 200 ml, PH=7 Dangereux entre // TEST 2 et // FIN TEST 2. Test de la partie 2 : -------- Ammoniaque: 100 ml, PH=11 Corrosif, Nocif pour l environnement Corrosif Acétylène: 200 ml, PH=7 Dangereux Acétone: 300 ml, PH=7

3) Colis (polymorphisme, classes abstraites, 32 points) La pharmacie doit composer des colis de solutions à envoyer à ses clients. Il vous est demandé de coder une classe Colis comme une collection hétérogène de solutions. Cette classe héritera d une classe abstraite, Securite, imposant à ses sous-classes instanciables de contenir une méthode virtuelle string check() const. La méthode check retourne une chaîne de caractères indiquant la conformité aux normes de sécurité. Elle ne peut pas être définie de façon concrète dans la classe Securite. La classe Colis sera dotée : d une méthode ajouter permettant d ajouter une solution au colis. Cette méthode sera conforme au main fourni (une fois la portion de code entre // TEST 3 et // FIN TEST 3 décommentée); de la méthode string check() const retournant "ok" si le colis ne contient que des solutions compatibles et "pas ok" dans le cas contraire. Pour tester la compatibilité des solutions vous doterez la hiérarchie de Solution d une méthode bool compatible(const Solution& autresolution) const retournant true si this et autresolution sont compatibles et false sinon. Vous appliquerez les règles suivantes : 1. un corrosif n est compatible qu avec un corrosif; 2. un inflammable n est compatible qu avec un inflammable; 3. les solutions ni corrosives ni inflammables sont toujours compatibles entre elles. La hiérarchie de Solution sera aussi dotée de méthodes bool est() const et bool estcorrosif() const permettant de coder la méthode compatible. 1. la méthode est retourne true pour les solutions inflammables et false pour toutes les autres; 2. la méthode estcorrosif retourne true pour les solutions corrosives et false pour toutes les autres. Exercice 2 : noirs dessins (10 points, bonus) Compilez et exécutez le programme fourni dans le fichier dessin.cc. Il est censé afficher : une feuille blanche un Carré Rouge un Cerle Rouge mais il produit un résultat erroné. 1. Ajoutez au fichier dessin.cc un commentaire expliquant pourquoi. 2. Corrigez le programme fourni, sans toucher au programme principal Décommenter ensuite la partie du programme entre SECONDE PARTIE et FIN SECONDE PARTIE. Le programme pour cette portion de code est censé afficher à nouveau : une feuille blanche Compilez à nouveau le programme. Une avalanche de messages d erreurs devrait se produire. 1. Ajoutez au fichier dessin.cc un commentaire expliquant pourquoi. 2. Corrigez le programme fourni, sans toucher au programme principal entre // TEST 3 et // FIN TEST 3. Test de la partie 3: -------- ok ok pas ok