Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Программаның логикалық құрылымы




 

1-40.зауыттар санын, қоймалар санын, өндірілетін өнім, тұтынатын өнім және тасу құнын енгізу.

41.stringgrid2 ұзындығын және колонка санын табу.

42.b массивінің индексі.

43.g массивінің индексі.

44.жол нөмірі.

45.қатар нөмірі.

46-47.матрица өлшемі.

48.текстік файл.

49-51.массив өлшемдері.

52.h cуммасы.

89-90.массивті d көшіреміз,қорытынды файлға жазылу үшін.

102-110.жолдан min табу.

111.егер табылса,

112-118.онда қосу.

146.егер элемент нөлге тең болса,

149.жол нөмірін сақтау.

150.қатар нөмірін сақтау.

156.0-дік элемент табылған қатардан min табу

160.0-дік элемент табылған қатардан min табу.

162.элементтнрді қосу.

164-171.осы элементтерден max табу.

188-191.max табылған жерден қатар мен жолды сызу.

219. Матрица результаты.

235-248. соңғы қорытынды.

250. s-ті f (1)файлына жазу.

261.f(1)файлын жабу.

263-266. форма 2 көрсету.

267-270. форма 3 көрсету.

271-275. барлық формаларды жабу.

 

 

Енгізілген мәліметтер

 

Шығарылған мәліметтер

 

 

 

 

 

ОРЫТЫНДЫ

 

Бұл курстық жұмысты орындау барысында операцияны зерттеудің негізгі принциптерімен таныстық. Есептің шешімін табу үшін курс барысында өткен операцияны зерттеу әдістерінің ішіндегі Коммивояжер есебінің әдісі

Литтл алгоримін практика жүзінде қолдануды үйрендік. Қолмен есептеу барысында табылған шешімді Delphi7 ортасында жазылған программамен тексеру арқылы ол мәндердің бір-біріне сәйкес келгеніне көз жеткіздім.

Сондықтан, мен өзімнің бұл курстық жұмыс тапсырмамды қоғамның көп болмаса да,қажетті салалары үшін тек қана пайдалы әсер береді деп тұжырымдаймын.

Қорыта келе, біз химиялық агрегатты айдағаннан кейін, әр түрлі бояулaрды қосылғандағы шығынын кемітудің жалпы соммасын есептедік Бұл курстық жұмысқа көрсетілген есепті формалдаудан кейін Литтл алгоритмімен шығарылуы талап етілген. Сондықтан, Литтл алгориттмін Delphi7 ортасында программа жазу арқылы бұл есептің жауабына қол жеткіздім.

 

ОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ

 

1 Вагнер Г. Основы исследования операций. Т.1-3-М.: Мир, 1973

2 Зуховицкий С.Н., Авдеева Л.И. Линейное и выпуклое программирование. М: Наука 1967.

3 Исследование операций (в 2 – х книгах). Кн.1: Методические основы и математические методы / Под ред. Дж.Моудера, С.Элмаграби. М: Мир 1981.

4 Балгабаева Л.Ш. Шешімдер қабылдау теориясы пәнінен электронды оқулық. Алматы: ҚазҰТУ, 2004

5 Таха Х. Введение в исследование операций (в 2 – х книгах).

М: Мир 1985.

6 Балгабаева Л.Ш., Ким Е.Р. Сборник задач. Часть 2. Методические указания к практическим занятием до дисциплинам “Основы исследования операций ” и “Теория принятия решений ”: Алматы. КазНТУ, 2005

 

Осымша А

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls, Grids;

 

type

mas = array [0..20,0..20] of real;

mas2 = array [1..2,1..100] of real;

abba = record

i:integer;

j:integer;

baga:real;

end;

mas1 = array [1..100] of abba;

TForm1 = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Button2: TButton;

StringGrid3: TStringGrid;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

count,

ind,

flag1,

bn,

gn,

ii,

jj

n:integer;

b,d,a:mas;

INF,OUTF:textfile;

C:mas1;

g:array [1..20] of integer;

e:mas2;

H:real;

 

 

implementation

 

procedure File_Read(var x:textfile; s:string; var y:mas; var a:integer);

var i,j:integer;

begin

AssignFile(x,s);

Reset(x);

read(x,a);

readln(x);

for i:=1 to n do

begin

y[i,0]:=i;

y[0,i]:=i;

end;

for i:=1 to a do

begin

for j:=1 to a do

read(x,y[i,j]);

readln(x);

end;

Closefile(x);

end;

 

procedure Min_Rows(var x:mas; var Y:real);

var i,j:integer;

flag:boolean;

min:real;

begin

for i:=1 to n do

begin

min:=1000;

flag:=false;

for j:=1 to n do

begin

if ((min > x[i,j]) and (x[i,j]>=0)) then

begin

min:=x[i,j];

flag:=true;

end;

end;

 

if (flag) then

begin

Y:=Y + min;

for j:=1 to n do

if (x[i,j]>=0) then

x[i,j]:=x[i,j] - min;

end;

end;

end;

 

procedure Min_Cols(var x:mas; var Y:real);

var i,j:integer;

min:real;

flag:boolean;

begin

for j:=1 to n do

begin

min:=1000;

flag:=false;

for i:=1 to n do

begin

if ((min > x[i,j]) and (x[i,j]>=0)) then

begin

min:=x[i,j];

flag:=true;

end;

end;

if (flag) then

begin

Y:=Y + min;

for i:=1 to n do

if (x[i,j]>=0) then

x[i,j]:=x[i,j] - min;

end;

