Разработка программного продукта для решения балансовой модели

Продуктивность модели Леонтьева. Построение неотрицательного решения в модели Леонтьева методом простой итерации. Обоснование программного обеспечения. Разработка алгоритма решения балансовой модели методом итерации. Примеры использования программы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 26.07.2018
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

ПРИЛОЖЕНИЕ

Листинг программы «ВМ»

unit Main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

File1: TMenuItem;

Open1: TMenuItem;

Save1: TMenuItem;

Exit1: TMenuItem;

Tascs: TMenuItem;

Zad1: TMenuItem;

Solve: TMenuItem;

View1: TMenuItem;

ClSolv: TMenuItem;

SaveSolv: TMenuItem;

Memo1: TMemo;

FontDialog1: TFontDialog;

procedure Open1Click(Sender: TObject);

procedure Save1Click(Sender: TObject);

procedure Zad1Click(Sender: TObject);

procedure View1Click(Sender: TObject);

procedure ClSolvClick(Sender: TObject);

procedure Exit1Click(Sender: TObject);

procedure Font1Click(Sender: TObject);

procedure OpenHelp1Click(Sender: TObject);

procedure CloseHelp1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

Const

nn = 50;

Type

Mat = array[0..nn,0..nn] of extended;

Vek = Array[0..nn] of Extended;

Var

F1, F2: TextFile;

Fname1, Fname2 : String;

Function UmMatVek(a: mat; x : vek; n: integer):vek;

var d : vek;

c : extended ;

i, j : integer;

begin

For i := 1 to n do

begin

c := 0.0;

For j := 1 To n do

c := c + a[i,j]*x[j];

d[i] := c;

end;

Result := d;

end;

Function SumVek(a,b : vek; n : integer):vek;

var i : Integer;

d : vek;

begin

for i := 1 to n do

d[i] := a[i]+ b[i];

Result := D;

end;

procedure TForm1.Open1Click(Sender: TObject);

begin

Memo1.Lines.Clear;

Memo1.Lines.LoadFromFile('Task.txt');

Memo1.Visible := True;

end;

procedure TForm1.Save1Click(Sender: TObject);

begin

Memo1.Lines.SaveToFile('Task.txt');

Memo1.Lines.Clear;

Memo1.Visible := False;

end;

procedure TForm1.Zad1Click(Sender: TObject);

Label 1;

Var n : integer;

a : mat;

x, b, y : vek;

i, j : integer;

eps: extended;

begin

Fname1 := 'Task.txt';

AssignFile(F1,Fname1);

Read(F1,x[j]);

Readln(F1,x[n]);

Readln(f1,Eps);

CloseFile(f1);

Fname2 := 'Solve.txt';

AssignFile(f2,Fname2);

Rewrite(F2);

Writeln(f2,'Решение модели Леонтьева вида:');

Writeln(f2,' X = AX + B ');

Writeln(f2,' методом итераций. ');

Writeln(f2,'Размер задачи N = '+ IntTostr(n));

Writeln(f2,'Матрица A : ');

For i := 1 to n do

Begin

For j := 1 to n-1 do

Write(F2,FloatTostr(A[i,j])+' ');

Writeln(F2,FloatTostr(A[i,n]));

end;

Writeln(f2,'Вектор В : ');

For j := 1 to n-1 do

Write(F2,FloatTostr(b[j])+' ');

Writeln(F2,FloatTostr(b[n]))

end; Writeln(f2,' Ответ : ');

For i := 1 to n-1 do

Write(f2,FloatTostr(y[i])+' ');

Writeln(f2,floatTostr(y[n]));

CloseFile(f2);

ShowMessage('Решение задачи завершено!');

end;

procedure TForm1.View1Click(Sender: TObject);

begin

Memo1.Lines.Clear;

Memo1.Lines.LoadFromFile('Solve.txt');

Memo1.Visible := True;

end;

procedure TForm1.ClSolvClick(Sender: TObject);

begin

Memo1.Lines.SaveToFile('Solve.txt');

Memo1.Lines.Clear;

Memo1.Visible := False;

end;

procedure TForm1.Exit1Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.Font1Click(Sender: TObject);

begin

If Memo1.Visible then

if FontDialog1.Execute Then

Memo1.Font := FontDialog1.Font;

end;

procedure TForm1.OpenHelp1Click(Sender: TObject);

begin

Memo1.Lines.Clear;

Memo1.Lines.LoadFromFile('Help.txt');

Memo1.visible := True;

end;

procedure TForm1.CloseHelp1Click(Sender: TObject);

begin

Memo1.Lines.SaveToFile('Help.txt');

Memo1.Lines.Clear;

Memo1.Visible := False;

end;

end.

Листинг программы «ВМR»

Unit Main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

File1: TMenuItem;

Open1: TMenuItem;

Save1: TMenuItem;

Exit1: TMenuItem;

Tascs: TMenuItem;

Zad1: TMenuItem;

Solve: TMenuItem;

View1: TMenuItem;

ClSolv: TMenuItem;

SaveSolv: TMenuItem;

Memo1: TMemo;

FontDialog1: TFontDialog;

procedure Open1Click(Sender: TObject);

procedure Save1Click(Sender: TObject);

procedure Zad1Click(Sender: TObject);

procedure View1Click(Sender: TObject);

procedure ClSolvClick(Sender: TObject);

procedure Exit1Click(Sender: TObject);

procedure Font1Click(Sender: TObject);

procedure OpenHelp1Click(Sender: TObject);

procedure CloseHelp1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

Const

n = 50;

Type

Mat = array[0..n,0..n] of extended;

Vek = Array[0..n] of Extended;

Var

F1, F2: TextFile;

Fname1, Fname2 : String;

Procedure TForm1.Open1Click(Sender: TObject);

begin

Memo1.Lines.Clear;

Memo1.Lines.LoadFromFile('Task.txt');

Memo1.Visible := True;

end;

procedure TForm1.Save1Click(Sender: TObject);

begin

Memo1.Lines.SaveToFile('Task.txt');

Memo1.Lines.Clear;

Memo1.Visible := False;

end;

procedure TForm1.View1Click(Sender: TObject);

begin

Memo1.Lines.Clear;

Memo1.Lines.LoadFromFile('Solve.txt');

Memo1.Visible := True;

end;

procedure TForm1.ClSolvClick(Sender: TObject);

begin

Memo1.Lines.SaveToFile('Solve.txt');

Memo1.Lines.Clear;

Memo1.Visible := False;

end;

procedure TForm1.Exit1Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.Font1Click(Sender: TObject);

begin

If Memo1.Visible then

if FontDialog1.Execute Then

Memo1.Font := FontDialog1.Font;

end;

procedure TForm1.OpenHelp1Click(Sender: TObject);

begin

Memo1.Lines.Clear;

Memo1.Lines.LoadFromFile('Help.txt');

Memo1.visible := True;

end;

procedure TForm1.CloseHelp1Click(Sender: TObject);

begin

Memo1.Lines.SaveToFile('Help.txt');

Memo1.Lines.Clear;

Memo1.Visible := False;

end;

*****

procedure TForm1.Zad1Click(Sender: TObject);

Label 1;

const mm=1000;

Var

a , aa, cc, ed: mat;

f,x: vek;

i,j,k,n:integer;

alf, ss, s, bb: extended;

result: boolean;

begin

Fname1 := 'Task.txt';

AssignFile(F1,Fname1);

Reset(f1);

Readln(F1,n);

Readln(F1,alf);

For i := 1 to n do

begin

For j := 1 to n-1 do

//begin

Read(f1, A[i,j]);

Readln(f1,A[i,n]);

//end;

end;

For J := 1 to n-1 do

Read(F1,f[j]);

Readln(F1,f[n]);

CloseFile(f1);

Fname2 := 'Solve.txt';

AssignFile(f2,Fname2);

Rewrite(F2);

Writeln(f2,'Решение системы линейных уравнений модели Леонтьева');

Writeln(f2,' методом регуляризации. ');

Writeln(f2,'Размер задачи N = '+ IntTostr(n));

Writeln(f2,'Значение альфа = '+ FloatTostr(alf));

****

Writeln(f2,'Матрица transponir : ');

For i := 1 to n do

begin

For j := 1 to n-1 do

Write(F2,FloatTostr(aa[i,j])+' ');

Writeln(F2,FloatTostr(aa[i,n]));

end; ;

For k :=1 to n do

begin

******

writeln(f2,'Ответ:');

For i:=1 to n-1 do

write(f2,floattostr(x[i])+' ');

writeln(f2,floattostr(x[n]));

closefile(f2);

end;

end.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.