• Aucun résultat trouvé

Evaluation n°2 Structures, tableaux, classes, objets

N/A
N/A
Protected

Academic year: 2022

Partager "Evaluation n°2 Structures, tableaux, classes, objets"

Copied!
5
0
0
En savoir plus ( Page)

Texte intégral

(1)

Evaluation n°2

Structures, tableaux, classes, objets

Nom : Prénom :

Un intervalle est soit vide, soit défini par deux bornes inf et sup qui, dans le contexte de cet exercice, sont des valeurs entières. Par convention, tout intervalle ayant une borne inf plus grande que sa borne sup sera considéré comme vide.

Complétez les déclarations et définitions suivantes permettant de gérer des intervalles en langage C.

Déclarez ici la structure intervalle.

Donnez ici la définition complète d'une fonction min acceptent deux entiers en paramètres et retournant le plus petit des deux.

void printIntervalle(intervalle* w) {

}

Affiche un intervalle sous la forme [min,max] ou [] si l'in- tervalle est vide.

int testIntersect(intervalle* a, intervalle* b) {

} Retourne vrai si l'inter-

section des deux inter- valles n'est pas vide, faux sinon.

Réalisez un code concis en utilisant la fonction min définie précédemment et une fonction max dont on supposera l'existence.

Stru ctur es

(2)

Vous devez maintenant réaliser une classe Intervalle en langage C++ avec les mêmes fonction- nalités que celles décrites précédemment. Seuls la déclaration de la classe et les codes complets du constructeur et de la méthode d'affichage sont demandés.

void testIntervalle() {

}

Écrivez ici le code per- mettant de créer les intervalles [1,3], [2,4], et [5,6], de les affi- cher, et d'afficher leurs intersections.

intervalle intersection(intervalle* a, intervalle* b) {

} Retourne l'intervalle (

éventuellement vide ) résultat de l'intersec- tion de deux intervalles.

Utilise la fonction tes- tIntersect présentée pré- cédemment.

class Intervalle {

private:

public:

};

Variables d'instance

Constructeur

Affichage

Test d'intersection

Calcul d'intersection

Stru ctur es

Clas ses

(3)

Définition complète de la méthode d'affichage d'un intervalle.

Définition complète du construc- teur de la classe Intervalle

On déclare de la manière suivante une classe ListeInter représentant une liste d'interval- les. Complétez les définitions demandées.

class ListeInter {

private:

Intervalle* tab;

int n;

int capacite;

public:

ListeInter(int capa);

void add(Intervalle i);

void retireVides();

};

n est le nombre d'intervalles actuellement enregis- trés dans la liste et capacite est le nombre maximum d'intervalles pouvant y être stockés.

Le constructeur crée une liste vide, mais ayant une capacité de stockage précisée en paramètre.

La méthode add ajoute un intervalle à la liste. La méthode retireVides retire de la liste tous les intervalles vides.

ListeInter::ListeInter(int capa) {

}

void ListeInter::retireVides() {

} Adoptez un algorithme

simple et efficace, de complexité en temps linéaire, qui peut mo- difier l'ordre des in- tervalles restants dans la liste.

Clas ses

Clas ses

Tabl eaux 1D

(4)

class Damier {

private:

char** tab;

int n;

public:

Damier(int n);

void random();

void print();

};

Définition complète de la fonction initListeInter Déclaration de la structure

listeInter

Vous devez à présent définir en langage C une structure listeInter et implanter deux fonc- tions initListeInter et retireVides qui remplissent les rôles respectifs du constructeur et de la méthode retireVide de la version C++.

Permet l'accès à un tableau à deux dimensions de caractères. Une cellule contenant une reine a la valeur 1, sinon elle a la valeur 0.

Définition complète de la fonction retireVide.

Le problème des reines consiste à placer n reines sur un damier de n par n de manière à ce que chaque ligne, chaque diagonale et chaque colonne ne contienne pas plus d'une reine.

Lorsque deux reines sont sur une même ligne, colonne ou diagonale, on dit qu'elles sont en conflit. Une classe Damier est définie de la manière suivante.

Le constructeur crée le tableau 2D représentant le damier vide. Les cellules du tableau doivent donc être initialisées à 0.

random place n reines au hasard sur le damier.

print affiche le damier en représentant les reines par le caractère 'O' et les cases vides par le caractère '-'.

Stru ctur es

