Реализация программного модуля, на встроенном языке программирования Visual Basic for Application (VBA), страница 5

H+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+M+H+M+K+K+K+M+K+H+M+P+K+H+M+K+M+K+K+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+Н+M+P+M+K=0,4+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+1,35+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+1,35+0,2+0,2+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+1,35+0,2=165,95 с.

Рассчитаем время, которое требуется пользователю на исправление ошибки.

Ø нажатие на необходимый переключатель (сообщение об ошибке): P K;

Ø удаление четырех символов ошибочного ввода: H K K K K;

Ø ввод четырех символов на место ошибочного ввода: K K K K;

Ø нажатие на необходимый переключатель: H P K.

В соответствии с правилом 0:

M P M K H M K M K M K M K M K M K M K M KH M P M K

Далее применим правило 1 и правило 4:

M P K H M K M K M K M K M K M K M K M K H M P M K

Далее применим правило 2:

M P K H M K K K K K K K M KH M P M K

Правила 3, 5 не применяются.

Заменим символы операторов на соответствующие временные интервалы:

M+P+K+H+M+K+K+K+K+K+K+K+M+K+H+M+P+M+K=1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+0,2+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+1,35+0,2=11,75 с.

Т.к. решение задачи в 80% случаев, при вводе данных, производится без ошибок и в 20% случаев с ошибками, то время, требуемое на решение задачи, составит:

0,8*165,95+0,2*(165,95+11,75)=168,3 с.

 

 

3 Реализация программного модуля

3.1 Код программы

Код программы представлен в приложении А.

4 Тестирование программного модуля

Проведем тестирование программного модуля на следующем примере.

Тест №1

Рисунок 9 – Условие задачи

Решение задачи на сети начинается с построения начального опорного плана.

Опорный план должен удовлетворять следующим требованиям:

1)  все запасы должны быть распределены, а потребности удовлетворены:

80+20+50=60+30+10+50,

150=150.

2)  к каждой вершине должна подходить или выходить из нее хотя бы одна стрелка(рисунок 10);

3)  общее количество стрелок должно быть на единицу меньше числа вершин n-1=m: 7-1=6 (рисунок 10);

4)  стрелки не должны образовывать замкнутый контур(рисунок 10).

Далее следует проверить план на оптимальность.

Для этого вычисляем потенциалы(рисунок 11) и оценки незагруженных ребер. План является оптимальным:

IV-V:1-(1-1)=1,

III-VI:1-(1-0)=0,

IV-VII:1-(1-1)=1.

Рисунок 10 – Тест№1

Рисунок 11 – Тест№1

Результат ,который получили в ходе решения задачи вручную, совпадает с результатом выполнения решения с помощью программы(рисунок 12).

Рисунок 12 – Результат выполнения программы

Заключение

В данной курсовой работе был изучена транспортная задача в сетевой постановке, нахождение алгоритмов решения, и реализация их на языке программирования. Было произведено тестирование разработанного программного модуля при различных входных данных и типах решений. Полученные результаты показывают, что программа работает правильно, так как они совпали с рассчитанными вручную.