Кіріс мәліметтер


МАЗМҰНЫ
КІРІСПЕ...................................................................................................................3
1 Қойылған мәселенің қазіргі жағдайы................................................................5
1.1 Жалпы оптималдау есептері............................................................................6
1.2 Транспорт есебі...............................................................................................12
1.2.1 Потенциалдар әдісі......................................................................................12
Солтүстік-батыс бұрыш әдісі....................................................................14
1.2.3 Минимальды элемент әдісі.........................................................................15
2 Delphi объектке бағытталған тілі.....................................................................25
3 Программаның
3.1 Жалпы мағлұмат.............................................................................................36
3.2 Функционалдық тағайындалуы ....................................................................36
3.3 Шақыру және жүктеу.....................................................................................36
3.4 Қажетті техникалық жабдықтар....................................................................36
3.5 Кіріс мәліметтер..............................................................................................36
3.6 Шығыс мәліметтер..........................................................................................37
ҚОРЫТЫНДЫ.......................................................................................................38
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ...........................................................39
ҚОСЫМША...........................................................................................................40
КІРІСПЕ
Әлемнің барлық дамыған елдерінде математикалық әдістерді жеке тәжірибелік
Инвестицияларды жоспарлау туралы шешімдер қабылдаған кездері осындай жағдайларды
Математикалық және құралдық әдістер жаңашыл компьютерлік және ақпараттық
Қазіргі транзиттік жүктер үлкен қашықтыққа тасылған жағдайда тасымалдаудың
Транспорт моделінің әдістерін өңдеуде көптеген әлемдік ғалымдар өз
Н.Назарбаев, А.Абалкин, А.Аганбегян, А.Қошанов, С.Сатыбалдин, Н.Есенғарин, Е.Атамқұлов, Қ.Жанғаскин,
Зерттеудің мақсаты мен міндеттері. Диплом жұмысының мақсаты транспорттық
халықаралық практиканы және алдағы кезеңдегі даму бағыттарын есепке
темір жол көлігімен транзиттік жүк тасымалдарын жүргізетін елдерді
жүк тасымалдарының алдағы кезеңдегі болуы мүмкін болжамдық көлемдерін
темір жол көлігіндегі транзиттік тасымалдардың қалыптасу принциптерін анықтау;
транзиттік жүк тасымалдарының жүк ағымдарын жетілдірудің ұйымдастырушылық-экономикалық фактор
Бұл зерттеу еңбегімнің объектісі транспорт нарығының механизмдері болып
Транспорт есебінің негізгі мақсаты мүмкін жоспарлар ішінен
ең оптималдысын табу, яғни жалпы тасымалдау құнын минимальдау.
1 Қойылған мәселенің қазіргі жағдайы
Қазіргі транзиттік жүктер үлкен қашықтыққа тасылған жағдайда тасымалдаудың
Транспорт моделінің әдістерін өңдеуде көптеген әлемдік ғалымдар өз
Н.Назарбаев, А.Абалкин, А.Аганбегян, А.Қошанов, С.Сатыбалдин, Н.Есенғарин, Е.Атамқұлов, Қ.Жанғаскин,
Зерттеудің мақсаты мен міндеттері. Диплом жұмысының мақсаты транспорттық
халықаралық практиканы және алдағы кезеңдегі даму бағыттарын есепке
темір жол көлігімен транзиттік жүк тасымалдарын жүргізетін елдерді
жүк тасымалдарының алдағы кезеңдегі болуы мүмкін болжамдық көлемдерін
темір жол көлігіндегі транзиттік тасымалдардың қалыптасу принциптерін анықтау;
транзиттік жүк тасымалдарының жүк ағымдарын жетілдірудің ұйымдастырушылық-экономикалық фактор
Бұл зерттеу еңбегімнің объектісі транспорт нарығының механизмдері болып
1.1 Жалпы оптималдау есептері
Операцияны (басқарылатын жүйелерді) жүйелеп талдау.
Бұл кезеңдегі жұмыстарды технолог пен операцияны зерттеуші бірігіп
Операцияны басқару есептерін мазмұндау және операцияның қарапайым бөлшектерін
Бұл кезеңдегі жұмыстарды технолог пен операцияны зерттеуші бірігіп
1. Операцияның қозғаушы күшінің тізбегі болу керек. Олар
2. Осы қозғаушы күштердің өзара әрекеттесуінің шамасы (сипаты)
3. Осы операцияның бөлшектерінің бүтін операциядағы орны көрсетілуі
Операцияның қарапайым бөлшектерін бөліп шығару аралық кезең
Операциядағы негізгі қозғаушы күштерді бөліп шығару керек. Бұл
Болжамдар жасау (жорамал құрастыру).
Бұл кезеңдегі жұмыстарды технолог пен операцияны зерттеуші бірігіп
Математикалық модельді құрастыру.
Операцияны зерттеу үшін іс-жүзінде қолданбалы математика маманы мен
Модель дегеніміз ақиқатты нақты белгілеу. Модель көмегімен
Математикалық модель мақсатты функция мен шектеулерден тұрады. Мақсатты
Басқару есептерін шешетін әдісті таңдау және алгоритм жасау.
Бұл кезеңдегі жұмыстарды операцияны зерттеуші мен математика маманы
Айнымалылардың саны бойынша бір мөлшерлі (бір өлшемді) және
Шектеулерге байланысты шартты және шартсыз есептерге бөлінеді.
Тәуелсіз айнымалылардың уақыттан функция болу, болмауына байланысты статикалық
Ескерілетін ақпараттардың дәрежелері бойынша стохастикалық және детерминдік оптималдандыру
Математикалық модельді жасаған соң мақсатты функция мен шектеулер
- сызықтық бағдарламалау;
- бейсызықты бағдарламалау;
- дискретті бағдарламалау;
- динамикалық бағдарламалау;
- ойындар теориясына;
- стохастикалық бағдарламалау, т.б.
Қандай математикалық бағдарламалау есептеріне келісетінін қарастырып, есепті шешетін
Детерминдік - ол есептеу кезеңдерінде берілген шарттар бойынша
Есептеу процесінің дискреттілігі - орындалуы күдік туғызбайтын бөліктелген
Жалпылық - ол әртүрлі берілген шарттар бойынша бір
Алгоритмді жүзеге асыратын программа құрастыру және оны жөнге
Бұл кезеңдегі жұмыстарды операцияны зерттеуші мен программа маманы
есептеу алгоритмінің блок-схемасы бойынша программаның детальды блок-схемасын тұрғызу;
программа тілін таңдау;
программа құру;
шешуі белгілі (тесттік) есептер қолдана отырып, программаны тексеру
берілген шарттардың өлшем функциясы ретінде есептеу алгоритмінің бір
кіріс және шығыс мәліметтерін белгілі бір формада дайындау.
Есепті шешу және шешімдерді талдау.
Бұл кезеңдегі жұмыстарды жоспарлаушы мен операцияны зерттеуші бірігіп
Операцияларды зерттеудің негізгі принциптері:
1 Операцияны зерттейтін топ құрамына әртүрлі мамандар енгізу
2 Математикалық модельдеу принципі. Операцияны басқарғанда шешім қабылдау
3 Оптималдық принцип. Шешім қабылдағанда бізге кез-келген шешім
4 Іс жүзінде қолдану принципі. Кез-келген операцияны зерттеудің
5 Үйлестік (ұқсастық) принципі. Жаңа есепті ұқсасты
6 Декомпозиция (бөлшектеу) принципі. Күрделі операцияларды зерттеуде қолданылады.
7 Жүйелеу тәсілінің принципінің негізгі операцияға әсер ететін
8 Агрегаттау (іріктеу) принципі. Күрделі есеп шығару мен
Математикалық бағдарламалау есептерінің қойылымы, оларды тораптау.
1 есеп. Қоспаның ең жақсы құрамын анықтау (диета
Мал шаруашылығында малға тәулікте берілетін жем құрамы жоспарланады.
Негізгі белгілеулер:
n ( ) - жем түрлері;
m ( ) - қоректі заттар саны;
- j-ші жемнің бірлігіндегі і-ші заттың бірлігі;
- тәуліктегі қоректі заттың қажеттілігі;
- j-ші жем бірлігінің бағасы;
- жем түрлерінің мөлшері.
Қарапайым актілер:
1) Жем түрлерінің жалпы бағасын минималдау.
2) Тәулікте қоректі заттар мөлшерін қанағаттандыру.
Есептің математикалық моделі:
2 есеп. Өнім шығарудың оптималды жоспары.
Кәсіпорын n түрлі өнім шығарады ( ).
Шикізат көлемі бойынша технологиялық іске асыратын, шығарылатын өнімнің
Тәуелсіз айнымалылар:
xj , -шығарылатын өнім көлемі
Қарапайым актілер:
1) Кәсіпорын пайдасын максималдау.
2) Шығарылатын өнім көлемін қанағаттандыру.
3) Шикізат көлемінің шектілігін ескеру.
Есептің математикалық моделі:
3 есеп. Металл өнімдерін тасымалдауды жоспарлау (транспорт есебі).
Өндірістік қуаттары -ге тең бірыңғай металл
Келесі белгілеулер енгізейік:
тасымалдау құны.
Тәуелсіз айнымалылар: -тасымалданатын метал өнімдерінің көлемі.
Қарапайым актілер:
1) Транспорт шығындарын минималдау.
2) Тұтынушылардың сұраныстарын толық қамтамасыз ету.
3) Өндіріс қуаттарының шектілігін ескеру.
Есептің математикалық моделі:
4 есеп. Белгілеу (үлестіру) туралы есеп.
n механизмдерді үлестіру туралы есепте әрбір механизм тек
Белгілеулер:
, , -
- і-ші механизмді j-ші жұмысқа белгілеу.
Қарапайым актілер:
1) Процесс тиімділігін максималдау.
2) Бір механизм бір жұмысты орындайды.
3) Бір жұмыс тек бір механизммен орындалу керек.
Есептің математикалық моделі:
1, егер і механизм j-жұмысқа белгіленген болса,
=
0, егер і механизм j-жұмысқа белгіленбеген болса.
Транспорт есебі
1.2.1 Потенциалдар әдісі
Транспорт есебі келесідей тұжырымдалады:
Берілген пункте
6.1-кесте
...
...
...
... ... ... ... ...
...
матрицасын тасымалдау жоспары, ал матрицасын
Транспорт есебінің негізгі мақсаты мүмкін жоспарлар ішінен ең
Тіке есебі
(6.1)
(6.2)
(6.3)
(6.4)
(6.5)
(6.6)
(6.7)
(6.8)
Тіке есепті қарастырайық, мұнда мақсатты функция (6.1) транспорт
1) Егер , онда (6.1)-(6.4) есеп
Ашық транспорт есебін жабық транспорт есебіне келтіруге болады:
2) Егер , онда келесі
3) Егер , онда келесі
Транспорт есебін потенциалдар әдісімен, венгр әдісімен шығаруға болады.
Потенциалдар әдісінің алгоритмі:
І. Алғашқы қадам:
1. Басты жоспарды құру.
2. Жоспары бар торлар үшін:
3. Жоспары жоқ торлардың потенциалдығын зерттеу:
ІІ. Жалпы қадам:
1. Жоспарды одан да жақсарту.
2. Жүйені түзету.
3. Түзетілген жүйенің потенциалдығын зерттеу.
Алғашқы жоспар не солтүстік-батыс бұрыш әдісімен, не минимальды
Жоспары бар торларға жүйесі жасалады.
Жоспары жоқ торларға келесі теңсіздіктер жүйесі құрылады:
Егер бұл шарттар орындалмаса, онда
Жаңа жоспар келесідей құрылады:
, егер цикл бұрылған жерде плюс тұрса,
= , егер
,
Содан соң жоспары бар торларға жаңа теңдеулер жүйесі
Жоспары жоқ торлардың потенциалдығы зерттеледі: .
1.2.2 Солтүстік-батыс бұрыш әдісі
Солтүстік-батыс бұрыш әдісімен құрылатын алғашқы жоспардың әрбір қадамында
Жоспарды құру алгоритмі бірнеше қадамдардан тұрады, олардың әрқайсында
1-қадам. жоспары таңдалады.
2-қадам. Егер болса, онда
3-қадам. Егер болса, онда
4-қадам. Келесі қарастырылатын жоспар болады.
5-қадам. Егер болса, онда
6-қадам. Егер болса, онда
Алгоритм өнімді қабылдау пункттеріне толығымен үлестіргенге дейін жалғасады,
1.2.3 Минимальды элемент әдісі
Минимальды элемент әдісінде транспорттық шығын
1-қадам. матрицасынан ең кіші элементін
2-қадам. Егер болса, онда
3-қадам. матрицасынан келесі ең кіші
Алгоритм торға дейін толтырылады.
a1 = 180, a2 = 90, a3 =
.
, болғандықтан есеп ашық транспорт
Шешімі. Келесі кесте құрылады
2 – кесте
bj
ai 45
45
100
160
90
180 6
7
3
2
0
90
5
1
4
3
0
170
3
2
6
2
0
Ι. Алғашқы қадам
1. Басты жоспарды құру. Алғашқы жоспар келесі екі
а) минимальды элемент әдісі;
ә) солтүстік-батыс бұрыш әдісі.
а) Минимальды элемент әдісі
6.3-кесте
bj ai 45
0 45
0 100
55 160
70 0 90
0
180
90 0 6
0 7
0 3
0 2
90 0
90
90
45 0 5
0 1
45 4
45 3
0 0
0
170
100 55 3
45 2
0 6
55 2
70 0
0
Минимальды элемент әдісінде тасымалдау құны ескеріледі. Кесте
Қалған торлар осы ережемен толтырылады
Соңғы қалған тор келесідей толтырылады:
ә) Солтүстік-батыс бұрыш әдісі
6.4 - кесте
bj
ai 45
0 45
0 100
10 0 160
80 0 90
180
135
45 7
45 3
90 2
0 0
0
90
80 0 5
0 1
0 4
10 3
80 0
0
170
90 3
0 2
0 6
0 2
80 0
90
Бұл әдіс солтүстік-батыс бұрышында орналасқан (1, 1) торының
x11 = min {a1, b1} = min{180, 45}
.
Келесі солтүстік-батыс бұрышта орналасқан элемент
Келесі бастапқы жоспар алынады:
6.5 - кесте
bj
ai 45 45 100
180
6
45 7
45 3
90 2
0
90
5
1
4
10 3
80 0
170
3
2
6
2
80 0
90
2. Жоспары бар торлар үшін
Табылған мәндерді ескерсек, кесте келесі түрде болады:
6.6 – кесте
vj
ui 6 7 3 2 025
0 6
45 7
– 45 3
+ 90 2
0
–1 5
1
+ 4
–10 3
80 0
0 3
2
6
2
80 0
90
3. Жоспары жоқ торлардың потенциалдығын зерттеу
Егер бұл шарт орындалмаса, онда
Табылған барлық ішінен ең үлкені
ΙΙ. Жалпы қадам
Жоспарды одан да жақсарту.
тұратын тордан бастап, жоспары бар торларда сағат тіліне
2. Жүйені түзету.
(-)-та тұрған барлық ішінен ең
6.7 – кесте
vj
ui 6 7 3 9 7
0 6
45 7
– 35 3
100 2
+ 0
6 5
1
+10 4
3
–80 0
7 3
2
6
2
80 0
90
Жоспары бар торлар үшін келесі потенциалдар жүйесін аламыз
3. Түзетілген жүйенің потенциалдығын зерттеу (6.7 - кесте).
Келесі жақсартылған жоспарды аламыз
6.8-кесте
vj
ui 6 0 3 2 0
0 6
– 45 7
3
100 2
+35 0
–1 5
1
45 4
3
45 0
0 3
+ 2
6
2
–80 0
90
Келесі потенциалдар жүйесін аламыз (6.8 - кесте):
Потенциалдығын зерттейміз (6.8 - кесте):
.
Келесі жақсартылған жоспарды аламыз:
6.9 - кесте
vj
ui 3 0 3 2 0
0 6
7
3
100 2
80 0
–1 5
1
45 4
3
45– 0
+
0 3
45 2
6
2
+35 0
–90
Келесі потенциалдар жүйесін аламыз (6.9-кесте):
Потенциалдығын зерттейміз (6.9-кесте):
Келесі жақсартылған жоспарды аламыз:
6.10 - кесте
vj
ui 3 1 3 2 0
0 6
7
3
100 2
80 0
0 5
1
45 4
3
0
45
0 3
45 2
6
2
80 0
45
Келесі потенциалдар жүйесін аламыз (6.10 - кесте):
Потенциалдығын зерттейміз
(6.10 - кесте):
Алынған жүйе оптималды болғандықтан оптималды жоспар алынды және
2 Delphi объектке бағытталған тілі
Жоғарғы деңгейлі программалау процедуралық, логикалық және объектілі –
Солардың ішінде Visual Basic тілі Qbasic программалау тілі
Delphi – дің бірінші нұсқасы 1994 жылы жарыққа
Delphi ортасы – бағдарламаушының жоғары әрі тиімді жұмысын
Delphi тіліндегі қолданбалы бағдарламалар немесе қосымшалар IDE (Integrated
Delphi – дің IDE ортасы көптерезелік жүйе деп
негізгі терезе (Project 1);
объектілер бақылаушысының терезесі (Object Inspector);
формалар құрастырушысының терезесі (Form1);
бағдарлама кодының терезесі (Unit1.pas).
Негізгі терезеден басқа терезелерді жылжытуға, экраннан алып тастауға
Терезелерді кішірейту, үлкейту, жабу әрекеттері осы әрекеттердің Windows
Форманың терезесінен Unit кодына және одан кері өту
Негізгі терезе бағдарламаның жобасын құрудағы жұмыстарды басқарады және
Бұл терезеде Delphi – дің негізгі меню жүйесі,
Delphi – дің негізгі ерекшелігі – мұнда қосымша
Біз ұсынып отырған программалық комплексті жасау үшін Delphi
Delphi-де қолданбаларды жобалауда визуалды құралдары мен оңтайлау жүргізетін
Delphi қуатты, икемді ғана емес, объектті-бағытталған программалау принциптері
Delphі-дің жобалары модульдерден тұратын бағдарламалық бірліктер жиынынан тұрады.
Комментарий сияқты {$R*.RES} компиляторға пиктограмма сияқты файл ресурстарын
Басты модульдің орындалатын бөлігі begіn, end арасында орналасады.
Модуль unіt сөзімен басталады кейін модуль аты жазылады.Осы
Интерфейс бөлігі (іnterface сөзімен басталады) компиляторға басқа бағдарлама
Бағдарламада кездесетін қателерді 3 топқа бөледі :
Синтаксистік
Орындалу уақытының қателері
Алгоритмді
Синтаксистік қателер - оларды тағы да оңайырақ шегерілетін,
Орындалу уақытының қателері Delphі-де олар ерекшелік (exeptіon) деп
Delphі-дегі бағдарламада қателер шыққан жағдайда өңдеу аймағы бағдарлама
Алгоритмдік қателермен жұмыс басқаша болады. Алгоритмдік қатесі бар
Программа құрудың интегралдық ортасын сипаттау
1998 жылы Іnprіse Corporatіon фирмасы (бұрынғы Borland Жаңа
Wіndows операциялық жүйесінде Паскаль, Си және т.б.тілдерді қолданып
Кейінгі кездегі дамып келе жатқан визуалды программалау программаның
Delphi көмегімен Windows-қа арналған бағдарламалық қамсыздандыру өндірісі тез
негізгі саймандар тақтасы;
объект инспекторы;
форма мен код редакторы.
Жоғарғы жақта негізгі терезе орналастырылған. Delphi-дің саймандар тақтасы
Негізгі терезе. Негізгі Терезе Delphi-дің «басқару орталығы »
Негізгі мәзір. Негізгі мәзір проектімен жұмыс кезінде қажетті
File (Файл) – файлмен жұмыстайтын еомандалар жиынтығын құрайды,
Edit (Түзету) – атында көрсетілгендей мұнда мәтін түзететін,
Search (Іздеу) – мәтінді іздеу және алмастыру амалдарын
Project – проектге модулдарды қосуға жәге өшіруге, кітапханалар
Database (Деректер қоры) – деректер қорымен жұмыс істейтін
Tools (Құралдар) - Delphi - дің
Help (Көмек) Delphi-дің анықтамалық жүйесін шақыруға мүмкіндік бареді.
Delphi-дің жұмыс ортасы. Delphi-дің интеграцияланған жетілдіру ортасының орталық
Форма конструкторымен код редакторы тығыз байланысты. Оның көмегімен
Қалыпты саймандар тақтасы. Саймандар тақтасыныңбірінші бетінде өте қажетті
Курсор – белгілі бір боъкетіні қалпына келтіру үшін
MainMenu бағдарламаға негізгі менюді енгізуге мүмкіндік береді. Оны
MainMenu-ді формаға орнату;
Объект инспекторының Items қасиеті арқылы меню дизайнерін шығартқызу;
Меню дизайнерінде меню бағыттарын белгілеу.
PopupMenu қосалқы менюлерді құруға арналған. Бұл меню типін
Label экран үстінде мәтінді көрсету құрылғысы. Объект инспекторының
CheckBox мәттіннің жолы мен кішкентай терезешігімен белгіленген. Терезешікте
RadioButton тізімнен жалғыз ғана қасиетті тұтынады;
ComboBox көбіне ListBox-қа ұқсайды, бірақ ерекшелігі – ақпаратты
Объект инспекторы. Объект инспекторы экранның сол, негізгі саймандар
Events беті пайдаланушы арасындағы пайда болатын байланыс компнент
Delphi-дің жұмыс ортасы. Delphi-дің интеграцияланған жетілдіру ортасының орталық
Форма конструкторымен код редакторы тығыз байланысты. Оның көмегімен
Delphi ортасында жиі кездесетін оқиғалар:
On Click тышқан тетігін бір рет басу;
On Dbl Click тышқан тетігін екі рет басу;
On Key Down клавишті басу;
On Create форманы екі рет шерту.
Delphі-де дайын бөліктерді біріктіру арқылы программа құруға болады.Және
Delphі-дегі программалаудың бір ерекшелігі, прошраммист өзінің істеп отырған
Программаны құруды клавиатура және mouse (мышь) арқылы басқаруға
Wіndows-тың жұмыс аймағында- монитор экранындағы негізгі аймақ- Delphі-дің
Немесе "Выполнить" (орындау) командасын қолдануға болады: жолдың бағытын
C:\Program Fіles\Borland\Delphі_4\Bіn\ Delphі_32.exe
Полиморфизм және виртуалды әдістер. Полиморфизм-әртүрлі кластарға кіретін, әдістер
Төменде әрбір класс үшін ен белгіл енеді).
Бағдарламадағы адамдар тізімін Tperson класс объектісінің массиві
Lіst: array [1…szl]of Tperson;
Бұндай етіп тізімді хабарлауға болады, өйткені Object Pascal
Бағдарламаның жұмыс істеу барысында массивтің әрбір
Тізім (Button2)пернесін басып ,Tform1.Button2Clіck үрдісі тізімінің әрбіробъектісі іnto
Инкапсуляция және объект қасиеттері. Инкапсуляция деп -тек класс
Object Pascal–да объектілер даласына мүмкіндіктің шектелуі объект қасиеті
Кластарды жазғанда қасиет атының алдына property (қасиет) сөзі
Төменде екі name және address қасиеттері бар TTPerson
Қасиет мәнін орналастыру бағдарламасында обьектіде қасиет мәнін орналастыру
жазсақ жеткілікті.
Protected секциясында хабарланған класс элементтері өзінен шыққан кластары
Prіvate секциясында хабарланған класс элементтері модуль ішінде ғана
Файлдық көмек. Бағдарламалардың көптегені үшін файлдарда мәліметтерді сақтау
Компиляция
Оқиғаны өңдеу процедурасының текстін енгізгеннен кейін және сақтағаннан
Компилятордың ескертулері және процедуралары
Бағдарламада компилятор дәл келмеушіліктерді тапқан кезде, олар қате
Мысалы: кездесетін көмек бұл бағдарламада айтылған бірақ қолданылмаған
Қосымшаны бағдарламалау ортасынан орындату
Бағдарламаны Delphі жұмысын аяқтатпай орындатып көруге болады.Ол үшін
Басты модульдің орындалатын бөлігі begіn,end арасында орналасады.Орындалатын бөлік
Үшінші листингте фунттан килограмға айналдыратын бағдарламалық модульдің толық
Модуль unіt сөзімен басталады кейін модуль аты жазылады.Осы
Интерфейс бөлігі (іnterface сөзімен басталады)компиляторға басқа бағдарлама модульдеріне
‘Жүзеге асыру’- сөзі іnplementatіon сөзінен басталады және
Жүзеге асыру бөлігі{$R*.DFM} директивасынан басталады,бұл компиляторға модуль атымен
Инициализация бөлігі модуль айнымалыларының инициализациялауын қамтамасыз етеді. Инициализация
Ескерте кететін жай: Модуль инструкциясының көп бөлігін Delphі
Қателер классификациясы
Бағдарламада кездесетін қателерді 3 топқа бөледі :
- Синтаксистік
- . Орындалу уақытының қателері
- . Алгоритмді
Синтаксистік қателер-оларды тағы да оңайырақ шегерілетін , компи-ляция
Орындалу уақытының қателері Delphі-де олар ерекшелік (exeptіon) деп
Delphі-дегі бағдарламада қателер шыққан жағдайда өңдеу аймағы бағдарлама
Орындауға жіберу
Өңдеу Delphі-дің интегралды аймағы,онда орындату-бағдарламалау-шының бағдарламалаудағы қатені
Жобаны сақтау
Delphі терминологиясындағы жоба түсінігі–бұл орындалатын файл жасау үшін
Жобаны сақтау үшін Fіle менюінен Save Project As.
Осы терезеде Delphі –дің барлық жобаларын сақтайтын папканы
Delphі жобалары папкасында сақталып жатқан жоба үшін бөлек
Енді жасалған папка белгісін қос түрту арқылы ашып
3 Программаның баяндалуы
3.1 Жалпы мағлұматтар
Қарастырылып отырған мәліметтер базасы Delphi 7 ортасында құрылды.
Мәліметтер базасының көмегімен қолданушы мәліметтерге қатынаудың жолын қысқартады.
3.2 Функционалдық тағайындалуы
Мәліметтер базасының көмегімен қолданушы мәліметтерге қатынаудың жолын қысқартады.
3.3 Шақыру және жүктеу
Мәліметтер базасын Delphi-де ашу үшін Пуск|Программы|Borland Delphi7| Delphi7
3.4 Қажетті техникалық жабдықтар
МБ жасауда Pentium 4 2.39| 256 Mb| 80
Кіріс мәліметтер
3.6 Шығыс мәліметтер
ҚОРЫТЫНДЫ
Қорыта келгенде, мен осы жұмысымды орындау барысында бағдарламалау
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
1 Зуховицкий С.Н., Авдеева Л.И. Линейное и
2 Исследование операций (в 2 – х
3 Калихман И.Л. Сборник задач по математическому программированию
4 Балғабаева Л.Ш. Мұраталиева Е.П. Автоматтандырылған басқарудың
5 Балғабаева Л.Ш. Сызықтық және бейсызықтық бағдарламалау.
А: ҚазҰТУ 1997.
ҚОСЫМША
{In the name of Allah, Most Gracious,Most Merciful}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ExtCtrls;
const
n = 5;
m = 4;
nr_max =-1;
type
waypoint = record
i,j:integer;
isplus:boolean;
end;
way = array[1..n+m]of waypoint;
way_index = record
mway:way;
lastindex:integer;
end;
ways = array[1..n+m]of way_index;
table = array[1..m,1..n]of single;
typePN = array[1..n]of single;
typePO = array[1..m]of single;
TfrmMain = class(TForm)
gbMain: TGroupBox;
Panel1: TPanel;
btnLoad: TButton;
btnSave: TButton;
btnMin: TButton;
btnPot: TButton;
BitBtn1: TBitBtn;
dlgOpen: TOpenDialog;
dlgSave: TSaveDialog;
lblCol1: TLabel;
edtCol1: TEdit;
edtCol2: TEdit;
lblCol2: TLabel;
edtCol3: TEdit;
lblCol3: TLabel;
edtCol4: TEdit;
lblCol4: TLabel;
edtCol5: TEdit;
lblCol5: TLabel;
edtRow1: TEdit;
lblRow1: TLabel;
edtRow2: TEdit;
lblRow2: TLabel;
edtRow3: TEdit;
lblRow3: TLabel;
edtRow4: TEdit;
lblRow4: TLabel;
edtElm11: TEdit;
edtElm12: TEdit;
edtElm13: TEdit;
edtElm14: TEdit;
edtX11: TEdit;
edtX12: TEdit;
edtX13: TEdit;
edtX14: TEdit;
edtX21: TEdit;
edtX22: TEdit;
edtX23: TEdit;
edtX24: TEdit;
edtElm21: TEdit;
edtElm22: TEdit;
edtElm23: TEdit;
edtElm24: TEdit;
edtX31: TEdit;
edtX32: TEdit;
edtX33: TEdit;
edtX34: TEdit;
edtElm31: TEdit;
edtElm32: TEdit;
edtElm33: TEdit;
edtElm34: TEdit;
edtX41: TEdit;
edtX42: TEdit;
edtX43: TEdit;
edtX44: TEdit;
edtElm41: TEdit;
edtElm42: TEdit;
edtElm43: TEdit;
edtElm44: TEdit;
edtX51: TEdit;
edtX52: TEdit;
edtX53: TEdit;
edtX54: TEdit;
edtElm51: TEdit;
edtElm52: TEdit;
edtElm53: TEdit;
edtElm54: TEdit;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
mmReport: TMemo;
Label22: TLabel;
procedure btnLoadClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure ReadFile(filename:string);
procedure SaveFile(filename:string);
procedure SyncMin;
procedure SyncPol;
procedure btnMinClick(Sender: TObject);
function OptCheck(var mi:integer;var mj:integer;var max_lamda:real):boolean;
procedure btnPotClick(Sender: TObject);
{function FindOtherNextPoint(var oi:integer;var oj:integer;mi:integer;mj:integer;isplus:boolean):boolean;
procedure Clearmways(var mways:ways);}
function IsItNewPoint(mway:way_index;mi:integer;mj:integer):boolean;
function IsItLastPoint(mway:way_index;mi:integer;mj:integer):boolean;
function FindMaxCorrectWay(mway:ways):way;
function CheckRule(mway:way_index;lastindex:integer;mi:integer;mj:integer):boolean;
private
{ Private declarations }
public
abc,X:table;
A:typePO;
B:typePN;
alfa:typePO;
beta:typePN;
published
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.ReadFile(filename:string);
var
i,j:integer;
F:TextFile;
begin
{ $I-}
AssignFile(F,filename);
Reset(F);
for j:=1 to n do
Read(F,B[j]);
for i:=1 to m do
Read(F,A[i]);
for i:=1 to m do
for j:=1 to n do
Read(F,abc[i,j]);
CloseFile(F);
end;
procedure TfrmMain.SaveFile(filename:string);
var
i,j:integer;
F:TextFile;
begin
{ $I-}
AssignFile(F,filename);
Rewrite(F);
{ for j:=1 to n do
Write(F,B[j]);
for i:=1 to m do
Write(F,A[i]);}
for i:=1 to m do
begin
for j:=1 to n do
begin
Write(F,X[i,j]:5:2);
Write(F,' ');
end;
Writeln(F);;
end;
CloseFile(F);
end;
procedure TfrmMain.btnLoadClick(Sender: TObject);
var
i,j:integer;
begin
dlgOpen.Title := 'Open input file';
dlgOpen.Filter := 'input files (*.in)|*.in|Text files (*.txt)|*.TXT';
dlgOpen.Options := [ofFileMustExist];
if(dlgOpen.Execute())then{opendialog}
begin
mmReport.Lines.Add('File "'+dlgOpen.FileName+'" opened.');
ReadFile(dlgOpen.FileName);
for i:=1 to m do
for j:=1 to n do
X[i,j]:=0;
SyncMin;
btnMin.Enabled:=true;
gbMain.Caption:='Press min. method button for start';
btnSave.Enabled:=false;
end;
end;
procedure TfrmMain.btnSaveClick(Sender: TObject);
begin
dlgSave.Title := 'Save output file';
dlgSave.Filter := 'output files (*.out)|*.out|Text files (*.txt)|*.TXT';
dlgSave.Options := [];
if(dlgSave.Execute())then{savedialog}
begin
SyncPol;
SaveFile(dlgSave.FileName);
mmReport.Lines.Add('File "'+dlgSave.FileName+'" saved.');
end;
end;
procedure TfrmMain.SyncMin;
begin
edtCol1.Text := FloatToStr(B[1]);
edtCol2.Text := FloatToStr(B[2]);
edtCol3.Text := FloatToStr(B[3]);
edtCol4.Text := FloatToStr(B[4]);
edtCol5.Text := FloatToStr(B[5]);
edtRow1.Text := FloatToStr(A[1]);
edtRow2.Text := FloatToStr(A[2]);
edtRow3.Text := FloatToStr(A[3]);
edtRow4.Text := FloatToStr(A[4]);
edtElm11.Text := FloatToStr(abc[1,1]);
edtElm12.Text := FloatToStr(abc[2,1]);
edtElm13.Text := FloatToStr(abc[3,1]);
edtElm14.Text := FloatToStr(abc[4,1]);
edtElm21.Text := FloatToStr(abc[1,2]);
edtElm22.Text := FloatToStr(abc[2,2]);
edtElm23.Text := FloatToStr(abc[3,2]);
edtElm24.Text := FloatToStr(abc[4,2]);
edtElm31.Text := FloatToStr(abc[1,3]);
edtElm32.Text := FloatToStr(abc[2,3]);
edtElm33.Text := FloatToStr(abc[3,3]);
edtElm34.Text := FloatToStr(abc[4,3]);
edtElm41.Text := FloatToStr(abc[1,4]);
edtElm42.Text := FloatToStr(abc[2,4]);
edtElm43.Text := FloatToStr(abc[3,4]);
edtElm44.Text := FloatToStr(abc[4,4]);
edtElm51.Text := FloatToStr(abc[1,5]);
edtElm52.Text := FloatToStr(abc[2,5]);
edtElm53.Text := FloatToStr(abc[3,5]);
edtElm54.Text := FloatToStr(abc[4,5]);
edtX11.Text := FloatToStr(X[1,1]);
edtX12.Text := FloatToStr(X[2,1]);
edtX13.Text := FloatToStr(X[3,1]);
edtX14.Text := FloatToStr(X[4,1]);
edtX21.Text := FloatToStr(X[1,2]);
edtX22.Text := FloatToStr(X[2,2]);
edtX23.Text := FloatToStr(X[3,2]);
edtX24.Text := FloatToStr(X[4,2]);
edtX31.Text := FloatToStr(X[1,3]);
edtX32.Text := FloatToStr(X[2,3]);
edtX33.Text := FloatToStr(X[3,3]);
edtX34.Text := FloatToStr(X[4,3]);
edtX41.Text := FloatToStr(X[1,4]);
edtX42.Text := FloatToStr(X[2,4]);
edtX43.Text := FloatToStr(X[3,4]);
edtX44.Text := FloatToStr(X[4,4]);
edtX51.Text := FloatToStr(X[1,5]);
edtX52.Text := FloatToStr(X[2,5]);
edtX53.Text := FloatToStr(X[3,5]);
edtX54.Text := FloatToStr(X[4,5]);
end;
procedure TfrmMain.SyncPol;
begin
edtCol1.Text := FloatToStr(beta[1]);
edtCol2.Text := FloatToStr(beta[2]);
edtCol3.Text := FloatToStr(beta[3]);
edtCol4.Text := FloatToStr(beta[4]);
edtCol5.Text := FloatToStr(beta[5]);
edtRow1.Text := FloatToStr(alfa[1]);
edtRow2.Text := FloatToStr(alfa[2]);
edtRow3.Text := FloatToStr(alfa[3]);
edtRow4.Text := FloatToStr(alfa[4]);
edtElm11.Text := FloatToStr(abc[1,1]);
edtElm12.Text := FloatToStr(abc[2,1]);
edtElm13.Text := FloatToStr(abc[3,1]);
edtElm14.Text := FloatToStr(abc[4,1]);
edtElm21.Text := FloatToStr(abc[1,2]);
edtElm22.Text := FloatToStr(abc[2,2]);
edtElm23.Text := FloatToStr(abc[3,2]);
edtElm24.Text := FloatToStr(abc[4,2]);
edtElm31.Text := FloatToStr(abc[1,3]);
edtElm32.Text := FloatToStr(abc[2,3]);
edtElm33.Text := FloatToStr(abc[3,3]);
edtElm34.Text := FloatToStr(abc[4,3]);
edtElm41.Text := FloatToStr(abc[1,4]);
edtElm42.Text := FloatToStr(abc[2,4]);
edtElm43.Text := FloatToStr(abc[3,4]);
edtElm44.Text := FloatToStr(abc[4,4]);
edtElm51.Text := FloatToStr(abc[1,5]);
edtElm52.Text := FloatToStr(abc[2,5]);
edtElm53.Text := FloatToStr(abc[3,5]);
edtElm54.Text := FloatToStr(abc[4,5]);
edtX11.Text := FloatToStr(X[1,1]);
edtX12.Text := FloatToStr(X[2,1]);
edtX13.Text := FloatToStr(X[3,1]);
edtX14.Text := FloatToStr(X[4,1]);
edtX21.Text := FloatToStr(X[1,2]);
edtX22.Text := FloatToStr(X[2,2]);
edtX23.Text := FloatToStr(X[3,2]);
edtX24.Text := FloatToStr(X[4,2]);
edtX31.Text := FloatToStr(X[1,3]);
edtX32.Text := FloatToStr(X[2,3]);
edtX33.Text := FloatToStr(X[3,3]);
edtX34.Text := FloatToStr(X[4,3]);
edtX41.Text := FloatToStr(X[1,4]);
edtX42.Text := FloatToStr(X[2,4]);
edtX43.Text := FloatToStr(X[3,4]);
edtX44.Text := FloatToStr(X[4,4]);
edtX51.Text := FloatToStr(X[1,5]);
edtX52.Text := FloatToStr(X[2,5]);
edtX53.Text := FloatToStr(X[3,5]);
edtX54.Text := FloatToStr(X[4,5]);
end;
procedure TfrmMain.btnMinClick(Sender: TObject);
var
p,mi,mj,mi2,mj2,i,j:integer;
abc_temp:table;
min,min2:real;
begin
mmReport.Lines.Add('Minimal element method started.');
gbMain.Caption:='Minimal element method';
btnMin.Enabled:=false;
for i:=1 to m do
for j:=1 to n do
begin
abc_temp[i,j]:=abc[i,j];
X[i,j]:=-1;
end;
p:=0;
while p abc[mi,j]) and (abc[mi,j]nr_max) then
begin
mi2:=mi;
mj2:=j;
min2:=abc[mi,j];
end;
end;
{if(mj2=-1) or (mi2=-1) then
begin
Application.MessageBox('Error.', 'Error');
break;
end;}
X[mi2,mj2]:=0;
for i:=1 to m do
abc[i,mj]:=nr_max;
for j:=1 to n do
abc[mi,j]:=nr_max;
p:=p+1;
end
else if(A[mi]B[mj])then
begin
for i:=1 to m do
abc[i,mj]:=nr_max;
X[mi,mj]:=B[mj];
A[mi]:=A[mi]-B[mj];
B[mj]:=0;
end;
SyncMin;
Application.MessageBox('Step.', 'Step');
p:=p+1;
end;
for i:=1 to m do
for j:=1 to n do
abc[i,j]:=abc_temp[i,j];
SyncMin;
mmReport.Lines.Add('Minimal element method finished.');
btnPot.Enabled:=true;
end;
function TfrmMain.OptCheck(var mi:integer;var mj:integer;var max_lamda:real):boolean;
var
i,j:integer;
limit,l,p,ii,jj:integer;
lamda:table;
begin
OptCheck:=true;
mi:=-1;mj:=-1;
limit:=0;
max_lamda:=-1000000;
ii:=1;jj:=1;
for i:=1 to m do
alfa[i]:=-111111;
for j:=1 to n do
beta[j]:=-111111;
p:=1;
alfa[p]:=0;
l:=0;
for i:=1 to m do
for j:=1 to n do
if(X[i,j]>=0)then
limit:=limit+1;
while(p0)or((l>=2*n+m)and(X[ii,j]>=0)))and(beta[j]=-111111)then
begin
beta[j]:=abc[ii,j]+alfa[ii];
p:=p+1;
end;
end;
if(beta[jj]-111111)then
for i:=1 to m do
begin
if((X[i,jj]>0)or((l>=2*n+m)and(X[i,jj]>=0)))and(alfa[i]=-111111)then
begin
alfa[i]:=beta[jj]-abc[i,jj];
p:=p+1;
end;
end;
ii:=ii+1;
jj:=jj+1;
if(pn+m)and(jj>=n+1)then
jj:=1;
if(pn+m)and(ii>=m+1) then
ii:=1;
end;
{for i:=1 to m do
if(alfa[i]=-111111)then
begin
//Application.MessageBox('Error.', 'Error');
//max_lamda:=-111111;
//exit;
alfa[i]:=0;
end;
for j:=1 to n do
if(beta[j]=-111111)then
begin
//Application.MessageBox('Error.', 'Error');
//max_lamda:=-111111;
//exit;
//beta[j]:=0;
for i:=1 to m do
if(X[i,j]0)and(beta[j]=-111111)then
beta[j]:=abc[i,j]+alfa[i];
end;}
//Report
for i:=1 to m do
mmReport.Lines.Add('alfa['+inttostr(i)+']='+floattostr(alfa[i]));
for j:=1 to n do
mmReport.Lines.Add('beta['+inttostr(j)+']='+floattostr(beta[j]));
for i:=1 to m do
for j:=1 to n do
begin
if(X[i,j]=-1)then
begin
lamda[i,j]:=beta[j]-alfa[i]-abc[i,j];
//Report
mmReport.Lines.Add('lamda['+inttostr(i)+','+inttostr(j)+']='+floattostr(lamda[i,j]));
if(lamda[i,j]>0) then
begin
//Report
mmReport.Lines.Add('lamda['+inttostr(i)+','+inttostr(j)+']='+floattostr(lamda[i,j]));
if(lamda[i,j]>max_lamda)then
begin
mi:=i;
mj:=j;
max_lamda:=lamda[i,j];
end;
OptCheck := false;
end;
end;
end;
if(max_lamda=2)then
if(mway.mway[lastindex].j=mway.mway[lastindex-1].j)then
CheckRule:=false;
end;
function TfrmMain.IsItLastPoint(mway:way_index;mi:integer;mj:integer):boolean;
begin
IsItLastPoint:=false;
if(mway.mway[1].i=mi)or(mway.mway[1].j=mj)and((mway.mway[1].imi)and(mway.mway[1].jmj))then
IsItLastPoint:=true;
end;
function TfrmMain.FindMaxCorrectWay(mway:ways):way;
var
i:integer;
max:integer;
begin
FindMaxCorrectWay:=mway[1].mway;
max:=-1111111;
for i:=1 to n+m do
begin
if(IsItLastPoint(mway[i],mway[i].mway[mway[i].lastindex].i,mway[i].mway[mway[i].lastindex].j))then
if(mway[i].lastindex>max)then
begin
max:=mway[i].lastindex;
FindMaxCorrectWay:=mway[i].mway;
end;
end;
end;
procedure TfrmMain.btnPotClick(Sender: TObject);
var
nothingfound,addedtocurrent:boolean;
l,k,lastindex,i,j,p,oi,oj,mi,mj:integer;
min,max_lamda:real;
mways:ways;
mway:way;
z:single;
issuccess:boolean;
begin
btnPot.Enabled:=false;
mmReport.Lines.Add('Potential method started.');
gbMain.Caption:='Potential method';
issuccess:=true;
while (not(OptCheck(mi,mj,max_lamda)))do
begin
if(max_lamda


Ұқсас жұмыстар

Кәсіпорынның кірісі
Жасанды интеллект және нейрондық желілер
Delphi командасы және мәзір
Нейрондық желілерге кіріспе
Есептерді нейрондық желілерімен баяндау
Казпочта байланыс қызметі
Жүйелік программалау пәнінің алатын орны және оны зерттеудің заманауи тәсілдері
«Су ресурстары қызметі» ЖШС-ң құжат айналымын автоматтандыру
Еркін қол жеткізу және тізбектей қол жеткізу жады модульдерінің сыртқы желісі
Маркетингтегі ақпараттық жүйені тұрғызу