Skip to content
Snippets Groups Projects
Commit 225fe7ba authored by david's avatar david
Browse files

Déplacement déclaration/définition analyzer.cpp

parent 070ae6b2
No related branches found
No related tags found
No related merge requests found
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)
......
......@@ -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.
......
#include "arraylist.hpp"
template <typename P>
P ArrayList<P>::get(const int & pos){
return data[pos];
}
......@@ -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.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment