Автор работы: Пользователь скрыл имя, 04 Апреля 2012 в 17:54, курсовая работа
Математическое моделирование позволяет более глубоко и объективно взглянуть на модель и найти способ её преобразования. Модель, в данном случае, представляет собой набор цифр и функций по которым работают некоторые её компоненты.
Таким образом, с помощью применения метода Динамического Программирования (Марковский процесс с дискретными состояниями и непрерывным временем. Уравнения Колмогорова для вероятностей состояний.) и создания программы на основе этого метода, будет выполнена цель курсового проекта.
Для расширений же функций программы необходимо будет лишь добавить соответствующие функции и пункты в меню. Отладка программы сведется лишь к отладке новых функций. Так, например, к уже написанной программе можно будет добавить программу-калькулятор и заново откомпилировать.
Перенос в новую операционную среду не требуется, так как программа корректно работает со всеми операционными системами Windows 95\ 98\ Me\ 2000\ XP, кроме MS-DOS, так как она уже давно морально устарела.
Основные ошибки, допущенные при написании программы были исправлены при тестировании и отладке. Вновь возникающие ошибки, возникающие уже в процессе реализации программного обеспечения могут быть исправлены. Но для этого необходимо время, новые тестовые расчеты данных и немного терпения.
Ошибки сначала локализуются, затем происходит их анализ и анализ всех возможных вариантов их исправления. Исправлять ошибки нужно так, чтобы исправление одних ошибок не повлекло за собой другие. Только после всех анализов и тестирования происходит ее исправление.
После исправления всех выявленных ошибок программа вновь сдается в эксплуатацию.
Разработанная, в рамках курсового проекта, программа выполняет функцию решения типовой задачи, освобождая пользователя от довольно трудной и нудной процедуры ручных подсчётов.
В следствие чего пользователь, воспользовавшись данной программой, получает автоматизированный метод решения задачи, ранее решаемых только на бумаге путём сложных преобразований формул и вычислений неизвестных переменных.
Благодаря программе, разработанной для решения Задачи “Марковский процесс с дискретными состояниями и непрерывным временем. Уравнения Колмогорова для вероятностей состояний”, отпадает процесс изучения методики вычислений, оставляя пользователю только ввод данных и получение результатов. При этом значения результатов будут избавлены от ошибок человеческого фактора (усталости, нервозности и т.п.)
Полезность задачи состоит в том, что она решает проблему распределения ресурсов, выводя их в доступной для понимания табличной форме.
При отсутствии уверенности, что эта программа единственная в своём роде, предназначенная для решения задачи динамического программирования, которое, как раз, и ориентированно на облегчение кодирования программ, есть всё таки надежда, что она займёт достойное место, как метод, в данном классе решаемых задач.
1. Б.Банди Основы линейного программирования - М:.Радио и связь, 1989г
2. В.А.Благодатских, М. А. Енгибарян и др.
Экономика, разработка и использование программного обеспечения
ЭВМ.-М:. Финансы и статистика, 1995
3. С.Гудман, С.Хидетниеми Введение в разработку и анализ алгоритмов.-М:. Мир, 1981
4. Е.Киндлер Языки моделирования.-М:.
5. В.П.Морозов, В.В. Шураков
Основы алгоритмизации .Алгоритмические языки и системное
программирование .-М:. Финансы и статистика, 1994
6. А.Я.Савельев Технология подготовки задач для решения на ЭВМ.-
М:.Высшая школа, 1992
7. Ю.М.Коршунов Математические основы кибернетики
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, OleServer, Access2000;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Button2: TButton;
GroupBox1: TGroupBox;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i,j,x: integer;
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=strtoint(edit1.Text);
stringgrid1.ColCount:=x+1;
stringgrid1.Rowcount:=x+1;
stringgrid1.Refresh;
for i:=1 to x do
begin
stringgrid1.cells[0,i]:='S'+
stringgrid1.cells[i,0]:='S'+
stringgrid1.cells[i,i]:='*****
end;
for i:=1 to x do
for j:=1 to x do
if i<>j
then stringgrid1.cells[i,j]:=
end;
procedure TForm1.Button2Click(Sender: TObject);
var
formul:string;
begin
form1.visible:=false;
form2.visible:=true;
for i:=1 to x do
begin
formul:='dP'+inttostr(i)+'/dT=
for j:=1 to x do
begin
if stringgrid1.cells[j,i]='1'
then formul:=formul+'-'+'λ'+
if stringgrid1.cells[i,j]='1'
then formul:=formul+'+'+'λ'+
end;
if formul<>'dP'+inttostr(i)+'/dT=
then form2.ListBox1.Items.Append(
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
var
q:string;
begin
x:=0;
q:=edit1.Text;
for i:=1 to 100 do
if q=inttostr(i)
then
begin
x:=1;
break;
end;
if x<>1
then form1.Edit1.Text:='0';
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TForm2 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.DFM}
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.close;
form2.close;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
form2.ListBox1.Items.Clear;
form2.visible:=false;
form1.visible:=true;
end;
end.