diff --git a/TP1/CPP/Makefile b/TP1/CPP/Makefile index 8d18471febbaa741a65975278594e89e7c1175db..80e256940064a20d3e7068e1a64464f62f0f94ca 100644 --- a/TP1/CPP/Makefile +++ b/TP1/CPP/Makefile @@ -1,7 +1,7 @@ CC= g++ CXXFLAGS= -Wall -ansi --pedantic -g -CPP_O_FILE = arraylist.o main.o +CPP_O_FILE = analyzer.o main.o all: $(CPP_O_FILE) $(CC) $(CXXFLAGS) -o arraylist_analysis $(CPP_O_FILE) diff --git a/TP1/CPP/analyzer.hpp b/TP1/CPP/analyzer.hpp index 34546d877b7ab77d9f5eb1d556685dc1ded0c38d..ce14436dfe22fb11d9d380e87df23dc549ea6045 100644 --- a/TP1/CPP/analyzer.hpp +++ b/TP1/CPP/analyzer.hpp @@ -4,7 +4,6 @@ #include<cmath> #include <vector> #include <iostream> -#include <fstream> /** Classe utilisée pour faire des statistiques élémentaires @@ -25,11 +24,7 @@ public: Complexité amortie : O(1) @param x est la valeur que l'on souhaite ajouter à l'analyse. */ - void append(const double & x){ - cost.push_back(x); - cumulative_cost.push_back( (cumulative_cost.size()) ? cumulative_cost.back()+x : x); - cumulative_square += x*x; - } + void append(const double & x); /** Renvoie la somme des coûts enregistrés dans cette analyse. @@ -55,23 +50,14 @@ public: Complexité en temps/espace, meilleur cas : O(1) @returns la moyenne des coûts de toutes les opérations enregistrées dans l'analyse. */ - double get_average_cost(){ - if(cumulative_cost.empty()) - throw std::runtime_error("List is empty"); - return cumulative_cost.back()/cumulative_cost.size(); - } + double get_average_cost(); /** Renvoie la variance des coûts de toutes les opérations enregistrées dans l'analyse. Complexité en temps/espace, meilleur cas : O(1) @returns la variance des coûts de toutes les opérations enregistrées dans l'analyse. */ - double get_variance(){ - double mean, mean_square; - mean = get_average_cost(); - mean_square = mean * mean; - return cumulative_square - mean_square; - } + double get_variance(); /** Renvoie l'écart-type des coûts de toutes les opérations enregistrées dans l'analyse. @@ -87,24 +73,12 @@ public: Complexité en temps, meilleur/pire cas : O(size) @param path est le chemin du fichier dans lequel la sauvegarde est faite. */ - void save_values(const std::string & path){ - std::ofstream f; - size_t i; - f.open(path.c_str()); - for (i = 0; i < cost.size(); ++i) - f<<i<<" "<<cost.at(i)<<" "<<get_amortized_cost(i)<<std::endl; - f.close(); - } - + void save_values(const std::string & path); /** Affiche la liste des coûts et des coûts amortis sur la sortie standard. Complexité en temps, meilleur/pire cas : O(size) */ - void plot_values(){ - size_t i; - for (i = 0; i < cost.size(); ++i) - std::cout<<i<<" "<<cost.at(i)<<" "<<get_amortized_cost(i)<<std::endl; - } + void plot_values(); private: // Coût de chaque opération. Peut représenter du temps ou une autre mesure. diff --git a/TP1/CPP/arraylist.cpp b/TP1/CPP/arraylist.cpp deleted file mode 100644 index 67a6a394026fdc1118b9e97ae14442a19355c0f1..0000000000000000000000000000000000000000 --- a/TP1/CPP/arraylist.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "arraylist.hpp" - - -template <typename P> -P ArrayList<P>::get(const int & pos){ - return data[pos]; -} - - diff --git a/TP1/CPP/arraylist.hpp b/TP1/CPP/arraylist.hpp index 1ee96aa19b8b7ad19dec12fe281dcb4b44e808c4..68ad0879777528c4aff921146303dda22e5ee52e 100644 --- a/TP1/CPP/arraylist.hpp +++ b/TP1/CPP/arraylist.hpp @@ -62,7 +62,9 @@ public: @param pos est la l'indice de la case on l'utilisateur veut connaître la valeur. @returns la valeur située à la position donnée par l'utilisateur. */ - P get(const int & pos); + P get(const int & pos){ + return data[pos]; + } /** Renvoie le nombre d'éléments stockés dans le tableau.