Автор работы: Пользователь скрыл имя, 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
end
else
if (A[mini]<B[minj])and (A[mini]<>0) and (B[minj]<>0) then
begin
R[mini,minj]:=A[mini];
B[minj]:=B[minj]-A[mini];
A[mini]:=0;
stringgrid2.Cells[minJ+1,mini+
end
else
if (A[mini]=B[minj])and (A[mini]<>0) and (B[minj]<>0) then
begin
R[mini,minj]:=A[mini];
B[minj]:=0;
A[mini]:=0;
stringgrid2.Cells[minj+1,mini+
end;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button3Click(Sender: TObject);
var i,j, f, kol:integer;
begin
//занесение массивов
for j:=0 to n-1 do
b[j]:=strtoint(stringgrid3.
for i:=0 to m-1 do
a[i]:=strtoint(stringgrid4.
for i:=0 to m-1 do
for j:=0 to n-1 do
c[i,j]:=strtoint(stringgrid1.
//очистка
for i:=0 to m-1 do begin
stringgrid2.Rows[i+1].Clear;
for j:=0 to n-1 do
R[i,j]:=0;
end;
//заполнение таблицы поставок
if radiogroup1.ItemIndex=0 then sevzap(stringgrid2)
else minelem(stringgrid2);
//проверка
kol:=0;
for i:=0 to m-1 do
for j:=0 to n-1 do
if r[i,j]<>0 then kol:=kol+1;
if kol<>(n+m-1) then
begin
showmessage('Не решается этим методом');
exit;
end;
//нахождение функции
f:=0;
for i:=0 to M-1 do
for j:=0 to n-1 do
f:=f+R[i,j]*C[i,j];
edit3.Text:=inttostr(f);
end;
procedure TForm1.Edit1Exit(Sender: TObject);
var i:integer;
begin
if trim(edit1.text)='' then edit1.text:='0';
n:=strtoint(edit1.Text);
stringgrid1.ColCount:=n+1;
stringgrid2.ColCount:=n+1;
stringgrid3.ColCount:=n;
for i:=1 to n+1 do begin
stringgrid1.Cells[i, 0]:='B'+inttostr(i);
stringgrid2.Cells[i, 0]:='B'+inttostr(i);
end;
end;
procedure TForm1.Edit2Exit(Sender: TObject);
var i:integer;
begin
if trim(edit2.text)='' then edit2.text:='0';
m:=strtoint(edit2.Text);
stringgrid1.rowCount:=m+1;
stringgrid2.rowCount:=m+1;
stringgrid4.colCount:=m;
for i:=1 to m+1 do begin
stringgrid1.Cells[0, i]:='A'+inttostr(i);
stringgrid2.Cells[0, i]:='A'+inttostr(i);
end;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if (key<>'0')
and (key<>'1')
and (key<>'2')
and (key<>'3')
and (key<>'4')
and (key<>'5')
and (key<>'6')
and (key<>'7')
and (key<>'8')
and (key<>'9') then
Key := #0;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
form2.ShowModal;
end;
end.
Рис. 1. Внешний вид главного окна программы.
Рис. 2. Сообщение, появляющееся при вырожденном плане.
Рис. 3. Окно постановки задачи.