Simulaciones Computacionales / Mbed 2 deprecated Proyecto_3_simulacionesC

Dependencies:   mbed

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;