
Реализация задачи в программном виде
Задача реализована в программном виде на языке программирования Object Pascal в среде программирования Borland Delphi 6.0. Программа имеет удобный пользовательский интерфейс и наглядное представление. Используется возможность изменять параметры целевой функции и исходные данные задачи. Помимо основных функций, программа содержит справку по программе и теоретическую часть решения задачи. Внешний вид программы представлен на рис.1.
рис.1. Внешний вид программы.
Поле "Параметры функции" содержит три параметра функции полезности (см. условие), которые могут изменяться в пределах 0...10.
Поле "Исходные данные" служит для установки исходных данных, таких как общая сумма денег и цена каждого товара. Сумма изменяется в пределах 0...5000, а цена товаров - 0...100.
При установке параметров придерживайтесь условия задачи и заданных ограничений для получения точных результатов.
После того как установлены необходимые параметры, нажмите кнопку Решить задачу" для получения результатов.
В программе также имеется кнопка "Теория решения" по нажатию которой открывается окно, содержащее теорию по решению задачи.
Ниже расположен текст основного модуля программы:
Var {Используемые переменные}
//Параметры функции:
a,b,y : Byte;
//Исходные данные:
p1,p2,p3 : Byte;
J : Word;
//Результат:
x1,x2,x3 : Integer;
{Основные процедуры и функции программы}
{Создание главной формы ====================================}
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Calculation_Result;
end;
{Подсчет результатов =======================================}
procedure TfrmMain.Calculation_Result;
begin
//Определение параметров:
a := a_SpinEdit.Value;
b := b_SpinEdit.Value;
y := y_SpinEdit.Value;
//Определение исходных данных:
J := J_SpinEdit.Value;
p1:=p1_SpinEdit.Value;
p2:=p2_SpinEdit.Value;
p3:=p3_SpinEdit.Value;
//Подсчет результатов:
x1:=Trunc((J*a)/(p1*(a+b+y)));
x2:=Trunc((J*b)/(p2*(a+b+y)));
x3:=Trunc((J*y)/(p3*(a+b+y)));
//Вывод результатов:
x1_Edit.Text:=IntToStr(x1);
x2_Edit.Text:=IntToStr(x2);
x3_Edit.Text:=IntToStr(x3);
Vsego_Edit.Text:=IntToStr(x1+x2+x3);
Summa_Edit.Text:=IntToStr(p1*x1+p2*x2+p3*x3);
end;
{Кнопка Решить задачу =====================================}
procedure TfrmMain.Run_ButtonClick(Sender: TObject);
begin
Calculation_Result;
end;
{Кнопка Выход =============================================}
procedure TfrmMain.Exit_ButtonClick(Sender: TObject);
begin
Application.Terminate;
end;
{Кнопка Справка по программе ==============================}
procedure TfrmMain.Help_ButtonClick(Sender: TObject);
begin
frmHelp.Show;
end;
{Кнопка Теория решения ====================================}
procedure TfrmMain.Teory_ButtonClick(Sender: TObject);
begin
frmTeor.Show;
end;
{==========================================================}
end.
Список литературы
Дягтерев Ю.И.//Исследование операций: Учеб. для вузов по спец. АСУ. – М.: Высш. шк., 1986.
Морозов В.В., Сухарев А.Г., Федоров В.В.//Исследование операций в задачах и упражнениях: Учеб. пособие. – М.: Высш. шк., 1986.
Электронный учебник по линейному и нелинейному программированию.