Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.42 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Diagnostics;
  7.  
  8. namespace AISDE1_100_
  9. {
  10.     class Program
  11.     {
  12.             public static void Simulation(Router rtr, double czasCalkowity)
  13.             {
  14.                 Stog Zdarzenie = new Stog();
  15.                 //Ordered_List Zdarzenie = new Ordered_List();
  16.                 //rtr.przepustowoscBajtow = 1;
  17.  
  18.                 double czasAktualny = 0;
  19.                 int iloscObslugiwanych = 0, iloscStrumieniWyjsciowych = 1;
  20.                 for (int i = 0; i < rtr.strumien.Count; i++)
  21.                 {
  22.                     double czasPrzyjscia = czasAktualny + rtr.strumien[i].PobierzCzas();
  23.                     Zdarzenie.WstawZdarzenie(TypZdarzenia.Przybycie, czasPrzyjscia, i);
  24.                 }
  25.                 while (czasAktualny < czasCalkowity)
  26.                 {
  27.                     Zdarzenie Zdarzeniet = Zdarzenie.PobierzZdarzenie();
  28.                     czasAktualny = Zdarzeniet.czas;
  29.                     switch (Zdarzeniet.Type)
  30.                     {
  31.                         case TypZdarzenia.Przybycie:
  32.                             if (iloscObslugiwanych < iloscStrumieniWyjsciowych)
  33.                             {
  34.                                 iloscObslugiwanych++;
  35.                                 Pakiet tmp1 = new Pakiet(Zdarzeniet.numerStrumienia, rtr.strumien[Zdarzeniet.numerStrumienia].PobierzRozmiar());
  36.                                 rtr.DodajDoKolejki(Zdarzeniet.numerStrumienia, tmp1, czasAktualny);
  37.                                 if (rtr.CzyPustaKolejka() == false)
  38.                                     Zdarzenie.WstawZdarzenie(TypZdarzenia.Opuszczenie, czasAktualny + rtr.wyslij(rtr.PobierzPakiet(czasAktualny)));
  39.                             }
  40.                             else
  41.                                 rtr.DodajDoKolejki(Zdarzeniet.numerStrumienia, rtr.PobierzPakietZeStrumienia(Zdarzeniet.numerStrumienia), czasAktualny);
  42.  
  43.                             Zdarzenie.WstawZdarzenie(TypZdarzenia.Przybycie, czasAktualny + rtr.strumien[Zdarzeniet.numerStrumienia].PobierzCzas(), Zdarzeniet.numerStrumienia);
  44.                             break;
  45.  
  46.                         case TypZdarzenia.Opuszczenie:
  47.                             iloscObslugiwanych--;
  48.                             if (rtr.CzyPustaKolejka() == false)
  49.                             {
  50.                                 iloscObslugiwanych++;
  51.                                 Zdarzenie.WstawZdarzenie(TypZdarzenia.Opuszczenie, czasAktualny + rtr.wyslij(rtr.PobierzPakiet(czasAktualny)));
  52.                             }
  53.                             break;
  54.  
  55.                     }
  56.                 }
  57.                 Statystyki stat = new Statystyki(rtr.PobierzStatystyki(), czasCalkowity);
  58.                 stat.Wyswietlaj();
  59.  
  60.             }
  61.             public static void Test(int iteration)
  62.             {
  63.                 int n = 1000000, m = 1000000, a = 10000, b = 100000;
  64.                 double stogCzasTestu = 1000, listaCzasTestu = 1000;
  65.                 Test.Ustawienia ustawienia = new Test.Ustawienia(n, m, a, b);
  66.                 Test test = new Test(ustawienia);
  67.                 using (System.IO.StreamWriter testFile = new System.IO.StreamWriter("testFile.txt"))
  68.                     for (int i = 1; i < iteration; i += 100)
  69.                     {
  70.                         ustawienia.ZmienDane(n, m, i, b);
  71.                         test.Odpal(out stogCzasTestu,out listaCzasTestu, ustawienia);
  72.                         testFile.WriteLine(i + " " + stogCzasTestu + " " + listaCzasTestu);
  73.                        // test.OdpalTylkoDlaStogu(out stogCzasTestu, ustawienia);
  74.                      //   testFile.WriteLine(i + " " + stogCzasTestu);
  75.                       //  test.OdpalTylkoDlaListy(out listaCzasTestu, ustawienia);
  76.                        // testFile.WriteLine(i + " " + listaCzasTestu);
  77.  
  78.                         if (i % 1000 == 1)
  79.                             Console.WriteLine(i);
  80.                     }
  81.  
  82.             }
  83.             public static void Main()
  84.             {
  85.                 Read read = new Read();
  86.                 read.WczytajWejscie();
  87.                 Router rtr = new Router(read);
  88.                 Test test = new Test();
  89.  
  90.                 Stopwatch sw = new Stopwatch();
  91.                 Simulation(rtr, 100000.0);
  92.                 Test(2002);
  93.                 Console.ReadKey();
  94.             }
  95.        
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement