afsane/68
یک شنبه 31 خرداد 1394, 17: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 بره!!!
اما هرکاری میکنم این اتفاق نمیفته لطفا کمک کنید.:ناراحت::ناراحت:
{
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 بره!!!
اما هرکاری میکنم این اتفاق نمیفته لطفا کمک کنید.:ناراحت::ناراحت: