Département d informatique Professeur : Clermont Dupuis Université Laval Bureau : 3976. IFT-19946 Programmation orientée objet. Examen partiel # 1



Documents pareils
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 n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 2. Classes et objets

Les chaînes de caractères

GOL502 Industries de services

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

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Programmer en JAVA. par Tama

TP, première séquence d exercices.

TP1 : Initiation à Java et Eclipse

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

Langage Java. Classe de première SI

Les structures. Chapitre 3

Package Java.util Classe générique

TD/TP PAC - Programmation n 3

Généralités sur le Langage Java et éléments syntaxiques.

Une introduction à Java

TD/TP PAC - Programmation n 3

Structurer ses données : les tableaux. Introduction à la programmation

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

Présentation du langage et premières fonctions

Rappels Entrées -Sorties

Poker. A rendre pour le 25 avril

LA GESTION COMMERCIALE DES VEHICULES

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

Chap III : Les tableaux

Introduction à l héritage en C++

TP : Gestion d une image au format PGM

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Examen d informatique première session 2004

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

as Architecture des Systèmes d Information

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

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

TS 31 ATTAQUE DE FOURMIS!

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Le prototype de la fonction main()

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Cours 1: Java et les objets

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Simulation d une économie monétaire (programmation impérative, sujet 3)

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

Héritage presque multiple en Java (1/2)

Plan du cours. Historique du langage Nouveautés de Java 7

Gestion distribuée (par sockets) de banque en Java

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

I. Introduction aux fonctions : les fonctions standards

Cours d Algorithmique et de Langage C v 3.0

TP 1. Prise en main du langage Python

Plan Pédagogique du cours

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

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

Programmation en Java IUT GEII (MC-II1) 1

Utilisation d objets : String et ArrayList

Algorithmique et Programmation, IMA

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

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

Représentation géométrique d un nombre complexe

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

Calculabilité Cours 3 : Problèmes non-calculables.

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

Java c est quoi? Java pourquoi?

Introduction au langage C

La technologie Java Card TM

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Arguments d un programme

UE Programmation Impérative Licence 2ème Année

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

Classes et Objets en Ocaml.

Programmation Orientée Objet Java

Bases Java - Eclipse / Netbeans

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

UE C avancé cours 1: introduction et révisions

La sternotomie. Conseils à suivre après votre intervention

Travaux Dirigés n 1 : chaînes de caractères

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Programme Compte bancaire (code)

Bases de programmation. Cours 5. Structurer les données

TP3 : Manipulation et implantation de systèmes de fichiers 1

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Machines virtuelles fonctionnelles (suite) Compilation ML Java


Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Applet pour visualiser les variables «automate» notifiées

Exercices Corrigés Premières notions sur les espaces vectoriels

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

INF 321 : mémento de la syntaxe de Java

Exercices sur les interfaces

Corrigés des premiers exercices sur les classes

Transcription:

Département d informatique Professeur : Clermont Dupuis Université Laval Bureau : 3976 Date : 22 octobre 2001 IFT-19946 Programmation orientée objet Examen partiel # 1 Question # 1. (2 points) Pour développer des systèmes informatiques, on doit prendre en compte plusieurs critères de qualité d un logiciel. Nommez-en quatre. Donnez leur signification. Question # 2. (3 points) Distinguez entre les concepts de type de donnée et celui de classe. Qu est-ce que le concept de classe apporte de nouveau en dehors des principes d héritage et de polymorphisme? (3 éléments de réponse sont attendus) Question # 3. (6 points) Vous partez en expédition prochainement. Vous devez déterminer les objets que vous transporterez dans votre sac à dos sachant que vous ne voulez pas transporter un poids de plus de W kg. Sachant que chaque objet est décrit comme suit : - code entier unique représentant l'objet, - nom de l'objet, - nombre d'unités (valeur entière), - poids unitaire de l'objet (kg.), vous construisez une classe "Sac_a_dos" qui renfermera les objets que vous emporterez tout en n'excédant pas le poids maximum W. Vous devez pouvoir créer un nouveau sac à dos avec un poids maximum défini, ajouter un nouvel objet ou en enlever un à votre sac à dos, accéder aux caractéristiques d'un objet à partir de son code, vérifier la présence d un objet dans le sac à dos à partir de son code numérique et détruire le sac à dos au complet. Donnez la spécification fonctionnelle et la représentation interne des données de la classe «Sac_a_dos» (i.e. le contenu du fichier en-tête «Sac_a_dos.h»).

