Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Транспортная задача методом потенциалов

Автор: el'va 5.12.2008 19:35

Добрый день.
Надо сделать курсовой проект по решению Транспортной задачи методом потенциалов(начальный опорный план методом северо-западного угла).
Основную часть я уже написала, но возникла проблема с нахождением потенциалов (Vi Uj).
Вот код нахождения потенциалов, проблема в том, что если значения которые находятся с помощью северо-западного угла идут не в подряд в строчке, а между ними есть значение 0, то этот код зацикливается. Я ничего разумного придумать не смогла.
В массиве sevzapugol[i, j] - хранятся значения северо-западного угла.
В массиве v[j] - потенциалы V, которые находятся по формуле Vi=Ui+C[i,j].
В массиве c[j, i] - хранятся сами расходы на перевозку 1-цы продукции.
В u[i] - Потенциалы U.
i- кол-во поставщиков
j-кол-во потребителей.


do
{

if (sevzapugol[i, j] > 0)
{
if (i == 0)
{
v[j] = u[i] + c[j, i];
j++;
}
else if (v[j+ 1] == 0)
{
u[i] = v[j] - c[j, i];
j++;
}

if (sevzapugol[i, j] > 0)
{
v[j] = u[i] + c[j, i];
}
else { i++; j--; }
}


} while ((i!= int.Parse(textBox2.Text)) && (j!= int.Parse(textBox1.Text)));


Сама работа прикреплена.
Если кто сталкивался с подобной задачей, буду очень благодарна за помощь.


Прикрепленные файлы
Прикрепленный файл  kursovaya.rar ( 32.52 килобайт ) Кол-во скачиваний: 495