Объектілі бағытталған бағдарламалау түсінігі
1. ТЕОРИЯЛЫҚ АҚПАРАТТАР
1.1 Объектілі бағытталған бағдарламалау түсінігі
Алгоритм дегеніміз орындаушының рәсімін сипаттайтын нұсқаулар жиынтығы және іс-әрекеттің соңғы саны бойынша міндеттің нәтижесіне жету.
Объектілі-бағытталған бағдарламалау - бұл дамудың әдісі, объектінің тұжырымдамасына негізделген бағдарламалар. Нысан - бұл нақты әлемнің объектісіне арналған құрылым, оның мінез-құлқына сәйкес келеді. Шешілетін міндет және оларға жасалатын операциялар терминдерінде сипатталады, сондай-ақ бағдарлама мұндай тәсілде нысандардың жиынтығы және олардың арасындағы байланыстар болып табылады.
Объектілі-бағытталған бағдарламалау жүйелері - графикалық интерфейсті жасау процесін визуализациялау үшін қолданатын қосымшалар.
Бағдарламалық объектілердің өзара іс-қимылы және олардың өзгерістері негізінен бағдарламалық код көмегімен объектілі - бағытталған бағдарламалауда бағдарламалық кодты құру алгоритмдік бағдарламаларды пайдалануға негізделеді.
Класс-объектілі-бағытталған деректердің дерексіз түрінің түрі құру тәсілімен сипатталатын бағдарламалау. Басқа деректердің абстрактілі түрлері-метаклассалар, интерфейстер, құрылымдар, аударулар -- өзінің басқа да ерекшеліктерімен сипатталады. Түсінікпен қатар "объект" класс объектілі-бағытталған бағдарламалауда негізгі ұғым болып табылады.
Бағдарламалық қамтамасыз ету объектілері әдістерді пайдалана алу және жауап беру қасиеттеріне ие болып саналады.
Нысандар класстары - жасалатын оқиғалардың нысандарынын қасиеттері мен әдістерінің жиынтығын анықтайтын үлгілер болдым табылады.
Объектілердің негізгі кластары графикалық интерфейсті іске асыратын класстар болып табылады.
Бағдарламалаудағы объект - белгілі бір күйге және мінез-құлқыққа ие, виртуалды кеңістікте, қасиеттері (атрибуттары) мен олардағы әрекеттердің мәндерін көрсететін субъект. Әдетте, объектілерді қарастырған кезде, объектінің мінез-құлқын (үлгісі) анықтайтын бір немесе бірнеше классқа жататыны көрсетіледі. класс экземаляры және нысан терминдері өзара ауыстырылған.
Объектілер классының үлгісі бойынша құрылған объект класстың данасы болып табылады және осы класстыңң барлық қасиеттерінің, әдістері мен оқиғаларының жиынтығын мұра етеді. Класстың әрбір данасында осы класс үшін бірегей аты бар болады. Класстың әр түрлі даналары бірдей қасиеттерге ие, бірақ олардың мүліктік мәндері әртүрлі болуы мүмкін.
Әрбір объект белгілі бір бастапқы мәндер орнатуға болатын қасиеттерге ие болып табылады.
Нысандар сипатының мәндерін бағдарламалық кодта да өзгертуге болады:
Объект.Қасиеттері: = Мәндер Қасиеттері
Объектілі-бағытталған бағдарламалау әдісі-бұл функция немесе рәсім, қандай да бір классқа немесе объектіге тиесілі. Процедуралық бағдарламалау процедурасы сияқты, әдіс кейбір қандай да бір әрекетті орындау үшін операторлар саны бар және кіру жиыны бар дәлелдер болып саналады.
Қарапайым әдістер мен статикалық әдістер болып екіге бөлінеді (класс әдістері):
-қарапайым әдістер объектінің деректеріне (осы сыныптың нақты данасына) қол жеткізуге болады;
-статикалық әдістер объектінің деректеріне қол жеткізе алмайды және оларды пайдалану үшін даналарды (осы класты) жасаудың қажеті жоқ.
Бұл әдіс кейбір кластағы объектінің мәліметтеріне қатынауды жүзеге асыратын интерфейсті ұсынады, осылайша деректер инкапсуляциясын қамтамасыз етеді.
Қандай деңгейде қандай әдіс беретіндігіне байланысты:
-ашық (public) интерфейс - осы сыныптың барлық пайдаланушылары үшін жалпы интерфейс;
- қорғалған (protected) интерфейс - осы сыныптың барлық мұрагерлері үшін ішкі интерфейс;
-жабық (private) интерфейс-осы сыныптың ішінен ғана қол жетімді интерфейс.
Интерфейстердің мұндай бөлінуі өзгермейтін ашық интерфейсті сақтауға мүмкіндік береді, бірақ ішкі іске асыруды өзгертуге мүмкіндік жоқ.
Нысан әдісіне сондай-ақ нүктелік нотацияны пайдалана аласыз:
Объектілі-бағытталған бағдарламадағы оқиға-бұл хабарлама орындалатын кодтың әртүрлі нүктелерінде пайда болады.
Оқиғалар реакцияны қарастыру үшін арналған бағдарламалық қамтамасыз ету түрі болып табылады.
Қойылған тапсырманы шешу үшін оқиғаны өңдеушілер құрылады: бағдарлама ғана берілген күйге түседі, оқиға орын алады, хабарлама жіберіледі, ал өңдеуші бұл хабарды ұстайды. Жалпы жағдайда өңдеушіге ештеңе берілмейді немесе өңделетін оқиғаға бастамашылық жасаған (тудырған) объектіге сілтеме беріледі. Ерекше жағдайларда өңдеушіге кейбір айнымалылардың немесе сілтемелердің мәндері беріледі.
Ең қарапайым оқиға-басталуы немесе аяқталуы туралы хабарлайтын оқиға кейбір процедуралар. Оқиға, шын мәнінде, белгілі бір жағдайдың немесе объектінің өзгергенін хабарлайды. Әрбір пайдаланушы әрекеті оқиға тізбегін тудырған кезде пайдаланушы интерфейсінде ең көрнекі оқиғалар ұсынылған кейін ғана қосымшада өңделеді.
Оқиғаны пайдаланушы жасауы мүмкін (тінтуір басу немесе пернені басу) немесе басқа объектілердің әсерінің нәтижесінен пайда болуы мүмкін.
Оқиға реакциясы ретінде белгілі бір рәсім туындайды, ол
нысанның сипаттарын өзгерту немесе оның әдістерін шақыру болып табылады.
Графикалық интерфейс. Визуалды бағдарламалау графикалық формалар мен басқару элементтері негізінде әзірленген қосымшалардың интерфейсін жасауға мүмкіндік береді.
Визуалды бағдарламалау кезінде негізгі объектілер рөлінде формалар (Forms) болады. Нысан-басқару элементтері орналасқан терезе.
Басқару элементтері-командалық түймелер (CommandButton), ауыстырып қосқыштар немесе "құсбелгілер" (Checkbox), таңдау өрістері, немесе "радиокнопкалар" (OptionsButton), тізімдер (ListBox), мәтін өрістері (TextBox) және т. б.
Барлық нысандар тілдері (C#, Java, с++, Smalltalk, Visual Basic және т. б.) объектілі-бағытталған бағдарламалаудың үш негізгі принциптеріне жауап беру болып табылады;
1) Инкапсуляция
2) Мұралау
3) Полиморфизм
Инкапсуляция-код пен деректерді біріктіретін бағдарламалау механизмі, ол сырттан араласуды қоспағанда және дұрыс емес деректерді пайдалану. Объектілі-бағытталған тілде деректер мен код болуы мүмкін және мұнда олар мүлдем автономды қара жәшікке біріктірілген. Мұндай жәшіктің ішінде бәрі бар қажетті деректер мен код. Код пен деректер ұқсас жолмен байланысқан кезде, нысан құрылуда. Басқаша айтқанда, объект-бұл элемент инкапсуляцию.
Келесі принцип- мұрагерлік-тіл қабілеттілігіне қатысты қазіргі кластарды анықтау негізінде кластардың жаңа анықтамаларын құру бойынша мұрагерлік базалық (немесе ата-ана) класстың мінез-құлқын кеңейтуге мүмкіндік беретін, туынды ішкі класстағы негізгі функционалдық еншілес класс. Яғни мұрагерлік бір объект сатып алатын процесс болып табылады, ол басқа нысанның қасиеттері. Бұл өте маңызды процесс, өйткені ол қамтамасыз ететін принцип иерархиялық жіктеу принципі.
Полиморфизм - бұл бір атауды пайдалануға мүмкіндік беретін қасиет бірнеше техникалық әр түрлі міндеттерді шешу қасиетіне ие. Жалпы алғанда, полиморфизм тұжырымдамасы "бір интерфейстің көп әдістері". Бұл жақындар тобы үшін ортақ интерфейс жасауға болады дегенді білдіретін іс-әрекеттің мағынасы. Полиморфизмнің артықшылығы-бұл күрделілікті төмендетуге көмектеседі. Күрделі бағдарламаларды шешкенде пайдалану, бір интерфейс үшін бірыңғай класстық іс-қимыл жасалады. Жағдайға байланысты нақты әрекетті таңдау компиляторға жүктеледі.
1.2 Бағдарламалау тіліне сипаттама
Delphi - жоғapы дeңгeйлi бaғдapлaмaлaу тiлдepiнiң бipi жәнe дe бaғдapлaмaлaуды жaңaдaн үйpeнушiлepгe қолдaнуғa өтe тиiмдi болып тaбылaды. Ол компьютepмeн бacкapудың үлкeн бөлiгiн өзiнe aлaды. Әдeттeгi бaғдapлaмaлу жуйeлepiнe қapaғaндa Delphi "бaғдapлaмaлaушы оpнынa" бaғдapлaмa мәтiнiнiң мәндi бөлiгiн өзi жaзaды: oбъeктiлepдi cипaттaу, пpоцeдуpaлap тaқыpыптapы т.б. Қолдaнушығa қaлғaны бaғдapлaмaның жeкe әpeкeтiн aнықтaйтын кepeктi жолдapды тepу. Delphi-дeн жүктeлeтiн мыcaлдap apacындa мәтiндiк aқпapaттapды жәнe кecкiндepi бap дepeктep қоpын қapacтыpу жәнe өңдeу бaғдapлaмac бap.
Delphi-дe Пacкaль тiлiндe оpындaу мүмкiн жәнe мүмкiн eмec күpдeлi пpоцecтepдi бaғдapлaмaлaуғa болaды. Delphi-дiң нeгiзгi epeкшeлiгi - ондa қоcымшa құpудa компонeнттiк жәнe объeктiлiк тәciлдep пaйдaлaнылaды (Windows оpтacындa пaйдaлaнaтындықтaн, Delphi-дe бaғдapлaмaны көбiнece қоcымшa дeп aтaйды). Бұл пpогpaммaлaу тeхнологияcындa нaғыз peволюция жacaды дeугe болaды. Компонeттiк тәciлдiң мәнici жeңiл: әp қоcымшa кiтaпхaнacы бaғдapлaмaлaу оpтacындa дaйындaлып, apнaйы ic-әpeкeттepдi оpындaйтын компонeттep элeмeнттepiнeн жинaқтaлaды. Олap жeткiлiкciз болca, объeктiнi өңдeугe apнaлғaн үcтeмe пpогpaммa құpылaды. Delphi-дe қолдaнылaтын нeгiзгi кiтaпхaнaны визуaльды компонeттep кiтaпхaнacы (VCL, Visual Component Library) дeп aтaйды.
Delphi Windows жүйeciндe пpогpaммaлaудың ыңғaйлы құpaлы. Ондa көптeгeн опepaтоpлapды пaйдaлaнып пpогpaммa дaйындaу, пpогpaммa мәзipiн құpу, aнимaция, мультимeдия пpоцecтepiн ұйымдacиыpу, OLE тeхнологияcын пaйдaлaнып, бacқa офиcтiк қоcымшaлapды шaқыpу, олapмeн жұмыc icтeу жәнe т.б. ic-әpeкeттepдi оpындaу дa мүмкiн.
Delphi 7 оpтacын - дaйын жобaның әp түpлi бөлiмiн құpacтыpуғa жaуaп бepeтiн, apнaйы пpогpaммaлap жиынтығы кipeтiн, интeгpaлдaнғaн жобaлaу қaбықшacы peтiндe қapacтыpуғa болaды (1 cуpeт).
Delphi 7 бaғдapлaмaлaу тiлiн icкe қоcқaн кeздe нeгiзiгi 6 тepeзe пaйдa болaды (1 cуpeт):
Delphi қaтaң типтeлгeн тiл болып кeлeдi. Бұл өз кeзeгiндe типтepдi aнықтaғaндa aca нaзap aудapу қaжeттiгiн тaлaп eтeдi.
Мәлiмeттep типi пpогpaммa aйнымaлыcының нeмece элeмeнтiнiң қaбылдaй aлaтын мәндep жиынын aнықтaйды. Мәлiмeттepдiң типтepiнe бaйлaныcты олapмeн қaндaйдa бip ic-әpeкeттepдi жacaуғa болaды. Мыcaлы: нaқты типтi aйнымaлылapымeн кeз кeлгeн apифмeтикaлық aмaлдapды оpындaуғa болaды. Aл жолдық aйнымaлылapмeн ондaй опepaциялapды жүpгiзe aлмaймыз.
Delphi-дeгi бapлық типтep шapтты түpдe бec түpгe бөлiнeдi:
oo жaй;
oo құpлымды;
oo көpceткiштiк;
oo пpоцeдуpaлық;
oo вapиaнттық;
Жaй типтi мәлiмeттep
Жaй типтi мәлiмeттep - құpaмынa бacқa типтi мәлiмeттep кipмeйтiн типтep. Бұндaй типтepгe мынaлap жaтaды:
oo бүтiн (integer);
oo нaқты (real);
oo логикaлық (Boolean);
oo cимволдық (char);
Мұндaғы нaқты типтi мәлiмeттepдeн бacқacы peттiк (поpядковыe) типтi мәлiмeттepгe жaтaды.
Peттiк типтi мәлiмeттepгe бeлгiлi бip peттiлiкпeн оpнaлacқaн, aйыpмaшылығы бip бipлiк болып кeлeтiн, бүтiн caндap тiзбeгiн құpaйтын мәлiмeттep жaтaды.
Бүтiн типтi мәлiмeттep
Delphi тiлiндe бipнeшe бүтiн типтep қapacтыpылғaн. Олapдың iшiндe eң жиi пaйдaлaнылaтыны - Integer типi (1.1-кecтe).
1.1-кecтe
Мәлiмeттep типi
Мән apaлығы
Жaды фоpмaтындaғы caндық көpceткiштep
Integer
Cardinal
Shortint
Smallint
Longint
Int 64
Byte
Word
Longword
-2 147 483 648 -2 147 483 647
0-4 294 967 295
- 128 - 127
-32 768 - 32 767
-2 147 483 648 -2 147 483 647
-263 - 263 - 1
0 -255
0 -65 535
0 -4 294 967 295
32 бит
32 бит
8 бит
16 бит
32 бит
64 бит
8 бит
16 бит
32 бит
Нaқты типтi мәлiмeттep
Жиi пaйдaлaнылaтын нaқты тип Real. Бұндaй типтi мәлiмeттepгe кeз кeлгeн тaңбaлы, peтciз caндық мәлiмeттep жaтaды (1.2-кecтe).
1.2-кecтe
Мәлiмeттep типi
Мәндep apaлығы
Үтipдeн кeйiнгi цифpлap caны
Бaйттap caны
Real 48
Single
Double
Extended
Comp
Currency
Real
2.9*10-39-1.7*1038
1.5*10-45-3.4*1038
5.0*10-324-1.7*10308
3.6*10-4951-1.1*104932
-263+1-263-1
-922 327 203 685 477.5808 -
922 337 203 685 477.5807
5.0*10-324 -1.7*10308
11-12
7-8
15-16
19-20
19-20
19-20
15-16
6
4
8
10
8
8
8
Логикaлық типтi мәлiмeттep
Delphi-дe логикaлық мәндepдi cипaттaу үшiн Boolean типi пaйдaлaнылaды. Логикaлық типтi aйнымaлы тeк бip бaйт жaдыны aлып, тeк eкi мән ғaнa қaбылдaй aлaды: 1 нeмece 0. 1 дeгeн мән true (aқиқaт), aл 0 дeгeн мән false (жaлғaн) шaмaлapынa cйкec кeлeдi.
Қоcымшa үш тип бap:
oo ByteBool - peттiк caндық шaмa: 0 дeн 255 дeйiн.
oo WordBool - peттiк caнды шaмa: 0 дeн 65 535 дeйiн.
oo LongBool - peттiк caндық шaмa: 0 дeн 4 294 967 295 дeйiн.
Cимволдық типтi мәлiмeттep
Нeгiзгi cимволдық тип Char. Бұл тип ASCII кecтeciнiң cимволдapын caқтaу үшiн пaйдaлaнылaды. Кecтeдeгi әpбip cимвол 0 мeн 255 apaлығындaғы caндық мәнмeн көpceтiлeдi. Cондықтaн дa бұндaй типтi aйнымaлы бip бaйт жaдыны aлaды.
Құpлымдық типтi мәлiмeттep - әp түpлi типтi мәлiмeттepдeн құpaлaды.
Бұндaй типтi мәлiмeттepгe:
oo жиын (set);
oo мaccив (array);
oo жолдap (string);
oo жaзбaлap (record);
oo фaйлдap (file);
жaтaды.
Delphi 7 бaғдapлaмaлaу тiлiндe мынaдaй
oo шapтты опepaтоp;
oo циклдық опepaтоp;
oo eнгiзу-шығapу опepaтоpлapы;
oo тaңдaу опepaтоpы;
Шapтты опepaтоpдың жaлпы жaзылу түpi:
1 жaғдaйы IFшapтTHENоpындaлaтын опepaция;
2 жaйдaйы IFшapтTHEN1 оpындaлaтын опepaция
ELSE2 оpындaлaтын опepaция.
Циклдық опepaтоpының жaлпы жaзылу түpi:
For to do оpындaлaтын опepaция;
Тaңдaу опepaтоpының жaлпы жaзылу түpi:
Case тұpaқты of тұpaқты : оpындaлaтын опepaция end;
1.3 Объектілі-бағытталған сандық әдістер
Сандық әдістердің математикалық қасиеттері оларды жүзеге асыру тәсіліне байланысты емес, сондықтан осы тараудың тақырыбы оларды объектілі-бағытталған тілде (процедуралық емес) бағдарламалау жолымен осы қасиеттерді жақсарту болып табылады. Объектілі-бағытталған тәсіл есептеу математикасында ғана емес, имитациялық модельдерге күрделі сандық әдістерді қолдану үшін де қажет болып саналады. Объектілі-бағытталған сандық әдістердің артықшылығы-имитациялық емес, математикалық мағынада күрделі жүйелерді модельдеу үшін де ыңғайлылығы.
Көптеген заманауи сандық әдістерді іске асыру мәселелерін жеке туындылардағы теңдеулерді шешер алдында тікбұрышты торға күрделі геометриялық пішін аймағын бейнелеу кезінде туындайтын проблемалармен салыстыруға болады (мұндай бейнелеу кезінде ол әдетте қиындатылады). Нақты (мысалы, физикалық) объектілерден математикалық абстракцияларға көшу кезінде, әдетте, моделдеуді жеңілдететін көптеген қасиеттері жоғалады. Бұл жұмыста теңдеулер жүйесінің матрицалары түріндегі математикалық үлгілерге көрсетпей, олардың бастапқы объектілік қойылымында есептерді шешу ұсынылады.
Бұл тараудың мақсаты есептеуіш математика тұрғысынан объектілі-бағытталған тәсілдің тиімділігін талдау болып табылады ("Имитациялық" қасиеттерді есепке алмағанда). Бұл ретте осы ғылымның әр түрлі ұғымдарын оңтайлы объектілік ұсыну мәселелері шешіледі, сондай-ақ осындай ұғымға жақсы келетін әр түрлі есептерді шешудің нақты сандық әдістері таңдалады.
Бұл жұмыс бағдарламалаудың объектілік тілдерінде төмен деңгейлі есептеулердің өнімділігін талдауға және оңтайландыруға үміткер емес; онда объектілердің артықшылықтарын едәуір жоғары деңгейде пайдалану тәсілдері зерттеледі. Ең алдымен, мұндай артықшылықтар көптеген математикалық есептерді матрицалық ұсынудан бас тарту есебінен пайда болады. Бұл ретте, әрине, мұндай көрініске негізделген көптеген сандық әдістерді (әрбір міндет үшін өз) іске асыру мәселелері туындайды. Нақты есептеу алгоритмдерін іздеуге бағытталған және бұл жұмыстардың көпшілігіне қарағанда - көптеген алгоритмдер үшін ортақ тілдік құрылымдарды ғана қарастыратын объектілі-бағытталған есептеулер бойынша жүзеге асырылады.
1.4 Есептеу объектілік интерпретациясы математикасы ұғымдарының
Есептеу моделінің элементі есептік алгоритмдер байланған семантикалық байланысқан параметрлердің жиынтығы болуы тиіс. Басқаша айтқанда, элемент объект ретінде түсіндіріледі (объектілі-бағытталған сандық әдістер мағынасында) және типтік математикалық объектілерге немесе пәндік саладағы типтік объектілерге сәйкес келеді. Төменде элементтің нақты пән саласына байланыстырылмай, әмбебап математикалық ұғымдарға сәйкестігі талқыланады. Таза математикалық элементтің мысалы-теңдеулер жүйесі, ал "семантикалық байланысқан параметрлер" біріктірілген элемент болып табылады, бұл жағдайда теңдеулер жүйесі жүйенің іздестірілетін айнымалылары мен коэффициенттері болып табылады. Егер жүйе коэффициенттері - тұрақты болып табылмаса, ал элемент параметрлері жүйенің шешіміне байланысты болса, онда бұл тәуелділік объект немесе объектілердің (функциялардың) жиынтығы ретінде де көрсетілуі мүмкін; алайда мұндай түсінік жоғарыда сипатталған және мұнда қаралатын матем Бір ғана теңдеулер жүйесінің негізінде, әдетте, бірнеше түрдегі есептер шешіледі. Мысалы, қарапайым дифференциалдық теңдеулер жүйесі үшін Кошидің есебі немесе шеттік есеп қойылуы мүмкін. Екі есепті шешу кезінде де объектілі-бағытталған сандық әдістерді ұсыну негізгі артықшылықтарының бірі болып табылатын бір элемент пайдаланылуы мүмкін. Сонымен қатар, егер шеттік тапсырманы шешу үшін ыңғайлы алгоритмдерді (мысалы, "ату" әдісі) қолданса, онда элементтің арнайы әдістерін жасау талап етілмейді - циклде Коши есебін шешуге жауап беретін әдісті қолдану жеткілікті және объектіге тікелей қатысы жоқ болып табылады.
Объектілі-бағытталған тәсілдің басқа артықшылығы әртүрлі түрдегі теңдеулерді ортақ шешудің қарапайымдылығымен байланысты. Мысалы, модельделетін жүйенің бір бөлігінде таза конвективті тасымал жүріп, гиперболалық теңдеуі, ал екіншісінде - диффузиялық тасымалдау және параболалық теңдеуі болуы мүмкін. Бұл тәсіл инвариантен есептің өлшеміне қатысты және дискретті-үздіксіз жүйелерді қарастыруға, яғни алгебралық және дифференциалдық теңдеулерді бірлесіп шешуге мүмкіндік береді.
Жоғарыда бірнеше әлсіз байланысқан жүйелерге бөлу арқылы теңдеу жүйесін бірлесіп шешетін элементтер арасындағы өзара әрекеттесу процесі сипатталған. Есептеу математикасында сондай-ақ кеңістіктік-бөлінген есептер бар, олар үшін кіші жүйелерге бөлу (олардың әрқайсысы бір торға сәйкес келеді) стандартты, жасанды аз және жалғыз мүмкін шешім тәсілі болып табылады. Мұндай есептерде тор үшін тораптар арасындағы байланыстардың локальдық шарты бар, соның арқасында осы торапты есептейтін элементке тек көрші тораптардың (шаблон тораптарының) аздаған санымен ғана өзара іс-қимыл жасау жеткілікті.
Төменде сан торының сан түйіні (оған сәйкес келетін теңдеулер жүйесі емес) есептік элемент ретінде көрінеді. Мұндай элементтердің арасындағы байланыстарға тор тораптарының координаттары бойынша ретке келтірілу қатынасы сәйкес келеді - құрылымдалмаған торларды пайдаланған жағдайда бұл тор тораптарының көршілес болу қатынасы.
Жоғарыда аталған байланыстардың локалдығы есептелетін тор тораптағы қандай да бір параметрдің мәні шаблон тораптарындағы мәндермен ғана анықталады, мысалы .
Сондықтан кез келген сандық әдіс түйінге, яғни элементке байланыстырылады және оны жүзеге асыру үшін бұл торап кеңістіктік-алыстатылған тораптар туралы ақпаратқа ие болуға міндетті емес. Бұл толығымен объектілік үлгіге сәйкес келеді. Егер сызықтық теңдеулер жүйесінің процедуралық-бағытталған тілінде жеке туындыдағы теңдеулердің аппроксимациясын тұжырымдасаңыз, онда келесілер шығады: алдымен жасанды түрде бұл жүйенің үлкен сиретілген матрицасы түрінде мәселе пайда болады, содан кейін бұл мәселе компьютер жадында осы матрицаны сақтау және өңдеудің қандай да бір арнайы әдістері арқылы еңсеріледі.
Сурет 2
Кеңістіктік тордың дәстүрлі және объектілік көрінісі арасындағы сәйкестік
Жеке туындылы теңдеулер жүйесін шешетін элементтер арасындағы өзара іс - қимыл мен тораптар арасындағы өзара іс-қимылы элементтер арасындағы өзара іс-қимылға қарағанда, принципті түрде өзгеше сипатқа ие. Жүйелер бір-бірімен тек жалпы параметрлер арқылы байланысты, олар бір жүйе үшін ізделетін, ал басқалары үшін коэффициенттерге немесе теңдеулердің оң бөліктеріне кіреді. Торлы тораптар шаблонның көрші тораптарына тиесілі тікелей параметрлерді үнемі пайдаланбауы тиіс. Қажетті ақпарат алу үшін көрші түйін үшін (оның параметрлерінің күрделі комбинациясы болуы мүмкін) оның әдісін жиі шақыруға өте ыңғайлы. Жалпы, есептеу алгоритмдері есептеу процесінде бір-бірін шақыратын бірнеше түрлі элементтердің әдістері бойынша бөлінуі мүмкін.
Торлы тораптардың уақыт бойынша өзара әрекеттесуі, сондай-ақ элементтер үшін жоғарыда сипатталған-келесі қабатқа тізбекті ауысулар жүйелерінен неғұрлым қарқынды. Алгоритмдердің тұрақтылығын зерттеу, егер барлық тор тораптары (кем дегенде, бір интегралдау аймағының барлық тораптары) уақыт бойынша бір қадаммен өзінің күйін жаңартса ғана мүмкін болады. Сондықтан элементтер-тораптар, әлсіз байланысқан жүйелерге қарағанда, уақыт бойынша кезек түрінде реттеле алмайды және оларды жаңарту кезектілігі проблемасы туындайды. Бұл проблеманы шешу үшін, әрине, арнайы объект - интегралдау аймағын құру керек - ол тор тораптарының келесі уақытша қабатқа (немесе келесі итерацияға) өту тәртібіне жауапты. Бірақ, ауысу тәртібінің өзі ғана емес, сонымен қатар көрші элементтер параметрлерінің қандай мәндерін (ауысқанға дейін немесе одан кейін) өз параметрлерін есептеу кезінде торлы торапты қолданады. Сондықтан әрбір торап оның жай-күйі осы уақытша қадамда (Итерация) жаңартылды ма деген ақпаратты сақтауға тиіс. Келтірілген ойлау тек үлестірілген параметрлері бар жүйелерге ғана емес, сондай-ақ элементтердің өзара әрекеттесуі тым қарқынды, олардың жай-күйін хаотикалық тәртіппен жаңартуға мүмкіндік беру үшін кез келген кіші жүйелерге де қатысты.
Осылайша, жеке туынды теңдеулерді шешу кезінде есептеу математикасының басқа бөлімдеріне қарағанда неғұрлым тиімді объектілі-бағытталған тәсіл қолданылады. Бұл негізгі есептік элементтердің (тор тораптардың) неғұрлым белсенді өзара іс - қимылында да, элементтерге және олардың параметрлеріне қосымша тағы бір, неғұрлым жоғары, объектілердің деңгейі-кіші жүйелер деңгейінің (интегралдау облыстары) пайда болуынан да көрінеді.
Орнықтылық пен монотондықтың қасиеттері таза математикалық болып табылады және схемаларды жүзеге асыруға қатысы жоқ; сондықтан объектілі-бағытталған тәсіл осы ұғымдарға ештеңе енгізбейді. Консервативтілік туралы дерлік айтуға болады (гиперболалық теңдеулер үшін мағынасы бар қасиет), алайда тәжірибе көрсеткендей, өзінің объектілі жүзеге асыру үшін қолайлы схемалар әдетте консервативті болып табылады. Бұл Объектілік схемалар физикаға жақын және олардың элементтерін іске асыратын нақты объектілерге сәйкес келеді.
Айқын емес схемаларды іске асыруға объектілі-бағытталған тәсілді қолдану біршама әсерлі көрінеді. Бір жағынан, кез-келген түрдегі теңдеулер үшін ең қарапайым объектілі-бағытталған сандық әдіс шын мәнінде жартылай, ал қарапайым ... жалғасы
1.1 Объектілі бағытталған бағдарламалау түсінігі
Алгоритм дегеніміз орындаушының рәсімін сипаттайтын нұсқаулар жиынтығы және іс-әрекеттің соңғы саны бойынша міндеттің нәтижесіне жету.
Объектілі-бағытталған бағдарламалау - бұл дамудың әдісі, объектінің тұжырымдамасына негізделген бағдарламалар. Нысан - бұл нақты әлемнің объектісіне арналған құрылым, оның мінез-құлқына сәйкес келеді. Шешілетін міндет және оларға жасалатын операциялар терминдерінде сипатталады, сондай-ақ бағдарлама мұндай тәсілде нысандардың жиынтығы және олардың арасындағы байланыстар болып табылады.
Объектілі-бағытталған бағдарламалау жүйелері - графикалық интерфейсті жасау процесін визуализациялау үшін қолданатын қосымшалар.
Бағдарламалық объектілердің өзара іс-қимылы және олардың өзгерістері негізінен бағдарламалық код көмегімен объектілі - бағытталған бағдарламалауда бағдарламалық кодты құру алгоритмдік бағдарламаларды пайдалануға негізделеді.
Класс-объектілі-бағытталған деректердің дерексіз түрінің түрі құру тәсілімен сипатталатын бағдарламалау. Басқа деректердің абстрактілі түрлері-метаклассалар, интерфейстер, құрылымдар, аударулар -- өзінің басқа да ерекшеліктерімен сипатталады. Түсінікпен қатар "объект" класс объектілі-бағытталған бағдарламалауда негізгі ұғым болып табылады.
Бағдарламалық қамтамасыз ету объектілері әдістерді пайдалана алу және жауап беру қасиеттеріне ие болып саналады.
Нысандар класстары - жасалатын оқиғалардың нысандарынын қасиеттері мен әдістерінің жиынтығын анықтайтын үлгілер болдым табылады.
Объектілердің негізгі кластары графикалық интерфейсті іске асыратын класстар болып табылады.
Бағдарламалаудағы объект - белгілі бір күйге және мінез-құлқыққа ие, виртуалды кеңістікте, қасиеттері (атрибуттары) мен олардағы әрекеттердің мәндерін көрсететін субъект. Әдетте, объектілерді қарастырған кезде, объектінің мінез-құлқын (үлгісі) анықтайтын бір немесе бірнеше классқа жататыны көрсетіледі. класс экземаляры және нысан терминдері өзара ауыстырылған.
Объектілер классының үлгісі бойынша құрылған объект класстың данасы болып табылады және осы класстыңң барлық қасиеттерінің, әдістері мен оқиғаларының жиынтығын мұра етеді. Класстың әрбір данасында осы класс үшін бірегей аты бар болады. Класстың әр түрлі даналары бірдей қасиеттерге ие, бірақ олардың мүліктік мәндері әртүрлі болуы мүмкін.
Әрбір объект белгілі бір бастапқы мәндер орнатуға болатын қасиеттерге ие болып табылады.
Нысандар сипатының мәндерін бағдарламалық кодта да өзгертуге болады:
Объект.Қасиеттері: = Мәндер Қасиеттері
Объектілі-бағытталған бағдарламалау әдісі-бұл функция немесе рәсім, қандай да бір классқа немесе объектіге тиесілі. Процедуралық бағдарламалау процедурасы сияқты, әдіс кейбір қандай да бір әрекетті орындау үшін операторлар саны бар және кіру жиыны бар дәлелдер болып саналады.
Қарапайым әдістер мен статикалық әдістер болып екіге бөлінеді (класс әдістері):
-қарапайым әдістер объектінің деректеріне (осы сыныптың нақты данасына) қол жеткізуге болады;
-статикалық әдістер объектінің деректеріне қол жеткізе алмайды және оларды пайдалану үшін даналарды (осы класты) жасаудың қажеті жоқ.
Бұл әдіс кейбір кластағы объектінің мәліметтеріне қатынауды жүзеге асыратын интерфейсті ұсынады, осылайша деректер инкапсуляциясын қамтамасыз етеді.
Қандай деңгейде қандай әдіс беретіндігіне байланысты:
-ашық (public) интерфейс - осы сыныптың барлық пайдаланушылары үшін жалпы интерфейс;
- қорғалған (protected) интерфейс - осы сыныптың барлық мұрагерлері үшін ішкі интерфейс;
-жабық (private) интерфейс-осы сыныптың ішінен ғана қол жетімді интерфейс.
Интерфейстердің мұндай бөлінуі өзгермейтін ашық интерфейсті сақтауға мүмкіндік береді, бірақ ішкі іске асыруды өзгертуге мүмкіндік жоқ.
Нысан әдісіне сондай-ақ нүктелік нотацияны пайдалана аласыз:
Объектілі-бағытталған бағдарламадағы оқиға-бұл хабарлама орындалатын кодтың әртүрлі нүктелерінде пайда болады.
Оқиғалар реакцияны қарастыру үшін арналған бағдарламалық қамтамасыз ету түрі болып табылады.
Қойылған тапсырманы шешу үшін оқиғаны өңдеушілер құрылады: бағдарлама ғана берілген күйге түседі, оқиға орын алады, хабарлама жіберіледі, ал өңдеуші бұл хабарды ұстайды. Жалпы жағдайда өңдеушіге ештеңе берілмейді немесе өңделетін оқиғаға бастамашылық жасаған (тудырған) объектіге сілтеме беріледі. Ерекше жағдайларда өңдеушіге кейбір айнымалылардың немесе сілтемелердің мәндері беріледі.
Ең қарапайым оқиға-басталуы немесе аяқталуы туралы хабарлайтын оқиға кейбір процедуралар. Оқиға, шын мәнінде, белгілі бір жағдайдың немесе объектінің өзгергенін хабарлайды. Әрбір пайдаланушы әрекеті оқиға тізбегін тудырған кезде пайдаланушы интерфейсінде ең көрнекі оқиғалар ұсынылған кейін ғана қосымшада өңделеді.
Оқиғаны пайдаланушы жасауы мүмкін (тінтуір басу немесе пернені басу) немесе басқа объектілердің әсерінің нәтижесінен пайда болуы мүмкін.
Оқиға реакциясы ретінде белгілі бір рәсім туындайды, ол
нысанның сипаттарын өзгерту немесе оның әдістерін шақыру болып табылады.
Графикалық интерфейс. Визуалды бағдарламалау графикалық формалар мен басқару элементтері негізінде әзірленген қосымшалардың интерфейсін жасауға мүмкіндік береді.
Визуалды бағдарламалау кезінде негізгі объектілер рөлінде формалар (Forms) болады. Нысан-басқару элементтері орналасқан терезе.
Басқару элементтері-командалық түймелер (CommandButton), ауыстырып қосқыштар немесе "құсбелгілер" (Checkbox), таңдау өрістері, немесе "радиокнопкалар" (OptionsButton), тізімдер (ListBox), мәтін өрістері (TextBox) және т. б.
Барлық нысандар тілдері (C#, Java, с++, Smalltalk, Visual Basic және т. б.) объектілі-бағытталған бағдарламалаудың үш негізгі принциптеріне жауап беру болып табылады;
1) Инкапсуляция
2) Мұралау
3) Полиморфизм
Инкапсуляция-код пен деректерді біріктіретін бағдарламалау механизмі, ол сырттан араласуды қоспағанда және дұрыс емес деректерді пайдалану. Объектілі-бағытталған тілде деректер мен код болуы мүмкін және мұнда олар мүлдем автономды қара жәшікке біріктірілген. Мұндай жәшіктің ішінде бәрі бар қажетті деректер мен код. Код пен деректер ұқсас жолмен байланысқан кезде, нысан құрылуда. Басқаша айтқанда, объект-бұл элемент инкапсуляцию.
Келесі принцип- мұрагерлік-тіл қабілеттілігіне қатысты қазіргі кластарды анықтау негізінде кластардың жаңа анықтамаларын құру бойынша мұрагерлік базалық (немесе ата-ана) класстың мінез-құлқын кеңейтуге мүмкіндік беретін, туынды ішкі класстағы негізгі функционалдық еншілес класс. Яғни мұрагерлік бір объект сатып алатын процесс болып табылады, ол басқа нысанның қасиеттері. Бұл өте маңызды процесс, өйткені ол қамтамасыз ететін принцип иерархиялық жіктеу принципі.
Полиморфизм - бұл бір атауды пайдалануға мүмкіндік беретін қасиет бірнеше техникалық әр түрлі міндеттерді шешу қасиетіне ие. Жалпы алғанда, полиморфизм тұжырымдамасы "бір интерфейстің көп әдістері". Бұл жақындар тобы үшін ортақ интерфейс жасауға болады дегенді білдіретін іс-әрекеттің мағынасы. Полиморфизмнің артықшылығы-бұл күрделілікті төмендетуге көмектеседі. Күрделі бағдарламаларды шешкенде пайдалану, бір интерфейс үшін бірыңғай класстық іс-қимыл жасалады. Жағдайға байланысты нақты әрекетті таңдау компиляторға жүктеледі.
1.2 Бағдарламалау тіліне сипаттама
Delphi - жоғapы дeңгeйлi бaғдapлaмaлaу тiлдepiнiң бipi жәнe дe бaғдapлaмaлaуды жaңaдaн үйpeнушiлepгe қолдaнуғa өтe тиiмдi болып тaбылaды. Ол компьютepмeн бacкapудың үлкeн бөлiгiн өзiнe aлaды. Әдeттeгi бaғдapлaмaлу жуйeлepiнe қapaғaндa Delphi "бaғдapлaмaлaушы оpнынa" бaғдapлaмa мәтiнiнiң мәндi бөлiгiн өзi жaзaды: oбъeктiлepдi cипaттaу, пpоцeдуpaлap тaқыpыптapы т.б. Қолдaнушығa қaлғaны бaғдapлaмaның жeкe әpeкeтiн aнықтaйтын кepeктi жолдapды тepу. Delphi-дeн жүктeлeтiн мыcaлдap apacындa мәтiндiк aқпapaттapды жәнe кecкiндepi бap дepeктep қоpын қapacтыpу жәнe өңдeу бaғдapлaмac бap.
Delphi-дe Пacкaль тiлiндe оpындaу мүмкiн жәнe мүмкiн eмec күpдeлi пpоцecтepдi бaғдapлaмaлaуғa болaды. Delphi-дiң нeгiзгi epeкшeлiгi - ондa қоcымшa құpудa компонeнттiк жәнe объeктiлiк тәciлдep пaйдaлaнылaды (Windows оpтacындa пaйдaлaнaтындықтaн, Delphi-дe бaғдapлaмaны көбiнece қоcымшa дeп aтaйды). Бұл пpогpaммaлaу тeхнологияcындa нaғыз peволюция жacaды дeугe болaды. Компонeттiк тәciлдiң мәнici жeңiл: әp қоcымшa кiтaпхaнacы бaғдapлaмaлaу оpтacындa дaйындaлып, apнaйы ic-әpeкeттepдi оpындaйтын компонeттep элeмeнттepiнeн жинaқтaлaды. Олap жeткiлiкciз болca, объeктiнi өңдeугe apнaлғaн үcтeмe пpогpaммa құpылaды. Delphi-дe қолдaнылaтын нeгiзгi кiтaпхaнaны визуaльды компонeттep кiтaпхaнacы (VCL, Visual Component Library) дeп aтaйды.
Delphi Windows жүйeciндe пpогpaммaлaудың ыңғaйлы құpaлы. Ондa көптeгeн опepaтоpлapды пaйдaлaнып пpогpaммa дaйындaу, пpогpaммa мәзipiн құpу, aнимaция, мультимeдия пpоцecтepiн ұйымдacиыpу, OLE тeхнологияcын пaйдaлaнып, бacқa офиcтiк қоcымшaлapды шaқыpу, олapмeн жұмыc icтeу жәнe т.б. ic-әpeкeттepдi оpындaу дa мүмкiн.
Delphi 7 оpтacын - дaйын жобaның әp түpлi бөлiмiн құpacтыpуғa жaуaп бepeтiн, apнaйы пpогpaммaлap жиынтығы кipeтiн, интeгpaлдaнғaн жобaлaу қaбықшacы peтiндe қapacтыpуғa болaды (1 cуpeт).
Delphi 7 бaғдapлaмaлaу тiлiн icкe қоcқaн кeздe нeгiзiгi 6 тepeзe пaйдa болaды (1 cуpeт):
Delphi қaтaң типтeлгeн тiл болып кeлeдi. Бұл өз кeзeгiндe типтepдi aнықтaғaндa aca нaзap aудapу қaжeттiгiн тaлaп eтeдi.
Мәлiмeттep типi пpогpaммa aйнымaлыcының нeмece элeмeнтiнiң қaбылдaй aлaтын мәндep жиынын aнықтaйды. Мәлiмeттepдiң типтepiнe бaйлaныcты олapмeн қaндaйдa бip ic-әpeкeттepдi жacaуғa болaды. Мыcaлы: нaқты типтi aйнымaлылapымeн кeз кeлгeн apифмeтикaлық aмaлдapды оpындaуғa болaды. Aл жолдық aйнымaлылapмeн ондaй опepaциялapды жүpгiзe aлмaймыз.
Delphi-дeгi бapлық типтep шapтты түpдe бec түpгe бөлiнeдi:
oo жaй;
oo құpлымды;
oo көpceткiштiк;
oo пpоцeдуpaлық;
oo вapиaнттық;
Жaй типтi мәлiмeттep
Жaй типтi мәлiмeттep - құpaмынa бacқa типтi мәлiмeттep кipмeйтiн типтep. Бұндaй типтepгe мынaлap жaтaды:
oo бүтiн (integer);
oo нaқты (real);
oo логикaлық (Boolean);
oo cимволдық (char);
Мұндaғы нaқты типтi мәлiмeттepдeн бacқacы peттiк (поpядковыe) типтi мәлiмeттepгe жaтaды.
Peттiк типтi мәлiмeттepгe бeлгiлi бip peттiлiкпeн оpнaлacқaн, aйыpмaшылығы бip бipлiк болып кeлeтiн, бүтiн caндap тiзбeгiн құpaйтын мәлiмeттep жaтaды.
Бүтiн типтi мәлiмeттep
Delphi тiлiндe бipнeшe бүтiн типтep қapacтыpылғaн. Олapдың iшiндe eң жиi пaйдaлaнылaтыны - Integer типi (1.1-кecтe).
1.1-кecтe
Мәлiмeттep типi
Мән apaлығы
Жaды фоpмaтындaғы caндық көpceткiштep
Integer
Cardinal
Shortint
Smallint
Longint
Int 64
Byte
Word
Longword
-2 147 483 648 -2 147 483 647
0-4 294 967 295
- 128 - 127
-32 768 - 32 767
-2 147 483 648 -2 147 483 647
-263 - 263 - 1
0 -255
0 -65 535
0 -4 294 967 295
32 бит
32 бит
8 бит
16 бит
32 бит
64 бит
8 бит
16 бит
32 бит
Нaқты типтi мәлiмeттep
Жиi пaйдaлaнылaтын нaқты тип Real. Бұндaй типтi мәлiмeттepгe кeз кeлгeн тaңбaлы, peтciз caндық мәлiмeттep жaтaды (1.2-кecтe).
1.2-кecтe
Мәлiмeттep типi
Мәндep apaлығы
Үтipдeн кeйiнгi цифpлap caны
Бaйттap caны
Real 48
Single
Double
Extended
Comp
Currency
Real
2.9*10-39-1.7*1038
1.5*10-45-3.4*1038
5.0*10-324-1.7*10308
3.6*10-4951-1.1*104932
-263+1-263-1
-922 327 203 685 477.5808 -
922 337 203 685 477.5807
5.0*10-324 -1.7*10308
11-12
7-8
15-16
19-20
19-20
19-20
15-16
6
4
8
10
8
8
8
Логикaлық типтi мәлiмeттep
Delphi-дe логикaлық мәндepдi cипaттaу үшiн Boolean типi пaйдaлaнылaды. Логикaлық типтi aйнымaлы тeк бip бaйт жaдыны aлып, тeк eкi мән ғaнa қaбылдaй aлaды: 1 нeмece 0. 1 дeгeн мән true (aқиқaт), aл 0 дeгeн мән false (жaлғaн) шaмaлapынa cйкec кeлeдi.
Қоcымшa үш тип бap:
oo ByteBool - peттiк caндық шaмa: 0 дeн 255 дeйiн.
oo WordBool - peттiк caнды шaмa: 0 дeн 65 535 дeйiн.
oo LongBool - peттiк caндық шaмa: 0 дeн 4 294 967 295 дeйiн.
Cимволдық типтi мәлiмeттep
Нeгiзгi cимволдық тип Char. Бұл тип ASCII кecтeciнiң cимволдapын caқтaу үшiн пaйдaлaнылaды. Кecтeдeгi әpбip cимвол 0 мeн 255 apaлығындaғы caндық мәнмeн көpceтiлeдi. Cондықтaн дa бұндaй типтi aйнымaлы бip бaйт жaдыны aлaды.
Құpлымдық типтi мәлiмeттep - әp түpлi типтi мәлiмeттepдeн құpaлaды.
Бұндaй типтi мәлiмeттepгe:
oo жиын (set);
oo мaccив (array);
oo жолдap (string);
oo жaзбaлap (record);
oo фaйлдap (file);
жaтaды.
Delphi 7 бaғдapлaмaлaу тiлiндe мынaдaй
oo шapтты опepaтоp;
oo циклдық опepaтоp;
oo eнгiзу-шығapу опepaтоpлapы;
oo тaңдaу опepaтоpы;
Шapтты опepaтоpдың жaлпы жaзылу түpi:
1 жaғдaйы IFшapтTHENоpындaлaтын опepaция;
2 жaйдaйы IFшapтTHEN1 оpындaлaтын опepaция
ELSE2 оpындaлaтын опepaция.
Циклдық опepaтоpының жaлпы жaзылу түpi:
For to do оpындaлaтын опepaция;
Тaңдaу опepaтоpының жaлпы жaзылу түpi:
Case тұpaқты of тұpaқты : оpындaлaтын опepaция end;
1.3 Объектілі-бағытталған сандық әдістер
Сандық әдістердің математикалық қасиеттері оларды жүзеге асыру тәсіліне байланысты емес, сондықтан осы тараудың тақырыбы оларды объектілі-бағытталған тілде (процедуралық емес) бағдарламалау жолымен осы қасиеттерді жақсарту болып табылады. Объектілі-бағытталған тәсіл есептеу математикасында ғана емес, имитациялық модельдерге күрделі сандық әдістерді қолдану үшін де қажет болып саналады. Объектілі-бағытталған сандық әдістердің артықшылығы-имитациялық емес, математикалық мағынада күрделі жүйелерді модельдеу үшін де ыңғайлылығы.
Көптеген заманауи сандық әдістерді іске асыру мәселелерін жеке туындылардағы теңдеулерді шешер алдында тікбұрышты торға күрделі геометриялық пішін аймағын бейнелеу кезінде туындайтын проблемалармен салыстыруға болады (мұндай бейнелеу кезінде ол әдетте қиындатылады). Нақты (мысалы, физикалық) объектілерден математикалық абстракцияларға көшу кезінде, әдетте, моделдеуді жеңілдететін көптеген қасиеттері жоғалады. Бұл жұмыста теңдеулер жүйесінің матрицалары түріндегі математикалық үлгілерге көрсетпей, олардың бастапқы объектілік қойылымында есептерді шешу ұсынылады.
Бұл тараудың мақсаты есептеуіш математика тұрғысынан объектілі-бағытталған тәсілдің тиімділігін талдау болып табылады ("Имитациялық" қасиеттерді есепке алмағанда). Бұл ретте осы ғылымның әр түрлі ұғымдарын оңтайлы объектілік ұсыну мәселелері шешіледі, сондай-ақ осындай ұғымға жақсы келетін әр түрлі есептерді шешудің нақты сандық әдістері таңдалады.
Бұл жұмыс бағдарламалаудың объектілік тілдерінде төмен деңгейлі есептеулердің өнімділігін талдауға және оңтайландыруға үміткер емес; онда объектілердің артықшылықтарын едәуір жоғары деңгейде пайдалану тәсілдері зерттеледі. Ең алдымен, мұндай артықшылықтар көптеген математикалық есептерді матрицалық ұсынудан бас тарту есебінен пайда болады. Бұл ретте, әрине, мұндай көрініске негізделген көптеген сандық әдістерді (әрбір міндет үшін өз) іске асыру мәселелері туындайды. Нақты есептеу алгоритмдерін іздеуге бағытталған және бұл жұмыстардың көпшілігіне қарағанда - көптеген алгоритмдер үшін ортақ тілдік құрылымдарды ғана қарастыратын объектілі-бағытталған есептеулер бойынша жүзеге асырылады.
1.4 Есептеу объектілік интерпретациясы математикасы ұғымдарының
Есептеу моделінің элементі есептік алгоритмдер байланған семантикалық байланысқан параметрлердің жиынтығы болуы тиіс. Басқаша айтқанда, элемент объект ретінде түсіндіріледі (объектілі-бағытталған сандық әдістер мағынасында) және типтік математикалық объектілерге немесе пәндік саладағы типтік объектілерге сәйкес келеді. Төменде элементтің нақты пән саласына байланыстырылмай, әмбебап математикалық ұғымдарға сәйкестігі талқыланады. Таза математикалық элементтің мысалы-теңдеулер жүйесі, ал "семантикалық байланысқан параметрлер" біріктірілген элемент болып табылады, бұл жағдайда теңдеулер жүйесі жүйенің іздестірілетін айнымалылары мен коэффициенттері болып табылады. Егер жүйе коэффициенттері - тұрақты болып табылмаса, ал элемент параметрлері жүйенің шешіміне байланысты болса, онда бұл тәуелділік объект немесе объектілердің (функциялардың) жиынтығы ретінде де көрсетілуі мүмкін; алайда мұндай түсінік жоғарыда сипатталған және мұнда қаралатын матем Бір ғана теңдеулер жүйесінің негізінде, әдетте, бірнеше түрдегі есептер шешіледі. Мысалы, қарапайым дифференциалдық теңдеулер жүйесі үшін Кошидің есебі немесе шеттік есеп қойылуы мүмкін. Екі есепті шешу кезінде де объектілі-бағытталған сандық әдістерді ұсыну негізгі артықшылықтарының бірі болып табылатын бір элемент пайдаланылуы мүмкін. Сонымен қатар, егер шеттік тапсырманы шешу үшін ыңғайлы алгоритмдерді (мысалы, "ату" әдісі) қолданса, онда элементтің арнайы әдістерін жасау талап етілмейді - циклде Коши есебін шешуге жауап беретін әдісті қолдану жеткілікті және объектіге тікелей қатысы жоқ болып табылады.
Объектілі-бағытталған тәсілдің басқа артықшылығы әртүрлі түрдегі теңдеулерді ортақ шешудің қарапайымдылығымен байланысты. Мысалы, модельделетін жүйенің бір бөлігінде таза конвективті тасымал жүріп, гиперболалық теңдеуі, ал екіншісінде - диффузиялық тасымалдау және параболалық теңдеуі болуы мүмкін. Бұл тәсіл инвариантен есептің өлшеміне қатысты және дискретті-үздіксіз жүйелерді қарастыруға, яғни алгебралық және дифференциалдық теңдеулерді бірлесіп шешуге мүмкіндік береді.
Жоғарыда бірнеше әлсіз байланысқан жүйелерге бөлу арқылы теңдеу жүйесін бірлесіп шешетін элементтер арасындағы өзара әрекеттесу процесі сипатталған. Есептеу математикасында сондай-ақ кеңістіктік-бөлінген есептер бар, олар үшін кіші жүйелерге бөлу (олардың әрқайсысы бір торға сәйкес келеді) стандартты, жасанды аз және жалғыз мүмкін шешім тәсілі болып табылады. Мұндай есептерде тор үшін тораптар арасындағы байланыстардың локальдық шарты бар, соның арқасында осы торапты есептейтін элементке тек көрші тораптардың (шаблон тораптарының) аздаған санымен ғана өзара іс-қимыл жасау жеткілікті.
Төменде сан торының сан түйіні (оған сәйкес келетін теңдеулер жүйесі емес) есептік элемент ретінде көрінеді. Мұндай элементтердің арасындағы байланыстарға тор тораптарының координаттары бойынша ретке келтірілу қатынасы сәйкес келеді - құрылымдалмаған торларды пайдаланған жағдайда бұл тор тораптарының көршілес болу қатынасы.
Жоғарыда аталған байланыстардың локалдығы есептелетін тор тораптағы қандай да бір параметрдің мәні шаблон тораптарындағы мәндермен ғана анықталады, мысалы .
Сондықтан кез келген сандық әдіс түйінге, яғни элементке байланыстырылады және оны жүзеге асыру үшін бұл торап кеңістіктік-алыстатылған тораптар туралы ақпаратқа ие болуға міндетті емес. Бұл толығымен объектілік үлгіге сәйкес келеді. Егер сызықтық теңдеулер жүйесінің процедуралық-бағытталған тілінде жеке туындыдағы теңдеулердің аппроксимациясын тұжырымдасаңыз, онда келесілер шығады: алдымен жасанды түрде бұл жүйенің үлкен сиретілген матрицасы түрінде мәселе пайда болады, содан кейін бұл мәселе компьютер жадында осы матрицаны сақтау және өңдеудің қандай да бір арнайы әдістері арқылы еңсеріледі.
Сурет 2
Кеңістіктік тордың дәстүрлі және объектілік көрінісі арасындағы сәйкестік
Жеке туындылы теңдеулер жүйесін шешетін элементтер арасындағы өзара іс - қимыл мен тораптар арасындағы өзара іс-қимылы элементтер арасындағы өзара іс-қимылға қарағанда, принципті түрде өзгеше сипатқа ие. Жүйелер бір-бірімен тек жалпы параметрлер арқылы байланысты, олар бір жүйе үшін ізделетін, ал басқалары үшін коэффициенттерге немесе теңдеулердің оң бөліктеріне кіреді. Торлы тораптар шаблонның көрші тораптарына тиесілі тікелей параметрлерді үнемі пайдаланбауы тиіс. Қажетті ақпарат алу үшін көрші түйін үшін (оның параметрлерінің күрделі комбинациясы болуы мүмкін) оның әдісін жиі шақыруға өте ыңғайлы. Жалпы, есептеу алгоритмдері есептеу процесінде бір-бірін шақыратын бірнеше түрлі элементтердің әдістері бойынша бөлінуі мүмкін.
Торлы тораптардың уақыт бойынша өзара әрекеттесуі, сондай-ақ элементтер үшін жоғарыда сипатталған-келесі қабатқа тізбекті ауысулар жүйелерінен неғұрлым қарқынды. Алгоритмдердің тұрақтылығын зерттеу, егер барлық тор тораптары (кем дегенде, бір интегралдау аймағының барлық тораптары) уақыт бойынша бір қадаммен өзінің күйін жаңартса ғана мүмкін болады. Сондықтан элементтер-тораптар, әлсіз байланысқан жүйелерге қарағанда, уақыт бойынша кезек түрінде реттеле алмайды және оларды жаңарту кезектілігі проблемасы туындайды. Бұл проблеманы шешу үшін, әрине, арнайы объект - интегралдау аймағын құру керек - ол тор тораптарының келесі уақытша қабатқа (немесе келесі итерацияға) өту тәртібіне жауапты. Бірақ, ауысу тәртібінің өзі ғана емес, сонымен қатар көрші элементтер параметрлерінің қандай мәндерін (ауысқанға дейін немесе одан кейін) өз параметрлерін есептеу кезінде торлы торапты қолданады. Сондықтан әрбір торап оның жай-күйі осы уақытша қадамда (Итерация) жаңартылды ма деген ақпаратты сақтауға тиіс. Келтірілген ойлау тек үлестірілген параметрлері бар жүйелерге ғана емес, сондай-ақ элементтердің өзара әрекеттесуі тым қарқынды, олардың жай-күйін хаотикалық тәртіппен жаңартуға мүмкіндік беру үшін кез келген кіші жүйелерге де қатысты.
Осылайша, жеке туынды теңдеулерді шешу кезінде есептеу математикасының басқа бөлімдеріне қарағанда неғұрлым тиімді объектілі-бағытталған тәсіл қолданылады. Бұл негізгі есептік элементтердің (тор тораптардың) неғұрлым белсенді өзара іс - қимылында да, элементтерге және олардың параметрлеріне қосымша тағы бір, неғұрлым жоғары, объектілердің деңгейі-кіші жүйелер деңгейінің (интегралдау облыстары) пайда болуынан да көрінеді.
Орнықтылық пен монотондықтың қасиеттері таза математикалық болып табылады және схемаларды жүзеге асыруға қатысы жоқ; сондықтан объектілі-бағытталған тәсіл осы ұғымдарға ештеңе енгізбейді. Консервативтілік туралы дерлік айтуға болады (гиперболалық теңдеулер үшін мағынасы бар қасиет), алайда тәжірибе көрсеткендей, өзінің объектілі жүзеге асыру үшін қолайлы схемалар әдетте консервативті болып табылады. Бұл Объектілік схемалар физикаға жақын және олардың элементтерін іске асыратын нақты объектілерге сәйкес келеді.
Айқын емес схемаларды іске асыруға объектілі-бағытталған тәсілді қолдану біршама әсерлі көрінеді. Бір жағынан, кез-келген түрдегі теңдеулер үшін ең қарапайым объектілі-бағытталған сандық әдіс шын мәнінде жартылай, ал қарапайым ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz