• Aucun résultat trouvé

Programmation par Objets, TD 5: Programmation g´en´erique

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation par Objets, TD 5: Programmation g´en´erique"

Copied!
2
0
0

Texte intégral

(1)

Programmation par Objets, TD 5: Programmation g´en´erique

Exercice 1. Que fait ce code

# i n c l u d e < i o s t r ea m >

t e m p l a t e<c l a s s X>

v o i d f (X x) {std::cout< <" Ici x = " < < x < < std::e n d l;}

t e m p l a t e< >

v o i d f (int x) {std::cout< <" L `a x = " < < x < < std::e n d l;}

int m a i n() {

int i = 2;

d o u b l e d = 3;

s h o r t s = 5;

f(i) ; f(d) ; f(s) ;

}

Exercice 2. Pile g´en´erique

a. Proposer l’impl´ementation d’une pile d’´el´ements d’un type g´en´erique.

Exercice 3. Matrices r´ecursives

On souhaite repr´esenter une matrice sous forme r´ecursive en utilisant la d´ecoupe en 4 blocs de dimensionn/2×n/2 (on supposera quenest une puissance de 2). La r´ecursion se termine pour les matrices 1×1 qui ne stockent qu’un seul coefficient.

a. proposer une impl´ementation, o`u l’ordre de la r´ecursion, un int, est un param`etre template

de la classe. On consid´erera que la matrice a pour coefficients des flottants double pr´ecision.

b. impl´ementer les op´erations d’addition et de produit pour ces matrices.

c. modifier votre impl´ementation pour que le type des coefficients soit aussi g´en´erique

Exercice 4. Tri

a. Ecrire un fonction faisant un tri par insertion sur un tableau d’´el´ements g´en´eriques. Cette fonction devra pendre en argument une classe-fonction Compare qui effectue la comparaison entre deux ´el´ements.

b. Proposer trois instanciations :

— pour un tableau d’entiers,

— pour un tableau de couples(string,int)en triant selon la valeur de l’entier.

— pour un tableau de string, en triant selon la longueur de la chaˆıne,

— pour un tableau de string, en triant selon l’ordre lexicographique

L3 Maths/info – TD de programmation par objets en C++ – Cl´ement Pernet Page 1/2

(2)

Exercice 5. Traits

On rappelle que pour le passage d’un argument en lecture seul `a une fonction, on peut utiliser un passage par valeur, ou par const r´ef´erence. Ce dernier a l’avantage de r´eduire la taille m´emoire r´ecopi´ee, mais g´en`ere une indirection.

On souhaite automatiser la d´ecision de passer un objet par valeur ou par const r´ef´erence selon sa taille : s’il d´epasse 16 octets, on le fera passer par const r´ef´erence.

a.Proposer une impl´ementation d’une telle classe. On pourra utiliser deux param`etres template : celui tu type inconnu et bool.

b. Montrer son utilisation avec par exemple une fonction Min appel´ee sur des int et sur des

std::string.

Exercice 6. Expressions symboliques

a. Impl´ementer les classes d´efinissant les expressions symboliques du TP 2 en utilisant la g´en´ericit´e en place du polymorphisme d’h´eritage

L3 Maths/info – TD de programmation par objets en C++ – Cl´ement Pernet Page 2/2

Références

Documents relatifs

La seconde différence réside dans le fait que le code G développé avec LabVIEW s'exécute en fonction des règles de flux de données au lieu d'une approche basée sur des

Q 60.2 Ecrire les classes ElemTrain (abstraite), Wagon (abstraite), Motrice, WVoyageur et WMarchandise avec au moins un constructeur avec param` etres et une red´ efinition de la

Soit les cours reprennent et l’évaluation aura lieu en classe (avec les notes et le livre), soit les cours n’ont pas repris et vous recevrez alors un formulaire comprenant

ENSEEIHT — 2` eme Ann´ ee parcours Imagerie et Multim´ edia &amp; CIRMA UE Analyse num´ erique.. Mercredi 10 avril

— Pour la m´ ethode d’Euler symplectique de type A la trajectoire num´ erique est une ellipse proche du cercle solution. B

(4 points) On consid` ere un satellite de masse n´ egligeable qui tourne autour de

ENSEEIHT — 2` eme Ann´ ee parcours Imagerie et Multim´ edia &amp; CIRMA UE Analyse num´ erique. Mercredi 2 avril

A l’aide du th´ ` eor` eme d’existence de solution du cours montrez que ce syst` eme poss` ede une unique