podstawy symulacji projekt

background image

Wojskowa Akademia Techniczna

PODSTAWY SYMULACJI

Temat: Projekt programu symulującego działanie
sieci SMO

Prowadzący: dr inż. Jarosław Rulka
Student: Artur Piersa
Grupa: I2A4S1
Numer na liście: 3

background image

Zadanie laboratoryjne numer 1

Zaprojektować i zaimplementować program symulujący działanie sieci SMO jak na rysunku:

Wyznaczenie parametrów:

rozkład zmiennych Tj: (nrDz + i) mod 6 + 1

T1 = (3+1) mod6 + 1 = 4 + 1 = 5 → rozkład trójkątny

T2 = (3+2) mod6 + 1 = 5 + 1 = 6 → rozkład Weibulla

rozkład zmiennych Oi: (nrDz + i + 1) mod 6 + 1

O1 = (3 + 1 + 1) mod6 + 1 = 5 + 1 = 6 → rozkład Weibulla

O2 = (3 + 2 + 1) mod6 + 1 = 0 + 1 = 1 → rozkład wykładniczy

O3 = (3 + 3 + 1) mod6 + 1 = 1 + 1 = 2 → rozkład Erlanga

długość kolejki i-tego SMO Li: (nrDz + i) mod 2 + 1

L1 = (3+1) mod2 + 1 = 0 + 1 = 1 → ograniczona (możliwe straty)

L2 = (3+2) mod2 + 1 = 1 + 1 = 2 → nieograniczona

L3 = (3+3) mod2 + 1 = 0 + 1 = 1 → ograniczona (możliwe straty)

algorytmy kolejek ALi: (nrDz + i + 2) mod 3 + 1

AL1 = (3 + 1 + 2) mod3 + 1 = 0 + 1 = 1 → FIFO

AL2 = (3 + 2 + 2) mod3 + 1 = 1 + 1 = 2 → LIFO

AL3 = (3 + 3 + 2) mod3 + 1 = 2 + 1 = 3 → z priorytetami

wielkość paczki zgłoszeń j-tego strumienia Rj = (nrDz + i + 5) mod 3 + 1

R1 = (3 + 1 + 5) mod3 + 1 = 0 + 1 = 1 → 1

R2 = (3 + 2 + 5) mod3 + 1 = 1 + 1 = 2 → 2

liczba stanowisk obsługi w gniazdach Mi = (nrDz + i + 2) mod 4 + 1

M1 = (3 + 1 + 2) mod4 + 1 = 2 + 1 = 3 → 3

M2 = (3 + 2 + 2) mod4 + 1 = 3 + 1 = 4 → 4

M3 = (3 + 3 + 2) mod4 + 1 = 0 + 1 = 1 → 1

klienci niecierpliwi w SMOi : Ni = (nrDz + i) mod 4

N1 = (3 + 1) mod4 = 0 → 0

N2 = (3 + 2) mod4 = 1 → 1

N3 = (3 + 3) mod4 = 2 → 2

background image

Rozwiązanie problemu:

Opis obiektów stworzonych przeze mnie w tym zadaniu:

Generator1Obj – obiekt generatora 1 (rozkład trójkątny)

Generator2Obj – obiekt generatora 2 (rozkład Weibulla)

Kolejka1Obj – obiekt kolejki pierwszej (FIFO z ograniczeniami)

Kolejka2Obj – obiekt kolejki drugiej (LIFO bez ograniczeń)

Kolejka3Obj – obiekt kolejki trzeciej (priorytetowa z ograniczeniami)

Okienko1Obj – obiekt gniazda pierwszego

Okienko2Obj – obiekt gniazda drugiego

Okienko3Obj – obiekt gniazda trzeciego

StudentObj – obiekt reprezentujący studenta w kolejce

Opis użytych rozkładów:

background image
background image

Kod programu:

MAIN MODULE psy;

