I7G2S1 Kolodziejski Lukasz psy

background image

WOJSKOWA AKADEMIA TECHNICZNA

Podstawy symulacji

Zadanie laboratoryjne nr 2

Prowadzący : dr inż. Jarosław Rulka
Grupa: I7G2S1
Wykonawca:

Łukasz Kołodziejski

background image

Napisać program symulujący działanie sieci SMO jak na rysunku:

Przy realizacji zadania należy przyjąć następujące dane z listy przedstawionej poniżej:
a)

rozkład zmiennych T

j

: (nrDz + i) mod 6 + 1;

b)

rozkład zmiennych O

i

: (nrDz + i + 1) mod 6 + 1;

c) L

i

: (nrDz + i) mod 2 + 1;

d) AL

i

: (nrDz + i + 2) mod 3 + 1;

e) R

j

= (nrDz + i + 5) mod 3 + 1;

f) M

i

= (nrDz + i + 2) mod 4 + 1;

g)

Blokowanie zgłoszeń 1. SMO;

h) Klienci niecierpliwi w SMO

i

: N

i

= (nrDz + i) mod 4 (ograniczony czas oczekiwania na rozpoczęcie obsługi);

gdzie:
i – numer SMO;
j – numer strumienia;
T

j

– zmienna losowa oznaczająca czas pomiędzy kolejnymi napływami zgłoszeń do systemu;

O

i

– zmienna losowa oznaczająca czas obsługi pojedynczego zgłoszenia w gnieździe;

N

i

– zmienna losowa oznaczająca czas niecierpliwości zgłoszenia (gdy i = 0 => zgłoszenia cierpliwe);

R

j

– zmienna losowa oznaczająca wielkość paczki zgłoszeń (wchodzących w tej samej chwili) j-tego strumienia;

p

k

– prawdopodobieństwa przemieszczenia się zgłoszenia po danym łuku;

L

i

– długość kolejki i-tego SMO;

AL.

i

– algorytmy kolejek (w przypadku istnienia kolejki z priorytetami należy przyjąć, że zgłoszenia posiadają

priorytety);
1. Rozkłady zmiennych losowych:

1.1. Wykładniczy
1.2. Erlanga
1.3. Normalny
1.4. Jednostajny
1.5. Trójkątny
1.6. Weibulla

2. Długości kolejek pojedynczych SMO

2.1. ograniczone (możliwe straty)
2.2. nieograniczone

3. Algorytm kolejek:

3.1. FIFO
3.2. LIFO
3.3. Z priorytetami

4. Liczba stanowisk obsługi w gniazdach (1-M)
5. Ilość zgłoszeń jednocześnie napływających do systemu (1-R)
Pozostałe dane należy określać na początku symulacji.

SMO

SMO

O

2

O

3

SMO

O

1

T

1

p

1

1-p

1

p

2

p

3

background image

Rozwiązanie dla numeru 2.

Rozkłady zmiennej losowej oznaczający czas pomiędzy kolejnymi napływami zgłoszeń do systemu:
T1 – rozkład jednostajny
Paczka R1 = 1
Rozkłady zmiennych losowych oznaczających czas obsługi pojedynczego zgłoszenia w gnieździe:
O1 – rozkład trójkątny
O2 – rozkład Weibull’a
O3 – rozkład wykładniczy
Długości kolejek SMO:
L1 – nieograniczona
L2 – ograniczona
L3 – nieograniczona
Algorytmy kolejek:
AL1 – z priorytetami
AL2 – FIFO
AL3 – LIFO
Liczba stanowisk obsługi:
M1 – 2
M2 – 3
M3 – 4
Zmienne losowe oznaczające czas niecierpliwości zgłoszenia:
N1 – rozkład normalny
N2 – zgłoszenie cierpliwe
N3 – rozkład wykładniczy
Blokowanie zgłoszeń w 1 SMO.

Sposób rozwiązania
Na początku generowani są klienci, którzy udają się do pierwszej kolejki (z priorytetami) po jednym
kliencie. Do każdego klienta zostaje przypisany priorytet i prawdopodobieństwo przejść między
elementami systemu. Z pierwszej kolejki klient przechodzi do pierwszego gniazda obsługi o rozkładzie
trójkątnym i ilości stanowisk obsługi równej 2, aby zostać tam obsłużonym. Po wyjściu z pierwszego
gniazda klient z nadanym mu wcześniej prawdopodobieństwem p1 pójdzie do gniazda numer 2 o
rozkładzie Weibull’a z trzema stanowiskami obsługi, bądź z prawdopodobieństwem 1-p1 uda się do
trzeciego gniazda o rozkładzie wykładniczym z czterema stanowiskami obsługi. Po wyjściu z gniazda
drugiego ,klient może powrócić do niego (prawdopodobieństwo p2) , bądź opuścić system. Po
wyjściu z gniazda trzeciego klient może powrócić do gniazda pierwszego (prawdopodobieństwo p3),
bądź opuścić system. Jeżeli powróci do systemu, to prawdopodobieństwo, że przy następnym
wyborze też pozostanie w systemie zostanie zmniejszone.





background image

Użyte rozkłady:
-Rozkład jednostajny:

-Rozkład trójkątny:

-Rozkład Weibulla:

Gęstość:

Dystrybuanta:


-Rozkład wykładniczy:

Gęstość:

Dystrybuanta:

background image




Kod programu:

MAIN MODULE wooka;

(*=====================================================================biblioteki=========*)

FROM IOMod IMPORT ReadKey; (*we/wy*)
FROM RandMod IMPORT RandomObj, Random; (*liczby pseudolosowe*)
FROM ListMod IMPORT QueueList; (*struktury z rekordami*)
FROM GrpMod IMPORT QueueObj, StackObj, RankedObj; (*struktury z obiektami*)
FROM SimMod IMPORT SimTime, StartSimulation, TriggerObj; (*operacje zwiazane z symulacja*)
FROM StatMod IMPORT SREAL, RStatObj,ITimedStatObj, TSINTEGER; (*monitory statyczne , zmienne real, wazony czasem*)
FROM IOMod IMPORT StreamObj, ALL FileUseType;


(*======================================================================obiekty===========*)

TYPE
GeneratorObj = OBJECT; FORWARD;
Kolejka1Obj = OBJECT; FORWARD;
Kolejka2Obj = OBJECT; FORWARD;
Kolejka3Obj = OBJECT; FORWARD;
Okienko1Obj = OBJECT; FORWARD;
Okienko2Obj = OBJECT; FORWARD;
Okienko3Obj = OBJECT; FORWARD;
KlientObj = OBJECT; FORWARD;

GeneratorObj = OBJECT(RandomObj);

kom: BOOLEAN;

lo: REAL;

hi: REAL;

GenLos: RandomObj;

Kolejka1: Kolejka1Obj;

showst: INTEGER;

TELL METHOD Generuj(IN LiczbaOsob:INTEGER);

ASK METHOD Ustaw(IN l: REAL; IN h: REAL; IN Kol:Kolejka1Obj; IN showst2:INTEGER; IN kw:BOOLEAN);


END OBJECT;

Kolejka1Obj = OBJECT(RankedObj);

kom: BOOLEAN;

dlugosc: TSINTEGER;

okienko1: Okienko1Obj;

przyjete: INTEGER;

odrzucone: INTEGER;

ASK METHOD Wstaw(IN Kl:KlientObj; IN kw:BOOLEAN);

ASK METHOD Ustaw(IN okien: Okienko1Obj);

END OBJECT;

Kolejka2Obj = OBJECT(QueueObj);

kom: BOOLEAN;

ograniczenie: INTEGER;

okienko2: Okienko2Obj;

dlugosc: TSINTEGER;

