SUJET 1

 

1.      Ecrire une fonction permettant d'échanger les contenus de 2 variables de type int fournies en argument :

·         En transmettant l'adresse des variables

·         En utilisant la transmission par référence

2.      Soit le modèle de données suivant

            struct

            {

                        int n;

                        float x;

            }

            Ecrire une fonction RAZ permettant de remettre a zéro les champs d'une structure de ce type en utilisant

1.      Un passage par adresse

2.      Un passage par référence

            Prévoir un programme d'essai de la fonction. (Il affichera les valeurs d'une structure après l'appel de la fonction)

 

SUJET 2

·         Définir une classe de votre choix sous forme :

o   Constructeur, Destructeur, Assesseur, Mutateur, Affichage.

·         Ecrire un programme utilisant cette classe dans les cas suivants :

o   Allocation statique

o   Allocation dynamique

o   Tableau d’objets

o   Tableau de pointeur d’objets

o  

SUJET 3

Soit une classe vecteur3D définit comme suit :

Class Vecteur3D

{

            float x,y,z ;

            public :

                        Vecteur3D(float c1=0.0 ;float c2=0.0, float c3=0.0)

{

            x = c1; y = c2; z= c3;

}

} ;

Introduire les fonctions membres permettant d’obtenir la somme de 2 vecteurs, le produit scalaire de 2 vecteurs, d’affichage des composantes du vecteur.

Introduire une fonction membre coincide permettant de savoir si deux vecteurs ont mêmes composantes :

·         En utilisant une transmission par valeur ;

·         En utilisant une transmission par adresse ;

·         En utilisant une transmission pas référence

Si v1 et v2 désignent 2 vecteurs de type Vecteur3D, comment s’écrit le test de coïncidence de ces 2 vecteurs, dans chacun des 3 cas considérés ?

Introduire une méthode membre permettant le calcul de la norme d’un vecteur.

Introduire une méthode membre nommée normax permettant d’obtenir, parmi 2 vecteurs, celui qui a la plus grande norme. Le résultat sera également renvoyé par valeur, par adresse et par référence ;

Adapter la classe ci-dessus afin qu’elle dispose d’une fonction membre «nombre » fournissant le nombre de points  existants a un instant donné

 

 

SUJET 4

Proposition de codage Association/Agrégation/Composition

Association

·         On utilise l’association quand deux classes sont liées, sans notion de propriété de l’une par rapport à l’autre.

·         Les durées de vie ne sont pas forcément liées (la mort d’une instance de la classe A ne provoque pas forcément la mort des objets associés de la classe B)

 

 

 

 


Agrégation

·         On utilise une agrégation quand on peut utiliser le verbe « comporte »

·         L’agrégation est modélisée par un losange vide (du côté de la classe Ensemble )

·         Les durées de vie entre les classes associées ne sont pas forcément liées

 

 

 

 

 

 


Composition : agrégation particulière où les parties sont complètement intégrées à l’ensemble

·         On utilise une composition quand on peut utiliser le verbe « est composé de »

·         La composition est modélisée par un losange noirci.

·         Les durées de vie entre les classes associées sont liées (la mort d’un objet de la classe Ensemble provoque la mort des objets composites)

·         La cardinalité côté de la classe Ensemble (côté losange) est toujours 1