- 2 - Question # 4. (6 points) Donnez l implantation de la classe «Polynome» dont la spécification est donnée cidessous (i.e. le contenu du fichier «Polynome.cpp»). class Polynome /* Spécification fonctionnelle de la classe "Polynome". Composantes : Chaque composante représente un terme du polynôme de degré n. Structure : La structure choisie est une suite de n termes. Domaine : Le i ième terme du polynôme est de la forme a i x i : */ protected : int degre; float * coefficients; public : Polynome(int n); /* Permet de construire un polynôme nul de degré n. Post - Nous avons un polynôme nul de degré n. */ void Inserer_Terme(int i, float Coefficient); /* Permet d'insérer le i ième terme dont le coefficient est passé en paramètre. Pré - Le polynôme de degré "degre" a déjà été créé. 0 <= i <= degre. Post - Le i ième terme fait maintenant partie du polynôme. */ float Acces_Coefficient_Terme(int i); /* Permet d'accéder au coefficient du i ième terme du polynôme. Pré - Le polynôme de degré "degre" a déjà été créé. 0 <= i <= degre. Post - Retourne le i ième coefficient du polynôme. */ float Evaluer_polynome(float x); /* Permet d'évaluer le polynôme à x et retourne le résultat. Pré - Le polynôme est déjà créé. Post - Retourne la valeur du polynôme évalué à x. */ 2

- 3 - Question # 5. (6 points) Implanter les deux classes «Auto» et «Auto_usagee» dont la spécification est fournie ci-après. Vous devez donc fournir le contenu des fichiers «Auto.cpp» et «Auto_usagee.cpp». -------------------------------------------------------------- class Auto /* Spécification fonctionnelle de la classe "Auto" */ protected: char Reference[20+1]; char Marque[20+1]; int Prix_vente; public: Auto(char * reference = "", char * marque = "", int prix_vente = 0); /* Permet de créer un objet de la classe Auto. Post - L'objet de la classe Auto est créé en tenant compte des valeurs par défaut pour les différents arguments. */ void Init_Prix_vente(int Prix); /* Initialise le prix de vente. Pré - L'objet de la classe Auto est créé. Post - Le prix de vente est conservé. */ int Acces_Prix_vente(); /* Fournit le prix de vente. Pré - L'objet de la classe Auto est créé. Post - Retourne le prix de vente. */ 3

- 4 - class Auto_usagee : public Auto protected: char Nom_Ancien_Proprietaire[20+1]; char Prenom_Ancien_Proprietaire[20+1]; int Cout_achat; public: Auto_usagee( char * ref = "", char * marque = "", int prix = 0, int cout_achat = 0, char * nom_ancien = "", char * nom_prenom = ""); /* Permet de créer un objet de la classe Auto_usagee. Post - L'objet Auto_usagee est créé en tenant compte des valeurs par défaut pour les différents arguments. */ void Init_Cout_achat(int cout_achat); /* Initialise le coût d'achat. Pré - L'objet de la classe Auto_usagee est créé. Post - Le coût d'achat est conservé. */ int Acces_Cout_achat(); /* Fournit le coût d'achat. Pré - L'objet de la classe Auto_usagee est créé. Post - Retourne le coût d'achat de l'auto usagée. */ Question # 6. (2 points) Vous voulez définir une classe «Vecteur_3D» dans votre environnement de programmation. Cette classe permettra entre autres (i) de créer un vecteur 3D nul, ou encore, (ii) de créer un vecteur 3D dont les coordonnées réelles sont (x, y, z), ou encore, (iii) de créer un vecteur 3D à l aide d un autre vecteur. Comment procéderiez-vous pour y arriver? Il s agit de donner les renseignements pertinents que l on doit retrouver dans le fichier «Vecteur_3D.h». Note : Il faut s en tenir à ce qui vous est demandé. Vous n avez pas à concevoir et implanter une classe «Vecteur_3D» complète. Question # 7. (2 points) Décrivez brièvement 2 approches vous permettant de construire une classe «Liste_simple» où la définition de chaque élément de la liste simple est inconnue lors de la conception et de l implantation de cette classe. 4

- 5 - Question # 8. (1 point) Considérons les classes A, B et C où chacune d elles renferme un constructeur. A est une classe de base; B est une classe dérivée de la classe A et C est une classe dérivée de B. Vous créez un objet de la classe C. Les constructeurs des classes A et B sont-ils appelés? Si oui, dans quel ordre? Question # 9. (2 points) Nous avons vu différents types d héritage. Toutefois, certains d entre eux ne sont pas appropriés; il faut plutôt opter pour d autres approches de modélisation. Donnez deux contextes où l utilisation du concept d héritage n est pas souhaitable. Soyez explicite. 5