Автор работы: Пользователь скрыл имя, 31 Мая 2012 в 18:05, курсовая работа
Данная курсовая работа имеет прямое отношение к экономике и звучит как первый опорный план о минимальной стоимости перевозки газа. Эта задача является одной из важнейших экономических задач в наше время, ведь различные крупные газодобывающие организации нуждаются в постоянной транспортировке газа в различные точки города, страны или даже мира.
Введение 4
1. Общая часть 5
1.1. Цель разработки 5
1.2. Анализ использования разработки 5
1.3. Анализ методов решения 6
1.4. Анализ средств программирования 6
1.4.1. Характеристики ПЭВМ 6
1.4.2. Характеристика ПО 8
1.4.3. Обзор средств программирования 9
1.4.4. Характеристика языков программирования 10
2. Специальная часть 13
2.1. Постановка задачи 13
2.2. Экономико-математическая модель 14
2.3. Метод северо-западного угла 15
2.4. Метод минимальной стоимости 17
2.5. Алгоритм решения задачи 20
2.5.1. Алгоритм основной программы 20
2.5.2. Алгоритм процедуры TForm1.Edit1Exit 21
2.5.3. Алгоритм процедуры TForm1.Edit2Exit 22
2.5.4. Алгоритм процедуры TForm1.Button4Click 23
2.5.5. Алгоритм процедуры TForm1.Button3Click1 23
2.5.6. Алгоритм процедуры sevzar 29
2.5.7. Алгоритм процедуры minelem 30
2.6. Описание решения задачи 32
2.6.1. Описание алгоритма основной программы 32
2.6.2. Описание алгоритма процедуры TForm1.Edit1Exit 32
2.6.3. Описание алгоритма процедуры TForm1.Edit2Exit 33
2.6.4. Описание алгоритма процедуры TForm1.Button4Click 33
2.6.5. Описание алгоритма процедуры TForm1.Button3Click1 33
2.6.6. Описание алгоритма процедуры sevzap 34
2.6.7. Описание алгоритма процедуры minelem 35
2.7. Ручной расчет контрольных примеров 36
2.8. Описание процесса отладки программы 51
Заключение 53
Список литературы 54
В ходе выполнения курсовой работы мной были изучены методы построения опорного плана для решения задач. Были проведены расчеты контрольных примеров вручную. Так же была написана и отлажена программа для проведения расчетов по изученным методам. Результаты работы программы были проверены с использованием тех же контрольных примеров и совпали с результатами ручного счета, что говорит о правильности работы программы.
Данная программа может использоваться на предприятии, либо в учебных целях для изучения методов первого опорного плана.
Текс программы представлен в Приложении 1, скриншоты, иллюстрирующие работу программы, - в Приложении 2.
1. Кузнецов А.В., Сакович В.А., Холод Н.И. Высшая математика: Мат. программирование: Учебник – 2-е изд., переработанное и дополненное – Мн.: Высш. шк., 2001. – 351с.:ил.
2. Кремер Н.Ш. Исследование операций в экономике. – М: ООО «Издательство Юнити-Дана», 2000. – 395 с.:ил.
3. Ресурс Интернета: http://www.reshmat.ru/example_
4. Ресурс Интернета: http://otherreferats.allbest.
5. Ресурс Интернета: http://www.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ExtCtrls, unit2, Buttons, jpeg;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
StringGrid3: TStringGrid;
StringGrid4: TStringGrid;
Label3: TLabel;
Label4: TLabel;
RadioGroup1: TRadioGroup;
Button3: TButton;
Button4: TButton;
Edit3: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Image1: TImage;
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Image1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n, m:integer;
a,b:array [0..100] of integer;
c, r:array[0..100,0..100] of integer;
implementation
{$R *.dfm}
procedure sevzap(stringgrid2:
var i,j:integer;
begin
for i:=1 to M+1 do
stringgrid2.Cells[0, i]:='A'+inttostr(i);
for i:=0 to m-1 do
for j:=0 to n-1 do
begin
if (A[i]>B[j]) and (A[i]<>0) and (B[j]<>0) then
begin
R[i,j]:=B[j];
A[i]:=A[i]-B[j];
B[j]:=0;
stringgrid2.Cells[j+1,i+1]:=
end
else
if (A[i]<B[j])and (a[i]<>0) and (B[j]<>0) then
begin
R[i,j]:=A[i];
B[j]:=B[j]-A[i];
A[i]:=0;
stringgrid2.Cells[j+1,i+1]:=
end
else
if (A[i]=B[j])and (A[i]<>0) and (B[j]<>0) then
begin
R[i,j]:=A[i];
B[j]:=0;
A[i]:=0;
stringgrid2.Cells[j+1,i+1]:=
end;
end;
end;
procedure minelem(stringgrid2:
var i,j,l,min,mini,minj: integer;
begin
for i:=1 to m+1 do
stringgrid2.Cells[0, i]:='A'+inttostr(i);
for l:=1 to m+n-1 do
begin
min:=32767;
for i:=0 to m-1 do
for j:=0 to n-1 do
begin
if (C[i,j]<min) and (A[i]<>0) and (B[j]<>0) then
begin
min:=c[i,j];
mini:=i;
minj:=j;
end;
end;
if (A[mini]>B[minj]) and (A[mini]<>0) and (B[minj]<>0) then
begin
R[mini,minj]:=B[minj];
A[mini]:=A[mini]-B[minj];
B[minj]:=0;
stringgrid2.Cells[minj+1,mini+