Tabl eaux 1D

(5)

Damier::Damier(int n) {

}

Crée et initialise à 0 un damier de n par n.

Complétez les définitions des méthodes indiquées.

Remet le damier à 0 puis place n reines aléatoirement dans des cases distinctes.

Pour mémoire, rand()

% n retourne un entier aléatoire compris en- tre 0 et n-1 inclus.

void Damier::random() {

}

Clas ses Tabl eaux 2D

void Damier::print() {

}

Affiche le damier sous forme de caractères.

Références

Documents relatifs

l’axe principal de co-inertie comme le vecteur unique de RP maximisant la covariance des coordonnées des projections des deux nuages dans le même espace euclidien.. La

Recommençons avec cosinus : tracez f=cos(x) avec x compris entre -5 et 5, en utilisant 16 points.. Ensuite, calculez fdiff=diff(cos(x) et essayez de le représenter en fonction de x

Si cette convergence simple peut se montrer à l’aide du théorème sur les séries alternées, on essaye d’établir la convergence uniforme de la suite des restes (vers la

A partir d’un même trans- crit, différents ADNc de longueurs différentes peu- vent donc être obtenus ; cependant, dans le cas d’un amorçage en 3’, tous les ADNc issus d’un

• les tableaux, qui sont simplement compos´ es de plusieurs ´ el´ ements de mˆ eme type, qui peuvent ˆ etre r´ ef´ erenc´ es ` a l’aide d’un indexe entier, et.. •

Comparer TA[IA] et TB[IB]; remplacer TC[IFUS] par le plus petit des deux éléments (appeler la fonction précédente) ; avancer dans le tableau TC et dans le tableau qui a contribué

Résumé : Les rôles et les actions d’enseignants réguliers et d’enseignants spécialisés (que l’on nomme orthopédagogue lorsqu’il agit dans le cadre de l’intégration ou

● Il est considéré comme sain de passer par des sélecteurs pour accéder à la valeur du champ d’un objet plutôt que d’accéder directement à cette valeur avec la

Cependant, contrairement à la déclaration d’une variable d’un type primitif (comme int n ;), elle ne réserve pas d’emplacement pour un objet de type Point, mais

- Réaliser une classe PointA, dérivée de Point disposant d’une méthode affiche affichant (en fenêtre console) les coordonnées d’un point. - Écrire un programme utilisant les

Toutes les extensions actuellement connues de la th6orie des fonctions presque-p6riodiques de BonR se rattachent s la d6finition de ces fonetions donn6es par

I1 serait aisg de faire des vdrifieations analogues pour les fonctions m~mes considdrdes par ROSESHAIS; mais il y aurait surtout intdr~t h prendre cette question

Point p2=p1 ; // constructeur de recopie : création de l’objet p2 // et son initialisation avec les données de p1.. Attention : il faut différencier entre recopie et

Au total, on a 10 tableaux à déclarer, à écrire sur les en-têtes des fonctions et des appels. Avec le type structure, il est possible d'utiliser un seul tableau :

Réalisez une fonction int f0(int x)qui retourne un Booléen ayant la valeur vrai si et seulement si les 4 bits de poids faibles de la représentation binaire de x sont tous à 0..

Vous devez ensuite réaliser une fonction main() qui crée des éléments contenant les chaînes. «aaa», «bbb», «ccc», qui les ajoute à un ensemble initialement vide, puis qui

Réalisez une fonction int getPar(char t[], char p[] int n) qui place dans le tableau p toutes les valeurs paires conte- nues dans le tableau t, qui est supposé être de longueur n,

Cette fonction devra utiliser une fonction int nbJours(int mois) qui retourne le nombre de jours dans un mois donné (1 pour janvier, 2 pour février…) d'une année non bissextile,

En utilisant ces deux divisions caricaturales comme un outil pour m’aider à voir clair dans les méthodes scientifiques utilisées par les études asiatiques en Suisse, j’ai fini

Calculer les dérivées partielles premières et secondes des fonctions suivantes

throws java.lang.InterruptedException public final native void wait(long);. throws java.lang.InterruptedException public final

Si Théo et Alice appuient tous les deux sur la touche « lecture aléatoire » de leur lecteur audio, lequel a le plus de chances d’écouter un morceau de rock?.

« lecture aléatoire » de leur lecteur audio, lequel a le plus de chances d’écouter un morceau de rock.. •