FROM RandMod IMPORT RandomObj, Random;
FROM IOMod IMPORT ReadKey;
FROM ListMod IMPORT QueueList;
FROM GrpMod IMPORT QueueObj, StackObj, RankedObj;
FROM SimMod IMPORT SimTime, StartSimulation, TriggerObj;
FROM StatMod IMPORT SREAL, RStatObj,ITimedStatObj, TSINTEGER;
FROM IOMod IMPORT StreamObj, ALL FileUseType;

TYPE
Generator1Obj = OBJECT; FORWARD;
Generator2Obj = OBJECT; FORWARD;
Kolejka1Obj = OBJECT; FORWARD;
Kolejka2Obj = OBJECT; FORWARD;
Kolejka3Obj = OBJECT; FORWARD;
Okienko1Obj = OBJECT; FORWARD;
Okienko2Obj = OBJECT; FORWARD;
Okienko3Obj = OBJECT; FORWARD;
StudentObj = OBJECT; FORWARD;

Generator1Obj = OBJECT(RandomObj);

min: REAL;
mode: REAL;
max: REAL;
GenLos: RandomObj;
Kolejka1: Kolejka1Obj;
tryb: INTEGER;
TELL METHOD Generuj(IN LiczbaOsob:INTEGER);
ASK METHOD Ustaw(IN a, b, c: REAL; IN Kol:Kolejka1Obj; IN t:INTEGER);

END OBJECT;

Generator2Obj = OBJECT(RandomObj);

shape: REAL;
scale: REAL;
GenLos: RandomObj;
Kolejka2: Kolejka2Obj;
tryb: INTEGER;
TELL METHOD Generuj(IN LiczbaOsob:INTEGER);
ASK METHOD Ustaw(IN sh, sc: REAL; IN Kol:Kolejka2Obj; IN t:INTEGER);

END OBJECT;

Kolejka1Obj = OBJECT(QueueObj);

{Kolejka FIFO z ograniczeniami}

ograniczenie: INTEGER;
dlugosc: TSINTEGER;
okienko1: Okienko1Obj;
przyjete: INTEGER;
odrzucone: INTEGER;
tryb: INTEGER;
ASK METHOD Wstaw(IN Kl:StudentObj);
ASK METHOD Ustaw(IN okien: Okienko1Obj; IN ogr: INTEGER; IN t:INTEGER);

END OBJECT;

Kolejka2Obj = OBJECT(StackObj);

{Kolejka LIFO nieograniczona}

okienko2: Okienko2Obj;
dlugosc: TSINTEGER;
przyjete: INTEGER;
odrzucone: INTEGER;

background image

tryb: INTEGER;
ASK METHOD Wstaw(IN Kl:StudentObj);
ASK METHOD Ustaw(IN okien: Okienko2Obj; IN t:INTEGER);

END OBJECT;

Kolejka3Obj = OBJECT(RankedObj);

{Kolejka priorytetowa ograniczona}

ograniczenie: INTEGER;
dlugosc: TSINTEGER;
przyjete: INTEGER;
odrzucone: INTEGER;
tryb: INTEGER;
okienko3: Okienko3Obj;
ASK METHOD Wstaw(IN Kl:StudentObj);
ASK METHOD Ustaw(IN okien: Okienko3Obj; IN ogr: INTEGER; IN t:INTEGER);

END OBJECT;

Okienko1Obj = OBJECT(RandomObj);

shape: REAL;
scale: REAL;
Kolejka1: Kolejka1Obj;
Kolejka3: Kolejka3Obj;
los:RandomObj;
stanowiska: TSINTEGER;
tryb: INTEGER;
p1: REAL;
TELL METHOD Obsluguj();
ASK METHOD Ustaw(IN sh: REAL; IN sc: REAL; IN Kol1: Kolejka1Obj; IN Kol3:Kolejka3Obj; IN

t:INTEGER; IN pstwo: REAL);
END OBJECT;

Okienko2Obj = OBJECT(RandomObj);

lambda: REAL;
czasprzebywania:SREAL;
Kolejka2: Kolejka2Obj;
Kolejka3: Kolejka3Obj;
stanowiska: TSINTEGER;
tryb: INTEGER;
TELL METHOD Obsluguj();
ASK METHOD Ustaw(IN la:REAL; IN Kol2:Kolejka2Obj; IN Kol3:Kolejka3Obj; IN t:INTEGER);

END OBJECT;

Okienko3Obj = OBJECT(RandomObj);

shape: REAL;
lambda: INTEGER;
czasprzebywania:SREAL;
Kolejka3: Kolejka3Obj;
Kolejka2: Kolejka2Obj;
los:RandomObj;
zajete: BOOLEAN;
tryb: INTEGER;
p2: REAL;
TELL METHOD Obsluguj();
ASK METHOD Ustaw(IN sh: REAL; IN la: INTEGER; IN Kol3: Kolejka3Obj; IN Kol2: Kolejka2Obj; IN

t:INTEGER; IN pstwo: REAL);
END OBJECT;

StudentObj = OBJECT(RandomObj);

Nr: INTEGER;
CzasWejscia: REAL;
ASK METHOD ustawCzas();
ASK METHOD usun();
ASK METHOD ustaw(IN numer: INTEGER);

END OBJECT;

background image

OBJECT Generator1Obj;

ASK METHOD Ustaw(IN a, b, c: REAL; IN Kol:Kolejka1Obj; IN t:INTEGER);
BEGIN

min:=a;
mode:=b;
max:=c;
tryb:=t;
Kolejka1:=Kol;

END METHOD;

TELL METHOD Generuj(IN LiczbaOsob:INTEGER);
VAR

i:INTEGER;
st:StudentObj;

BEGIN

FOR i:=1 TO LiczbaOsob BY 1

WAIT DURATION Triangular(min, mode, max);
END WAIT;
NEW(st);

ASK st TO ustaw(i);
IF tryb<>0
OUTPUT(SimTime," [*] Stworzono nowego Studenta Nr ", ASK st TO Nr,".");
END IF;
ASK Kolejka1 TO Wstaw(st);

END FOR;

END METHOD;

END OBJECT;

OBJECT Generator2Obj;

ASK METHOD Ustaw(IN sh, sc: REAL; IN Kol:Kolejka2Obj; IN t:INTEGER);
BEGIN

shape:=sh;
scale:=sc;
tryb:=t;
Kolejka2:=Kol;

END METHOD;

TELL METHOD Generuj(IN LiczbaOsob:INTEGER);
VAR

i:INTEGER;
st:StudentObj;

BEGIN

FOR i:=1 TO LiczbaOsob BY 1

WAIT DURATION Weibull(shape, scale);
END WAIT;
NEW(st);

ASK st TO ustaw(i);
IF tryb<>0
OUTPUT(SimTime," [*] Stworzono nowego Studenta Nr ", ASK st TO Nr,".");
END IF;
ASK Kolejka2 TO Wstaw(st);

END FOR;

END METHOD;

END OBJECT;

OBJECT Kolejka1Obj;

ASK METHOD Wstaw(IN student:StudentObj);

background image

BEGIN

IF ograniczenie > numberIn;

Add(student);
ASK student TO ustawCzas;
IF tryb<>0
OUTPUT(SimTime, " [+] Student Nr ", ASK student TO Nr, " zostal zakolejkowany do

kolejki 1");

END IF;
dlugosc:=numberIn;
IF ASK okienko1 TO stanowiska < 3 {ilosc stanowisk w okienku 1}

INC(przyjete);
TELL okienko1 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

ELSE

IF tryb<>0
OUTPUT(SimTime, " [<<] Student Nr ", ASK student TO Nr," zostal odrzucony z Kolejki

1");

END IF;
DISPOSE(student);

END IF;

END METHOD;
ASK METHOD Ustaw(IN gnd:Okienko1Obj; IN ogr:INTEGER; IN t:INTEGER);
BEGIN

okienko1:=gnd;
ograniczenie:=ogr;
tryb:=t;

END METHOD;

END OBJECT;

OBJECT Kolejka2Obj;

ASK METHOD Wstaw(IN student:StudentObj);
BEGIN

Add(student);
IF tryb<>0
OUTPUT(SimTime, " [+] Student Nr ", ASK student TO Nr, " zostal zakolejkowany do Kolejki 2");
END IF;
dlugosc:=numberIn;
IF ASK okienko2 TO stanowiska < 4 {ilosc stanowisk w okienku 2}

INC(przyjete);
TELL okienko2 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

END METHOD;

ASK METHOD Ustaw(IN gnd: Okienko2Obj; IN t:INTEGER);
BEGIN

okienko2:=gnd;
tryb:=t;

END METHOD;

END OBJECT;

OBJECT Kolejka3Obj;

ASK METHOD Wstaw(IN student:StudentObj);
BEGIN

IF ograniczenie > numberIn;

Add(student);
IF tryb<>0
OUTPUT(SimTime, " [+] Student Nr ", ASK student TO Nr, " zostal zakolejkowany do

kolejki 3");

END IF;

background image

dlugosc:=numberIn;
IF NOT ASK okienko3 TO zajete

INC(przyjete);
TELL okienko3 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

ELSE

IF tryb<>0
OUTPUT(SimTime, " [<<] Student Nr ", ASK student TO Nr," zostal odrzucony z Kolejki

3");

END IF;
DISPOSE(student);

END IF;

END METHOD;

ASK METHOD Ustaw(IN gnd: Okienko3Obj; IN ogr:INTEGER; IN t:INTEGER);
BEGIN

okienko3:=gnd;
ograniczenie:=ogr;
tryb:=t;

END METHOD;

END OBJECT;

OBJECT Okienko1Obj;

ASK METHOD Ustaw(IN sh: REAL; IN sc: REAL; IN Kol1: Kolejka1Obj; IN Kol3:Kolejka3Obj; IN

t:INTEGER; IN pstwo: REAL);

BEGIN

shape:=sh;
scale:=sc;
Kolejka1:=Kol1;
Kolejka3:=Kol3;
NEW(los);
stanowiska:=0;
tryb:=t;
p1:=pstwo;

END METHOD;

TELL METHOD Obsluguj();
VAR

st:StudentObj;
zmlos:REAL;

BEGIN

WHILE ASK Kolejka1 TO numberIn > 0
INC(stanowiska);

st:=ASK Kolejka1 TO Remove();
IF tryb<>0
OUTPUT(SimTime, " [@] Rozpoczeto obsluge Studenta Nr ", ASK st TO Nr," w okienku 1,

stanowisko:", stanowiska);

END IF;
WAIT DURATION Weibull(shape, scale)
ON INTERRUPT
END WAIT;

IF tryb<>0
OUTPUT(SimTime, " [V] Student: ", ASK st TO Nr, " Obsluzony w okienku1");
END IF;

zmlos:=ASK los Sample();

IF zmlos < p1

IF tryb<>0

background image

OUTPUT(SimTime, " [>>] Okienko 1 przekierowuje Studenta Nr ", ASK st TO Nr,"

do kolejki 1, zmlos=", zmlos);

END IF;
ASK Kolejka1 TO Wstaw(st);

ELSE

IF tryb<>0
OUTPUT(SimTime, " [>>] Okienko 1 przekierowuje Studenta Nr ", ASK st TO Nr,"

do kolejki 3, zmlos=", zmlos);

END IF;
ASK Kolejka3 TO Wstaw(st);

END IF;

DEC(stanowiska);
END WHILE;

END METHOD;

END OBJECT;

OBJECT Okienko2Obj;

ASK METHOD Ustaw(IN la:REAL; IN Kol2:Kolejka2Obj; IN Kol3:Kolejka3Obj; IN t:INTEGER);
BEGIN

lambda:=la;
Kolejka2:=Kol2;
Kolejka3:=Kol3;
stanowiska:=0;
tryb:=t;

END METHOD;

TELL METHOD Obsluguj();
VAR

st:StudentObj;
zmlos:REAL;

BEGIN

INC(stanowiska);
WHILE ASK Kolejka2 TO numberIn > 0

st:=ASK Kolejka2 TO Remove();
IF tryb<>0
OUTPUT(SimTime, " [@] Rozpoczeto obsluge studenta nr ", ASK st TO Nr," w okienku 2,

stan stanowiska:", stanowiska);

END IF;
WAIT DURATION Exponential(1.0 / lambda)
ON INTERRUPT
END WAIT;

IF tryb<>0
OUTPUT(SimTime, " [V] Student: ", ASK st TO Nr, " Obsluzony w okienku2");
OUTPUT(SimTime, " [>>] Okienko 2 przekierowuje Studenta Nr ", ASK st TO Nr," do

kolejki 3");

END IF;
ASK Kolejka3 TO Wstaw(st);

END WHILE;
DEC(stanowiska);

END METHOD;

END OBJECT;

OBJECT Okienko3Obj;

ASK METHOD Ustaw(IN sh: REAL; IN la: INTEGER; IN Kol3: Kolejka3Obj; IN Kol2: Kolejka2Obj; IN

t:INTEGER; IN pstwo: REAL);

BEGIN

shape:=sh;
lambda:=la;
Kolejka3:=Kol3;

background image

Kolejka2:=Kol2;
NEW(los);
zajete:=FALSE;
tryb:=t;
p2:=pstwo;

END METHOD;

TELL METHOD Obsluguj();
VAR

st:StudentObj;
zmlos:REAL;

BEGIN

zajete:=TRUE;
WHILE ASK Kolejka3 TO numberIn > 0

st:=ASK Kolejka3 TO Remove();
IF tryb<>0
OUTPUT(SimTime, " [@] Rozpoczeto obsluge studenta nr ", ASK st TO Nr," w okienku 3,

stan stanowiska:", zajete);

END IF;
WAIT DURATION Erlang(shape,lambda)
ON INTERRUPT;
END WAIT;
IF tryb<>0
OUTPUT(SimTime, " [V] Student: ", ASK st TO Nr, " Obsluzony w okienku 3");
END IF;
zmlos:=ASK los Sample();

IF zmlos < p2

IF tryb<>0
OUTPUT(SimTime, " [>>] Okienko 3 przekierowuje Studenta Nr ", ASK st TO Nr,"

do kolejki 2, zmlos=", zmlos);

END IF;
ASK Kolejka2 TO Wstaw(st);

ELSE

IF tryb<>0
OUTPUT(SimTime, " [X] Student Nr ", ASK st TO Nr, " OPUSCIL SYSTEM,

zmlos=", zmlos);

END IF;
czasprzebywania:=SimTime - ASK st TO CzasWejscia;
ASK st TO usun();

END IF;

END WHILE;
zajete:=FALSE;

END METHOD;

END OBJECT;

OBJECT StudentObj;

ASK METHOD ustaw(IN numer: INTEGER);
BEGIN

Nr:=numer;

END METHOD;

ASK METHOD usun();
BEGIN

DISPOSE(SELF);

END METHOD;

ASK METHOD ustawCzas();
BEGIN

CzasWejscia:=SimTime;

END METHOD;

END OBJECT;

background image

VAR

okienko1:Okienko1Obj;
okienko2:Okienko2Obj;
okienko3:Okienko3Obj;
kolejka1:Kolejka1Obj;
kolejka2:Kolejka2Obj;
kolejka3:Kolejka3Obj;
generator1:Generator1Obj;
generator2:Generator2Obj;
tryb:INTEGER;
ch:CHAR;
min,mode,max,shape,scale,shape2,scale2,lambda,shapeEr,praw1,praw2,praw3:REAL;
p1, p2: REAL;
lambdaEr:INTEGER;
plik, conf: StreamObj;
ogr1,ogr2,losob:INTEGER;
monITS1, monITS2, monITS3, monSTA1, monSTA2: ITimedStatObj;
monRS1, monRS2: RStatObj;
i, liczbaParametrow: INTEGER;

BEGIN

NEW(okienko1);
NEW(okienko2);
NEW(okienko3);
NEW(kolejka1);
NEW(kolejka2);
NEW(kolejka3);
NEW(generator1);
NEW(generator2);

OUTPUT(" ");
OUTPUT("Struktura pliku z konfiguracja: ");
OUTPUT("Generator 1 - rozklad trojkatny: min, mode, max");
OUTPUT("Generator 2 - rozklad Weibulla: shape, scale");
OUTPUT("Okienko 1 - rozklad Weibulla: shape, scale");
OUTPUT("Okienko 2 - rozklad wykladniczy: lambda");
OUTPUT("Okienko 3 - rozklad Erlanga: shape, lambda");
OUTPUT("Ograniczenia okienka 1 i okienka 3");
OUTPUT("Liczba osob");
OUTPUT("Prawdopodobienstwo p1");
OUTPUT("Prawdopodobienstwo p2");
OUTPUT("-------------------------------------------------------------");
OUTPUT("Podaj tryb pracy (=0 - bez komunikatow, <>0 - z komunikatami )");
INPUT(tryb);

liczbaParametrow:= 15;

{parametry domyslne}
min:=0.1;
mode:=0.3;
max:=0.7;
shape:=0.1;
scale:=0.8;
shape2:=0.2;

background image

scale2:=0.7;
lambda:=5.0;
shapeEr:=0.1;
lambdaEr:=9;
ogr1:=30;
ogr2:=3;
losob:=25;
p1:=0.1;
p2:=0.3;

NEW(conf);
ASK conf TO Open("sim.txt", Input);

ASK conf TO ReadReal(min);
ASK conf TO ReadReal(mode);
ASK conf TO ReadReal(max);
ASK conf TO ReadReal(shape);
ASK conf TO ReadReal(scale);
ASK conf TO ReadReal(shape2);
ASK conf TO ReadReal(scale2);
ASK conf TO ReadReal(lambda);
ASK conf TO ReadReal(shapeEr);
ASK conf TO ReadInt(lambdaEr);
ASK conf TO ReadInt(ogr1);
ASK conf TO ReadInt(ogr2);
ASK conf TO ReadInt(losob);
ASK conf TO ReadReal(p1);
ASK conf TO ReadReal(p1);

ASK conf TO Close;

ASK generator1 TO Ustaw(min, mode, max, kolejka1, tryb);
ASK generator2 TO Ustaw(shape, scale, kolejka2, tryb);
ASK kolejka1 TO Ustaw(okienko1, ogr1, tryb);

ASK okienko1 TO Ustaw(shape2,scale2,kolejka1,kolejka3,tryb,p1);

ASK kolejka2 TO Ustaw(okienko2,tryb);

ASK okienko2 TO Ustaw(lambda,kolejka2,kolejka3,tryb);

ASK kolejka3 TO Ustaw(okienko3, ogr2,tryb);

ASK okienko3 TO Ustaw(shapeEr,lambdaEr,kolejka3,kolejka2,tryb,p2);

TELL generator1 TO Generuj(losob);
TELL generator2 TO Generuj(losob);

StartSimulation();

NEW(plik);
ASK plik TO Open("wyniki.txt", Output);

monITS1 := GETMONITOR(ASK kolejka1 TO dlugosc, ITimedStatObj);
monITS2 := GETMONITOR(ASK kolejka2 TO dlugosc, ITimedStatObj);
monITS3 := GETMONITOR(ASK kolejka3 TO dlugosc, ITimedStatObj);
monSTA1 := GETMONITOR(ASK okienko1 TO stanowiska, ITimedStatObj);
monSTA2 := GETMONITOR(ASK okienko2 TO stanowiska, ITimedStatObj);
monRS1 := GETMONITOR(ASK okienko2 TO czasprzebywania, RStatObj);
monRS1 := GETMONITOR(ASK okienko3 TO czasprzebywania, RStatObj);

ASK plik TO WriteString ("SREDNIA DLUGOSC KOLEJKI1: ");
ASK plik TO WriteReal (ASK monITS1 TO Mean(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString ("ODCHYLENIE: ");
ASK plik TO WriteReal (ASK monITS1 TO StdDev(), 10, 4);
ASK plik TO WriteLn;

background image

ASK plik TO WriteString ("SREDNIA DLUGOSC KOLEJKI2: ");
ASK plik TO WriteReal (ASK monITS2 TO Mean(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString ("ODCHYLENIE: ");
ASK plik TO WriteReal( ASK monITS2 TO StdDev(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString ("SREDNIA DLUGOSC KOLEJKI3: ");
ASK plik TO WriteReal(ASK monITS3 TO Mean(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString ("ODCHYLENIE: ");
ASK plik TO WriteReal(ASK monITS3 TO StdDev(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString ("SREDNI CZASOBSLUGI: ");
ASK plik TO WriteReal(ASK monRS1 TO Mean(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString ("ODCHYLENIE: ");
ASK plik TO WriteReal(ASK monRS1 TO StdDev(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString("SREDNIA LICZBA ZAJETYCH KANALOW W OKIENKU1: ");
ASK plik TO WriteReal( ASK monSTA1 TO Mean(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString("ODCHYLENIE: ");
ASK plik TO WriteReal(ASK monSTA1 TO StdDev(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString ("SREDNIA LICZBA ZAJETYCH KANALOW W OKIENKU2: ");
ASK plik TO WriteReal( ASK monSTA2 TO Mean(), 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString("ODCHYLENIE: ");
ASK plik TO WriteReal(ASK monSTA2 TO StdDev(), 10, 4);
ASK plik TO WriteLn;
praw1 := FLOAT(ASK kolejka1 TO odrzucone)/FLOAT(ASK kolejka1 TO przyjete + ASK kolejka1 TO

odrzucone);

ASK plik TO WriteString ("PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO1: ");
ASK plik TO WriteReal(praw1, 10, 4);
ASK plik TO WriteLn;
praw2 := FLOAT(ASK kolejka2 TO odrzucone)/FLOAT(ASK kolejka2 TO przyjete + ASK kolejka2 TO

odrzucone);

ASK plik TO WriteString("PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO2: ");
ASK plik TO WriteReal(praw2, 10, 4);
ASK plik TO WriteLn;
praw3 := FLOAT(ASK kolejka3 TO odrzucone)/FLOAT(ASK kolejka3 TO przyjete + ASK kolejka3 TO

odrzucone);

ASK plik TO WriteString ("PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO3: ");
ASK plik TO WriteReal(praw3, 10, 4);
ASK plik TO Close;
DISPOSE(okienko1);
DISPOSE(okienko2);
DISPOSE(okienko3);
DISPOSE(kolejka1);
DISPOSE(kolejka2);
DISPOSE(kolejka3);
DISPOSE(generator1);
DISPOSE(generator2);
OUTPUT ("Nacisnij dowolny klawisz...");

ch:=ReadKey();

END MODULE.


Wyszukiwarka

Podobne podstrony:
bank-program, WAT, SEMESTR V, podstawy symulacji, projekty, PS, PSym
2008-Laboratorium-zadania, WAT, SEMESTR V, podstawy symulacji, projekty, PS, PSym
zadania laboratoryjne, WAT, SEMESTR V, podstawy symulacji, projekty, PS, RURKU, psy lrm-20091111, la
styś, podstawy konstrukcji?tonowych, Projektowanie?lek żelbetowych
ciasne22, Akademia Morska -materiały mechaniczne, szkoła, Mega Szkoła, PODSTAWY KON, Projekt, Pkm
PODSTAWY OBLICZE , Projekt budynku wilorodzinnego w technologii tradycyjnej
Projekt most lpt, 1. Semestr V, Podstawy Mostownictwa, Projekt, Przykładowy Projekt 1
projekt z logistyki - ankieta, Studia - Politechnika Śląska, Zarządzanie, I STOPIEŃ, Podstawy logist
interpolacja projekt, Automatyka i Robotyka, Semestr 1, Podstawy Sterowania, projekt1-Interpolacja
luzne15- Guciu, Akademia Morska -materiały mechaniczne, szkoła, Mega Szkoła, PODSTAWY KON, Projekt,

więcej podobnych podstron