Update main.cpp

This commit is contained in:
Fernando Méndez 2022-01-18 13:05:39 +01:00 committed by GitHub
parent fcc4dabf7d
commit 6ca200eb2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,7 +7,7 @@ using namespace std;
/* /*
AR - Ejercicio de análisis RTO AR - Ejercicio de análisis RTO
Fernando Méndez Torrubiano (https://fernmend.ddns.net | @HumperCobra) Fernando Méndez Torrubiano (https://fernmend.ddns.net)
*/ */
//Constantes: //Constantes:
@ -17,15 +17,15 @@ const int nSeries = 5;
//Tipos: //Tipos:
typedef struct { typedef struct {
double double
M, //Muestra. M, //Muestra.
RTTs, //RTTs. RTTs, //RTTs.
D, //Desviación. D, //Desviación.
RTO_Jacobson, //RTO de Jacobson. RTO_Jacobson, //RTO de Jacobson.
RTO_Jacobson_Karels; //RTO de Jacobson/Karels. RTO_Jacobson_Karels; //RTO de Jacobson/Karels.
} tDatos; } tDatos;
typedef tDatos tListaDatos[nDatos]; typedef tDatos tListaDatos[nDatos];
struct Comma final : std::numpunct<char>{ //Cambiar los '.' de los double por ','. struct Comma final : std::numpunct<char>{ //Cambia los '.' de los double por ','.
char do_decimal_point() const override { return ','; } char do_decimal_point() const override { return ','; }
}; };
@ -100,11 +100,13 @@ void calcular(tListaDatos& _datos, string& fichero) {
double alpha = 0.125; // 1/8 double alpha = 0.125; // 1/8
double beta = 0.25; // 1/4 double beta = 0.25; // 1/4
double gamma = 2; double gamma = 2;
// Caso Base:
_datos[0].RTTs = _datos[0].M; //Calculamos RTTs de 0. _datos[0].RTTs = _datos[0].M; //Calculamos RTTs de 0.
_datos[0].D = _datos[0].M / 2; //Calculamos la desviación de 0. _datos[0].D = _datos[0].M / 2; //Calculamos la desviación de 0.
_datos[0].RTO_Jacobson = gamma * _datos[0].RTTs; //Calculamos RTO de Jacobson de 0. _datos[0].RTO_Jacobson = gamma * _datos[0].RTTs; //Calculamos RTO de Jacobson de 0.
_datos[0].RTO_Jacobson_Karels = _datos[0].RTTs + (4 * _datos[0].D); //Calculamos RTO de Jacobson/Karels de 0. _datos[0].RTO_Jacobson_Karels = _datos[0].RTTs + (4 * _datos[0].D); //Calculamos RTO de Jacobson/Karels de 0.
// Resto de casos:
for (int i = 1; i < nDatos; i++) { for (int i = 1; i < nDatos; i++) {
_datos[i].RTTs = (((1 - alpha) * _datos[i - 1].RTTs) + (alpha * _datos[i].M)); //Calculamos RTTs de i. _datos[i].RTTs = (((1 - alpha) * _datos[i - 1].RTTs) + (alpha * _datos[i].M)); //Calculamos RTTs de i.
_datos[i].RTO_Jacobson = gamma * _datos[i].RTTs; //Calculamos RTO de Jacobson de i. _datos[i].RTO_Jacobson = gamma * _datos[i].RTTs; //Calculamos RTO de Jacobson de i.
@ -141,4 +143,4 @@ void guardar(tListaDatos& _datos, string& fichero) {
} }
} }
archivo.close(); archivo.close();
} }