przyjete: INTEGER;

odrzucone: INTEGER;

ASK METHOD Wstaw(IN Kl:KlientObj; IN kw:BOOLEAN);

ASK METHOD Ustaw(IN okien: Okienko2Obj; IN ogran: INTEGER);

background image

END OBJECT;

Kolejka3Obj = OBJECT(StackObj);

kom: BOOLEAN;

dlugosc: TSINTEGER;

przyjete: INTEGER;

odrzucone: INTEGER;

okienko3: Okienko3Obj;

ASK METHOD Wstaw(IN Kl:KlientObj; IN kw:BOOLEAN);

ASK METHOD Ustaw(IN okien: Okienko3Obj);

END OBJECT;

Okienko1Obj = OBJECT(RandomObj);

kom: BOOLEAN;

min: REAL;

mode: REAL;

max: REAL;

Kolejka1: Kolejka1Obj;

Kolejka2: Kolejka2Obj;

Kolejka3: Kolejka3Obj;

los:RandomObj;

stanowiska: TSINTEGER;

TELL METHOD Obsluguj();

ASK METHOD Ustaw(IN mi:REAL; IN mo:REAL; IN ma:REAL; IN Kol1: Kolejka1Obj; IN Kol2:Kolejka2Obj; IN Kol3:Kolejka3Obj; IN

kw:BOOLEAN);
END OBJECT;

Okienko2Obj = OBJECT(RandomObj);

kom: BOOLEAN;

shape: REAL;

scale: REAL;

czasprzebywania:SREAL;

los:RandomObj;

Kolejka2: Kolejka2Obj;

stanowiska: TSINTEGER;

TELL METHOD Obsluguj();

ASK METHOD Ustaw(IN sh: REAL; IN sc: REAL; IN kol:Kolejka2Obj; IN kw:BOOLEAN);

END OBJECT;

Okienko3Obj = OBJECT(RandomObj);

kom: BOOLEAN;

meanwyk: REAL;

czasprzebywania:SREAL;

Kolejka3: Kolejka3Obj;

Kolejka1: Kolejka1Obj;

los:RandomObj;

stanowiska: TSINTEGER;

TELL METHOD Obsluguj();

ASK METHOD Ustaw(IN meanw: REAL; IN kol: Kolejka3Obj; IN kol1: Kolejka1Obj; IN kw:BOOLEAN);

END OBJECT;

KlientObj = OBJECT(RandomObj);

Nr: INTEGER;

CzasWejscia: REAL;

Kolejka1:Kolejka1Obj;

show: BOOLEAN;

ASK METHOD ustawCzas();

ASK METHOD usun();

ASK METHOD ustaw(IN numer: INTEGER; IN kol:Kolejka1Obj; IN show2:BOOLEAN);

END OBJECT;

OBJECT GeneratorObj;

background image

ASK METHOD Ustaw(IN l: REAL; IN h: REAL; IN Kol:Kolejka1Obj; IN showst2:INTEGER; IN kw:BOOLEAN);

BEGIN

kom:=kw;

lo:=l;

hi:=h;

Kolejka1:=Kol;

showst:=showst2;

END METHOD;


TELL METHOD Generuj(IN LiczbaOsob:INTEGER);

VAR

i:INTEGER;

kl:KlientObj;

showst2:BOOLEAN;

BEGIN

FOR i:=1 TO LiczbaOsob BY 1

WAIT DURATION UniformReal(lo,hi);

END WAIT;

NEW(kl);

IF (showst = i) OR (showst = 0)

showst2:=TRUE;

ELSE

showst2:=FALSE;

END IF;

ASK kl TO ustaw(i,Kolejka1,showst2);

IF (kom)

OUTPUT(SimTime," -powstal nowy klient o numerze [", ASK kl TO Nr,"].");

END IF;

ASK Kolejka1 TO Wstaw(kl, kom);

END FOR;

END METHOD;

END OBJECT;

OBJECT Kolejka1Obj;

ASK METHOD Wstaw(IN Klient:KlientObj; IN kw:BOOLEAN);

BEGIN

kom:=kw;

Add(Klient);

ASK Klient TO ustawCzas;

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK Klient TO Nr, "] zostal wprowadzony do kolejki [1]");

END IF;

dlugosc:=numberIn;

IF ASK okienko1 TO stanowiska < 2

INC(przyjete);

TELL okienko1 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

END METHOD;

ASK METHOD Ustaw(IN gnd:Okienko1Obj);

BEGIN

okienko1:=gnd;

END METHOD;

END OBJECT;

OBJECT Kolejka2Obj;

ASK METHOD Wstaw(IN Klient:KlientObj; IN kw:BOOLEAN);

BEGIN

kom:=kw;

IF ograniczenie > numberIn;

Add(Klient);

background image

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK Klient TO Nr, "] zostal wprowadzony do kolejki

[2]");

END IF;

dlugosc:=numberIn;

IF ASK okienko2 TO stanowiska < 3

INC(przyjete);

TELL okienko2 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

ELSE

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK Klient TO Nr,"] zostal odrzucony z kolejki [2]");

END IF;

DISPOSE(Klient);

END IF;

END METHOD;

ASK METHOD Ustaw(IN gnd: Okienko2Obj; IN ogran:INTEGER);

BEGIN

okienko2:=gnd;

ograniczenie:=ogran;

END METHOD;

END OBJECT;

OBJECT Kolejka3Obj;

ASK METHOD Wstaw(IN Klient:KlientObj; IN kw:BOOLEAN);

BEGIN

kom:=kw;

Add(Klient);

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK Klient TO Nr, "] zostal wprowadzony do kolejki [3]");

END IF;

dlugosc:=numberIn;

IF ASK okienko3 TO stanowiska < 4

INC(przyjete);

TELL okienko3 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;


END METHOD;

ASK METHOD Ustaw(IN gnd: Okienko3Obj);

BEGIN

okienko3:=gnd;

END METHOD;

END OBJECT;

OBJECT Okienko1Obj;

ASK METHOD Ustaw(IN mi:REAL; IN mo:REAL; IN ma:REAL; IN Kol1: Kolejka1Obj; IN Kol2:Kolejka2Obj; IN Kol3:Kolejka3Obj; IN

kw:BOOLEAN);

BEGIN

kom:=kw;

min:=mi;

mode:=mo;

max:=ma;

Kolejka1:=Kol1;

Kolejka2:=Kol2;

Kolejka3:=Kol3;

NEW(los);

background image

stanowiska:=0;

END METHOD;

TELL METHOD Obsluguj();

VAR

kl:KlientObj;

zmlos:REAL;

BEGIN

WHILE ASK Kolejka1 TO numberIn > 0

INC(stanowiska);

kl:=ASK Kolejka1 TO Remove();

IF (kom)

OUTPUT(SimTime, " -rozpoczeto obsluge klienta o numerze [", ASK kl TO Nr,"] w okienku [1] | stan

stanowiska:", stanowiska);

END IF;

WAIT DURATION Triangular(min,mode,max)

ON INTERRUPT

END WAIT;

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK kl TO Nr, "] zostal obsluzony w okienku [1]");

END IF;


zmlos:=ASK los Sample();

IF zmlos > 0.7

IF (kom)