end;

end;

 

 

procedure Find_C(var x:mas1; var y:integer; var max:real);

var i,j,k:integer;

min:real;

begin

y:=0;

for i:=1 to n do

begin

for j:=1 to n do

if ((i <> j) and (a[i,j]=0) and (a[i,j]>-1)) then

begin

inc(y);

C[y].i:=i;

C[y].j:=j;

end;

end;

 

for k:=1 to y do

begin

min:=1000;

for i:=C[k].i to C[k].i do

for j:=1 to n do

if ((i <> j) and (min > a[i,j]) and (j <> C[k].j) and (a[i,j]>-1)) then

min:=a[i,j];

C[k].baga:=min;

min:=1000;

for j:=C[k].j to C[k].j do

for i:=1 to n do

if ((i <> j) and (min > a[i,j]) and (i <> C[k].i) and (a[i,j]>-1)) then

min:=a[i,j];

C[k].baga:=C[k].baga + min;

end;

 

max:=-1;

for k:=1 to y do

if (max < C[k].baga) then

begin

max:=C[k].baga;

ii:=C[k].i;

jj:=C[k].j;

end;

end;

 

procedure Write_in_File();

var i,j,x,y:integer;

s:string;

begin

Append(OUTF);

writeln(OUTF);

writeln(OUTF);

writeln(OUTF,'');

writeln(OUTF);

for i:=1 to n do

if (1 = e[i,1]) then

x:=i;

 

s:=floattostr(e[x,1])+'-->'+floattostr(e[x,2]);

write(OUTF,s);

 

for i:=1 to n-1 do

begin

for j:=1 to n do

if (e[x,2] = e[j,1]) then

begin

y:=j;

break;

end;

s:='-->'+floattostr(e[y,2]);

write(OUTF,s);

x:=y;

end;

closefile(OUTF);

end;

 

 

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);

var i,j:integer;

begin

H:=0;

flag1:=0;

File_Read(INF,'input.txt',a,n);

count:=n;

bn:=n;

ind:=1;

gn:=0;

AssignFile(OUTF,'output.txt');

Rewrite(OUTF);

writeln(OUTF);

 

for i:=0 to n do

for j:=0 to n do

begin

d[i,j]:=a[i,j];

// b[i,j]:=a[i,j];

end;

 

Stringgrid1.ColCount:=n+1;

Stringgrid1.RowCount:=n+1;

Stringgrid3.ColCount:=n+1;

Stringgrid3.RowCount:=n+1;

 

for i:=0 to n do

for j:=0 to n do

if (a[i,j]= -1) then

Stringgrid1.Cells[j,i]:='x'

else

Stringgrid1.Cells[j,i]:=floattostr(a[i,j]);

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var m1,k,i,j,m,flag,p,l:integer;

max:real;

s:string;

begin

dec(count);

Append(OUTF);

 

m:=0;

Min_Rows(a,H);

Min_Cols(a,H);

Find_C(C,m,max);

 

edit1.Text:=floattostr(H);

 

a[jj,ii]:=-1;

 

e[ind,1]:=ii;

e[ind,2]:=jj;

inc(ind);

 

Stringgrid3.ColCount:=bn;

Stringgrid3.RowCount:=bn;

 

dec(bn);

 

writeln(OUTF);

s:=floattostr(ii)+'-->'+floattostr(jj)+'('+floattostr(d[ii,jj])+') ';

write(OUTF,s);

 

for i:=1 to n do

a[i,jj]:=-2;

for j:=1 to n do

a[ii,j]:=-2;

 

l:=0;

for i:=0 to n do

begin

p:=-1;

flag:=0;

for j:=1 to n do

if (a[i,j] = -2) then

inc(flag);

for j:=0 to n do

if ((a[i,j]>-2) and (flag <> n)) then

begin

inc(p);

b[l,p]:=a[i,j];

end;

if (flag <> n) then

inc(l);

end;

 

for i:=0 to bn do

for j:=0 to bn do

begin

if (b[i,j]= -1) then

Stringgrid3.Cells[j,i]:='x';

if (b[i,j] >= 0) then

Stringgrid3.Cells[j,i]:=floattostr(b[i,j]);

end;

 

edit2.Text:=floattostr(max);

if (flag1 = 0) then

begin

m1:=m;

Stringgrid2.RowCount:=m;

Stringgrid2.Height:=17*m;

end;

flag1:=1;

 

for k:=0 to m do

begin

Stringgrid2.Cells[1,k]:=floattostr(C[k+1].baga);

Stringgrid2.Cells[0,k]:='C['+inttostr(C[k+1].i)+ ',' + inttostr(C[k+1].j)+']';

end;

for k:=m to Stringgrid2.RowCount-1 do

begin

Stringgrid2.Cells[1,k]:=' ';

Stringgrid2.Cells[0,k]:=' ';

end;

 

for i:=0 to n do

for j:=0 to n do

begin

if (a[i,j]= -1) then

begin

Stringgrid1.Cells[j,i]:='x';

end;

if (a[i,j]= -2) then

begin

Stringgrid1.Cells[j,i]:=' '

end;

if (a[i,j] >= 0) then

Stringgrid1.Cells[j,i]:=floattostr(a[i,j]);

 

end;

closefile(OUTF);

if (count = 0) then

Button1.Enabled:=false;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

Write_in_File();

end;

 

end.

 

 

 

 





Поделиться с друзьями:


Дата добавления: 2016-10-22; Мы поможем в написании ваших работ!; просмотров: 473 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2272 - | 2124 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.