Guest User

Untitled

a guest
Jan 23rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.55 KB | None | 0 0
  1. /*************************************************************************
  2. IntervalSet - description
  3. -------------------
  4. début : 17 oct. 2011
  5. copyright : (C) 2011 par nreynolds
  6. *************************************************************************/
  7.  
  8. //---------- Réalisation de la classe <IntervalSet> (fichier IntervalSet.cpp) --
  9.  
  10. //---------------------------------------------------------------- INCLUDE
  11.  
  12. //-------------------------------------------------------- Include systéme
  13. using namespace std;
  14. #include <iostream>
  15.  
  16. //------------------------------------------------------ Include personnel
  17. #include "IntervalSet.h"
  18.  
  19. //------------------------------------------------------------- Constantes
  20.  
  21. //---------------------------------------------------- Variables de classe
  22.  
  23. //----------------------------------------------------------- Types privés
  24.  
  25.  
  26. //----------------------------------------------------------------- PUBLIC
  27. //-------------------------------------------------------- Fonctions amies
  28.  
  29. //----------------------------------------------------- Méthodes publiques
  30. // type IntervalSet::Méthode ( liste de paramétres )
  31. // Algorithme :
  32. //
  33. //{
  34. //} //----- Fin de Méthode
  35.  
  36.  
  37. //------------------------------------------------- Surcharge d'opérateurs
  38. /*IntervalSet & IntervalSet::operator = ( const IntervalSet & unIntervalSet )
  39. // Algorithme :
  40. //
  41. {
  42.  
  43. } //----- Fin de operator =*/
  44.  
  45.  
  46. //-------------------------------------------- Constructeurs - destructeur
  47. IntervalSet::IntervalSet ( const IntervalSet & unIntervalSet )
  48. // Algorithme :
  49. //
  50. {
  51. #ifdef MAP
  52. cout << "Appel au constructeur de copie de <IntervalSet>" << endl;
  53. #endif
  54. } //----- Fin de IntervalSet (constructeur de copie)
  55.  
  56.  
  57. IntervalSet::IntervalSet ( )
  58. // Algorithme :
  59. //
  60. {
  61. #ifdef MAP
  62. cout << "Appel au constructeur de <IntervalSet>" << endl;
  63.  
  64. premierIntervalle = new intervalle;
  65. premierIntervalle.borneInf = NULL;
  66. premierIntervalle.borneSup = NULL;
  67. premierIntervalle.prochainIntervalle = NULL;
  68. #endif
  69. } //----- Fin de IntervalSet
  70.  
  71.  
  72. IntervalSet::~IntervalSet ( )
  73. // Algorithme :
  74. //
  75. {
  76. #ifdef MAP
  77. cout << "Appel au destructeur de <IntervalSet>" << endl;
  78.  
  79.  
  80.  
  81. intervalle intervalleActif;
  82. intervalle intervalleASupprimer;
  83. intervalleActif = *premierIntervalle;
  84.  
  85. //Parcourir la liste chaînée en supprimant au fur et à mesure
  86. while (intervalleActif.prochainIntervalle != NULL)
  87. {
  88. intervalleASupprimer = intervalleActif;
  89. intervalleActif = *intervalleActif.prochainIntervalle;
  90.  
  91. delete intervalleASupprimer;
  92. }
  93.  
  94. delete intervalleActif;
  95.  
  96.  
  97.  
  98.  
  99. #endif
  100. } //----- Fin de ~IntervalSet
  101.  
  102. void IntervalSet::Ajouter ( int inf, int sup )
  103. // Algorithme :
  104. //
  105.  
  106. {
  107. //Parcourir la liste chaînée pour trouver le dernier intervalle
  108.  
  109. intervalle intervalleActif;
  110. intervalleActif = *premierIntervalle;
  111.  
  112. while (intervalleActif.prochainIntervalle != NULL)
  113. {
  114. intervalleActif = *intervalleActif.prochainIntervalle;
  115. }
  116.  
  117. //Rajouter le dernier intervalle
  118. intervalleActif.prochainIntervalle = new intervalle;
  119.  
  120. intervalleActif = *intervalleActif.prochainIntervalle;
  121. intervalleActif.borneInf = inf;
  122. intervalleActif.borneSup = sup;
  123. intervalleActif.prochainIntervalle= NULL;
  124.  
  125. } //----- Fin de NouvelIntervalle
  126.  
  127.  
  128.  
  129.  
  130.  
  131. int IntervalSet::NombreElements ( )
  132. // Algorithme :
  133. //
  134.  
  135. {
  136. //Parcourir la liste chaînée en incrémentant
  137. intervalle intervalleActif = *premierIntervalle;
  138. int NombreElements = 1;
  139.  
  140.  
  141. while (intervalleActif.prochainIntervalle != NULL)
  142. {
  143. intervalleActif = *intervalleActif.prochainIntervalle;
  144. NombreElements++;
  145. }
  146.  
  147. return NombreElements;
  148. } //----- Fin de NombreElements
  149.  
  150.  
  151.  
  152.  
  153.  
  154. //------------------------------------------------------------------ PRIVE
  155.  
  156. //----------------------------------------------------- Méthodes protégées
  157.  
  158. //------------------------------------------------------- Méthodes privées
  159.  
  160.  
  161.  
  162. //------------------------------------------------------------------------
  163. //------------------------------------------------------------------------
  164. //------------------------------------------------------------------------
  165.  
  166.  
  167. #include <iostream>
  168. using namespace std;
  169.  
  170. int main()
  171. {
  172.  
  173. cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
  174.  
  175. IntervalSet Lolilol = *new IntervalSet;
  176. Lolilol.Ajouter(2,3);
  177. Lolilol.Ajouter(8,9);
  178. Lolilol.Ajouter(10,11);
  179.  
  180. cout << Lolilol.NombreElements() << endl;
  181.  
  182. return 0;
  183. }
  184.  
  185.  
  186.  
  187.  
  188.  
  189. 2eme :
  190.  
  191. /*************************************************************************
  192. IntervalSet - description
  193. -------------------
  194. début : 17 oct. 2011
  195. copyright : (C) 2011 par nreynolds
  196. *************************************************************************/
  197.  
  198. //---------- Interface de la classe <IntervalSet> (fichier IntervalSet.h) ------
  199. using namespace std;
  200. #if ! defined ( IntervalSet_H )
  201. #define IntervalSet_H
  202.  
  203. //--------------------------------------------------- Interfaces utilisées
  204.  
  205. //------------------------------------------------------------- Constantes
  206.  
  207. //------------------------------------------------------------------ Types
  208.  
  209. //------------------------------------------------------------------------
  210. // R�le de la classe <IntervalSet>
  211. //
  212. //
  213. //------------------------------------------------------------------------
  214.  
  215. class IntervalSet
  216. {
  217. //----------------------------------------------------------------- PUBLIC
  218.  
  219. public:
  220. //----------------------------------------------------- Méthodes publiques
  221. // type Méthode ( liste de paramètres );
  222. // Mode d'emploi :
  223. //
  224. // Contrat :
  225. //
  226.  
  227.  
  228. //------------------------------------------------- Surcharge d'opérateurs
  229. IntervalSet & operator = ( const IntervalSet & unIntervalSet );
  230. // Mode d'emploi :
  231. //
  232. // Contrat :
  233. //
  234.  
  235.  
  236. //-------------------------------------------- Constructeurs - destructeur
  237. IntervalSet ( const IntervalSet & unIntervalSet );
  238. // Mode d'emploi (constructeur de copie) :
  239. //
  240. // Contrat :
  241. //
  242.  
  243. IntervalSet ( );
  244. // Mode d'emploi :Crée un ensemble d’intervalles.
  245. //Et renvoie le numéro de l’ensemble L’ensemble ainsi créé est l’ensemble n°: k
  246. //(k étant un incrémenté à chaque création d’un nouvel intervalle)
  247. //
  248. // Contrat :
  249. //
  250.  
  251. virtual ~IntervalSet ( );
  252. // Mode d'emploi :
  253. //
  254. // Contrat :
  255. //
  256.  
  257. void Ajouter ( int inf, int sup );
  258.  
  259. int NombreElements ( );
  260.  
  261. //------------------------------------------------------------------ PRIVE
  262.  
  263. protected:
  264. //----------------------------------------------------- Méthodes protégées
  265.  
  266. private:
  267. //------------------------------------------------------- Méthodes privées
  268.  
  269. protected:
  270. //----------------------------------------------------- Attributs protégés
  271.  
  272. private:
  273. //------------------------------------------------------- Attributs privés
  274.  
  275. //---------------------------------------------------------- Classes amies
  276.  
  277. //-------------------------------------------------------- Classes privées
  278.  
  279. //----------------------------------------------------------- Types privés
  280. typedef struct interval
  281. {
  282. int borneInf , borneSup;
  283.  
  284. struct interval *prochainIntervalle;
  285. }intervalle;
  286.  
  287.  
  288. intervalle *premierIntervalle;
  289.  
  290.  
  291. };
  292.  
  293. //----------------------------------------- Types dépendants de <IntervalSet>
  294.  
  295. #endif // IntervalSet_H
Add Comment
Please, Sign In to add comment