OUTPUT(SimTime, " -okienko [1] przekierowuje klienta o numerze [", ASK kl TO Nr,"] do kolejki

[2] | zmienna losowa=", zmlos);

END IF;

ASK Kolejka2 TO Wstaw(kl, kom);

ELSE

IF (kom)

OUTPUT(SimTime, " -okienko [1] przekierowuje klienta o numerze [", ASK kl TO Nr,"] do kolejki

[3] | zmienna losowa=", zmlos);

END IF;

ASK Kolejka3 TO Wstaw(kl, kom);

END IF;

DEC(stanowiska);

END WHILE;

END METHOD;

END OBJECT;

OBJECT Okienko2Obj;

ASK METHOD Ustaw(IN sh: REAL; IN sc: REAL; IN kol:Kolejka2Obj; IN kw:BOOLEAN);

BEGIN

kom:=kw;

shape:=sh;

scale:=sc;

Kolejka2:=kol;

stanowiska:=0;

NEW(los);

END METHOD;


TELL METHOD Obsluguj();

VAR

kl:KlientObj;

zmlos:REAL;

BEGIN

INC(stanowiska);

WHILE ASK Kolejka2 TO numberIn > 0

background image

kl:=ASK Kolejka2 TO Remove();

IF (kom)

OUTPUT(SimTime, " -rozpoczeto obsluge klienta o numerze [", ASK kl TO Nr,"] w okienku [2] | stan

stanowiska:", stanowiska);

END IF;

WAIT DURATION Weibull(shape,scale)

ON INTERRUPT

END WAIT;

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK kl TO Nr, "] zostal obsluzony w okienku [2]");

END IF;

zmlos:=ASK los Sample();

IF zmlos > 0.3

IF (kom)

OUTPUT(SimTime, " -okienko [2] przekierowuje klienta o numerze [", ASK kl TO Nr,"] do kolejki

[2] | zmienna losowa=", zmlos);

END IF;

ASK Kolejka2 TO Wstaw(kl,kom);

ELSE

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK kl TO Nr, "] opuscil system | zmienna losowa=",

zmlos);

END IF;

czasprzebywania:=SimTime - ASK kl TO CzasWejscia;

ASK kl TO usun();

END IF;


END WHILE;

DEC(stanowiska);

END METHOD;

END OBJECT;

OBJECT Okienko3Obj;

ASK METHOD Ustaw(IN meanw: REAL; IN kol: Kolejka3Obj; IN kol1: Kolejka1Obj; IN kw:BOOLEAN);

BEGIN

kom:=kw;

meanwyk:=meanw;

Kolejka3:=kol;

NEW(los);

Kolejka1:=kol1;

END METHOD;

TELL METHOD Obsluguj();

VAR

kl:KlientObj;

zmlos:REAL;

BEGIN

INC(stanowiska);

WHILE ASK Kolejka3 TO numberIn > 0

kl:=ASK Kolejka3 TO Remove();

IF (kom)

OUTPUT(SimTime, " -rozpoczeto obsluge klienta o numerze [", ASK kl TO Nr,"] w okienku [3] | stan

stanowiska:", stanowiska);

END IF;

WAIT DURATION Exponential(meanwyk)

ON INTERRUPT;

END WAIT;

IF (kom)

OUTPUT(SimTime," -klient o numerze [", ASK kl TO Nr, "] zostal obsluzony w okienku [2]");

END IF;

zmlos:=ASK los Sample();

background image

IF zmlos > 0.4

IF (kom)

OUTPUT(SimTime, " -okienko [3] przekierowuje klienta o numerze [", ASK kl TO Nr,"] do kolejki

[1] | zmienna losowa=", zmlos);

END IF;

ASK Kolejka1 TO Wstaw(kl,kom);

ELSE

IF (kom)

OUTPUT(SimTime, " -klient o numerze [", ASK kl TO Nr, "] opuscil system | zmienna losowa=",

zmlos);

END IF;

czasprzebywania:=SimTime - ASK kl TO CzasWejscia;

ASK kl TO usun();

END IF;

END WHILE;

DEC(stanowiska);

END METHOD;

END OBJECT;

OBJECT KlientObj;

ASK METHOD ustaw(IN numer: INTEGER; IN kol:Kolejka1Obj; IN show2:BOOLEAN);

BEGIN

Nr:=numer;

show:=show2;

Kolejka1:=kol;

END METHOD;


ASK METHOD usun();

BEGIN

DISPOSE(SELF);

END METHOD;


ASK METHOD ustawCzas();

BEGIN

CzasWejscia:=SimTime;

END METHOD;

END OBJECT;

(*============================================================================main=======*)

VAR

okienko1:Okienko1Obj;

okienko2:Okienko2Obj;

okienko3:Okienko3Obj;

kolejka1:Kolejka1Obj;

kolejka2:Kolejka2Obj;

kolejka3:Kolejka3Obj;

generator:GeneratorObj;

ch:CHAR;

lo,hi,min,mean,max,shape,scale,meanwyk,praw1,praw2,praw3:REAL;

ogran,losob,stwatch:INTEGER;

monITS1, monITS2, monITS3, monSTA1, monSTA2, monSTA3: ITimedStatObj;

monRS3, monRS2: RStatObj;

KomunikatyWlaczone : BOOLEAN;

BEGIN

OUTPUT ("!Podstawy symulacji!");

OUTPUT (" sieci kolejkowe ");

OUTPUT (" zadanie 2 ");

OUTPUT (" ");

OUTPUT ("Aby rozpoczac symulacje prosze wcisnac dowolny klawisz");

background image

OUTPUT (" domyslnie komunikaty sa wyswietlane");

OUTPUT (" nacisnij 'n' aby nie wyswietlac komunikatow ");

ch := ReadKey();


IF ((ch = 'n') OR (ch = 'N'))

OUTPUT ("ie beda wyswietlane komunikaty.");

END IF;


OUTPUT ("");

KomunikatyWlaczone := TRUE;

IF ((ch = 'n') OR (ch = 'N'))

KomunikatyWlaczone := FALSE;

ELSE

KomunikatyWlaczone := TRUE;

END IF;




OUTPUT (" ");

OUTPUT ("ROZPOCZECIE SYMULACJI");

OUTPUT (" ");


NEW(okienko1);

NEW(okienko2);

NEW(okienko3);

NEW(kolejka1);

NEW(kolejka2);

NEW(kolejka3);

NEW(generator);

stwatch:=0;

ogran:=5;

lo:=1.2;

hi:=5.6;

min:=2.3;

mean:=4.3;

max:=5.6;

shape:=3.5;

scale:=7.8;

meanwyk:=4.6;

losob:=15;

ASK generator TO Ustaw(lo,hi, kolejka1,stwatch, KomunikatyWlaczone);

ASK kolejka1 TO Ustaw(okienko1);

ASK okienko1 TO Ustaw(min,mean,max,kolejka1,kolejka2,kolejka3, KomunikatyWlaczone);

ASK kolejka2 TO Ustaw(okienko2, ogran);

ASK okienko2 TO Ustaw(shape,scale,kolejka2, KomunikatyWlaczone);

ASK kolejka3 TO Ustaw(okienko3);

ASK okienko3 TO Ustaw(meanwyk,kolejka3,kolejka1, KomunikatyWlaczone);


TELL generator TO Generuj(losob);

StartSimulation();

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);

monSTA3 := GETMONITOR(ASK okienko3 TO stanowiska, ITimedStatObj);

monRS2 := GETMONITOR(ASK okienko2 TO czasprzebywania, RStatObj);

monRS3 := GETMONITOR(ASK okienko3 TO czasprzebywania, RStatObj);

background image


OUTPUT ("==========================================================================================");

OUTPUT (" SREDNIA ");

OUTPUT ("=========");

OUTPUT ("-srednia liczba zgloszen w pierwszej kolejce: ",ASK monITS1 TO Mean());

OUTPUT (" +odchylenie: ", ASK monITS1 TO StdDev());

OUTPUT ("-srednia liczba zgloszen w drugiej kolejce: ",ASK monITS2 TO Mean());

OUTPUT (" +odchylenie: ", ASK monITS2 TO StdDev());


OUTPUT ("-srednia liczba zgloszen w trzeciej kolejce: ",ASK monITS3 TO Mean());

OUTPUT (" +odchylenie: ", ASK monITS3 TO StdDev());

OUTPUT ("-sredni czas przebywania zgloszenia w SMO2: ",ASK monRS2 TO Mean());

OUTPUT (" +odchylenie: ", ASK monRS2 TO StdDev());

OUTPUT ("-sredni czas przebywania zgloszenia w SMO3: ",ASK monRS3 TO Mean());

OUTPUT (" +odchylenie: ", ASK monRS3 TO StdDev());

OUTPUT ("-srednia liczba zajetych kanalow w pierwszym okienku: ", ASK monSTA1 TO Mean());

OUTPUT (" +odchylenie: ", ASK monSTA1 TO StdDev());

OUTPUT ("-srednia liczba zajetych kanalow w drugim okienku: ", ASK monSTA2 TO Mean());

OUTPUT (" +odchylenie: ", ASK monSTA2 TO StdDev());

OUTPUT ("-srednia liczba zajetych kanalow w trzecim okienku: ", ASK monSTA3 TO Mean());

OUTPUT (" +odchylenie: ", ASK monSTA3 TO StdDev());

OUTPUT (" PRAWDOPODOBIENSTWO ");

OUTPUT ("====================");

praw1 := FLOAT(ASK kolejka1 TO odrzucone)/FLOAT(ASK kolejka1 TO przyjete + ASK kolejka1 TO odrzucone);

OUTPUT ("-prawdopodobiestwo obsluzenia przez pierwsze okienko: ", praw1);


praw2 := FLOAT(ASK kolejka2 TO odrzucone)/FLOAT(ASK kolejka2 TO przyjete + ASK kolejka2 TO odrzucone);

OUTPUT ("-prawdopodobienstwo obsluzenia przez drugie okienko: ", praw2);


praw3 := FLOAT(ASK kolejka3 TO odrzucone)/FLOAT(ASK kolejka3 TO przyjete + ASK kolejka3 TO odrzucone);

OUTPUT ("-prawdopodobienstwo obsluzenia przez trzecie okienko: ", praw3);


(*==========================================zwalnianie==================*)

DISPOSE(okienko1);

DISPOSE(okienko2);

DISPOSE(okienko3);

DISPOSE(kolejka1);

DISPOSE(kolejka2);

DISPOSE(kolejka3);

DISPOSE(generator);

OUTPUT (" ");

OUTPUT ("...");

OUTPUT ("!aby zamknac to okienko, nacisnij dowolny klawisz!");

OUTPUT ("!aby zapisac wynik do pliku Stdout.txt nacisnij ALT i 2xENTER");

ch:=ReadKey();


END MODULE.

Wnioski
Zadanie zostało rozwiązane. Otrzymane wartości wydają się być poprawne.


Wyszukiwarka

Podobne podstrony:
I7G2S1 Zachwieja Cezary PSy projekt (1)
I7G2S1 Kamil Piersa PSY
El¾bieta Okniäska I7G2S1 PSY
Michniewicz Kamil I7G2S1 PSy sprawozdanie
I7G2S1 PSy Socha Marcin
PSy Piesiak Piotr I7G2S1 spr
Ukladanie dawki bytowej psy
leptospiroza psy, weterynaria, zakaźne, psy i koty
Zestawienie pow stare, od Łukasza
CHOROBY ZAKAŹNE PSY i KOTY – egzamin czerwiec 13 r I termin
[I7G2S1] Sprawozdanie nr 2
Fascynujące psy
Metody godne Łukaszenki
dializa otrzewnowa u psów i kotów, Psy i koty
WYKAZ WSPÓŁRZĘDNYCH po scaleniu i podziale, od Łukasza
Uchwa-a nr 264, od Łukasza
Adolf Dygasiński Wilk, psy i ludzie

więcej podobnych podstron