0

数日前、私はFIFOプログラミングとその方法についてのトピックを投稿しました。トピックは少し広範で曖昧で、コーディングの例が不足しているため、専門家のアドバイスに従い、コードを検索して少しコーディングを試みました。そして私は自分がやりたいことを正確に知っていました

プログラミング言語としてC#を使用して、FIFO(先入れ先出し)スケジューリングアルゴリズム用のDES(離散イベントシミュレーション)を作成したいと思います。

だから私はネットを検索し、ガイダンスのためにc#で本当に役立つものを見つけることができませんでしたが、Javaコードで私が望んでいたものを正確に見つけました。今投稿します

初期化のプロセス

    Queue q = new Queue();
    EventQueue eventq = new EventQueue();
    Random rand = new Random();
    Distribution interarrivalTimeDist =
    new ExponentialDistribution(lambda, rand);
    Distribution serviceTimeDist =
    new ExponentialDistribution(mu, rand);
    double t = 0;
    // generate first arrival
    eventq.addEvent(new Event(Event.ARRIVAL,
    interarrivalTimeDist.nextRandom()));

メインプログラム

while (t < simLength) {
Event e = eventq.nextEvent();
t = e.getTime();
switch (e.getType()) {
case Event.ARRIVAL : {
// handle arrival
}
case Event.DEPARTURE : {
// handle departure
}
}
}

到着の場合

case Event.ARRIVAL : {
// schedule next arrival
eventq.addEvent(new Event(Event.ARRIVAL,
t + interarrivalTimeDist.nextRandom()));
double serviceTime =
serviceTimeDist.nextRandom();
q.addCustomer(new Customer(t, serviceTime));
if (q.getSize() == 1) {
eventq.addEvent(new Event(Event.DEPARTURE,
t + serviceTime));
}
break;
}

出発の場合

case Event.DEPARTURE : {
q.removeCustomer(t);
if (q.getSize() > 0) {
double serviceTime =
q.getCustomerAt(0).getServiceTime();
eventq.addEvent(new Event(Event.DEPARTURE,
t + serviceTime));
}
break;
}

このコードをc#に変換する方法の手がかりやガイダンスはありますか?PS:-私のトピックがあなたたちが感謝すると思っていたほど専門的ではなかった場合は、専門家のためにある程度の寛容を示してください

4

1 に答える 1

1

あなたの質問は「このアイデアをどのようにプログラムするか」によく似ており、良い質問ではありません。やりたいことについて多くのことを設計し、段階的に構築し、幅広いアイデアや多くのコードではなく、特定の質問をここに提示する必要があります。

FIFOだけに答えるには、それはqueueです。キューについて読み、それらを使って練習します。

于 2012-04-25T03:59:28.457 に答える