Merhaba,
İkinci for döngüsü (for (int i = 0; i < müs_no; i++) olarak belirttiğim) bittikten sonra servis[j].bitis sıfırlanmıyor. Şöyle ki t=0 döngüsünde en son servis bitişi (tüm müşteriler işlem gördükten sonra, müs_no ya kadar) 25. dakika
ise t=1 olduğu takdirde ilk müşterinin servis bitişi (25 + serviszamanı) oluyor. t=1'de servise başlaması süresinin tekrar sıfır olması gerekiyor ama sıfırlanmıyor. Nasıl yapabilirim? Sınıftaki servis bitişi ve başlama süresi ise şu şekildedir;
class Sunucu
{
public int bitis;
public Sunucu()
{
bitis = 0;
}
public void islem(int baslama, int serviszamanı)
{
bitis = baslama + serviszamanı;
}
public bool Doluysa(int Arrival)
{
if (Arrival < bitis) return true;
return false;
}
}
Arrival ve serviszamanı değerleri olasılık dağılımlarına uygun olarak üretiliyor. Müs_no ise yine olasılık dağılımlarına göre üretiliyor. calisansayisi1 e, dışarıdan giriş yapılıyor. Kod satırım çok fazla olduğu için hepsini paylaşamıyorum.
Teşekkür ederim.
for (int t = 0; t < calisansayisi1 + 2; t++)
{
for (int i = 0; i < müs_no; i++)
{
int j = i % (calisansayisi1 + t);
int Arrival = müsteri.Çıkartma();
if ((!servis[j].Doluysa(Arrival)) && Arrival == servis[j].bitis)
{
servis[j].islem(Arrival, serviszamanı);
}
else if ((!servis[j].Doluysa(Arrival)) && Arrival > servis[j].bitis)
{
calisan_bekleme = (Arrival - servis[j].bitis);
servis[j].islem(Arrival, serviszamanı);
}
else
{
müsteri_bekleme += (servis[j].bitis - Arrival);
müsteri_bekleme1 = (servis[j].bitis - Arrival);
servis[j].islem(servis[j].bitis, serviszamanı);
}
}
}
}