Руководство пользователя к разработанному решению
Программа "Максимизации капиталовложений" предназначена для вычисления максимально возможного суммарного прироста прибыли всех предприятий (субъектов), прироста прибыли каждого предприятия, а также количества ресурсов, которые необходимо выделить каждому предприятию, чтобы суммарный прирост прибыли был максимальным. Для работоспособности данного приложения вы должны обладать следующим перечнем программных и технических средств: · ПК на базе процессора Intel, AMD; · Оперативная память 128 МБ; · Видео: совместимая VGA видеокарта; · Операционная система Windows XP/Windows7; · Клавиатура, мышь; · Microsoft.NET Framework 3.0; Для начала работы с программой запустите файл RZMK.exe. Далее вы должны заполнить пустые поля на форме данными. Рисунок 17 «Главная форма приложения»
Рисунок 19 "Кнопки"
После нажатия кнопки "Рассчитать" программа выдает результаты максимального суммарного прироста прибыли, прирост прибыли на каждом предприятии и количество необходимых ресурсов (Рис.20), . Рисунок 20 "Максимальный прирост прибыли и прирост прибыли и выделенные ресурсы на предприятиях "
Алгоритм решений унифицированной задачи
Рисунок 24 «Алгоритм решения унифицировнанной задачи» Заключение В ходе разработки курсового проекта мной была рассмотрена и изучена задача о максимизации капиталовложений, что такое задача о максимизации капиталовложений и где она применяется.
Список литературы 1. Кузнецов А.М., Сакович В.А, Холод И.И. Высшая математика. Математическое программирование. Минск, Высшая школа, 2001. 2. Федосеев В.В. и др. Экономико-математические методы и прикладные модели: Учебное пособие для ВУЗов. – М:. Юнити, 2002. 3. Шикин Е.А., Чхартишвили А.Г. Математические методы и модели в управлении – М:. Дело 2000.
Приложение unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, Math, ExtCtrls, Menus, ShellAPI;
type TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton; Button2: TButton;
MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem;
procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); private { Private declarations }
public { Public declarations } end;
var Form1: TForm1; MasSum:Array[0..5,0..5] of Integer; // Массив для хранение суммы MasMax:Array[1..5,1..5] of Integer; // Массив для хранение максимальных чисел Cells:Array[0..20] of TPoint; // Массив точек (записи координат максимальных чисел) L:Integer;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); var myRect: TGridRect; I:Integer; begin // Смещаем фокус (выделение) with myRect do begin Left:=-1; Top:=-1; Right:=-1; Bottom:=-1; end;
StringGrid1.Selection:=myRect;
// Заполняем заголовки таблицы with StringGrid1 do begin Cells[0,0]:='U'; for I:=1 to 5 do begin Cells[0,I]:='L'+IntToStr(I)+'(U)'; Cells[I,0]:=IntToStr(I-1); end; end; end;
// Процедура для подсчета суммы procedure Sum(); var I, J: Integer; begin For I:=1 to 5 do For J:=1 to 5 do MasSum[I,J]:=MasSum[I,0] + MasSum[0,J]; end;
// Процедура для нахождние максимальных чисел (диагонали) // и записи координат в массив procedure Max(); var I,J,iMax,jMax:Integer; C:TPoint; begin iMax:=0; jMax:=0; For I:=5 downto 1 do begin MasMax[I,1]:=MasSum[1,I]; For J:=I downto 1 do If MasSum[I-J+1,J] >= MasMax[I,1] then begin MasMax[I,1]:=MasSum[I-J+1,J]; iMax:=I-J+1; jMax:=J; MasMax[I,2]:=J-1; // В какой строке найдено максимальное знач. end; C.X:=jMax; C.Y:=iMax; // Координаты максимальных значений Cells[L]:=C; L:=L+1; end; end;
// Сбрасываем введенные нами значения procedure TForm1.Button1Click(Sender: TObject); var I,J: Integer; begin For I:=1 to 5 do For J:=1 to 5 do Form1.StringGrid1.Cells[I,J]:=''; Form2.Close; end;
// Процедура подсчета итераций // Вывод результата в таблицы procedure TForm1.Button2Click(Sender: TObject); var I,J,K,C,P:Integer; begin Form2.Show; L:=0; C:=0; P:=2; while C<=6 do begin K:=1; For I:=1 to 5-K+1 do begin For J:=1 to 5-K+1 do begin If C=0 then MasSum[I,0]:=StrToInt(StringGrid1.Cells[I,1]) else MasSum[I,0]:=StrToInt((Form2.Components[C-1] as TStringGrid).Cells[I,1]); MasSum[0,J]:=StrToInt(StringGrid1.Cells[J,P]); (Form2.Components[C] as TStringGrid).Cells[I,0]:=IntToStr(MasSum[I,0]); (Form2.Components[C] as TStringGrid).Cells[0,J]:=IntToStr(MasSum[0,J]); Sum(); (Form2.Components[C] as TStringGrid).Cells[I,J]:=IntToStr(MasSum[I,J]); (Form2.Components[C+1] as TStringGrid).Cells[I,0]:=IntToStr(K-1); end; K:=K+1; end; Max(); for I:=1 to 5 do begin (Form2.Components[C+1] as TStringGrid).Cells[I,1]:=IntToStr(MasMax[I,1]); (Form2.Components[C+1] as TStringGrid).Cells[I,2]:=inttostr(MasMax[I,2]); (Form2.Components[C+1] as TStringGrid).Cells[0,0]:='E'; (Form2.Components[C+1] as TStringGrid).Cells[0,1]:='F'+IntToStr(P)+'(E)'; (Form2.Components[C+1] as TStringGrid).Cells[0,2]:='X'+IntToStr(P)+'(E)'; end; C:=C+2; P:=P+1; end; Form2.StringGrid1.Invalidate;
// z(max) Form2.LabeledEdit1.Text:=' '+Form2.StringGrid8.Cells[5,1];
// x5 Form2.LabeledEdit6.Text:=' '+Form2.StringGrid8.Cells[5,2];
// x4 Form2.LabeledEdit5.Text:=' '+Form2.StringGrid6.Cells[4- StrToInt(Form2.LabeledEdit6.Text)+1,2];
// x3 Form2.LabeledEdit4.Text:=' '+Form2.StringGrid4.Cells[4- StrToInt(Form2.LabeledEdit6.Text)-StrToInt(Form2.LabeledEdit5.Text)+1,2];
// x2 Form2.LabeledEdit3.Text:=' '+Form2.StringGrid2.Cells[4- StrToInt(Form2.LabeledEdit6.Text)- StrToInt(Form2.LabeledEdit5.Text)- StrToInt(Form2.LabeledEdit4.Text)+1,2];
// x1 Form2.LabeledEdit2.Text:=' '+IntToStr(4- StrToInt(Form2.LabeledEdit6.Text)- StrToInt(Form2.LabeledEdit5.Text)- StrToInt(Form2.LabeledEdit4.Text)- StrToInt(Form2.LabeledEdit3.Text)); end;
// Кнопка "Решить" procedure TForm1.N2Click(Sender: TObject); begin Form1.Button2.Click; end;
// Кнопка "Мой пример" procedure TForm1.N3Click(Sender: TObject); var I:Integer; begin with StringGrid1 do begin for I:=1 to 5 do Cells[1,I]:=IntToStr(0);
Cells[2,1]:='5'; Cells[4,1]:='11'; Cells[2,2]:='3'; Cells[4,2]:='5'; Cells[2,3]:='7'; Cells[4,3]:='10'; Cells[2,4]:='4'; Cells[4,4]:='12'; Cells[2,5]:='3'; Cells[4,5]:='7';
Cells[3,1]:='9'; Cells[5,1]:='12'; Cells[3,2]:='4'; Cells[5,2]:='10'; Cells[3,3]:='9'; Cells[5,3]:='11'; Cells[3,4]:='8'; Cells[5,4]:='14'; Cells[3,5]:='5'; Cells[5,5]:='9'; end; end;
// Кнопка "Сброс" procedure TForm1.N4Click(Sender: TObject); begin Form1.Button1.Click; end;
// Кнопка "Выход" procedure TForm1.N5Click(Sender: TObject); begin Form1.Close; Form2.Close; end;
// О программе procedure TForm1.N6Click(Sender: TObject); begin ShowMessage('Программа предназначена для решения задачи' + chr(13) + 'максимизации капатиловложений' + chr(13) + chr(13) +
'Разработал студент группы 10п-1' + chr(13) + 'Урусов Алексей' + chr(13) + chr(13) + 'УАвиаК, 2013г.'); end;
end.
unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, Math, StdCtrls, ExtCtrls, jpeg, ColorGrd, Buttons, ImgList;
type TForm2 = class(TForm) StringGrid1: TStringGrid; StringGrid2: TStringGrid; StringGrid3: TStringGrid; StringGrid4: TStringGrid; StringGrid5: TStringGrid; StringGrid6: TStringGrid; StringGrid7: TStringGrid; StringGrid8: TStringGrid;
LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; LabeledEdit4: TLabeledEdit; LabeledEdit5: TLabeledEdit; LabeledEdit6: TLabeledEdit;
StaticText1: TStaticText; StaticText2: TStaticText; StaticText3: TStaticText; StaticText4: TStaticText;
procedure SG_OnDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure FormCreate(Sender: TObject);
private { Private declarations } public { Public declarations } end;
var Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
// Процедура для закрашивание максимальных элементов // по найденным координатам procedure TForm2.SG_OnDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var I,F,N:Integer; Change:Boolean; begin F:=0; N:=0; while F<=6 do begin Change:=False; For I:=N to N+4 do begin If (ACol = Cells[i].Y) and (ARow = Cells[i].X) then begin Change:=True; Break end; end; If Change then begin (Components[f] as TStringGrid).Canvas.Brush.Color:=clRed;; (Components[f] as TStringGrid).Canvas.FillRect(Rect); (Components[f] as TStringGrid).Canvas.TextOut(Rect.Left, Rect.Top, (Components[f] as TStringGrid).Cells[ACol, ARow]); end; N:=N+5; F:=F+2; end; end;
// Процедруа для смещений фокуса (выделения) procedure TForm2.FormCreate(Sender: TObject); var myRect:TGridRect; C:Integer; begin with myRect do begin Left:=-1; Top:=-1; Right:=-1; Bottom:=-1; end; for C:=1 to 8 do (Form2.FindComponent('StringGrid'+IntToStr(C)) as TStringGrid).Selection:=myRect; end;
end.
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (336)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |