Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 2:789421c43e73
- Parent:
- 1:6e6574fdb585
- Child:
- 3:2191cc27f1c4
--- a/main.cpp Mon Nov 16 15:42:20 2015 +0000 +++ b/main.cpp Mon Nov 16 15:49:34 2015 +0000 @@ -11,14 +11,14 @@ float S = 0.1; //Probabilidad de llegada a Q1 (vs. Salida) double t=0; //Inicializaci�n del tiempo actual -const int total =700; -double Vt[total]; //Vector de tiempos de eventos +const int total =30000; +//double Vt[total]; //Vector de tiempos de eventos int k = 1; //Indice de los eventos ocurridos float Tf=1000; //Tiempo m�ximo de simulaci�n -int C_Q1[total]; //Log de N�mero de paquetes en la cola Q1 -int C_Q2[total]; //Log de N�mero de paquetes en la cola Q2 -int C_Q3[total]; //Log de N�mero de paquetes en la cola Q3 +int C_Q1=0; //Log de N�mero de paquetes en la cola Q1 +int C_Q2=0; //Log de N�mero de paquetes en la cola Q2 +int C_Q3=0; //Log de N�mero de paquetes en la cola Q3 double t_arrival=0; //Tiempo de llegada de paquetes double t_out1=0; //Tiempo de salida de la cola Q1 @@ -67,17 +67,17 @@ for(k=1; k<total; k++) { t_arrival= r_exp(1.0/lamb); //Tiempo de llegada del siguiente paquete - if (C_Q1[k-1]>0) { + if (C_Q1>0) { t_out1= r_exp(1.0/mu_q1); } else { t_out1=t_arrival+1.0; } - if (C_Q2[k-1]>0) { + if (C_Q2>0) { t_out2= r_exp(1.0/mu_q2); } else { t_out2=t_arrival+1.0; } - if (C_Q3[k-1]>0) { + if (C_Q3>0) { t_out3= r_exp(1.0/mu_q3); } else { t_out3=t_arrival+1.0; @@ -99,7 +99,7 @@ // Se actualiza el vector de tiempos t=t+t_min; //Se actualiza el log de eventos - Vt[k]=t; + //Vt[k]=t; //Ahora se analiza el evento de minimo tiempo y se aplican los cambios @@ -107,35 +107,35 @@ case 0: //pc.printf("Arriving\r\n"); if (r_unif() >= P) { - C_Q1[k] = C_Q1[k-1]+1; //Entra a Q1 - C_Q2[k] = C_Q2[k-1]; //Q2 permanece igual - C_Q3[k] = C_Q3[k-1]; //Q3 permanece igual + C_Q1 = C_Q1+1; //Entra a Q1 + C_Q2 = C_Q2; //Q2 permanece igual + C_Q3 = C_Q3; //Q3 permanece igual } else { - C_Q2[k] = C_Q2[k-1]+1; //Entra a Q2 - C_Q1[k] = C_Q1[k-1]; //Q1 permanece igual - C_Q3[k] = C_Q3[k-1]; //Q3 permanece igual + C_Q2 = C_Q2+1; //Entra a Q2 + C_Q1 = C_Q1; //Q1 permanece igual + C_Q3 = C_Q3; //Q3 permanece igual } break; case 1: //La salida de la cola 1 es primero //pc.printf("Leaving 1\r\n"); - C_Q1[k] = C_Q1[k-1]-1; //Sale de Q1 - C_Q3[k] = C_Q3[k-1]+1; //Entra a Q3 - C_Q2[k] = C_Q2[k-1]; //Q2 permanece igual + C_Q1 = C_Q1-1; //Sale de Q1 + C_Q3 = C_Q3+1; //Entra a Q3 + C_Q2 = C_Q2; //Q2 permanece igual break; case 2: //La salida de la cola 2 es primero //pc.printf("Leaving 2\r\n"); - C_Q2[k] = C_Q2[k-1]-1; //Sale de Q2 - C_Q3[k] = C_Q3[k-1]+1; //Entra a Q3 - C_Q1[k] = C_Q1[k-1]; //Q1 permanece igual + C_Q2 = C_Q2-1; //Sale de Q2 + C_Q3 = C_Q3+1; //Entra a Q3 + C_Q1 = C_Q1; //Q1 permanece igual break; case 3: //pc.printf("Leaving 3\r\n"); - C_Q3[k] = C_Q3[k-1]-1; //Sale de Q3 - C_Q2[k] = C_Q2[k-1]; //Q2 permanece igual + C_Q3 = C_Q3-1; //Sale de Q3 + C_Q2 = C_Q2; //Q2 permanece igual if (r_unif()<S) { //Distr. uniforme para calcular prob 0.1 - C_Q1[k] = C_Q1[k-1]+1; //Entra a Q1 + C_Q1 = C_Q1+1; //Entra a Q1 } else { - C_Q1[k] = C_Q1[k-1]; //Q1 permanece igual + C_Q1 = C_Q1; //Q1 permanece igual } break; default: @@ -154,9 +154,9 @@ //pc.printf("T_2: %.2f \r\n ",t_out2); //pc.printf("T_3: %.2f \r\n ",t_out3); // pc.printf("-------------- \r\n"); - suma1=suma1+C_Q1[k]; - suma2=suma1+C_Q2[k]; - suma3=suma1+C_Q3[k]; + suma1=suma1+C_Q1; + suma2=suma1+C_Q2; + suma3=suma1+C_Q3; } mean1=suma1/total; mean2=suma2/total;