PDA

View Full Version : سوال: چگونه زودترین زمان شروع یک کار را بیابیم



afsane/68
یک شنبه 31 خرداد 1394, 16:14 عصر
for (int i = 0; i < newTask.Count; i++)
{
t1[i] = ReadyTime[newTask[i]];


if (e[newTask[i]] == 1)
{
for (int j = 0; j < newTask.Count; j++)
{
if (need1[i, j] == 1)
{


t1[i] = Math.Max(finishTime[j], t1[i]);
finishTime[i] = t1[i] + 1;
}


t1[i] = ReadyTime[newTask[i]];
finishTime[i] = t1[i] + 1;
}




for (int t = t1[i]; t < T; t++)
{
countResource = 0;
for (int k = 0; k < KindResource; k++)
{


RemaindResource[i, k] = RR[t, k];
RRR[i, k] = Renewable1[i, k];
if (RemaindResource[i, k] >= RRR[i, k])
{
countResource++;
//}
if (countResource == KindResource)
{


t2[i] = t;
//tt = t;


//for (int k1 = 0; k1 < KindResource; k1++)
//{
RR[t, k] = AR[t, k] - RRR[i, k];
UR[t, k] = UR[t, k] + RRR[i, k];
//ST[i] = Math.Max(t1[i], t2[i]);
//finishTime[i] = ST[i] + 1;
//break;
//}
}

//ST[i] = Math.Max(t1[i], t2[i]);
//finishTime[i] = ST[i] + 1;
//break;
//t2[i] = Math.Min(tt, t2[i]);
}
ST[i] = Math.Max(t1[i], t2[i]);
finishTime[i] = ST[i] + 1;
//break;
}
//break;


//ST[i] = Math.Max(t1[i], t2[i]);
//finishTime[i] = ST[i] + 1;
//break;
}


}
}




من کد بالا را نوشتم و میخوام که حلقه for برای t تا جایی جلو بره که شرایط بعدی آن برقرار بشه و به محض یافتن اولین t این حلقه متوقف شده و به حلقه i بره!!!
اما هرکاری میکنم این اتفاق نمیفته لطفا کمک کنید.:ناراحت::ناراحت:

nunegandom
دوشنبه 01 تیر 1394, 12:14 عصر
سلام حرفه ایش اینه که از break بعد از true شدن if ات استفاده کنی
آماتورش هم اینه که از Goto استفاده کنی

nunegandom
دوشنبه 01 تیر 1394, 12:15 عصر
اصلا معلومه این چیه؟ :متفکر: یکم واضح بنویس برا خودت میگم