Транспортная задача. Метод минимального элемента

Составление математической модели решения транспортной задачи. Описание входной и выходной информации. Программно-технические средства, используемые при разработке программы. Общее описание программы, ее назначение, информационная совместимость.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.