Транспорттық жұмыс көлемін минимизациялау
МАЗМҰНЫ
бет
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... 3
І. Жалпы бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 5
1.1 Пәндік аумақты сипаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1.2 Бағдарламалау тілінің элементтерін көрсету ... ... ... ... ... ... ... ... . 9
ІІ. Арнайы бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11
2.1 Транспорттық жұмыс көлемін минимизациялау есебінің экономикалық және математикалық моделін құру ... ... ... ... ... ... ... ..
11
2.2 Есепті математикалық әдіспен реализациялау ... ... ... ... ... ... ... ... ... 12
2.3 Модульдерді, процедураларды және функцияларды сипаттау ... ... ... . 16
2.4 Идентификаторлар кестесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 19
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Пайдаланылған әдебиеттер тізімі
Қосымшалар
Қосымша А Қолданушы Басшылығы
Қосымша Ә Бағдарлама листингі
Қосымша Б Бақылау мысалы
бет
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... 3
І. Жалпы бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 5
1.1 Пәндік аумақты сипаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1.2 Бағдарламалау тілінің элементтерін көрсету ... ... ... ... ... ... ... ... . 9
ІІ. Арнайы бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11
2.1 Транспорттық жұмыс көлемін минимизациялау есебінің экономикалық және математикалық моделін құру ... ... ... ... ... ... ... ..
11
2.2 Есепті математикалық әдіспен реализациялау ... ... ... ... ... ... ... ... ... 12
2.3 Модульдерді, процедураларды және функцияларды сипаттау ... ... ... . 16
2.4 Идентификаторлар кестесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 19
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Пайдаланылған әдебиеттер тізімі
Қосымшалар
Қосымша А Қолданушы Басшылығы
Қосымша Ә Бағдарлама листингі
Қосымша Б Бақылау мысалы
КІРІСПЕ
Экономикалық талдау мен есептеу əдістерін жетілдіруде зерттеудің математикалық тəсілдерін қолдану үлкен рөл атқарады. Баға белгілеу заңдылықтары, өнім бірлігіне жұмсалатын еңбек пен материалдардың толық шығынын зерделеу, салааралық байланыстарды зерттеу, капитал салымының рентаельділігі, өндірісті орналастырудың тиімділігін анықтау, өндірістік процесті оңтайлы жоспарлау, шектеулі ресурстарды тиімді пайдалану секілді экономикалық проблемалар жəне басқа да маңыздылығы бұлардан кем емес мəселелер математикалық тəсілдерді кеңінен қолдану арқылы табысты шешіле алады. Мұндай есептер үшін құрамына желілік программалау, динамикалық программалау, ойындар теориясы жəне басқа математикалық пəндер кешені экономикалық нысандар мен процестердің математикалық модельдерімен бірге кіретін экономикалық-математикалық аппарат əзірленді жəне одан əрі жалғасуда. Бұл аппаратты, əсіресе өнеркəсіптік өндіріс, ауыл шаруашылығы, көлік, экономикалық зерттеулер жəне т.б. секілді салаларға қатысты есептердің кең айналымын шешуге мүмкіндік беретін желілік программалауды зерделеу экономистің тəжірибелік жұмысында күннен-күнге қажеттілікке айналуда.
Экономикалық есептерді шешудің барлығында да математикалық тəсілдер қолданыла бермейтінін атап өткен жөн. Бұл үшін қажетті шарт зерделеніп отырған мəселені сипаттайтын есептер мен тəуелдіктердің бастапқы деректерінің сандық көрінісі болып табылады. Математикалық модельді құру сандық мəні есепті шешу нұсқаларының бірін анықтайтын айнымалылардың кейбір сандарын енгізуден басталады. Оларды х, у жəне т.б. белгілейді. Оңтайлылықтың таңдалып алынған критерийіне сəйкес мақсатты функция құрылады. Содан соң математикалық теңдік немесе теңсіздік түрінде осы процесті сипаттайтын өзара бейнеленеді.
Менің өңделіп жатқан курстық жұмысымның мақсаты – транспорттық жұмыс көлемін минимизациялау болып табылады. Есептің тиімді жауабын табу үшін оның тіректі жоспар құру арқылы есептейміз.
Əдетте, экономикалық есептер қою барынша тиімді пайдалануды қажет ететін шектеулі ресурстардың бар екендігін білдіреді. Сондықтан зерделеніп отырған мəселе үшін қандай ресурстардың шешуші болып табылатындығын, олардың қоры қандай екендігін анықтау өте маңызды. Ресурстар бойынша
барлық шектеулер қарама-қайшы болмауы керек. Кейбір шектеулерді есепке алмау алынған шешімнің қолдануға тиімсіз болып қалуына жəне керісінше ресурстар бойынша қатаң шектеулер қою есептің шешімі аясын тым тарылтып жіберуге əкелуі мүмкін. Бұл оңтайлы шешім табу мүмкіндігін жоққа шығарады.
Құралда көптеген теориялық есептер дəлелдемелерсіз берілген жəне əдістер мен алгоритмдерді мысалдармен жəне есептермен көрнекілендіруге баса назар аударылған.
Экономикалық талдау мен есептеу əдістерін жетілдіруде зерттеудің математикалық тəсілдерін қолдану үлкен рөл атқарады. Баға белгілеу заңдылықтары, өнім бірлігіне жұмсалатын еңбек пен материалдардың толық шығынын зерделеу, салааралық байланыстарды зерттеу, капитал салымының рентаельділігі, өндірісті орналастырудың тиімділігін анықтау, өндірістік процесті оңтайлы жоспарлау, шектеулі ресурстарды тиімді пайдалану секілді экономикалық проблемалар жəне басқа да маңыздылығы бұлардан кем емес мəселелер математикалық тəсілдерді кеңінен қолдану арқылы табысты шешіле алады. Мұндай есептер үшін құрамына желілік программалау, динамикалық программалау, ойындар теориясы жəне басқа математикалық пəндер кешені экономикалық нысандар мен процестердің математикалық модельдерімен бірге кіретін экономикалық-математикалық аппарат əзірленді жəне одан əрі жалғасуда. Бұл аппаратты, əсіресе өнеркəсіптік өндіріс, ауыл шаруашылығы, көлік, экономикалық зерттеулер жəне т.б. секілді салаларға қатысты есептердің кең айналымын шешуге мүмкіндік беретін желілік программалауды зерделеу экономистің тəжірибелік жұмысында күннен-күнге қажеттілікке айналуда.
Экономикалық есептерді шешудің барлығында да математикалық тəсілдер қолданыла бермейтінін атап өткен жөн. Бұл үшін қажетті шарт зерделеніп отырған мəселені сипаттайтын есептер мен тəуелдіктердің бастапқы деректерінің сандық көрінісі болып табылады. Математикалық модельді құру сандық мəні есепті шешу нұсқаларының бірін анықтайтын айнымалылардың кейбір сандарын енгізуден басталады. Оларды х, у жəне т.б. белгілейді. Оңтайлылықтың таңдалып алынған критерийіне сəйкес мақсатты функция құрылады. Содан соң математикалық теңдік немесе теңсіздік түрінде осы процесті сипаттайтын өзара бейнеленеді.
Менің өңделіп жатқан курстық жұмысымның мақсаты – транспорттық жұмыс көлемін минимизациялау болып табылады. Есептің тиімді жауабын табу үшін оның тіректі жоспар құру арқылы есептейміз.
Əдетте, экономикалық есептер қою барынша тиімді пайдалануды қажет ететін шектеулі ресурстардың бар екендігін білдіреді. Сондықтан зерделеніп отырған мəселе үшін қандай ресурстардың шешуші болып табылатындығын, олардың қоры қандай екендігін анықтау өте маңызды. Ресурстар бойынша
барлық шектеулер қарама-қайшы болмауы керек. Кейбір шектеулерді есепке алмау алынған шешімнің қолдануға тиімсіз болып қалуына жəне керісінше ресурстар бойынша қатаң шектеулер қою есептің шешімі аясын тым тарылтып жіберуге əкелуі мүмкін. Бұл оңтайлы шешім табу мүмкіндігін жоққа шығарады.
Құралда көптеген теориялық есептер дəлелдемелерсіз берілген жəне əдістер мен алгоритмдерді мысалдармен жəне есептермен көрнекілендіруге баса назар аударылған.
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
1. Калихман И.Л. Линейная алгебра и линейное программирование. – М.: «Высшая школа», 1967.
2. Бирман И. Оптимальное программирование. – М.: Экономика, 1968.
3. Акулич И.Л. Математическое программирование в примерах и задачах. – М. «Высшая школа», 1986.
4. Ашманов С.А. Линейное программирование. – М.: «Наука», 1981.
5. Таха Х. Введение в исследовании операций. – М.: «Мир», 1985, ч. I, II.
6. Филлипс Д., Гарсиа-Диас А. Методы анализа сетей. – М.: «Мир», 1984.
7. Математические методы в планировании отраслей и предприятий /Под.ред.Попова Н.Ч. – М.: «Экономика», 1975.
8. Иванилов Ю.П., Лотов А.В. Математические модели в экономике. – М.: «Наука», 1979.
9. Замков О.О., Черемных Ю.А., Толстопятенко А.В. Математи- ческие методы в экономике. – М.: «Дело и Сервис», 1999.
10. Исследование операций в экономике /Под ред. Кремера Н.Ш. – М.: «ЮНИТИ», 1997
11. Экономико-математические методы и прикладные модели. Под ред. Федосеева В.В. – М.: ЮНИТИ, 1999.
12. Сабитова Х.К. Математическое программирование. Ч. 1, 2: Методическая разработка. – Алматы: Изд-во КазГУ им. аль-Фараби, 1999.
1. Калихман И.Л. Линейная алгебра и линейное программирование. – М.: «Высшая школа», 1967.
2. Бирман И. Оптимальное программирование. – М.: Экономика, 1968.
3. Акулич И.Л. Математическое программирование в примерах и задачах. – М. «Высшая школа», 1986.
4. Ашманов С.А. Линейное программирование. – М.: «Наука», 1981.
5. Таха Х. Введение в исследовании операций. – М.: «Мир», 1985, ч. I, II.
6. Филлипс Д., Гарсиа-Диас А. Методы анализа сетей. – М.: «Мир», 1984.
7. Математические методы в планировании отраслей и предприятий /Под.ред.Попова Н.Ч. – М.: «Экономика», 1975.
8. Иванилов Ю.П., Лотов А.В. Математические модели в экономике. – М.: «Наука», 1979.
9. Замков О.О., Черемных Ю.А., Толстопятенко А.В. Математи- ческие методы в экономике. – М.: «Дело и Сервис», 1999.
10. Исследование операций в экономике /Под ред. Кремера Н.Ш. – М.: «ЮНИТИ», 1997
11. Экономико-математические методы и прикладные модели. Под ред. Федосеева В.В. – М.: ЮНИТИ, 1999.
12. Сабитова Х.К. Математическое программирование. Ч. 1, 2: Методическая разработка. – Алматы: Изд-во КазГУ им. аль-Фараби, 1999.
КІРІСПЕ
Экономикалық талдау мен есептеу əдістерін жетілдіруде зерттеудің математикалық тəсілдерін қолдану үлкен рөл атқарады. Баға белгілеу заңдылықтары, өнім бірлігіне жұмсалатын еңбек пен материалдардың толық шығынын зерделеу, салааралық байланыстарды зерттеу, капитал салымының рентаельділігі, өндірісті орналастырудың тиімділігін анықтау, өндірістік процесті оңтайлы жоспарлау, шектеулі ресурстарды тиімді пайдалану секілді экономикалық проблемалар жəне басқа да маңыздылығы бұлардан кем емес мəселелер математикалық тəсілдерді кеңінен қолдану арқылы табысты шешіле алады. Мұндай есептер үшін құрамына желілік программалау, динамикалық программалау, ойындар теориясы жəне басқа математикалық пəндер кешені экономикалық нысандар мен процестердің математикалық модельдерімен бірге кіретін экономикалық-математикалық аппарат əзірленді жəне одан əрі жалғасуда. Бұл аппаратты, əсіресе өнеркəсіптік өндіріс, ауыл шаруашылығы, көлік, экономикалық зерттеулер жəне т.б. секілді салаларға қатысты есептердің кең айналымын шешуге мүмкіндік беретін желілік программалауды зерделеу экономистің тəжірибелік жұмысында күннен-күнге қажеттілікке айналуда.
Экономикалық есептерді шешудің барлығында да математикалық тəсілдер қолданыла бермейтінін атап өткен жөн. Бұл үшін қажетті шарт зерделеніп отырған мəселені сипаттайтын есептер мен тəуелдіктердің бастапқы деректерінің сандық көрінісі болып табылады. Математикалық модельді құру сандық мəні есепті шешу нұсқаларының бірін анықтайтын айнымалылардың кейбір сандарын енгізуден басталады. Оларды х, у жəне т.б. белгілейді. Оңтайлылықтың таңдалып алынған критерийіне сəйкес мақсатты функция құрылады. Содан соң математикалық теңдік немесе теңсіздік түрінде осы процесті сипаттайтын өзара бейнеленеді.
Менің өңделіп жатқан курстық жұмысымның мақсаты - транспорттық жұмыс көлемін минимизациялау болып табылады. Есептің тиімді жауабын табу үшін оның тіректі жоспар құру арқылы есептейміз.
Əдетте, экономикалық есептер қою барынша тиімді пайдалануды қажет ететін шектеулі ресурстардың бар екендігін білдіреді. Сондықтан зерделеніп отырған мəселе үшін қандай ресурстардың шешуші болып табылатындығын, олардың қоры қандай екендігін анықтау өте маңызды. Ресурстар бойынша
барлық шектеулер қарама-қайшы болмауы керек. Кейбір шектеулерді есепке алмау алынған шешімнің қолдануға тиімсіз болып қалуына жəне керісінше ресурстар бойынша қатаң шектеулер қою есептің шешімі аясын тым тарылтып жіберуге əкелуі мүмкін. Бұл оңтайлы шешім табу мүмкіндігін жоққа шығарады.
Құралда көптеген теориялық есептер дəлелдемелерсіз берілген жəне əдістер мен алгоритмдерді мысалдармен жəне есептермен көрнекілендіруге баса назар аударылған.
І ЖАЛПЫ БӨЛІМ.
0.1 ПӘНДІК АУМАҚТЫ СИПАТТАУ
Экономикалық - математикалық зерттеу негізінде зерделеніп отырған экономикалық процесті математикалық модельдеу, яғни бұл процестің сандық заңдылықтарын математикалық формулалар көмегімен сипаттау жатыр. Математикалық модельдердің көптеген анықтамалары бар. Солардың ішінде, біздің пікірімізше, недəуір дұрыс болып табылатын біреуін берейік.
Модель - бұл жасанды құрылған объект өндіріске қатысты модель әр есептің тиімділігіне бағытталады.
Әр қарастырылып отырған және өзгеріске ұшыраған модельдер есептеу барысында модельдеу процессі деп аталады.
Математикалық модель - математикалық символдармен жазылған нақты құбылыс абстракциясы. Оны талдау осы құбылыстың мəнін тереңдей ашуға мүмкіндік беретіндей етіп құрас - тырылған.
Модельдеу дегенде біз модельдердің құрылуын, оларды зерделеу мен қолдануды түсінеміз. Модельді құрудың бірінші сатысында үш есепті шешу қажет:
- зерттеу мақсатын анықтау;
- негізгі шектеулерді айқындау;
- зерделеп отырған құбылыстың барлық мəдеметтерінің сандық көрінісі. Зерттеу мақсаты есепті шешудің əр түрлі нұсқалары салыстырылатын жəне олардың ішінен ең үздігі таңдалып алынатын белгісімен (критерийімен) сипатталады. Əр алуан экономикалық есептерде мұндай критерий ретінде барынша жоғары табыс, өндірістің барынша төмен шығындары жəне басқалар таңдап алынуы мүмкін.
ЖП - дың жалпы тапсырмаларын шешудегі секілді, транспорттық тапсырманың оңтайлы жоспарын іздестіру де оның қандай да бір тірек жоспарын табудан басталады. Транспорттық тапсырманың бастапқы тірек жоспарын анықтаудың бірнеше əдісі бар. Оның екеуін - батыс бұрыш əдісін жəне минималды элемент əдісін қарастыралық. Бұл тəсілдердің мəні мынада: тірек жоспары (m+n-1) қадамнан тысқары жатыр, оның үстіне əрбір қадамда жоспардың искомой матрицасының немесе жолы, немесе бағаны анықталады.
Солтүстік - батыс бұрышы əдіс.
Бірінші қадам x11= min(a1,b1), екі жағдай болуы мүмкін: А) a1 PI b1, бұл жағдайда X 11 = a1, X ij = 0, j = 2, n Осылайша, жіберудің А1 бірінші пункті барлық жүкті тұтынудың В1 бірінші пунктіне бағыттады, яғни толығымен босады, сондықтан да басқа В2,В3 , ...Вn пункттеріне А1 пунктінен ешқандай жүктің жіберілуі мүмкін емес. Матрица - жоспардың алғашқы жолы осылайша анықталады, ал бөлуші кестеде бірінші жол жабылады. Мұнда алғашқы тұтынушының сұранысы в1 1 = в1 - х11 тең болады.
Екінші қадамға көшейік. Б) a1b1 , бұл жағдайда х11 = в1, ал бірінші бағанның қалған элементтері 0 - ге тең, яғни xi1 = 0, i = 2,m , себебі бірінші В тұтынушының сұранысы толығымен қанағаттандырылды, енді оған басқа А2, ...Аm жіберу пункттерінен жүк келмейді. Матрица - жоспардың алғашқы бағаны осылайша анықталады. Мұнда бөлуші кестедегі бірінші баған жабылады, ал бірінші А1 жабдықтаушы жүгінің көлемі а1 1 = а1 - х11 тең болады. Екінші қадамға көшейік. Бірінші қадамға сəйкес А) жағдайында - min( , ) x21 = a2 b1− x11 элементін, ал Б) жағдайында min( , ) x12 = a1− x11 b2 элементін анықтаймыз ж.т.б. Бұл процесс жоспардың барлық элементтері анықталғанға дейін жалғаса береді.
Теорема. Солтүстік - батыс бұрыш əдісінің нəтижесінде алынған жоспар тірек жоспар болып табылады.
Потенциалдар əдісі алдын ала қарастырылған кезеңнен жəне бір типті итерациялардың соңғы санынан тұрады. Алдын ала қарастырылған кезеңде бізге белгілі əдістердің (солтүстік-батыс бұрыш əдісі, минималды элемент əдісі жəне т.б.) бірі арқылы бастапқы тірек жоспар анықталады. Өз кезегінде, əрбір итерация 2 кезеңге бөлінеді. Бірінші сатыда алынған тірек жоспардың оңтайлылығы тексеріледі.
Егер жоспар оңтайлы болса, онда шешу процесі аяқталады, егер оңтайлы болмаса, онда екінші кезеңге өту іске асады. Екінші кезеңде едəуір оңтайлы жаңа тірек жоспары құрылады.
Алдын ал қарастырылған кезеңде қандай да бір X= X ij mxn тірек жоспары анықталды деп есептейік.
Бірінші кезеңде жоспардың оңтайлылығын тексеру. Жоспардың оңтайлылығын тексеру үшін бұл жоспардың бағалаушы матрицасын табу қажет:
C1 = Cij1 mxn = Cij +Ui - Vj mxn.
Бағалаушы матрицаны құру үшін Ui және Vj (i =1,m, j =1, n) потенциалдарын анықтау қажет. Олар Cij +Ui -V j = 0 , X ij 0. (*) мәні үшін бар болып табылады. Бұдан былай бұл элементтерді (X ij 0) базистік деп атаймыз.
Бізге белгілі болғандай, егер X= X ij mxn тудырмаған тірек жоспары болса, онда ол нақты (m+n-1) нөлдік емес базистік элементтерді қамтиды. Олардың əрқайсысы үшін (*) қатынасын құрамыз. Теңдіктердің (m+n) белгісіздері бар (m+n-1) жүйесін, яғни белгісіздік жүйесін аламыз: Ui (i = 1,m) және Vj ( j =1,n). Айнымалылардың біріне туынды мəн бере отырып, бұл жүйенің кейбір жеке шешімін табамыз.
Мысалы, U1 =0, мәнін қойып (m+n-1) белгісіздері бар (m+n-1) теңдеулер жүйесін аламыз, мұны шешу арқылы басқа белгісіздердің мəнін табамыз. Потенциалдарды осылайша анықтап алып, жоспардың бағалаушы матрицасын құрамыз.
Егер бағалаушы матрицаның барлық элементтері теріс емес болса, онда Х жоспары оңтайлы (оптималды) жəне процесс аяқталған, ал егер бағалаушы матрица элементтерінің арасында терістері бар болса, онда жоспар оңтайлы (оптималды) емес жəне екінші сатыға өту керек.
Екінші сатыда жаңа тірек жоспарын құру.Бағалаушы матрицаның теріс элементтерінің арасындаминималды элемент бар. Бұл C rk1 элементі болсын, яғни
minC1ij =C rk1 0
Матрица - жоспарда Xrk сəйкес элементі үшін шығыршық құрылады. Шығыршық - бұл тұйық үзік желі, мұның өзектері жолдар мен бағандардан алшақ орналасқан, ал жоғарғы жағында берілген Xrk = элементі жəне жоспардың нөлдік емес (базистік) элементі орналасқан. Егер жоспар туындамайтын тірек жоспар болса, онда оның əрбір базистік емес (нөлдік) элементі үшін шығыршық құруға болады жəне бұл шығыршық біреу ғана болмақ.
Шығыршықтың жоғарғы жағын Xrk элементінен бастап кезекпен + жəне - белгілерімен белгілейміз. Шығыршықтың жоғарғы жағында орналасқан жəне - белгісімен белгіленген жоспар элементтерінің ішінде ең минималды элементті табу керек, яғни
θ=minХ ijцепи=Х i0j0
θ санын шығыршықтың + белгісімен белгіленген элементтеріне қоса отырып жəне - белгісімен белгіленген элементтерінен ала отырып, шығыршық бойымен оның орнын ауыстырамыз. Шығыршыққа енбейтін жоспардың қалған элементтері өзгеріссіз қалады. Нəтижесінде жаңа жоспар пайда болады, мұнда Х i0j0 элементі - базистік емес, ал Xrk = θ (бұрынғы базистік емес) элементі базистік сипат алады. Осылайша, жаңа жоспарда базистік элементтердің саны өзгермейді. Содан кейін 1-кезеңге өтеміз, мұнда пайда болған жаңа жоспардың оңтайлылығы тексеріледі. Бұл үшін оны бағалау матрицасын құру керек. Мұны, бұрын көрсетілгендей, тірек жоспардың U i (i =1,m) и V j ( j =1, n) потенциалдарын анықтау арқылы жүзеге асыруға болады. Алайда жаңа жоспарды бағалау матрицасын алдыңғы жоспарды бағалау матрицасын дəлме-дəл қайта жасай отырып құруға болады. Шынымен-ақ, жаңа жоспардың алдыңғы жоспардан ерекшелігі мынада екеніне назар аударайық: мұнда алдыңғы жоспарда базистік болған бір ауыспалы Х i0j0 - базистік емес, ал базистік емес ауыспалы Xrk керісінше, базистік сипат алады, ал екі жоспардың да қалған базистік ауыспалылары абсолюттік көлемі бойынша ерекшеленсе де, өзара сəйкес келеді.
0.2 Бағдарламалау тілінің элементтерін көрсету
Ақпараттық коммуникациялық технологиялардың қарқынмен дамып, күнделікті тұрмысқа енуіне байланысты соңғы кездері программалауға деген қызығушылықтың арта түскені белгілі. Қазіргі уақытта компьютерсіз қандай да бір жұмыс орындауды көз алдымызға елестету қиын. Бұл компьютермен жұмыс істейтін адамға қандай да бір ұмтылысты тудыруы мүмкін.
Есептеуіш техниканың қарқынмен дамуы тиімді программалық құралдарды жасау - объектілі бағдарланған программалау жүйелерінің жасалуына әкелді. Бұл ортада қазіргі заманғы компьютерлік технологиялардың кез келген саласындағы бизнес-программа, мультимедия, ойын, мәліметтер қоры сияқты өнімдерді құруға мүмкіндік беретін қазіргі заманғы ең қуатты программалау тілдірінің бірі болып табылады.
Программалау тілін жүзеге асыру саласындағы программа құрумен әлемге әйгілі Borland компониясы 1996 ж. Delphi жаңа буынының компиляторын шығарды. Бұл ең алдымен, Windows ортасында программа құрумен қатар, қосымша Pascal тілінің қуатты компиляторы болып табылады.
Borland корпорациясы аз ғана мерзім ішінде Delphi - дің 7 негізгі версиялары мен бірнеше модификацияларын шығарды. Delphi 7 версиясында өте көп өзгерістер енгізілген. Программалармен қамтаматсыз етудің тиімді өңдеу құралдарын қажет ету "жылдам жасау" ортасы деп аталатын программалау жүйелерінің пайда болуына алып келді. Мұндай ортаға мысал ретінде Borland Delphi жатады. Жылдам жасау RAD - жүйесіне "Rapid Application Development" жүйесінің негізі визуалды жобалау және оқиғаны өңдеуді программалар технологиясы жатады, оның мағынасы өңдеу үнемсіз жұмыстың көп бөлігін өзіне алады да, программиске диалогты терезелерді және оқиғаны өңдеу функциясын құрастыру жұмыстары қалады. Ортада қатаң типтелген объектіге бағдарлы тілі қолданылады, оның негізіне Object Pascal (Turbo Pascal жалғасы) жатады. Delphi әртүрлі программаларды құруға мүмкіндік береді: қарапайым біртерезелі қосымшалардан тармақталған дерек қорларды басқару программаларына дейін. Delphi-дің ұлғайтылған мүмкіндіктері графикпен, мультимедиямен, дерек қорларымен жұмыс істейтін және динамикалық құрылымдармен қосымшаларды құруға мүмкіндік береді. Delphi - дің айрықша ерекшелігі .NET технологиясының сүйемелдеуі болып табылады.
Жылдам құру жүйесінің негізіне (RAD - Rapid Application Development - қосымшаларды жылдам құру ортасы) визуалды жобалау мен оқиғалы объектілі бағдарланған программалау технологиясы алынған. Мұндай программалаудың мәні - программа жасаушы құрал жұмыстың көп бөлігін өзі атқарып, программистке диалог терезелерін құрастыру мен оқиға өңдеушіні құру жұмыстарын қалдырды. RAD жүйелерінің ішінде Borland Delphi және Visual Basic орталары әртүрлі программалар құруға мүмкіндік береді: қарапайым бір терезелік қосымшалардан бастап, үлестірілген мәліметтер қорын басқару программаларына дейін. Borland Delphi ортасындағы программалау тілі Object Pascal тілі.
Программалау іскерлігін үйрену үшін нақты есептер шығарып, программасын жаза білу қажет. Ол үшін программалау тілі мен оны құру ортасын меңгеру керек. Объектілі бағдарланған программалау жүйелерінде программалаудағы негізгі ерекшелік алдымен программалау синтаксисі мен компоненттерді пайдалануды үйренуде болып табылады.
Программа құрастырылғанда және орындалғанда компоненттің сыртқы көрінісін және бет алысын қасиеттер арқылы басқаруға болады. Компоненттің көптеген қасиеттерін Объектілер бақылаушысы арқылы форманы қалыптастыру кезеңінде анықтауға болады. Жалпы компоненттің қасиеттер мәнін меншіктеу операторымен анықтауға да болады.
Қазіргі қолданбалы программаларды дайындау технологияларының өте мықтылығына қарамастан, егер программаның жобасын жасауға, шешілуге тиісті мәселелерді анықтау кезеңіне барынша назар аударып, әбден пысықтамаса, соңында оны жөндеуге көп уақыт кетуі мүмкін. Егер программа құрылымы, жобасы дұрыс келістірілмеген болса, программаға жаңа функция енгізу немесе ондағы кемшіліктерді жөндеу үлкен қаржы шығынына да ұшыратуы мүмкін.
ІІ АРНАЙЫ БӨЛІМ
2.1 Транспорттық жұмыс көлемін минимизациялау есебінің экономикалық және математикалық моделін құру
Есептің экономикалық моделі: жөнелтілу пункттері болып А1 совхозы және үш колхоз А2, А3 және А4 болып табылады. Жеткізу пункттері болып - өндіріс орталығының қалалаық сүт зауыты болып табылады: В1, В2, В3. Сүтті бір күнде тасымалдау керек, бірінші пункттен 20 тонна, екінші пункттен 17 тонна, үшінші пункттен 13 тонна, ал төртінші пункттен 22 тонна. Сүт белгіленген пунктке келесідей көлемде жеткізілуі керек: бірінші пунктке - 25 тонна, екінші пунктке - 28 тонна, үшіншіге - 19 тонна. Барлық сүт қалалаық сүт зауытына жеткізілетіндей және транспорттық шығын аз болатындай қанша сүт және қандай сүт зауыттарын әрбір совхоздан және колхоздан аудару екенін анықтау керек. Мынадай мәліметтер белгілі болсын: егер А1 совхозынан В1, В2, В3 сүт зауыттарына сәйкесінше ара қашықтық - 6, 5, 3 км., А2 колхозынан - 4, 2, 5 км., А3 колхозынан - 3, 7, 1 км. Және А4 колхозынан - 6, 4, 5 км.
Жоғарыда айтылып өткендей, құрылған транспорттық есептің ең бірінші экономикалық моделін құрамыз, одан соң математикалық моделін құрамыз.
Берілген есептің экономикалық және математикалық моделін құрайық: Өндірушіден тұтынушыға ai қорларын bj қажетті қорын тиімді жеткізу. Сонымен қатар транспорттық жұмыс көлемін минимизациялау.
Транспорттық есептің математикалық моделін құру үшін Xij айнымалысын енгіземіз. Xij - тауар саны болып табылады.
Математикалық моделін құру 4 функциядан турады:
1) F=i=1mj=1nCijXij--min
2) j=1mXij=Cij
3) i=1nXij=bj
4) Xij=0
Мақсатты функция әр есептің толық мақсатын білдіреді.
∑a = 20 + 17 + 13 + 22 = 72
∑b = 25 + 28 + 19 = 72
Бізде қажетті қорлар мен жалпы қорлар саны тең. Бұл жағдайда транспорттық есептің моделі жабық деп саналады.
Есепте берілген мәліметтерді матрица ретінде кестеге саламыз.
Кесте 1 Қорлар мен қажетті қорлар саны
a b
b1
b2
b3
Қорлар
a1
6
5
3
20
a2
4
2
5
17
a3
3
7
1
13
a4
6
4
5
22
Қажетті қор
25
28
19
72
2.2 Есепті математикалық әдіспен реализациялау
Транспорттық есептің тіректі жоспарын құру әдісін пайдаланамыз. Бұл әдістің мақсаты - құрылған кесте ішінен шығыны ең аз болатын жерден бастау. Яғни, тауарды уақытымен және жол шығынын азайта отырып, есепте берілген мәліметтер бойынша тіректі жоспарды құрамыз:
Кесте 2
a b
b1
b2
b3
Қорлар
a1
6[14]
5
3[6]
20
a2
4
2[17]
5
17
a3
3
7
1[13]
13
a4
6[11]
4[11]
5
22
Қажетті қор
25
28
19
72
Нәтижесінде, бірінші тіректі жоспар бойынша тауарды тиімді жеткізудің және жол шығынын азайту қанағаттандырылды, ал жоспар транспорттық есептің шектеулі жүйесіне сәйкес.
Бұл тіректі жоспарының мақсатты функциясының мәні:
F(x) = 6*14 + 3*6 + 2*17 + 1*13 + 6*11 + 4*11 = 259
Екінші кезеңде тіректі жоспардың тиімділігін тексереміз. Құрылған кесте ішінен Ui Vj потенциялдарын санаймыз. Ең алдымен бос емес торлар үшін: UI + VJ = CIJ , u1 = 0.
U1 + V1 = 6; 0 + V1 = 6; V1 = 6
U4 + V1 = 6; 6 + U4 = 6; U4 = 0
U4 + V2 = 4; 0 + V2 = 4; V2 = 4
U2 + V2 = 2; 4 + U2 = 2; U2 = -2
U1 + V3 = 3; 0 + V3 = 3; V3 = 3
U3 + V3 = 1; 3 + U3 = 1; U3 = -2
Кесте 3
v1=6
v2=4
v3=3
u1=0
6[14]
5
3[6]
u2=-2
4
2[17]
5
u3=-2
3
7
1[13]
u4=0
6[11]
4[11]
5
Енді бос торларды санаймыз: UI + VJ = CIJ
(3;1): -2 + 6 3; ∆31 = -2 + 6 - 3 = 1
Бос торлар ішінен максималды санды таңдаймыз (3;1): 3
Цикл құрамыз, көп жағдайда тіктөртбұрыш ретінде болады. Тіктөртбұрыштың бұрышы бос торда орналасуы қажет. Ал қалғандары бос емес торларды орналасады. Бос торға + белгісін қоямыз әрі қарай таңбалар кезектеседі. + таңбасы тұрған торлар арасынан минималды анықтаймыз ϑ(тетта) болады. Жаңа кесте құрғанда + таңбасы тұрған жерге ϑ - ны қосамыз, ал - таңбасы тұрған жерден ϑ-ны аламыз.
Кесте 4
a b
b1
b2
b3
Қорлар
a1
6[14][-]
5
3[6][+]
20
a2
4
2[17]
5
17
a3
3[+]
7
1[13][-]
13
a4
6[11]
4[11]
5
22
Қажетті қор
25
28
19
72
ϑ=min "-"=min14;13=13
Нәтижесінде бірінші жоспар тиімсіз, қйткені шарт орындалған жоқ, сондықтан процесс жалғасады да төмендегі жаңа тіректі жоспар пайда болады.
Кесте 5
a b
b1
b2
b3
Қорлар
a1
6[1]
5
3[19]
20
a2
4
2[17]
5
17
a3
3[13]
7
1
13
a4
6[11]
4[11]
5
22
Қажетті қор
25
28
19
72
Құрылған жаңа кесте ішінен Ui Vj потенциялдарын санаймыз. Бос емес және бос торлар үшін: UI + VJ = CIJ , UI + VJ = CIJ, u1 = 0.
u1 + v1 = 6; 0 + v1 = 6; v1 = 6
u3 + v1 = 3; 6 + u3 = 3; u3 = -3
u4 + v1 = 6; 6 + u4 = 6; u4 = 0
u4 + v2 = 4; 0 + v2 = 4; v2 = 4
u2 + v2 = 2; 4 + u2 = 2; u2 = -2
u1 + v3 = 3; 0 + v3 = 3; v3 = 3
Кесте 6
V1=6
V2=4
V3=3
U1=0
6[1]
5
3[19]
U2=-2
4
2[17]
5
U3=-3
3[13]
7
1
U4=0
6[11]
4[11]
5
Барлық сандар UI + VJ = CIJ шартына сәйкес келгендіктен құрылған тіректі жоспар тиімді болып табады.
Минимальды шығын: F(x) = 6*1 + 3*19 + 2*17 + 3*13 + 6*11 + 4*11 = 246
Нәтижесінде:
А1 совхозынан жүк көлігі В1 сүт зауытына (1), ал В3 сүт зауытына (19) тауар жеткізеді. Ал А2 колхозынан В2 сүт зауытына барлық қажетті тауарды жеткізу керек. А3 колхозынан В1 сүт зауытына барлық қажетті тауарды жеткізу керек. А4 колхозынан В1сүт зауытына (11), В2 сүт зауытына (11) тауар жеткізеді.
Жоғары да айтылып кеткендей Delphi бағдарламалау ортасы арқылы қазіргі кезде көп деген есептердің шешімі оңай әрі тиімді шешіледі. Совхоздан, колхоздардан сүт зауыттарына жеткізелетін тауардың уақытылы сонымен қатар жол шығынын азайта отырып жеткізілуінің тиімді жолын Delphi бағдарламалау ортасында құрылды. Бұл бағдарламаларда қажетті компоненттерді, процедураларды, операцияларды пайдалана отырып, транспорттық жұмыс көлемін минимизациялау қосымшасы құрылды. Құрылған қосымшада пайдаланылған компоненттердің қасиеттерін қосымшаға сәйкестендіріп өзгертілді. Қосымша екі бөліктен тұрады. Бірінші бөлігі кесте болса, екінші бөлігі кестеге енгізілген есептің мәнін шығаратын бөлік болып табылады. Қосымша толық құрылып біткен соң, оған есепте берілген мәліметтерді енгізіп қосымша арқылы транспорттық жұмыс көлемінің шығын есептеп шығарылады.
2.3 Модульдерді, процедураларды және функцияларды сипаттау
Транспорттық есепті Delphi бағдарламалау ортасына енгізгенде көптеген процедуралар мен функциялар пайдаланылды. Сондайық қолданылған компоненттердің қасиеттеріне өзгертулер енгізіліп, өңдеулер жүргізілді.
Модульдер - Object Pascal бағдарламалық тілінде қарастырылған стандартты конструкциядан тұрады (бөлімдердің тізбегі мен аттары).
Модульдің тақырыбы Unit қызметші сөзінен тұрады, ол сіздің алдыңызда модульдің бағдарламалық коды тұр дегенді білдіреді, одан кейін модульдің аты орналасқан. Модуль онымен негізгі бағдарлама немесе басқа модуль қолданылуы үшін құрылады (біздің жағдайда модуль TEST.DPR жобасына қосылған).
Модульдің бағдарламалық коды модульдің тақырыбы мен төрт бөлімнен тұрады: интерфейс, жүзеге асыру, инициализация және қорытынды бөлім.
Функция - бұл ішкі программа, аты бар инструкциялардың тізбегі. Функцияны шақыру жалпы түрде былай жазылады:
Айнымалы фнкция (параметрлер);
1. Айнымалы - функция есептеген мәнді меншіктеуге арналған айнымалының аты.
2. Функция - функция аты;
3. Параметрлер - формальді параметрлер тізбегі, функция мәнін есептеу үшін қолданылады.
Процедура деп белгілі бір идентификатормен аталып, сол атпен бағдарламаның кез - келген жерінен шақырып, белгілі бір есептеулерді орындауға болатын бағдарламаның тәуелсіз бөлігін айтады. Процедураның құрылымы бағдарлама құрылымына ұқсас келеді.
Процедураның кұрылымы:
{тақырыбы:}
PROCEDURE аты(формальды параметрлер:типтері);
Сипаттамалар бөлімдері; (*бұл бөлімдер болмауыда мүмкін*)
BEGIN Операторлар; (*процедура денесі*)
END;
Пайдаланылған негізгі компоненттер Stringgrid пен Memo болды.
StringGrid компоненті ұяшықтары символдар жолынан тұратын кесте.
Name - компонент аты. Бағдарламада компонент пен оның қасиеттеріне қатынау үшін қолданылады. ColCount - кесте бағаналарының саны, RowCount - кесте жолдарының саны, DefaultColWidth - кесте бағаналарының ені, DefaultRowHeight - кесте жолдарының биіктігі.
FixedCols - сол жақта тіркелген кесте бағаналарының саны. Тіркелген бағаналарға түс беріледі және де көлденең айналдыруда кестелер орнында қалады.
FixedRows - жоғарыдан тіркелген кесте жолдарының саны. Тіркелген жолдарға түс беріледі және де тігінен айналдыруда кестелер орнында қалады
Cells - кестеге сәйкес келетін екі өлшемді массив.col нөмірлі баған мен row нөмірлі жолдың қиылысында орналасқан ұяшықтарына, cells [col,row] элементі сәйкес келеді
GridLineWidth - кесте ұяшықтарын шектейтін сызық ен
Memo компоненті
Көп жолдық мәтінді өңдеу үшін Delphi ортасы Memo компонентін үсынады. Бұл редактордың мүмкіндіктері бір жолдық Edit элементтімен бірдей, тек Memo - де бірнеше жол орналастыруға болады. Memo - ның мазмүнына қол жеткізу үшін String түріндегі Lines қасиеті қолданылады. Бұл жәйтта терезенің мазмүны бір жолдық шама деп саналады, жолдың соңын көрсету үшін Enter пернесі басылған, яғни соңында #13#10 таңбалары түр деп саналады.
Memo - ның бөлек жолымен жұмыс атқаруда TString түрінің Lines қасиеті қолданылады. TString класы арнайы жолдық шамалармен жұмыс атқаруға негізделген және көптеген қасиеттер мен әдістерді қолдануға мүмкіндік туғызады
Name - компонент аты, бағдарламада компонент пен оның қасиеттеріне қатынау үшін қолданылады. Text - Memo жолында орналасқан мәтін. Бір бүтін ретінде қарастырылады. Lines - жолдағы мәліметке сәйкес келетін жолдар массивті. Жолға қатынау нөмір арқылы жүзеге асады. Жолдар нөлден бастап нөмірленеді. Left - жолақтың сол жақ шекарасынан пішімнің сол жақ шекарасына дейінгі аралық. Top - жолақтың жоғарғы шекарасынан пішімнің жоғарғы шекарасына дейінгі аралық. Height - жолақ биіктігі, width - жолақ ені. Font - енгізілетін мәтінді көрсету үшін қолданылады. ParentFont - Ата - аналық пішім қаріпінің қасиеттерін мұраға алу белгісі.
Button - терезелік басқару батырмасы болып саналады. Оның бетіне батырманының тағайындалуы туралы немесе батырманы басқандағы орындалатын іс - әрекеттің қысқаша анықтамасы келтірілуі мүмкін.
Button батырмасымен орындалатын негізі оқиға - OnClick - оны сырт еткізу. Осы сәтте батырма түрін өзгертіп, команданы қабылдағанын көрсетіп тұрады. Батырманы жібергеннен кейін OnClick оқиғасын өңдеуші үзінді өз жұмысын бірден бастайды. Батырманы ... жалғасы
Экономикалық талдау мен есептеу əдістерін жетілдіруде зерттеудің математикалық тəсілдерін қолдану үлкен рөл атқарады. Баға белгілеу заңдылықтары, өнім бірлігіне жұмсалатын еңбек пен материалдардың толық шығынын зерделеу, салааралық байланыстарды зерттеу, капитал салымының рентаельділігі, өндірісті орналастырудың тиімділігін анықтау, өндірістік процесті оңтайлы жоспарлау, шектеулі ресурстарды тиімді пайдалану секілді экономикалық проблемалар жəне басқа да маңыздылығы бұлардан кем емес мəселелер математикалық тəсілдерді кеңінен қолдану арқылы табысты шешіле алады. Мұндай есептер үшін құрамына желілік программалау, динамикалық программалау, ойындар теориясы жəне басқа математикалық пəндер кешені экономикалық нысандар мен процестердің математикалық модельдерімен бірге кіретін экономикалық-математикалық аппарат əзірленді жəне одан əрі жалғасуда. Бұл аппаратты, əсіресе өнеркəсіптік өндіріс, ауыл шаруашылығы, көлік, экономикалық зерттеулер жəне т.б. секілді салаларға қатысты есептердің кең айналымын шешуге мүмкіндік беретін желілік программалауды зерделеу экономистің тəжірибелік жұмысында күннен-күнге қажеттілікке айналуда.
Экономикалық есептерді шешудің барлығында да математикалық тəсілдер қолданыла бермейтінін атап өткен жөн. Бұл үшін қажетті шарт зерделеніп отырған мəселені сипаттайтын есептер мен тəуелдіктердің бастапқы деректерінің сандық көрінісі болып табылады. Математикалық модельді құру сандық мəні есепті шешу нұсқаларының бірін анықтайтын айнымалылардың кейбір сандарын енгізуден басталады. Оларды х, у жəне т.б. белгілейді. Оңтайлылықтың таңдалып алынған критерийіне сəйкес мақсатты функция құрылады. Содан соң математикалық теңдік немесе теңсіздік түрінде осы процесті сипаттайтын өзара бейнеленеді.
Менің өңделіп жатқан курстық жұмысымның мақсаты - транспорттық жұмыс көлемін минимизациялау болып табылады. Есептің тиімді жауабын табу үшін оның тіректі жоспар құру арқылы есептейміз.
Əдетте, экономикалық есептер қою барынша тиімді пайдалануды қажет ететін шектеулі ресурстардың бар екендігін білдіреді. Сондықтан зерделеніп отырған мəселе үшін қандай ресурстардың шешуші болып табылатындығын, олардың қоры қандай екендігін анықтау өте маңызды. Ресурстар бойынша
барлық шектеулер қарама-қайшы болмауы керек. Кейбір шектеулерді есепке алмау алынған шешімнің қолдануға тиімсіз болып қалуына жəне керісінше ресурстар бойынша қатаң шектеулер қою есептің шешімі аясын тым тарылтып жіберуге əкелуі мүмкін. Бұл оңтайлы шешім табу мүмкіндігін жоққа шығарады.
Құралда көптеген теориялық есептер дəлелдемелерсіз берілген жəне əдістер мен алгоритмдерді мысалдармен жəне есептермен көрнекілендіруге баса назар аударылған.
І ЖАЛПЫ БӨЛІМ.
0.1 ПӘНДІК АУМАҚТЫ СИПАТТАУ
Экономикалық - математикалық зерттеу негізінде зерделеніп отырған экономикалық процесті математикалық модельдеу, яғни бұл процестің сандық заңдылықтарын математикалық формулалар көмегімен сипаттау жатыр. Математикалық модельдердің көптеген анықтамалары бар. Солардың ішінде, біздің пікірімізше, недəуір дұрыс болып табылатын біреуін берейік.
Модель - бұл жасанды құрылған объект өндіріске қатысты модель әр есептің тиімділігіне бағытталады.
Әр қарастырылып отырған және өзгеріске ұшыраған модельдер есептеу барысында модельдеу процессі деп аталады.
Математикалық модель - математикалық символдармен жазылған нақты құбылыс абстракциясы. Оны талдау осы құбылыстың мəнін тереңдей ашуға мүмкіндік беретіндей етіп құрас - тырылған.
Модельдеу дегенде біз модельдердің құрылуын, оларды зерделеу мен қолдануды түсінеміз. Модельді құрудың бірінші сатысында үш есепті шешу қажет:
- зерттеу мақсатын анықтау;
- негізгі шектеулерді айқындау;
- зерделеп отырған құбылыстың барлық мəдеметтерінің сандық көрінісі. Зерттеу мақсаты есепті шешудің əр түрлі нұсқалары салыстырылатын жəне олардың ішінен ең үздігі таңдалып алынатын белгісімен (критерийімен) сипатталады. Əр алуан экономикалық есептерде мұндай критерий ретінде барынша жоғары табыс, өндірістің барынша төмен шығындары жəне басқалар таңдап алынуы мүмкін.
ЖП - дың жалпы тапсырмаларын шешудегі секілді, транспорттық тапсырманың оңтайлы жоспарын іздестіру де оның қандай да бір тірек жоспарын табудан басталады. Транспорттық тапсырманың бастапқы тірек жоспарын анықтаудың бірнеше əдісі бар. Оның екеуін - батыс бұрыш əдісін жəне минималды элемент əдісін қарастыралық. Бұл тəсілдердің мəні мынада: тірек жоспары (m+n-1) қадамнан тысқары жатыр, оның үстіне əрбір қадамда жоспардың искомой матрицасының немесе жолы, немесе бағаны анықталады.
Солтүстік - батыс бұрышы əдіс.
Бірінші қадам x11= min(a1,b1), екі жағдай болуы мүмкін: А) a1 PI b1, бұл жағдайда X 11 = a1, X ij = 0, j = 2, n Осылайша, жіберудің А1 бірінші пункті барлық жүкті тұтынудың В1 бірінші пунктіне бағыттады, яғни толығымен босады, сондықтан да басқа В2,В3 , ...Вn пункттеріне А1 пунктінен ешқандай жүктің жіберілуі мүмкін емес. Матрица - жоспардың алғашқы жолы осылайша анықталады, ал бөлуші кестеде бірінші жол жабылады. Мұнда алғашқы тұтынушының сұранысы в1 1 = в1 - х11 тең болады.
Екінші қадамға көшейік. Б) a1b1 , бұл жағдайда х11 = в1, ал бірінші бағанның қалған элементтері 0 - ге тең, яғни xi1 = 0, i = 2,m , себебі бірінші В тұтынушының сұранысы толығымен қанағаттандырылды, енді оған басқа А2, ...Аm жіберу пункттерінен жүк келмейді. Матрица - жоспардың алғашқы бағаны осылайша анықталады. Мұнда бөлуші кестедегі бірінші баған жабылады, ал бірінші А1 жабдықтаушы жүгінің көлемі а1 1 = а1 - х11 тең болады. Екінші қадамға көшейік. Бірінші қадамға сəйкес А) жағдайында - min( , ) x21 = a2 b1− x11 элементін, ал Б) жағдайында min( , ) x12 = a1− x11 b2 элементін анықтаймыз ж.т.б. Бұл процесс жоспардың барлық элементтері анықталғанға дейін жалғаса береді.
Теорема. Солтүстік - батыс бұрыш əдісінің нəтижесінде алынған жоспар тірек жоспар болып табылады.
Потенциалдар əдісі алдын ала қарастырылған кезеңнен жəне бір типті итерациялардың соңғы санынан тұрады. Алдын ала қарастырылған кезеңде бізге белгілі əдістердің (солтүстік-батыс бұрыш əдісі, минималды элемент əдісі жəне т.б.) бірі арқылы бастапқы тірек жоспар анықталады. Өз кезегінде, əрбір итерация 2 кезеңге бөлінеді. Бірінші сатыда алынған тірек жоспардың оңтайлылығы тексеріледі.
Егер жоспар оңтайлы болса, онда шешу процесі аяқталады, егер оңтайлы болмаса, онда екінші кезеңге өту іске асады. Екінші кезеңде едəуір оңтайлы жаңа тірек жоспары құрылады.
Алдын ал қарастырылған кезеңде қандай да бір X= X ij mxn тірек жоспары анықталды деп есептейік.
Бірінші кезеңде жоспардың оңтайлылығын тексеру. Жоспардың оңтайлылығын тексеру үшін бұл жоспардың бағалаушы матрицасын табу қажет:
C1 = Cij1 mxn = Cij +Ui - Vj mxn.
Бағалаушы матрицаны құру үшін Ui және Vj (i =1,m, j =1, n) потенциалдарын анықтау қажет. Олар Cij +Ui -V j = 0 , X ij 0. (*) мәні үшін бар болып табылады. Бұдан былай бұл элементтерді (X ij 0) базистік деп атаймыз.
Бізге белгілі болғандай, егер X= X ij mxn тудырмаған тірек жоспары болса, онда ол нақты (m+n-1) нөлдік емес базистік элементтерді қамтиды. Олардың əрқайсысы үшін (*) қатынасын құрамыз. Теңдіктердің (m+n) белгісіздері бар (m+n-1) жүйесін, яғни белгісіздік жүйесін аламыз: Ui (i = 1,m) және Vj ( j =1,n). Айнымалылардың біріне туынды мəн бере отырып, бұл жүйенің кейбір жеке шешімін табамыз.
Мысалы, U1 =0, мәнін қойып (m+n-1) белгісіздері бар (m+n-1) теңдеулер жүйесін аламыз, мұны шешу арқылы басқа белгісіздердің мəнін табамыз. Потенциалдарды осылайша анықтап алып, жоспардың бағалаушы матрицасын құрамыз.
Егер бағалаушы матрицаның барлық элементтері теріс емес болса, онда Х жоспары оңтайлы (оптималды) жəне процесс аяқталған, ал егер бағалаушы матрица элементтерінің арасында терістері бар болса, онда жоспар оңтайлы (оптималды) емес жəне екінші сатыға өту керек.
Екінші сатыда жаңа тірек жоспарын құру.Бағалаушы матрицаның теріс элементтерінің арасындаминималды элемент бар. Бұл C rk1 элементі болсын, яғни
minC1ij =C rk1 0
Матрица - жоспарда Xrk сəйкес элементі үшін шығыршық құрылады. Шығыршық - бұл тұйық үзік желі, мұның өзектері жолдар мен бағандардан алшақ орналасқан, ал жоғарғы жағында берілген Xrk = элементі жəне жоспардың нөлдік емес (базистік) элементі орналасқан. Егер жоспар туындамайтын тірек жоспар болса, онда оның əрбір базистік емес (нөлдік) элементі үшін шығыршық құруға болады жəне бұл шығыршық біреу ғана болмақ.
Шығыршықтың жоғарғы жағын Xrk элементінен бастап кезекпен + жəне - белгілерімен белгілейміз. Шығыршықтың жоғарғы жағында орналасқан жəне - белгісімен белгіленген жоспар элементтерінің ішінде ең минималды элементті табу керек, яғни
θ=minХ ijцепи=Х i0j0
θ санын шығыршықтың + белгісімен белгіленген элементтеріне қоса отырып жəне - белгісімен белгіленген элементтерінен ала отырып, шығыршық бойымен оның орнын ауыстырамыз. Шығыршыққа енбейтін жоспардың қалған элементтері өзгеріссіз қалады. Нəтижесінде жаңа жоспар пайда болады, мұнда Х i0j0 элементі - базистік емес, ал Xrk = θ (бұрынғы базистік емес) элементі базистік сипат алады. Осылайша, жаңа жоспарда базистік элементтердің саны өзгермейді. Содан кейін 1-кезеңге өтеміз, мұнда пайда болған жаңа жоспардың оңтайлылығы тексеріледі. Бұл үшін оны бағалау матрицасын құру керек. Мұны, бұрын көрсетілгендей, тірек жоспардың U i (i =1,m) и V j ( j =1, n) потенциалдарын анықтау арқылы жүзеге асыруға болады. Алайда жаңа жоспарды бағалау матрицасын алдыңғы жоспарды бағалау матрицасын дəлме-дəл қайта жасай отырып құруға болады. Шынымен-ақ, жаңа жоспардың алдыңғы жоспардан ерекшелігі мынада екеніне назар аударайық: мұнда алдыңғы жоспарда базистік болған бір ауыспалы Х i0j0 - базистік емес, ал базистік емес ауыспалы Xrk керісінше, базистік сипат алады, ал екі жоспардың да қалған базистік ауыспалылары абсолюттік көлемі бойынша ерекшеленсе де, өзара сəйкес келеді.
0.2 Бағдарламалау тілінің элементтерін көрсету
Ақпараттық коммуникациялық технологиялардың қарқынмен дамып, күнделікті тұрмысқа енуіне байланысты соңғы кездері программалауға деген қызығушылықтың арта түскені белгілі. Қазіргі уақытта компьютерсіз қандай да бір жұмыс орындауды көз алдымызға елестету қиын. Бұл компьютермен жұмыс істейтін адамға қандай да бір ұмтылысты тудыруы мүмкін.
Есептеуіш техниканың қарқынмен дамуы тиімді программалық құралдарды жасау - объектілі бағдарланған программалау жүйелерінің жасалуына әкелді. Бұл ортада қазіргі заманғы компьютерлік технологиялардың кез келген саласындағы бизнес-программа, мультимедия, ойын, мәліметтер қоры сияқты өнімдерді құруға мүмкіндік беретін қазіргі заманғы ең қуатты программалау тілдірінің бірі болып табылады.
Программалау тілін жүзеге асыру саласындағы программа құрумен әлемге әйгілі Borland компониясы 1996 ж. Delphi жаңа буынының компиляторын шығарды. Бұл ең алдымен, Windows ортасында программа құрумен қатар, қосымша Pascal тілінің қуатты компиляторы болып табылады.
Borland корпорациясы аз ғана мерзім ішінде Delphi - дің 7 негізгі версиялары мен бірнеше модификацияларын шығарды. Delphi 7 версиясында өте көп өзгерістер енгізілген. Программалармен қамтаматсыз етудің тиімді өңдеу құралдарын қажет ету "жылдам жасау" ортасы деп аталатын программалау жүйелерінің пайда болуына алып келді. Мұндай ортаға мысал ретінде Borland Delphi жатады. Жылдам жасау RAD - жүйесіне "Rapid Application Development" жүйесінің негізі визуалды жобалау және оқиғаны өңдеуді программалар технологиясы жатады, оның мағынасы өңдеу үнемсіз жұмыстың көп бөлігін өзіне алады да, программиске диалогты терезелерді және оқиғаны өңдеу функциясын құрастыру жұмыстары қалады. Ортада қатаң типтелген объектіге бағдарлы тілі қолданылады, оның негізіне Object Pascal (Turbo Pascal жалғасы) жатады. Delphi әртүрлі программаларды құруға мүмкіндік береді: қарапайым біртерезелі қосымшалардан тармақталған дерек қорларды басқару программаларына дейін. Delphi-дің ұлғайтылған мүмкіндіктері графикпен, мультимедиямен, дерек қорларымен жұмыс істейтін және динамикалық құрылымдармен қосымшаларды құруға мүмкіндік береді. Delphi - дің айрықша ерекшелігі .NET технологиясының сүйемелдеуі болып табылады.
Жылдам құру жүйесінің негізіне (RAD - Rapid Application Development - қосымшаларды жылдам құру ортасы) визуалды жобалау мен оқиғалы объектілі бағдарланған программалау технологиясы алынған. Мұндай программалаудың мәні - программа жасаушы құрал жұмыстың көп бөлігін өзі атқарып, программистке диалог терезелерін құрастыру мен оқиға өңдеушіні құру жұмыстарын қалдырды. RAD жүйелерінің ішінде Borland Delphi және Visual Basic орталары әртүрлі программалар құруға мүмкіндік береді: қарапайым бір терезелік қосымшалардан бастап, үлестірілген мәліметтер қорын басқару программаларына дейін. Borland Delphi ортасындағы программалау тілі Object Pascal тілі.
Программалау іскерлігін үйрену үшін нақты есептер шығарып, программасын жаза білу қажет. Ол үшін программалау тілі мен оны құру ортасын меңгеру керек. Объектілі бағдарланған программалау жүйелерінде программалаудағы негізгі ерекшелік алдымен программалау синтаксисі мен компоненттерді пайдалануды үйренуде болып табылады.
Программа құрастырылғанда және орындалғанда компоненттің сыртқы көрінісін және бет алысын қасиеттер арқылы басқаруға болады. Компоненттің көптеген қасиеттерін Объектілер бақылаушысы арқылы форманы қалыптастыру кезеңінде анықтауға болады. Жалпы компоненттің қасиеттер мәнін меншіктеу операторымен анықтауға да болады.
Қазіргі қолданбалы программаларды дайындау технологияларының өте мықтылығына қарамастан, егер программаның жобасын жасауға, шешілуге тиісті мәселелерді анықтау кезеңіне барынша назар аударып, әбден пысықтамаса, соңында оны жөндеуге көп уақыт кетуі мүмкін. Егер программа құрылымы, жобасы дұрыс келістірілмеген болса, программаға жаңа функция енгізу немесе ондағы кемшіліктерді жөндеу үлкен қаржы шығынына да ұшыратуы мүмкін.
ІІ АРНАЙЫ БӨЛІМ
2.1 Транспорттық жұмыс көлемін минимизациялау есебінің экономикалық және математикалық моделін құру
Есептің экономикалық моделі: жөнелтілу пункттері болып А1 совхозы және үш колхоз А2, А3 және А4 болып табылады. Жеткізу пункттері болып - өндіріс орталығының қалалаық сүт зауыты болып табылады: В1, В2, В3. Сүтті бір күнде тасымалдау керек, бірінші пункттен 20 тонна, екінші пункттен 17 тонна, үшінші пункттен 13 тонна, ал төртінші пункттен 22 тонна. Сүт белгіленген пунктке келесідей көлемде жеткізілуі керек: бірінші пунктке - 25 тонна, екінші пунктке - 28 тонна, үшіншіге - 19 тонна. Барлық сүт қалалаық сүт зауытына жеткізілетіндей және транспорттық шығын аз болатындай қанша сүт және қандай сүт зауыттарын әрбір совхоздан және колхоздан аудару екенін анықтау керек. Мынадай мәліметтер белгілі болсын: егер А1 совхозынан В1, В2, В3 сүт зауыттарына сәйкесінше ара қашықтық - 6, 5, 3 км., А2 колхозынан - 4, 2, 5 км., А3 колхозынан - 3, 7, 1 км. Және А4 колхозынан - 6, 4, 5 км.
Жоғарыда айтылып өткендей, құрылған транспорттық есептің ең бірінші экономикалық моделін құрамыз, одан соң математикалық моделін құрамыз.
Берілген есептің экономикалық және математикалық моделін құрайық: Өндірушіден тұтынушыға ai қорларын bj қажетті қорын тиімді жеткізу. Сонымен қатар транспорттық жұмыс көлемін минимизациялау.
Транспорттық есептің математикалық моделін құру үшін Xij айнымалысын енгіземіз. Xij - тауар саны болып табылады.
Математикалық моделін құру 4 функциядан турады:
1) F=i=1mj=1nCijXij--min
2) j=1mXij=Cij
3) i=1nXij=bj
4) Xij=0
Мақсатты функция әр есептің толық мақсатын білдіреді.
∑a = 20 + 17 + 13 + 22 = 72
∑b = 25 + 28 + 19 = 72
Бізде қажетті қорлар мен жалпы қорлар саны тең. Бұл жағдайда транспорттық есептің моделі жабық деп саналады.
Есепте берілген мәліметтерді матрица ретінде кестеге саламыз.
Кесте 1 Қорлар мен қажетті қорлар саны
a b
b1
b2
b3
Қорлар
a1
6
5
3
20
a2
4
2
5
17
a3
3
7
1
13
a4
6
4
5
22
Қажетті қор
25
28
19
72
2.2 Есепті математикалық әдіспен реализациялау
Транспорттық есептің тіректі жоспарын құру әдісін пайдаланамыз. Бұл әдістің мақсаты - құрылған кесте ішінен шығыны ең аз болатын жерден бастау. Яғни, тауарды уақытымен және жол шығынын азайта отырып, есепте берілген мәліметтер бойынша тіректі жоспарды құрамыз:
Кесте 2
a b
b1
b2
b3
Қорлар
a1
6[14]
5
3[6]
20
a2
4
2[17]
5
17
a3
3
7
1[13]
13
a4
6[11]
4[11]
5
22
Қажетті қор
25
28
19
72
Нәтижесінде, бірінші тіректі жоспар бойынша тауарды тиімді жеткізудің және жол шығынын азайту қанағаттандырылды, ал жоспар транспорттық есептің шектеулі жүйесіне сәйкес.
Бұл тіректі жоспарының мақсатты функциясының мәні:
F(x) = 6*14 + 3*6 + 2*17 + 1*13 + 6*11 + 4*11 = 259
Екінші кезеңде тіректі жоспардың тиімділігін тексереміз. Құрылған кесте ішінен Ui Vj потенциялдарын санаймыз. Ең алдымен бос емес торлар үшін: UI + VJ = CIJ , u1 = 0.
U1 + V1 = 6; 0 + V1 = 6; V1 = 6
U4 + V1 = 6; 6 + U4 = 6; U4 = 0
U4 + V2 = 4; 0 + V2 = 4; V2 = 4
U2 + V2 = 2; 4 + U2 = 2; U2 = -2
U1 + V3 = 3; 0 + V3 = 3; V3 = 3
U3 + V3 = 1; 3 + U3 = 1; U3 = -2
Кесте 3
v1=6
v2=4
v3=3
u1=0
6[14]
5
3[6]
u2=-2
4
2[17]
5
u3=-2
3
7
1[13]
u4=0
6[11]
4[11]
5
Енді бос торларды санаймыз: UI + VJ = CIJ
(3;1): -2 + 6 3; ∆31 = -2 + 6 - 3 = 1
Бос торлар ішінен максималды санды таңдаймыз (3;1): 3
Цикл құрамыз, көп жағдайда тіктөртбұрыш ретінде болады. Тіктөртбұрыштың бұрышы бос торда орналасуы қажет. Ал қалғандары бос емес торларды орналасады. Бос торға + белгісін қоямыз әрі қарай таңбалар кезектеседі. + таңбасы тұрған торлар арасынан минималды анықтаймыз ϑ(тетта) болады. Жаңа кесте құрғанда + таңбасы тұрған жерге ϑ - ны қосамыз, ал - таңбасы тұрған жерден ϑ-ны аламыз.
Кесте 4
a b
b1
b2
b3
Қорлар
a1
6[14][-]
5
3[6][+]
20
a2
4
2[17]
5
17
a3
3[+]
7
1[13][-]
13
a4
6[11]
4[11]
5
22
Қажетті қор
25
28
19
72
ϑ=min "-"=min14;13=13
Нәтижесінде бірінші жоспар тиімсіз, қйткені шарт орындалған жоқ, сондықтан процесс жалғасады да төмендегі жаңа тіректі жоспар пайда болады.
Кесте 5
a b
b1
b2
b3
Қорлар
a1
6[1]
5
3[19]
20
a2
4
2[17]
5
17
a3
3[13]
7
1
13
a4
6[11]
4[11]
5
22
Қажетті қор
25
28
19
72
Құрылған жаңа кесте ішінен Ui Vj потенциялдарын санаймыз. Бос емес және бос торлар үшін: UI + VJ = CIJ , UI + VJ = CIJ, u1 = 0.
u1 + v1 = 6; 0 + v1 = 6; v1 = 6
u3 + v1 = 3; 6 + u3 = 3; u3 = -3
u4 + v1 = 6; 6 + u4 = 6; u4 = 0
u4 + v2 = 4; 0 + v2 = 4; v2 = 4
u2 + v2 = 2; 4 + u2 = 2; u2 = -2
u1 + v3 = 3; 0 + v3 = 3; v3 = 3
Кесте 6
V1=6
V2=4
V3=3
U1=0
6[1]
5
3[19]
U2=-2
4
2[17]
5
U3=-3
3[13]
7
1
U4=0
6[11]
4[11]
5
Барлық сандар UI + VJ = CIJ шартына сәйкес келгендіктен құрылған тіректі жоспар тиімді болып табады.
Минимальды шығын: F(x) = 6*1 + 3*19 + 2*17 + 3*13 + 6*11 + 4*11 = 246
Нәтижесінде:
А1 совхозынан жүк көлігі В1 сүт зауытына (1), ал В3 сүт зауытына (19) тауар жеткізеді. Ал А2 колхозынан В2 сүт зауытына барлық қажетті тауарды жеткізу керек. А3 колхозынан В1 сүт зауытына барлық қажетті тауарды жеткізу керек. А4 колхозынан В1сүт зауытына (11), В2 сүт зауытына (11) тауар жеткізеді.
Жоғары да айтылып кеткендей Delphi бағдарламалау ортасы арқылы қазіргі кезде көп деген есептердің шешімі оңай әрі тиімді шешіледі. Совхоздан, колхоздардан сүт зауыттарына жеткізелетін тауардың уақытылы сонымен қатар жол шығынын азайта отырып жеткізілуінің тиімді жолын Delphi бағдарламалау ортасында құрылды. Бұл бағдарламаларда қажетті компоненттерді, процедураларды, операцияларды пайдалана отырып, транспорттық жұмыс көлемін минимизациялау қосымшасы құрылды. Құрылған қосымшада пайдаланылған компоненттердің қасиеттерін қосымшаға сәйкестендіріп өзгертілді. Қосымша екі бөліктен тұрады. Бірінші бөлігі кесте болса, екінші бөлігі кестеге енгізілген есептің мәнін шығаратын бөлік болып табылады. Қосымша толық құрылып біткен соң, оған есепте берілген мәліметтерді енгізіп қосымша арқылы транспорттық жұмыс көлемінің шығын есептеп шығарылады.
2.3 Модульдерді, процедураларды және функцияларды сипаттау
Транспорттық есепті Delphi бағдарламалау ортасына енгізгенде көптеген процедуралар мен функциялар пайдаланылды. Сондайық қолданылған компоненттердің қасиеттеріне өзгертулер енгізіліп, өңдеулер жүргізілді.
Модульдер - Object Pascal бағдарламалық тілінде қарастырылған стандартты конструкциядан тұрады (бөлімдердің тізбегі мен аттары).
Модульдің тақырыбы Unit қызметші сөзінен тұрады, ол сіздің алдыңызда модульдің бағдарламалық коды тұр дегенді білдіреді, одан кейін модульдің аты орналасқан. Модуль онымен негізгі бағдарлама немесе басқа модуль қолданылуы үшін құрылады (біздің жағдайда модуль TEST.DPR жобасына қосылған).
Модульдің бағдарламалық коды модульдің тақырыбы мен төрт бөлімнен тұрады: интерфейс, жүзеге асыру, инициализация және қорытынды бөлім.
Функция - бұл ішкі программа, аты бар инструкциялардың тізбегі. Функцияны шақыру жалпы түрде былай жазылады:
Айнымалы фнкция (параметрлер);
1. Айнымалы - функция есептеген мәнді меншіктеуге арналған айнымалының аты.
2. Функция - функция аты;
3. Параметрлер - формальді параметрлер тізбегі, функция мәнін есептеу үшін қолданылады.
Процедура деп белгілі бір идентификатормен аталып, сол атпен бағдарламаның кез - келген жерінен шақырып, белгілі бір есептеулерді орындауға болатын бағдарламаның тәуелсіз бөлігін айтады. Процедураның құрылымы бағдарлама құрылымына ұқсас келеді.
Процедураның кұрылымы:
{тақырыбы:}
PROCEDURE аты(формальды параметрлер:типтері);
Сипаттамалар бөлімдері; (*бұл бөлімдер болмауыда мүмкін*)
BEGIN Операторлар; (*процедура денесі*)
END;
Пайдаланылған негізгі компоненттер Stringgrid пен Memo болды.
StringGrid компоненті ұяшықтары символдар жолынан тұратын кесте.
Name - компонент аты. Бағдарламада компонент пен оның қасиеттеріне қатынау үшін қолданылады. ColCount - кесте бағаналарының саны, RowCount - кесте жолдарының саны, DefaultColWidth - кесте бағаналарының ені, DefaultRowHeight - кесте жолдарының биіктігі.
FixedCols - сол жақта тіркелген кесте бағаналарының саны. Тіркелген бағаналарға түс беріледі және де көлденең айналдыруда кестелер орнында қалады.
FixedRows - жоғарыдан тіркелген кесте жолдарының саны. Тіркелген жолдарға түс беріледі және де тігінен айналдыруда кестелер орнында қалады
Cells - кестеге сәйкес келетін екі өлшемді массив.col нөмірлі баған мен row нөмірлі жолдың қиылысында орналасқан ұяшықтарына, cells [col,row] элементі сәйкес келеді
GridLineWidth - кесте ұяшықтарын шектейтін сызық ен
Memo компоненті
Көп жолдық мәтінді өңдеу үшін Delphi ортасы Memo компонентін үсынады. Бұл редактордың мүмкіндіктері бір жолдық Edit элементтімен бірдей, тек Memo - де бірнеше жол орналастыруға болады. Memo - ның мазмүнына қол жеткізу үшін String түріндегі Lines қасиеті қолданылады. Бұл жәйтта терезенің мазмүны бір жолдық шама деп саналады, жолдың соңын көрсету үшін Enter пернесі басылған, яғни соңында #13#10 таңбалары түр деп саналады.
Memo - ның бөлек жолымен жұмыс атқаруда TString түрінің Lines қасиеті қолданылады. TString класы арнайы жолдық шамалармен жұмыс атқаруға негізделген және көптеген қасиеттер мен әдістерді қолдануға мүмкіндік туғызады
Name - компонент аты, бағдарламада компонент пен оның қасиеттеріне қатынау үшін қолданылады. Text - Memo жолында орналасқан мәтін. Бір бүтін ретінде қарастырылады. Lines - жолдағы мәліметке сәйкес келетін жолдар массивті. Жолға қатынау нөмір арқылы жүзеге асады. Жолдар нөлден бастап нөмірленеді. Left - жолақтың сол жақ шекарасынан пішімнің сол жақ шекарасына дейінгі аралық. Top - жолақтың жоғарғы шекарасынан пішімнің жоғарғы шекарасына дейінгі аралық. Height - жолақ биіктігі, width - жолақ ені. Font - енгізілетін мәтінді көрсету үшін қолданылады. ParentFont - Ата - аналық пішім қаріпінің қасиеттерін мұраға алу белгісі.
Button - терезелік басқару батырмасы болып саналады. Оның бетіне батырманының тағайындалуы туралы немесе батырманы басқандағы орындалатын іс - әрекеттің қысқаша анықтамасы келтірілуі мүмкін.
Button батырмасымен орындалатын негізі оқиға - OnClick - оны сырт еткізу. Осы сәтте батырма түрін өзгертіп, команданы қабылдағанын көрсетіп тұрады. Батырманы жібергеннен кейін OnClick оқиғасын өңдеуші үзінді өз жұмысын бірден бастайды. Батырманы ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz