$ wget http://cria2.uqam.ca/INF3105/lab3/lab3.zip $ unzip lab3.zipRegardez brièvement le contenu des fichiers.
Tableau<T>
$ make
$ ./test_tableau
test1() : ajouts simples ==> ECHEC t[0]!=3 ==> ECHEC t[0]!=3 ==> ECHEC Taille **** Sommaire **** => DÉSOLÉ, au moins un test a échoué. => Ne lâchez pas!
test1() : ajouts simples ==> OK test2() : ajouts + ==> OK test3() : operator = ==> OK test4() : operator = ==> OK test5() : operator = ==> OK test6() : operator = ==> OK test7() : constructeur par copie ==> OK test8() : operator == ==> OK test9() : insertion ==> OK test10() : enlèvement ==> OK test11() : trouver ==> OK test12() : trouver ==> OK **** Sommaire **** => BRAVO, tous les tests ont été réussis! => Attention, ces tests ne sont pas exhaustifs. => Réussir tous ces tests ne garanti l'absence de failles. => Soyez vigilants, il pourrait rester des bogues.
test_tableau.cpp
.
Cette tâche consiste à compléter l'implémentation de la classe Nuage
.
Pour cela vous devez éditer les fichiers nuage.h et nuage.cpp.
La classe Nuage
implémente un type abstrait de données pour représenter et la manipuler un nuage de points.
La classe Nuage
est composée de deux parties :
Nuage
est représenté par un tableau de points.
Fonction / Description |
Illustration |
const Point& Nuage::proche(const Point& p);
Retourne une référence sur le point le plus proche du point p dans le nuage. |
|
Nuage Nuage::proches(const Point& p, double r) const;
Retourne le sous-nuage de points contenant les points à l'intérieur d'un cercle centré sur le point p et ayant un rayon de r. |
|
Nuage Nuage::nproches(const Point& p, int n) const;
Retourne un sous-nuage de points contenant les n points les plus près du point p. |
Pour compilé le programme lab3, il suffit de faire la commande make ou g++ -o lab3 lab3.cpp nuage.cpp point.cpp. L'exécutable lab3 doit être lancé en ligne de commande. Voici un exemple.
./lab3 nuage1.txt
Le paramètre nuage1.txt spécifie le nom du fichier dans lequel le nuage de points doit être lu. Une fois lancé, le programme lab3 lit des requêtes. Il y a trois types de requêtes, chacune correspondant à une opération publique de la classe Nuage telle que définie à la section précédente. Voici la syntaxe des trois commandes.
(les lignes tapées sont en gras)
$ ./lab3 nuage1.txt proche (8,9) (10,10) proche (5,4) (3,4) proche (8,9) (10,10) proches (9,9) 5 (10,10) proches (5,5) 10 (0,0) (10,0) (3,4) (10,10) nproches (1,1) 2 (0,0) (3,4) nproches (1,1) 1 (0,0)
(les lignes tapées sont en gras)
$ ./lab3 nuage5.txt proche (40,40) (39.452,44.9371) proches (45,60) 2 (44.9134,60.7752) (45.9883,59.7219) (45.6473,58.1336) (43.8117,61.401) (44.7787,60.6255) (46.0452,59.6523) (44.8761,61.7523) (44.7498,60.2861) (45.1166,61.2866) (45.2139,61.4634) (45.3378,58.9671) (45.6521,60.4831) nproches (65,23) 5 (64.866,45.1558) (67.7456,45.1277) (67.2299,45.186) (63.1799,45.5228) (60.4064,45.2012)