// ============================================== // // funcion para calcular tasa promedio de perdida // // ============================================== // // utilitario del programa : medidor de congestion #include "def.h" double promedio (int i , int sec_int, int buf_sec[]){ // ======================== // declaracion de variables // ======================== int j; double loss_max , diff; // ======================================================= // calculo promedio antes de las diez primeras iteraciones // ======================================================= if (i < 10){ buf_sec[i] = sec_int; if ( sec_int == i){ // no existe perdida de paquetes loss_max = 0; return loss_max; } else{ // si existe perdida de paquetes diff = sec_int - i; loss_max = diff / 10.0; return loss_max; } } // ========================================================= // calculo promedio despues de las diez primeras iteraciones // ========================================================= else{ for (j = 0 ; j < RANGO - 1 ; ++j) buf_sec[j] = buf_sec[j + 1]; buf_sec[RANGO-1] = sec_int; if (sec_int == i){ // no existe perdida de paquetes loss_max = 0; return loss_max; } else{ // si existe perdida de paquetes loss_max = 0; diff = 0; for (j = 0 ; j < RANGO - 1 ; ++j){ diff += (buf_sec[j + 1] - buf_sec[j]) - 1; loss_max = diff /10.0; } return loss_max; } } }