Транспортная задача. Метод минимального элемента
Составление математической модели решения транспортной задачи. Описание входной и выходной информации. Программно-технические средства, используемые при разработке программы. Общее описание программы, ее назначение, информационная совместимость.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.05.2013 |
Размер файла | 49,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
SpeedButton5. Enabled:= False;
for i:= 0 to StringGrid3. ColCount-1 do // очистка
for j:= 0 to StringGrid3. RowCount-1 do
StringGrid3. Cells [i, j]:= «;
for i:= 0 to StringGrid4. ColCount-1 do
for j:= 0 to StringGrid4. RowCount-1 do
StringGrid4. Cells [i, j]:= «;
for i:= 0 to StringGrid1. ColCount-1 do StringGrid1. Cells [i, 0]:= «;
or i:= 0 to StringGrid2. ColCount-1 do StringGrid2. Cells [i, 0]:= «;
SpeedButton1. Click;
end;
procedure TForm1.N5Click (Sender: TObject);
begin
Close;
end;
procedure TForm1.N7Click (Sender: TObject); // о программе
begin
Form2. ShowModal;
end;
procedure TForm1. SpeedButton5Click (Sender: TObject); // решение самой задачи
var i, j, i1, j1, i2, j2, i3, j3, i4, j4, i5, j5:integer; // для циклов
min, max, mini, minj, F, temp: integer;
begin
F:= 0;
temp:= 0;
mini:= 0;
minj:= 0;
Panel1. Top:= 8;
Panel1. Left:= 96;
Panel1. Visible:= True;
StringGrid9. ColCount:= StringGrid4. ColCount;
StringGrid9. RowCount:= StringGrid4. RowCount;
StringGrid9. Visible:= True;
For i:= 1 to StringGrid2. ColCount do // копирование инф из матрицы в др
m_izm_potr [i-1]:= m_st_potr [i-1];
For i:= 1 to StringGrid1. ColCount do // копир пост
m_izm_post [i-1]:= m_st_post [i-1];
For i1:= 1 to StringGrid3. ColCount - 1 do
For j1:= 1 to StringGrid3. RowCount - 1 do
if m_zap [i1-1, j1-1] = 0 then temp:= temp + 1;
For i1:= 1 to StringGrid3. ColCount - 1 do
For j1:= 1 to StringGrid3. RowCount - 1 do
if temp <> 0 then
begin
For i5:= 1 to StringGrid3. ColCount - 1 do
For j5:= 1 to StringGrid3. RowCount - 1 do
if (m_zap [i5-1, j5-1] = 0) then
begin
max:= 0;
For i4:= 1 to StringGrid3. ColCount - 1 do // поиск максимума
For j4:= 1 to StringGrid3. RowCount - 1 do
if (m_st [i4-1, j4-1] > max) and (m_zap [i4-1, j4-1] < 1) then
max:= m_st [i4-1, j4-1];
max:= max * 2;
min:= max;
For i:= 1 to StringGrid3. ColCount - 1 do
For j:= 1 to StringGrid3. RowCount - 1 do
begin
if (m_st [i-1, j-1] < min) and (m_zap [i-1, j-1] = 0) then // поиск минимума
begin
min:= m_st [i-1, j-1];
mini:= i-1;
minj:= j-1;
end;
end;
if m_izm_post[minj] = m_izm_potr[mini] then // проверка равен ли поставщик потребителю
begin
m_izm [mini, minj]:= m_izm_post[minj];
m_izm_post[minj]:= 0;
m_izm_potr[mini]:= 0;
For i2:= 1 to StringGrid3. ColCount - 1 do
For j2:= 1 to StringGrid3. RowCount - 1 do
begin
m_zap [i2-1, minj]:= 1;
m_zap [mini, j2-1]:= 1;
end;
end;
if m_izm_post[minj] > m_izm_potr[mini] then // проверка поставщик больше потребителя
begin
m_izm_post[minj]:= m_izm_post[minj] - m_izm_potr[mini];
m_izm [mini, minj]:= m_izm_potr[mini];
m_izm_potr[mini]:= 0;
For j2:= 1 to StringGrid3. RowCount - 1 do
begin
m_zap [mini, j2-1]:= 1;
end;
end;
if m_izm_potr[mini] > m_izm_post[minj] then // проверка потребитель больше поставщика
begin
m_izm_potr[mini]:= m_izm_potr[mini] - m_izm_post[minj];
m_izm [mini, minj]:= m_izm_post[minj];
m_izm_post[minj]:= 0;
For i2:= 1 to StringGrid3. ColCount - 1 do
begin
m_zap [i2-1, minj]:= 1;
end;
end;
{For i3:= 1 to StringGrid3. ColCount - 1 do // заполнение SG5
For j3:= 1 to StringGrid3. RowCount - 1 do
StringGrid5. Cells [i3, j3]:= IntToStr (m_zap [i3-1, j3-1]);
For i3:= 1 to StringGrid3. ColCount - 1 do // заполнение SG8
For j3:= 1 to StringGrid3. RowCount - 1 do
StringGrid8. Cells [i3, j3]:= IntToStr (m_izm [i3-1, j3-1]);
For i3:= 1 to StringGrid2. ColCount do // заполнение SG6
StringGrid6. Cells [i3-1,0]:= IntToStr (m_izm_potr [i3-1]);
For i3:= 1 to StringGrid1. ColCount do // заполнение SG7
StringGrid7. Cells [i3-1,0]:= IntToStr (m_izm_post [i3-1]);}
end;
end;
For i:= 1 to StringGrid3. ColCount - 1 do // вывод результата решения
For j:= 1 to StringGrid3. RowCount - 1 do
begin
StringGrid9. Cells [i, j]:= IntToStr (m_izm [i-1, j-1]);
end;
For i:= 1 to StringGrid4. ColCount do
StringGrid9. Cells [i - 1,0]:= StringGrid4. Cells [i - 1,0];
For j:= 1 to StringGrid4. RowCount do
StringGrid9. Cells [0, j-1]:= StringGrid4. Cells [0, j-1];
if zadacha = 1 then
begin
For i:= 0 to StringGrid2. ColCount - 1 do
StringGrid9. Cells [StringGrid4. ColCount-1, i+1]:= IntToStr (m_izm_post[i]);
end;
if zadacha = 2 then
begin
For i:= 0 to StringGrid1. ColCount do
StringGrid9. Cells [i+1, StringGrid4. RowCount-1]:= IntToStr (m_izm_potr[i]);
end;
For i1:= 1 to StringGrid3. ColCount - 1 do // расчитыв F
For j1:= 1 to StringGrid3. RowCount - 1 do
begin
F:= F + m_izm [i1-1, j1-1]*m_st [i1-1, j1-1];
end;
Label8. Caption:= 'F = ' + IntToStr(F);
SpeedButton5. Enabled:= False; // конец решения
end;
procedure TForm1.N21Click (Sender: TObject); // контрол п-р 2
begin
Form1.N2. Click;
// Кол-во поставщиков:
Edit1. Text:= '3';
// Кол-во покупателей:
Edit2. Text:= '3';
SpeedButton2. Click;
// Кол-во товара у поставщиков:
StringGrid1. Cells [0,0]:= '150';
StringGrid1. Cells [1,0]:= '250';
StringGrid1. Cells [2,0]:= '200';
// Кол-во товара необходимое потребителю:
StringGrid2. Cells [0,0]:= '100';
StringGrid2. Cells [1,0]:= '200';
StringGrid2. Cells [2,0]:= '300';
SpeedButton3. Click;
// Стоимость перевозки:
StringGrid3. Cells [1,1]:= '5';
StringGrid3. Cells [2,1]:= '3';
StringGrid3. Cells [3,1]:= '1';
StringGrid3. Cells [1,2]:= '6';
StringGrid3. Cells [2,2]:= '4';
StringGrid3. Cells [3,2]:= '2';
StringGrid3. Cells [1,3]:= '2';
StringGrid3. Cells [2,3]:= '1';
StringGrid3. Cells [3,3]:= '8';
end;
procedure TForm1. SpeedButton6Click (Sender: TObject); // ввод данных произвольно
var i:integer;
begin
Randomize;
for i:= 0 to StringGrid1. ColCount-1 do StringGrid1. Cells [i, 0]:= InttoStr (Random(1000));
end;
procedure TForm1. SpeedButton7Click (Sender: TObject); // ввод данных произвольно
var i:integer;
{temp: array ['0'..'9'] of integer; // '1'..'10'; // '0'..'9';}
begin
//temp:= [50,100,150,200,250,300,350,400,450,500];
Randomize;
for i:= 0 to StringGrid2. ColCount-1 do StringGrid2. Cells [i, 0]:= InttoStr (Random(1000));
end;
procedure TForm1. SpeedButton8Click (Sender: TObject); // ввод данных произвольно
var i, j:integer;
begin
Randomize;
for i:= 1 to StringGrid3. ColCount-1 do
for j:= 1 to StringGrid3. RowCount-1 do
StringGrid3. Cells [i, j]:= InttoStr (Random(10)+1);
end;
procedure TForm1. SpeedButton9Click (Sender: TObject); // очистка
var i:integer;
begin
for i:= 0 to StringGrid1. ColCount-1 do StringGrid1. Cells [i, 0]:= «;
end;
procedure TForm1. SpeedButton10Click (Sender: TObject); // очистка
var i:integer;
begin
for i:= 0 to StringGrid2. ColCount-1 do StringGrid2. Cells [i, 0]:= «;
end;
procedure TForm1. SpeedButton11Click (Sender: TObject); // очистка
var i, j:integer;
begin
for i:= 1 to StringGrid3. ColCount-1 do
for j:= 1 to StringGrid3. RowCount-1 do
StringGrid3. Cells [i, j]:= «;
end;
procedure TForm1. FormCloseQuery (Sender: TObject; var CanClose: Boolean); // запрос на выход пр-мы
begin
CanClose:= False;
if Application. MessageBox ('Вы дествительно хотите выйти из программы?', 'Выход из программы', idOk)=mrOk then
CanClose:= True;
end;
procedure TForm1. FormShow (Sender: TObject);
begin
Form3. ShowModal;
end;
end.
Размещено на Allbest.ru
Подобные документы
Описание входной и выходной информации. Программно-технические средства, необходимые для разработки программы "Автоматизированная информационная справочная система аптеки". Возможность формирования и корректировки файлов, тестирование программы.
курсовая работа [761,7 K], добавлен 18.12.2013Особенности решения транспортной задачи распределительным методом и анализ результатов. Построение математической модели, алгоритма. Создание программы для решения транспортной задачи распределительным методом в программной среде Borland Delphi 7.
курсовая работа [1000,7 K], добавлен 23.06.2012Преимущества применения математических методов в планировании перевозок. Постановка транспортной задачи, отыскание начального решения методом минимального элемента. Проверка опорного плана на невырожденность. Написание программы для автоматизации решения.
курсовая работа [1,5 M], добавлен 19.01.2016Транспортная задача как одна из самых распространенных специальных задач линейного программирования: понятие, основное назначение. Формальное описание метода минимального элемента. Характеристика этапов разработки алгоритма решения поставленной задачи.
курсовая работа [713,3 K], добавлен 19.10.2012Описание алгоритма решения транспортной задачи по планированию перевозки зерна. Ход решения задачи вручную, в программе TORA методом наименьшего элемента, с помощью MS Excel. Разработка программы для решения задачи в общем виде средствами Delphi.
курсовая работа [2,5 M], добавлен 22.11.2012Назначение и область применения программы, ее общее описание, функциональные особенности и задачи, логистическая структура, используемые технические средства. Создание руководства оператора. Расчет технико-экономических показателей создаваемой программы.
курсовая работа [1,2 M], добавлен 09.11.2013Описание входной и выходной информации. Определение связей информационных объектов и построение информационно-логической модели. Обобщенный алгоритм решения задачи и его декомпозиция на подзадачи. Описание реквизитов данной информационной системы.
курсовая работа [1,7 M], добавлен 03.05.2013Создание и реализация алгоритма решения транспортной задачи методом наименьших стоимостей. Схема алгоритма основной программы. Основные шаги алгоритма решения транспортной задачи. Инструкция по эксплуатации программы и обзор результатов ее выполнения.
курсовая работа [2,0 M], добавлен 12.02.2013Методологическая основа моделирования – диалектико-математический метод познания и научного исследования. Назначение и условия применения программы. Описание задачи и логической структуры программы. Используемые технические средства, вызов и загрузка.
курсовая работа [311,8 K], добавлен 06.01.2009Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
курсовая работа [844,3 K], добавлен 16.06.2011