• Aucun résultat trouvé

Programmation par Objets, TD 1: Introduction

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation par Objets, TD 1: Introduction"

Copied!
3
0
0

Texte intégral

(1)

Programmation par Objets, TD 1: Introduction

Exercice 1. Compile ou compile pas

Pour chaque fichier suivant (un fichier correspondant `a un encadr´e), dire s’il compile ou non, et dans ce dernier cas, indiquer la raison et proposer une correction.

i n t main( ){ i n t &x;

f o r (x=0;x<10; x++)

s t d : :cout<< ”x = ” << x << s t d : :e n d l; return 0 ;

}

i n t main( ){ i n t x=21;

i n t * const y = &x;

*y = *y + 2000

s t d : :cout<< ”x = ” << x << s t d : :e n d l; return 0 ;

}

i n t f(const i n t & a){ b=1;

while (a>0){b++; a/=2; } }

i n t main( ){ i n t x=42;

s t d : :cout<< ” f ( ”<<x<<” ) = ” << f(x) << s t d: :e n d l; return 0 ;

}

Exercice 2. Trace d’un programme Que fournit le programme suivant ?

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

c l a s s E n t i e r{ public:

E n t i e r (i n t nn) {n = nn;} void i n c r (i n t dn) {n += dn;}

b o o l o p e r a t o r==(E n t i e r & e){return (e.n == n) ;}

void imprime ( ) {s t d: :cout<< n <<s t d : :e n d l;} private:

i n t n ; };

i n t main ( ) { E n t i e r n1 ( 2 ) ;

s t d : :c o u t << ” n1 = ”; n1.imprime( ) ;

L3 Maths/info – TD d’algorithmique – Cl´ement Pernet Page 1/3

(2)

E n t i e r n2 ( 5 ) ;

s t d:c o u t << ” n2 = ”; n2.imprime( ) ; n1.i n c r( 3 ) ;

s t d : :cout<< ” n1 = ”; n1.imprime( ) ;

s t d : :c o u t << ” n1 == n2 e s t ” << (n1 == n2) << s t d: :e n d l; s t d : :c o u t << ”&n1 == &n2 e s t ” << (&n1 == &n2) << s t d: :e n d l; n1 = n2;

n2.i n c r( 1 2 ) ;

s t d : :c o u t << ” n2 = ”; n2.imprime( ) ; s t d : :c o u t << ” n1 = ”; n1.imprime( ) ;

s t d : :c o u t << ” n1 == n2 e s t ” << (n1 == n2) << s t d: :e n d l; ;

}

Exercice 3. Nombres complexes

a. Ecrire une classe repr´´ esentant les nombres complexes (dont les parties r´eelles et imaginaires sont des flottants double pr´ecision). On fournira des constructeurs `a partir de complexes, dedouble, des methodes retournant les parties r´eelles, imaginaires, le module et l’angle polaire.

b.En particulier, d´efinir les op´erateurs+,+=,−,−=,*,*=. Pour une meilleure modularit´e, essayer de r´eduire le nombre de m´ethodes modifiant explicitement les attributs priv´es.

c. Modifier votre classe pour utiliser d´esormais une repr´esentation polaire (rayon et angle)

Exercice 4. G´eom´etrie plane D´efinir des classes repr´esentant

1. les points de R2 (on utilisera le type flottant double pour repr´esenter une approximation d’un nombre r´eel)

2. les droites du plan (repr´esent´ees par un couple de points). Elles disposeront en outre des m´ethodes suivantes :

— test d’appartenance

— test de parall`elisme

— test d’orthogonalit´e

— une fonction retournant la droite parall`ele `a la droite courante passant par un point donn´e 3. les triangles du plan. La classe disposera en outre des m´ethodes suivantes :

— test si le triangle est isoc`ele

— test si le triangle est rectangle

— calcul de chacune des trois hauteurs, et m´ediatrices

— calcul du centre de gravit´e

Exercice 5. Conception de classes

On souhaite ´ecrire un logiciel de gestion du trafic f´errovriaire. Il faut que ce logiciel repr´esente Les voies, d´efinies par

— deux gares (marquant chaque extr´emit´e)

— une longueur en km Les gares, d´efinies par

— un nom (chaˆıne de caract`ere)

— un ensemble de voies qui lui sont connect´ees.

L3 Maths/info – TD d’algorithmique – Cl´ement Pernet Page 2/3

(3)

On souhaite pourra utiliser le conteneur vector<Voie> pour stocker l’ensemble de voies d’une gare.

a. Ecrire ces deux classes´ Voie etGare

On souhaite maintenant repr´esenter des lignes, c’est `a dire un chemin d’une gare `a une autre, passant ´eventuellement par plusieurs gares interm´ediaires en suivant des voies.

b. Ecrire une telle classe.´

c.Ecrire une classe statique´ Outilscontenant une m´ethodedistance. Cette m´ethode devra pouvoir prendre en argument

— une voie

— une ligne

— deux gares

et retourner la (meilleure) distance correspondante.

L3 Maths/info – TD d’algorithmique – Cl´ement Pernet Page 3/3

Références

Documents relatifs

Nous n’écrirons donc plus de racines carrées de nombres négatifs (quand Euler dit quelque chose, on obéit).. Les nombres s’appelleront désormais des

[r]

Nous nous int´eressons maintenant aux suites (de r´eels ou de complexes) dont le terme g´en´eral u n v´erifie u n+1 = au n + b (suites r´ecurrentes lin´eaires du premier ordre) puis

Pour calculer les valeurs propres d’une matrice, calculer le polynˆ ome caract´ eristique de fa¸con na¨ıve n’est pas forc´ ement une bonne id´ ee : si on n’a pas de logiciel

Lorsqu’on fait effectuer ` a un ordinateur ou ` a un oscilloscope num´erique, une analyse de Fourier pour visualiser le spectre d’un signal, le spectre obtenu est d’autant

On peut ´ecrire une deuxi`eme fonction qui appelle la premi`ere et renvoie l’indice de la premi`ere occurence de l’´el´ement recherch´e s’il est pr´esent dans le tableau ou

(E) (Les racines seront présentées sous forme

Si u est l’abcisse du point de contact et si r est le rayon du cercle alors les coordonn´ ees du centre sont.