Программалар коды терезесі
"Orda" жоғары колледжі
Жалпы білімдік пәндер циклдық комиссиясы
Пән атауы: Алгоритмдеу және бағдарламалау
КУРСТЫҚ ЖОБА
Тақырыбы: Delphi объектілік-бағдарланған бағдарламалау ортасында Қызылорда қаласының көрікті жерлері мен ескерткіштері мәліметтер базасын құру
Дайындаған ЕТ-9-18Г оқу тобының студенті
___________________________________ ____
Қабылдаған оқытушы Г.Тажикова
Қызылорда, 2021
"Orda" жоғары колледжі
Бекітемін
Жалпы білімдік пәндер
циклдық комиссиясы
________М.А.Абдирауыкова
_________________2021 ж
Курстық жобаны орындауға арналған
ТАПСЫРМА
Студент:___________________________________ ___________________
Мамандығы:1304000 - Есептеуіш техника және бағдарламалық қамтамасыз ету
Тобы: ЕТ-9-18Г
Жобаның тақырыбы: Delphi объектілік-бағдарланған бағдарламалау ортасында Қызылорда қаласының көрікті жерлері мен ескерткіштері мәліметтер базасын құру
Жобаның мазмұны:
Delphi ортасында тестілеу бағдарламасын құру жобасы
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Тест бағдарламасын құру кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ..
Тестілеу процесінің кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ...
Delphi ортасымен танысу ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
Delphi бағдарламасының құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi бағдарламалау тілінің негізгі түсініктері ... ... ... ... ... ... ... ...
Кластың құрушылары ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi ортасының меню жолы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Delphi ортасының компоненттер тақтасы ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның құрылымдық сипаттамасы ... ... ... ... ... ... ... ... ... ...
Объектілер тармағының терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Программалар коды терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Тест бағдарламаның блок-схема алгоритмін өңдеу ... ... ... ... ... ...
Тестілеу жүйесін құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Тестілеу бағдарламасының орындалуы ... ... ... ... ... ... .. ... ... ... ... ...
Жобаның техника-экономикалық негіздемесі ... ... ... ... ... ... ... ... ...
Жұмыстың қысқаша сипаттамасы және оның тағайындалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның өнімді құрудағы шығындарды анықтау ... ... ... ... ..
Тапсырманың берілген күні __ ______________ 20__ жыл.
Жобаның орындалу мерзімі ___ ____________ 20__ жыл
Жобаның жетекшісі __________________________________
Жалпы білімдік пәндер циклдық комиссиясында қаралып, мақұлданды
Хаттама № _____ ___ _____________ 20__ жыл
Бірлестік жетекшісі:______________________М.А .Абдирауыкова
Delphi ортасында тестілеу бағдарламасын құру жобасы
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Тест бағдарламасын құру кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ..
Тестілеу процесінің кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ...
Delphi ортасымен танысу ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
Delphi бағдарламасының құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi бағдарламалау тілінің негізгі түсініктері ... ... ... ... ... ... ... ...
Кластың құрушылары ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi ортасының меню жолы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Delphi ортасының компоненттер тақтасы ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның құрылымдық сипаттамасы ... ... ... ... ... ... ... ... ... ...
Объектілер тармағының терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Программалар коды терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Тест бағдарламаның блок-схема алгоритмін өңдеу ... ... ... ... ... ...
Тестілеу жүйесін құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Тестілеу бағдарламасының орындалуы ... ... ... ... ... ... .. ... ... ... ... ...
Жобаның техника-экономикалық негіздемесі ... ... ... ... ... ... ... ... ...
Жұмыстың қысқаша сипаттамасы және оның тағайындалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның өнімді құрудағы шығындарды анықтау ... ... ... ... ..
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Қолданылған әдебиеттер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ...
Қосымшалар ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... .
Қазіргі кезде дербес компьютерлерді пайдаланушылар арасында Windows операциялық жүйелері жанұясы танымал және бағдарлама жасауға қызыққандар, осы жүйеде жұмыс жасайтын бағдарламалар жазуға ынталанады. Есептеуіш техниканың дамуы, бағдарламаны қамтамасыз жасау құралдарына деген эффективті қажеттілік, бағдарламалау тілдерінің пайда болуына әкелді, олардың ішінде келесілерді Borland Delphi және Microsoft Visual Basic көрсетуге болады. Тез жасау жүйесінің негізіне көрнекі жобалау технологиясы және оқиғалы бағдарламалау жатады. Оның мәні жасау ортасы бағдарламаның генерация кодының үлкен бөлігін алады және бағдарламалаушыға диалогтық терезелермен және жағдайларды өңдеу функциясын құрастыру жұмыстарын қалдырады.
Borland Delphi қазіргі уақытта бағдарламаудың ең танымал тілдерінің бірі болып саналады. Borland Delphi Windows - қа кәсіби деңгейлі интерфейсі бар қолданбалы бағдарлама жасауға мүмкіндік береді. Бұл дипломдық жобада қолданушының қосымша модульдік жобасын шешуде Windows ортасының мүмкіндіктері қарастырылған.
Осы жобада программаларды тестілеу және жөңдеу бағдарламасын Borland Delphi бағдарламалау ортасының мүмкіндіктері арқылы жүзеге асады.
Жобаның мақсаты - Borland Delphi интерактивті жобалау ортасында мектепте программаны тестілеу бағдарламасын құру болып табылады. Тест оқушы білімінің деңгейін ғана анықтап қана қоймайды, оның ойын жүйелеп, жылдам есептеуіне, логикалық ойлау, есептеу дағдыларының қалыптасуына, тез шешім қабылдау қасиетінің дамуына тиімді әсер етеді. Тест оқушының білім дәрежесін қандай екендігін анықтайтын және ол білімді түрлі жағдайларда қолдана білуін тексеруге мүмкіндік беретін тиімді жол.
Жобаның міндеттері:
oo Тапсырманың тұжырымдамасы мен жауаптары әрі қысқа, әрі анық болуы қажет;
oo Бір сұрақтың 3-5 түрлі жауабы болуы тиіс. Олардың ішінде біреуі ғана дұрыс болады, басқалары жауабына жақын бірақ дұрыс болмауы шарт;
oo Сұрақтарға жауап беру уақыты қатаң сақталуы тиіс;
oo Нұсқалар сұралушыларға бірдей дәрежеде түсіндіріледі, әдетте ол жазба не электрондық құжат түрінде болады;
oo Бірде-бір сыналушыға басқалармен салыстырғанда ешқандай артықшылық берілмейді;
oo Тестен сынаудың нәтижелерін бағалау алдын-ала жасалған жүйе арқылы барлығына бірдей қолданылады;
oo Тестке берілген нұсқау және әрбір тұжырымдаманың мағынасы сыналушылардың әрқайсысына түсінікті болуы керек;
oo Әрбір сұрақ жауабына берілетін ұпай бірдей (көбіне 1 ұпай) болуы керек;
oo Тест қолданудың жоспарланған жүйесі болуы керек.
І - деңгей (міндетті деңгей) 3 қанағаттанарлық бағасы қойылады;
ІІ - деңгей (міндетті деңгейден жоғары) 4 жақсы бағасы қойылады;
ІІІ - деңгей (эвристикалық деңгей) 5 өте жақсы бағасы қойылады.
Жоба төрт - бөлімнен тұрады: Бірінші бөлімде - тест бағдарламасы, яғни, тест бағдарламасын құру кезеңдері; тестілеу процесінің кезеңдері; Delphi ортасымен танысу туралы жалпы түсінік беріледі. Екінші бөлімде - мектепке (мысалға, информатика пәнінен) арналған тестілеу программасы келтіріледі, яғни, шығару жолдары көрсетіледі. Үшінші бөлімде -жобаның техникалық-экономикалық көрсеткіші келтірілсе,ал төртінші бөлімде -еңбекті қорғаузаңдары, компьютермен жұмыс кезіндегі қауіпсіздік техникасы қарастыралады.
1. Тест бағдарламасы туралы жалпы түсінік
Тестілеу (test, ағылшын сөзі сынау деген мағына береді) дегеніміз программаның немесе оның жеке бөліктерінің дұрыс жұмыс істейтіндігін сынау, тексеру.
Жөндеу және тестілеу бұлар бірінен бірі айқын ажыратылған және біріне- бірі ұқсамайтын екі кезең:
* жөндеу кезінде синтаксистік қателіктердің және кодтаудың айқын қателіктерін төңіректеу және жою орындалады.
* тестілеу процесі кезінде айқын қателіктері жоқ программаның жұмыс істеу қабілеттілігі тексеріледі.
Тестілеу қателіктің бар екендігін тағайындайды, ал жөндеу программаның дұрыс жұмыс істемеу себептерін анықтайды.
Қазіргі заманғы программалау жөндеу жұмысы жөндеуші деп аталатын арнай программалық құралды пайдалану жолымен жүзеге асырылады. Бұл құралдар программаның ішкі жұмысын зерттеуге мүмкіндік береді.
Жөндеу программасы әдетте мына төмендегідей мүмкіндіктер береді:
* әрбір командадан соң, тоқтай отырып, программаны қадамдап орындау;
* кез-келген айнымалының ағымдағы мәнәі қарау немесе кез-келген өрнектің, оның ішінде стандартты функцияларды пайдаланып мәнін табу қажеттілігіне қарай айнымалының жаңа мәнін пайдаланып орындау;
* программада тексеру нұктелерін орнату, яғни аралық нәтижелерді бағалау үшін программа уақытша өз жұмысын тоқтататын нүктелерді тағайындау т.б.
Программаны жөндеуде мыналарды есте сақтау маңызды;
* жөндеу процесінің басында қарапайым тестілік деректерді пайдалану;
* пайда болатын қиындықтарды айқын ажыратып және қатаң түрде кезегімен жою;
* қателіктің есебі компьютерде деп есептемеу керек.
Программа қаншалықты өте мұқият жөнделсе де оның жұмысқа жарамдылығын тағайындаудың шешуші кезеңі программаның тестер жүйесінде тікелей орындалуын тексеру болып табылады.
Егер программа таңдалынып алынған тестілік деректер жүйесінен өткенде барлық жағдайда дұрыс нәтижелер беретін болса, онда программаны шартты түрде дұрыс деп есептеуге болады.
Тестілеу тәсілін жүзеге асыру үшін тестердің эталондық нәтижелері алдын-ала даярланған немесе белгілі болуы тиіс.
Эталондық нәтижелерді прогрмманың компьютерде орындалу нәтижесін алғаннан кейін емес, керісінше алғанға дейін есептеп шығарып қою керек.
Тестілік деректер қателіктердің пайда болуының барлық мүмкін болатын шарттарын тексеруді қамтамасыз ететін болуы тиіс, атап айтқанда:
* алгоритмнің әрбір тармағының сыннан өтуі;
* кезектегі тестіден өткізу алдыңғы өткізудегі тексерілмегендердің тексерілуі;
* программаның жалпы жұмыс істейтіндігін тексеру үшін бірінші тестің мүмкіндігінше қарапайым болуы;
* есептеу көлемін қысқарту үшін тестідегі арифметикалық операциялардың шегіне дейін ықшамдалуы;
* тізбектер элементі санының, итерациялық есептеулер үшін алынған дәлдіктің, тестілік мысалдар цикліндегі интерация санының есептеулер көлемін қысқарту тұрғысынан берілуі;
* есептеулерді азайтудың тексеру сенімділігін төмендетпеуі;
* тестілік деректер жиынын кездейсоқ таңдау күткен нәтижелерді қолмен орындау тәсілімен анықтауда қиындықтарға алып келетіндіктен және көптеген жағдайлар тексерілмей қалатындықтан тестілеудің белгілі мақсатқа бағытталған және жүйеленген болуы;
* тестілік деректерді күрделендіруде түсідің біртіндеп жүргізілуі.
0.1 Тест бағдарламасын құру кезеңдері
Соңғы кезде тестілеу (сынақтау) маманды жұмысқа алу кезінде, мекеме қызметкерлерінің білім дәрежесін анықтауда және т.б. салаларда кеңінен қолдануда. Тестілеу жұмыстарын жүргізуде компьютерді пайдалану негізгі орын алып келеді.
Қазіргі кезде компьютерді пайдаланып, студенттер мен оқушыларды семестр, тоқсан ішінде бірнеше рет тестілеу- олардың ағымдық білімін бағалаудың негізгі әдістерінің бірі. Өзіндік жұмыстар, консультациялар ұйымдастыру және тест тапсырмаларын орындау студенттердің білім деңгейін көрсететіні сөзсіз.
Тест тапсырмаларын құру барысында мынадай әдістер бар:
oo таңдау;
oo сәйкестендіру;
oo толықтыру;
oo дұрыс тізбек құру.
Бұл әдістер ортақ қасиет - олар студенттердің есте сақтау, ойлау икемділігі, тапсырма орындаудың түрлі тәсілдерін меңгеру қабілеттілігі т.с.с. қасиеттерін танып - білуге бағытталған. Тест тапсырмалары көп деңгейлі және көп нұсқалы болып құрылуы да мүмкін.
0.2 Тестілеу процесінің кезеңдері
Тестілеу процесін үш кезеңге бөлуге болады.
1.Қалыпты жағдайда тексеру. Программалардың жұмыс істеуінің нақты жағдайына тән алғашқы деректер негізінде тестілеу болжанады.
2.Экстремальды жағдайда тексеру. Бұл жерде тестілік деректер дегеніміз алғашқы деректер жиынының шекаралық мәндері. Бұл жиын программа дұрыс жұмыс істеуге тиісті алғашқы деректерден тұрады. Өте кіші немесе өте үлкен сандар және деректердің болмауы Мұндағый деректердің типтік мысалдары болып табылады.
Барлық программалар қандайда бір шектеулі алғашқы деректер жиынын өңдеуде есептеліп жасақталатындығы белгілі. Сондықтан мына төмендегі сұрақтарға жауап алу маңызды:
1. Айнымалының теріс және нолдік мәндерін өңдеуге арналмаған программаға қандай да бір кеткен қателіктің себептерінен дәл сол мәндерді өңдеуге тура келсе не болар еді?
2. Егер массив элементтері оны хабарлауда көрсетілген саннан асып кетсе, онда массивтермен жұмыс істеп жатқан программа өзін қалай ұстар еді?
3. Егер өңделіп жатқан сан өте кіші немесе өте үлкен болса, онда не болар еді?
Программа дұрыс емес деректерді дұрыс деректер ретінде қабылдап, дұрыс нәтижеге ұқсас, бірақ дұрыс емес нәтиже беретін жағдайлар ең жаман жағдайлар болып есептеледі.
Программа өзі дұрыс өңдей алмайтын кез келген деректерді теріске шығаратын болу тиіс.
0.3 Delphi ортасымен танысу
Бағдарламалауға деген қызығушылық күн сайын өсуде. Бұл күнделікті өмірге ақпараттық технологиялардың енуімен және дамуымен байланысты. Егер де адам компьютермен жұмыс жасаса, онда ол адамда ерте ме, кеш пе ынта, кейбір кездері бағдарламаларды үйрену қажеттілігі туындайды.
Қазіргі кезде дербес компьютерлерді пайдаланушылар арасында Windows операциялық жүйелері жанұясы танымал, және бағдарлама жасауға қызыққандар, осы жүйеде жұмыс жасайтын бағдарламалар жазуға ынталанады. Есептеуіш техниканың дамуы, бағдарламаны қамтамасыз жасау құралдарына деген эффективті қажеттілік, бағдарламалау жүйесінің пайда болуына әкелді, олардың ішінде келесілерді Borland Delphi және Microsoft Visual Basic көрсетуге болады. Тез жасау жүйесінің негізіне көрнекі жобалау технологиясы және оқиғалы бағдарламалау жатады, оның мәнін жасау ортасы бағдарламаның генерация кодының үлкен бөлігін алады және бағдарламалаушыға диалогтық терезелермен және жағдайларды өңдеу функциясын құрастыру жұмыстарын қалдырады.
Delphi - бұл Windows операция жүйесіндегі жұмыстарға бағытталған бағдарламаларды жасау ортасы. Delphi-де бағдарламалар, қазіргі көрнекі жобалау технологиялары негізінде құрылады, ол өз кезегінде бағдарламалаудың объекті-бағдарлану ойына базаланады. Delphi- де бағдарламалар Object Pascal тілінде жазылады және ол Turbo Pascal тілінің ізбасары және дамытушысы болып табылады. Delphi және Object Pascal ұзақ эволюцияның қорытындысы және қазіргі кезде ол, ең жаңа компьютерлік технологиялары бар өнім болып табылады. Бөліп айтқанда, Delphi көмегімен, консольдық тіркемелерден бастап және мәліметтер қорымен Internet үшін тіркемелерін аяқтайтын, әртүрлі түрдегі бағдарламаларды құруға болады.
DELPHI тіліндегі қолданбалы программалар немесе қосымшалар IDE (Integrated Development Environment)- дамып отыратын құрылымдық ортада орындалады. IDE ортасы көптерезелік жүйе деп саналады және оның жүктелгеннен кейінгі көрінісі төмендегі түрде болуы мүмкін (1.1-сурет).
Сурет1.1 IDE терезесі
Интерфейстің құрамына 4 терезе кіреді
1.Негізгі терезе (Projegt1.dpr);
2.Объектілер бақылаушысының терезесі (Object Inspector);
3.Форманың құрастырушының терезесі (Form1.dfm);
4.Программа кодының терезесі(Unit1.pas).
DELPHI бірқұжаттық орта, яғни бір мезгілде тек қана бір қолданбалы программамен жұмыс атқаруға болады. Программа жобасының атауы негізгі терезесінің жоғарғы қатарында көрсетіледі.
Форманың терезесінен Unit кодына жөне одан кері өту F12 пернесі арқылы орындалады.
1.5Delphi бағдарламасының құрылымы
Delphi ортасы - программист жұмысының өте жоғары тиімділігін қамтамасыз ететін орта.
Delphi ортасын шақырғаннан кейін ортаның жұмысын басқаратын алты негізгі терезе шығады.
1. Негізгі терезе(Delphi7);
2. Объектілер тармағының терезесі(Form 1);
3. Объектілер инспекторының терезесі немесе объектілер қасиеттері редакторының терезесі (Object Inspector);
4. Броузер (көру) терезесі(Object TreeView);
5. Программа кодының терезесі(Unit 1.pas);
Программа кодының терезесін көру үшін Ғ12 пернесін басу жеткілікті. Delphi - ді алаш шақырғаннан кейін Delphi терезесі барлық терезенің үстіне шығады. Осы терезенің көмегімен Inprise коорпороциясының WEB - беттеріне кіругемүмкіндік туады.
Негізгі терезе. Негізгі терезе құрылатын программаның жобаларын басқаратын негізгі қызметті атқарады. Бұл терезе экранда барлық уақытта болады және ең жоғарғы бөлігінде орналасады. Негізгі терезеде Delphi ортасының бас менюі, пиктографиялық командалық батырмалар жиынтығы, компоненттер палитрасы орналасқан.
Бас меню жобаны басқаруға арналған барлық қажетті командалардан тұрады. Бас менюдің барлық опциялары екінші деңгейде ашылатын опциялар тақырыбын қамтиды.
Бас терезенің барлық элементтері арнайы панельдерде орналасқан, оның сол жақ бөлігінде басқару батырмалары бар. Бас менюден басқа кез келген панельді терезеден алып тастауға болады.
Панельде көрінетін батырмалардың құрамын өзгерту үшін оған курсорды келтіріп, тышқанның сол жақ батырмасын басу жеткілікті. Бұдан кейін ашылған көмекші меню терезесінде барлық панельдердің аттары келтірілген және олардың статусы көрсетілген (жалаушалар). Олардың ішінен Customize - ды (настройка, баптау) таңдағаннан кейін баптау терезесі пайда болады.. енді қажет емес батырмаларды алып тастауға да болады, Commands терезесіндегі тізімнен қажетті батырмаларды таңдап, оны экранға тасып апаруға болады.
Негізгі терезеге жиі пайдаланылатын пиктограммаларды орналасырған ыңғайлы:Project\Syntax Chek - программа командаларының синтаксисін тексеру; ViewDebug WindowsWatches - отклаткалық режимді бақылау терезесіне кіру жжәне т.б.;
Delphi - дегі кез келген программа жоба файлынан (файлдың заты .dpr) және бір немесе бірнеше модульдерден (заты .pas) тұрады. Әрбір осындай файлдар Object Pascal - дың программалық бірлігін сипаттайды.
6
3
5
2
4
1
Сурет1.2 Delphi бағдарламасының құрылымы
1.6 Delphi бағдарламалау тілінің негізгі түсініктері
Кластар - бұл күрделі программаларды жеңілдету және оның сапасын арттыру үшін ойластырылған программистердің ерекше өнер табысы. Кластардыңнегізінде үш іргелі принцип жатыр, олар инкапсуляция, мұрагерлік және полиморфизм.
Класс - өрістер, әдістер мен қасиеттер деп аталатынүш маңызды ұғымның бірлігін береді. Осы үш маңызды ұғымды бір бүтінге біріктіру инкапсуляция деп аталады. Көпшілік жағдайда, инкапсуляция класты программаның қалған бөліктерінен оқшаулауға мүмкіндік береді, нақты бір есепті шешудің өзіндік жеткіліктілігін арттырады. Нәтижесінде класс қандай да бір басқарушылықты арттырады. Мысалы, Tform класы Windows - терезесін құруға қажеттілерден, Tmemo класы - толық басқарылатын мәтіндік редактор жұмысын, Ttimer класы программа жұмысын таймермен қамтамасыз ететін құралдарды қамтиды (немесе инкапсуляциялайды).
Сонымен инкапсуляция дайын программалық жабдықтаумен жұмыс істеуге арналған қуатты құрал болып табылады. Delphi жүйесінің кластар кітапханасы - бұл программа құруға арналған Borland фирмасының программистері құрған кірпіштер жиынтығы екен.
Кез келген класс басқа кластан туындайды. Ол үшін оны хабарлағанда ата- ана кластың аты көрсетіледі:
TchildClass = class (TParentClass)
Туындаған кластан автоматты түрде өзінің ата- анасының өрісі, әдісі және қасиеті шығады және олардың жаңамен толықтырылуы мүмкін. Сөйтіп, мұрагерлік принципі күрделі кластарды кезеңмен құруды және өзінің жеке кластар кітапханасын жасауға мүмкіндік береді.
Object Pascal - дың барлық кластары жалғыз ата - ана ТObject класынан туындаған. Бұл кластың өрісі және қасиеттері жоқ, бірақ өзіне кез - келген объектілердің барлық өмірлік қасиеттерін қамтитын жалпы тағайындалудың әдістерін қамтиды. Программист ТObject класы ата - ана болмаитын класс құра алмайды. Оған төмендегідей бейнелеулер тән:
TaClass = Class (ТObject )
TaClass = Class
Мұрагерлік принципі ТObject класынан оның ұрпақтарына қарай дами отырып, біртіндеп кеңейетін тармақтар кластар құруға әкеледі. әрбір ұрпақ өзінің ата - анасының мүмкіндіктерін толықтырып, оны өзінің ұрпақтарына беріп отырады.
Delphi - дегі кластар тармағы қарайтырайық. TPersistent класы өзінің Тobject ата- анасының мүмкіндіктерін кеңейтеді: ол мәліметтерді файлға сақтап , оны одан қайтадан ала алады, нәтижесінде оның барлық ұрпақтары осы мүмкіндіктерді орындай алады. TComponent класы өз кезегінде, класты құрушының ортасымен әрекеттесіп, оны өзінің ұрпақтарына бере алады.
TControl класы файлдармен және класты құрушының ортасымен жұмыс істеп қоймай, сонамен бірге экранда көрінетін бейнелерді құруға және оның қызметін орындауға қабілетті, ал оның ұрпағы TWinControl Windows терезелерін де құра алады және т.б. 3-сурет.
InterfaceObject
TPresistent
Exception
Abort
TComponent
TStreamAdapter
TControl
TWinControl
TStrings
ELNO upError
EOutO FMemo
Tcollection
TObject
Сурет 1.3Delphi - дегі кластар тармағы
Полиморфизм - бұл мағынасы ұқсас мәселелердің әр түрлі тәсілмен шешетінкластар қасиеті. Object Pascal - дың шеңберінде кластардың қасиеті оған кіретін әдістердің жиынтығымен анықталады. Класс ұрпақтарындағы қандай да бір әдістің алгоритмін өзгерте отырып, программист бұл ұрпаққа ата- анасында жоқ ерекше қасиетті бере алады. Әдісті өзгерту үшін оны сол ұрпақта жабу қажет, яғни ұрпақта бір атаулы әдісті хабарлап, оған қажетті әрекетті жүзеге асыру қажет. Нәтижесінде объект - ата - ана мен объект - ұрпақта әр түрлі алгоритмдік негізі бар, объектілерге әр түрлі қасиет беретін екі бір атаулы әдіс жұмыс істейтін болады.
Object Pascal тілінде полиморфизм тек жоғарыда сипатталған мұрагерлік механизмі мен ата-ананың әдісін жабумен шектелмейді, сондай-ақ оларды виртуалдандыруда жүзеге асады.
Кластың құрушылары
Өріс деп кластағы инкапсуляцияланған мәліметтерді айтады. Өріс кез келген типті болуы мүмкін, оның ішінде класта болуы мүмкін;
Мысалы:
Type
TMyClass=class
AIntField:Integer;
AstrField:String;
AObjectField:TObject;
... ... ... ... ... ... ...
End;
Әрбір объект өрістер жиынтығын алады, бірақ осы кластың барлық объектілері үшін жалпы қасиеттер мен әдістер жиынтығы бар. Инкапсуляцияның іргелі принципі өріске кластың әдістері мен қасиеттерінің көмегі арқылы қатынас жасау керектігін талап етеді. Бірақ Object Pascal тілінде өріске тікелей шығуға рұқсат етіледі.
Type
TMyClass=class
FIntField:Integer;
FstrField:String;
... ... ... ... ... ..
End;
Var aObject:TMyClass;
Begin
... ... ... ... ...
AObject.FintField:=0;
AObject.FStrtField:='символдар жолы';
... ... ... ... ... ... ...
End;
Класс - ұрпақ өзінің барлық аталарынан барлық өрістерді ала алады және оны өзінікімен толықтырады, бірақ алдын-ала анықтай алмайды. Сөйтіп, тармақ иерархиясында класс қаншалықты төмен орналасса, соншалықты оның объектілерінен мәліметтер ала алады.
Класта инкапсуляцияланған процедуралар мен функциялар әдістер деп аталады. Олар әдеттегі қосалқы программалар тәрізді хабарланады:
Type TMyClass=class
Function MyFunc(aPar:Integer):integer;
Procedure MyProc;
End;
Кластың әдістеріне кіру оның өрістеріне кіргендей құрама атаулардың көмегімен жүзеге асырылады.
Var
AObject:TmyClass;
Begin
... ... ... ... ... ...
AObject:MyProg;
... ... ... ... ... ...
End;
Жоғарыда айтылғандай кластың әдістері ұрпақтарында жабылып тұруы мүмкін. Мысалы,
Type
TparentClass=Class
Procedure DOWork;
End;
TChildClass=Class (TParent Class);
Procedure DOWork;
End;
Екі класстың ұрпақтары да DOWork процедурасының атауы бойыншаұқсас әрекеттерді орындауы мүмкін. Бірақ, бұл жалпы жағдайда әртүрлі орындалады. Мұндағыәдістерді ауыстыру статикалық деп аталады, яғни копмильятормен программаны жүргізу кезеңінде әдістерді динамикалық ауыстыру жиі пайдаланылады. Мұны жүзеге асыру үшін аталық класта орналасқан әдіс динамикалық немесе виртуалды түрде хабарлануы тиіс. Осындай хабарлауды кездестіргеннен кейін компилятор екі кесте құрады.DMT (Dynamic Method Table) және VMT (Virtual Method Table) оларды сәйкес динамикалық немесе виртуалды әдістердің кіру нүктесіндегі адреске орналастырады. Әрбір ауыстырылатын әдіске оралған компилятор сәйкес кестелердің бірінен қосалқы программаға кіру нүктесінің адресін шығаруға мүмкіндік беретін кодты кояды.
Класс ұрпағында әдісті алмастыру override (жабу) директивасымен хабарланады. Осы нұсқауды алғаннан кейін, компилятор программаны жүргізу кезеңінде ата - аналық кестесіне класс - ұрпақ әдісінің кіру нүктесін орналастырады, ал аталыққа жаңа әдістің көмегімен қажетті әрекетті орындауға мүмкіндік береді.
Динамикалық және виртуалдық әдістердің арасындағы айырмашылығы - динамикалық әдістер кестесінде осы класта тек dynamic ретінде хабарланған әдістер адрестері болады, ал виртуалдың кестесінде сол кластың виртуалдың әдістерімен қатар, оның барлық аталықтарының да адрестері сақталады. Көлемі айтарлықтай VMTкестесі жылдам іздеуді жүзеге асырады, сондай-ақ, динамикалық әдіске оралғанда программа алдымен DMT объектінің кестесін қарап шығады, одан кейін аталық класын қажетті кіру нүктесі табылғанша іздейді.
Динамикалық жабылатын әдістер ешнәрсе орындамауы мүмкін. Мұндағы әдістер абстрактылы әдістер деп аталады, олар ұрпақтарында жабылуға міндетті. Программист adatract директивасымен хабарлау арқылы абстрак әдісті шақыруға тосқауыл қоя алады. Мысалы:
Type
TvisualObject=class (TWinControl)
...
Procedure DRAW (IsSHOW:Boolean);
Virtual; abstract; end;
TvisualChildObject=class(TWinContro l)
...
Procedure DRAW (IsSHOW:Boolean):override;
End;
Var
aVisualObject:TvisualObject;
aVisualChild: TvisualChildObject;
begin
...
aVisualObject. SHOW; {қате Абстракт әдіс шақырылды}
aVisualObject. SHAW {Шақыру дұрыс. TvisualChildObject класындағы DRAW әдісі жабылған}
... End;
Жабылмаған абстракт әдісті шақыру орындалу барысында қате болып есептеледі. Сауатты құрылған программада абстракт әдіс шақырылмайды. Кез келген класстың құрамына екі арнайы әдіс кіреді: конструктор және деструктор. Tobject класында бұл әдістер Create және Destroy деп аталады. Конструктор динамикалық жадыда объектілерді үлестіреді және жадының осы адресіне SELF айнымалысын орналастырады, ал автоматты түрде класта хабарланады. Конструктор және деструктор процедура болып табылады, бірақ Constructor және destructor қызметші сөздерінің көмегімен хабарланады:
Type
TMyClass=class
InField:Integer;
Constructor Create (Value:integer);
Destructor Destroy;
End;
Көптеген конструкторлар объектінің дұрыс жұмыс істеуіне қажетті қандай да бір әрекетті орындайды. Сондықтан класс ұрпақ конструкторында алдымен өзініңаталық конструкторын шақыру қажет, одан кейін қосымша әрекеттер жүзеге асырылады. Аталық кластағы кез келген әдісті шақыру Inherited (мұрагер) қызметші сөзінің көмегімен жүзеге асырылады:
Constructor TMyClass.Create (Value:Integer);
Begin
Inherited Create; Мұрагер конструкторды шақыру
Inherited:= Value Қосымша әрекетті орындау
End;
Кейбір әдістер объектіні құрмай және инициализация жасамай-ақ шақырылу мүмкін. Мұндағый әдістер кластың әдістері деп аталады, олар class қызметші сөзінің көмегімен шақырылады.
Type
TMyClass=class (TObject)
Class Function GetClassName:String;
End;
Var
S:string;
Begin
S:=TMyClass.GetClassName;
...
End;
Кластың әдістері өрістерін шақыра алмайды, жалпы жағдайда объект құрмай-ақ шақырылады. Әдетте класс туралы қызметші ақпаратпен шектеледі: класс аты, аталық класс аты, әдістәң адресі және т.б.
Қасиеттер-бұл өріске кіру мүмкіндігін реттейтін кластардың арнайы механизмі.Қасиеттер property, read және write қызметші сөздерінің көмегімен хабарланады (read және write сөздері тек қасиетті хабарлау контексінде пайдаланатын қызметші сөздер). Әдетте қасиет қандай да бір өріспен байланысты болады және осы өріске жазуда немесе одан оқуда пайдаланатын кластың әдістерін көрсетеді.
Мысалы:
Type
TaClass=Class
IntField: integer;
Function.GetField:integer;
Procedure SetField (Value: integer);
Property IntegerValue:integer read
GetField write SetField;
End;
Программа контексінде қасиет өзін әдеттегі өріс ретінде көрсетеді. Сондай-ақ, төмендегідей операторларды жазуға болады:
Var
aClass:TaClass;
Value: integer;
Begin
aClass:=TaClass.Creat {Өрісті немесе қасиетті шақырар
алдындағы конструктордың міндетті шақырылуы}
aClass.InterValue:=0;
...
Value:=aClass.InterValue;
...
aClass.Destroy; керек емес объектіні өшіру
end;
Мұнымен бірге, төмендегідей меншіктеу операторының жазылуы мүмкін:
aClass.IntField:=NewValue;
Бұл оператормен төмендегі оператордың арасындағы айырмашылық - қасиеті шақырғанда SetField әдісі автоматты түрде қосылады және арнайы әрекеттер орындалады.
Оқу программасында келтірілген
LbOUTPUT.CAPTION:="жол" операторын еске түсірейік.
Label компоненттің Caption қасиеті SetText әдісін шақырады, ол ішкі айнымалыдағы символдар жолын сақтап қана қоймай, жаңа мәтінді де еске сақтайды.
Егер қасиетті арнайы оқу немесе жазу үшін қажеттілік болмаса сәйкес әдістің атауының орнына өріс атауын көрсетуге болады:
Type
TaClass=Class;
IntField:integer;
Procedure SetField(Value:integer);
Property IntegerValue: Integer read IntField write SetField;
End;
Егер қасиет тек оқу немесе жазу үшін ғана қажет болса, онда оған сәйкес бөлігін жазбауға болады. Қасиет өріспен байланыспауы да мүмкін.
Шынында, ол қасиеттің өзінің типіндей мәліметтерден қандайда бір әрекетті жүзеге асыратын бір немесе екі әдісті сипаттайды.
Жобаның құрылымы. Жоба файлы Object Pascal тілінде жазылған, компилятормен өңдеуге арналған программа болып табылады. Бұл программа Delphi - де автоматты түрде құрылады, бірнеше жолдардан тұрады. Оны көру үшін Delphi - ді шақырып, бас менюден ProjectView Source опциясын таңдаңыз. Delphi Project1 мәтінінен тұратын код терезесін шығарады:
Program Project1;
Uses
Forms,
Unit1 in `Unit1.pas' {fmExample};
{SR*. RES}
Begin
Application. Unitialize;
Application. Greate Form (TfmExample, fmExample );
Application. Run;
End.
Код терезесінде қарайтылған шрифтпен қызметші сөздер жазылған, ал курсивпен фигуралық жақша ({}) ішіне түсіндірме жазылған. Программа мәтіні Program сөзінен басталып, End сөзімен аяқталып тұр. End сөзінен кейінгі нүктеден соң жазылған жазуды программалық бірліктің терминаторы деп атайды. Егер программа мәтінінде осындай терминетор кездесетін болса, компилятор программаны жолдауды тоқтатып, мәтіннің қалған бөлігін ескермейді (жойы жібереді).
Object Pascal тілінде қызметші сөздер маңызды роль атқарады. Әрбір қызметші сөз компиляторға шартты нұсқау береді, тек ағылшын тілінде жазылады.
Ал түсіндірменің компилятор үшін ешқандай мәні жоқ, түсіндірме кездессе, компилятор оны қалдырып кетеді. Программадағы түсіндірме программист үшін аса маңызды, ол программаны түсінуді жеңілдетеді. Object Pascal тілінде фигуралық жақшаға ({}) алынған кез келегн символдар тізбегі түсіндірме болып есептеледі.
Жоғарыдағы келтірілген мәтінде екі түсіндірме бар, бірақ {SR*. RES} жолы шын мәнінде түсіндірме емес. Бұл арнайы түрде жазылған фрагменті - компилятор директивасы деп аталады. Директивалар S символынан басталады. Түсіндірме үшін сондай - ақ, (*,*) және белгілері де пайдаланылады. (*.*) - фигуралық жақша тәрізді, ал символдары компиляторға түсіндірменің ағымдағы жолдың соңына дейін жазылатынын ескертеді.
Program сөзінен кейінгі жазылған атау мен соңынан қойылған ; программа тақырыбын құрайды. Тақырыптан кейін бейнелеу бөлімі жазылады, Мұндағы программист программада пайдаланылатын идентификаторларды сипаттайды. Идентификаторлар типер, айнымалылар, процедуралар, функциялар тәрізді программа элементтерін белгілейді. Uses қызметші сөзінен кейін басталатын сөйлемнің көмегімен программист программаның ажырамайтын құрамдас бөлігі ретінде қарастырылатын, басқа файлдарда орналасатын программа фрагменті (модульдер) туралы компиляторға хабарлайды.
Программадағы:
Uses
Forms,
Unit1 in `Unit1.pas' {fmExample};
Жолдар программада файл жобамен қатар, Forms және Unit1 модульдері пайдаланатындығын көрсетеді. Forms модулі Delphi - де стандартты модуль, ал Unit1 - әлі белгісіз, жаңа модуль, Delphi Мұндағый жағдайда модульдің мәтіні бар файлдың атын да көрсетеді (in `Unit1.pas') және файл модуліне байланысты форманың сипаттамасы {fmExample} - де.
Программа денесі Beginсөзінен басталып, End.Терминеторымен шектеледі. Программа денесі Object Pascal - дың біренеше операторларынан тұрады. Әрбір операторда қандай да бір әрекет жүзеге асырылады - айнымалы мәнін өзгерту, есептеу нәтижесін талдау, қосалқы программаға оралу және т.б. Біздің мысалда программа денесінде үш орындалатын оператор бар:
Application. Unitialize;
Application. Greate Form (TfmExample, fmExample );
Application. Run
Бұлардың әрқайсысы Application объектілер әдісінің біріне оралады. Объект дегеніміз - өңдеуге арналған мәліметтер мен қосалқы программаны қамтитын, арнайы дайындалған программа фрагменті. Мәліметтер деп объектінің өрістерін, ал қосалқы программа деп оның әдістерін айтамыз. Объект тұтасымен алғанда, қандай да бір нақты есепті шығаруға арналған, программада бөлінбейтін бүтін ретінде қарастырылады. Объект қазіргі программалау тілдерінде маңызды роль атқарады. Объектінің басты екі қасиеті бар: оның функционалдығы мен бөлінбейтіндігі.
Delphi - ді құрушылар жүздеген объектіні қарастырған, ол көп қабатты программалар үйін тұрғызатын кірпіштер тәрізді. Программаны құрудың Мұндағый принципі объектілі бағдарланған программалау деп аталады.
Application объектісінде Windows программаны толығымен басқаруға қажетті мілңметтер мен қосалқы программалар жинақталған. Delphi автоматты түрде әрбір жаңа проект үшін Application объект программасын құрады.
Application. Initialize жолы Application объектісінің Initialize әдісіне оралатынын көрсетеді. Осы жолды оқығаннан кейін компилятор қандай да бір программа фрагментін орындауды талап ететін кодты құрады. Осы фрагментті орындағаннан кейін (яғни программистердің тілімен айтқанда, қосалқы программадан шыққаннан кейін) процессор басқарудыпрограмманың келесі жолына береді, ол Сreate Form әдісі арқылы шақрылады.
Application объектісінің Сreate Form әдісі экранда бас форма терезесін құрып көрсетеді, ал Run - Windows - ден түскен пайдаланушының әрекеті жөніндегі хабарларды үздіксіз алып, оны өңдеуді жүзеге асырады. Пайдаланушы Close батырмасын тышқанмен белгілегенде Windows программаға программа жұмысын тоқтатып, оған бөлінген жүйелік ресурстарды босату жөнінде арнайы хабарлама береді.
Сонымен қорыта келгенде, файл жобаны толығымен Delphi өзіқұрады. Осы себепті файл - жобаның затының алатын орны ерекше, ол әдетте, код терезесінде көрінбейді. Күрделі жобаларды құрғанда бұл файлды оған кіретін басқа формалардың қызметін түсіндіру үшін, сондай - ақ, программа жұмысын бастар алдындағы кейбір арнайы әрекеттерді орындау үшін пайдалануға болады
DELPHI ортасының меню жолы
Менюдің "Файл" (File) пункті командаларын қарастырайық. Бұл пунктте Құру(Создать), Ашу(Открыть), Жобаны ашу(Открыть проекта), Таңдау(Выбрать), Сақтау(Сохранить) және т.б. командалар қарастырылған. Толығырақ сипаттама алу үшін Кесте 1 -де берілген.
Кесте 1Менюдің "Файл" (File) пункті командалары
Меню командалары
Сипаттамасы
Создать (New)
Құралатын объекттің типін (қосымша, форма, модуль) таңдауға арналған ішкі меню
Открыть...(Open)
Құрылған проект, форма, модуль, редактордағы тексттік файлды жүктеу үшін ашуға арналған диалогты терезені бейнелейді. Егер модуль форманы сипаттаса, онда бұл форма экранда пайда болады
Открыть проект... (Open Project)
Құрылған проекттi жүктеу үшiн диалогты терезенi көрсетедi (.bpr или .bpk)
Кесте 1 жалғасы
Выбрать (Reopen)
Соңғы жабылған проекттер мен модульдердiң тiзiмiнен тұратын iшкi менюдi көрсетедi
Сохранить(Save)
Редактрленген файлды оның ағымды атымен сақтайды
Сохранить как...(Save As)
Проект файлындағы өзгертулердi енгiзiп ағымды файлды жаңа атпен сақтайды
Сохранить проект как...(Save Project As)
Ағымды проекттi жаңа атпен сақтайды
Сохранить все (Save All)
Барлық ашылған файл, проект пен модульдердi сақтау
Закрыть
(Close)
Ағымды проекттi және онымен байланысты модульдер мен формаларды жабады
Закрыть все (Close All)
Барлық ашылған файлдарды жабады
Использовать модуль (Use Unit)
Таңдалған модульдi белсендi модульдiң сипаттамасына қосады
Печать (Print)
Белсендi файлды баспаға бередi
Выход (Exit)
Проекттi жабады және ортадан шығады
Менюдiң басқа пунктерiн қарастырайық. "Правка" (Edit) пунктi "Отменить" (Undo) және "Вернуть" (Redo) командаларынан тұрады, олар редактормен жұмыс iстеу кезiнде жасалған қате әрекеттердiң салдарын жоюға өте пайдалы. Мысалы, егер қажет текст фрагментi кездейсоқ өшiрiлген жағдайда.
"Отменить" (Undo) командасын орнату үшiн редактор менюiндегi Сервис Опции редактора (Options Environment) пунктiн қалай қолдануға болатындығын түсiндiредi. "Отменить" (Undo) командасының мүмкiн санын шектеуге болады."Вырезать"(Cut),"Копировать" (Copy), "Вставить" (Paste) және "Удалить"(Delete) командаларының қызметi Windows-тың басқа қосымшаларындағы осы командалардың қызметiмен бiрдей, бiрақ Delphi-де оларды тек текстке емес, визуалды компоненттерге де пайдалануға болады.
"Сделать верхним" (Bring To Front), "Сделать нижним" (Send To Back), "Выровнять" (Align) және "Размер" (Size) командалары 1 сабақта талқыланған. Қалған 4 пункт формаладың сыртқы түрiн жылдам "безендiруге" көмектеседi.
"Поиск" менюiнде программаны орындау кезiнде қатенi табуға көмектесетiн "Find Error" (қатенi iздеу) командасы бар. Қате туралы хабарда оның адресi (орны) көрсетiлген жағдайда Сiз менюдiң Search Find Error пунктiн таңдап, сол адрестi енгiзуіңізге болады. Егер мүмкiндiк болса, Delphi ортасы программада қате жiберiлген орынға сiздi апарады.
Менюдiң "Вид" (View) пунктi командаларын қарастырып, сипаттама берейік Кесте 2.
Кесте 2 Менюдiң "Вид" (View) пуктiнiң құрамы
Меню командалары
Сипаттамасы
Менеджер Проектов (Project Manager)
Проектiлердiң менеджерiн көрсету
Инспектор объектов (Object Inspector)
Объектiлер инспекторын көрсету. Онда өзгертуге болатын белсендi компоненттердiң қасиеттерiн бейнелейдi
Дерево объектов (Object TreeView)
Сiздiң формаңызға, модульге және т.б. орналастырған визуалды не визуалды емес компоненттердiң сатылы ағаш тәрiздес тiзiмiн көрсету
Списокдел
(To do List)
Жасалған iс-әрекеттер тiзiмi
Панель выравнивания (Alignment Palette)
Формадағы объектiлердi әртүрлi параметрлер бойынша түзету
Обозреватель (Browser)
Программадағы объектiлер сатысын, бастапқы текстегi идентификаторды iздеу және т.б. көру құралдарын шақыру
Обзор кода
(Code Explorer)
Сiздiң модулiңiзде сипатталған барлық типтердi, қасиеттердi, әдiстердi, глобалды айнымалыларды көрсететiн ағаш тәрiздес диаграмманы ұсынады
Список компонентов (Component List)
Компоненттер палитрасының альтернативасы. Тышқан болмаған жағдайда компоненттер аты бойынша iздеуде пайдаланады
Список окон
(Window List)
Delphi ортасында ашылған терезелер тiзiмi
ФормаМодуль
(Toggle FormUnit)
Формаданоғансәйкесмодульгеөту, тiзiмненмодульдi немесеформанытаңдау
Список модулей (Units)
Проектiдегi ... жалғасы
Жалпы білімдік пәндер циклдық комиссиясы
Пән атауы: Алгоритмдеу және бағдарламалау
КУРСТЫҚ ЖОБА
Тақырыбы: Delphi объектілік-бағдарланған бағдарламалау ортасында Қызылорда қаласының көрікті жерлері мен ескерткіштері мәліметтер базасын құру
Дайындаған ЕТ-9-18Г оқу тобының студенті
___________________________________ ____
Қабылдаған оқытушы Г.Тажикова
Қызылорда, 2021
"Orda" жоғары колледжі
Бекітемін
Жалпы білімдік пәндер
циклдық комиссиясы
________М.А.Абдирауыкова
_________________2021 ж
Курстық жобаны орындауға арналған
ТАПСЫРМА
Студент:___________________________________ ___________________
Мамандығы:1304000 - Есептеуіш техника және бағдарламалық қамтамасыз ету
Тобы: ЕТ-9-18Г
Жобаның тақырыбы: Delphi объектілік-бағдарланған бағдарламалау ортасында Қызылорда қаласының көрікті жерлері мен ескерткіштері мәліметтер базасын құру
Жобаның мазмұны:
Delphi ортасында тестілеу бағдарламасын құру жобасы
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Тест бағдарламасын құру кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ..
Тестілеу процесінің кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ...
Delphi ортасымен танысу ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
Delphi бағдарламасының құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi бағдарламалау тілінің негізгі түсініктері ... ... ... ... ... ... ... ...
Кластың құрушылары ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi ортасының меню жолы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Delphi ортасының компоненттер тақтасы ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның құрылымдық сипаттамасы ... ... ... ... ... ... ... ... ... ...
Объектілер тармағының терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Программалар коды терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Тест бағдарламаның блок-схема алгоритмін өңдеу ... ... ... ... ... ...
Тестілеу жүйесін құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Тестілеу бағдарламасының орындалуы ... ... ... ... ... ... .. ... ... ... ... ...
Жобаның техника-экономикалық негіздемесі ... ... ... ... ... ... ... ... ...
Жұмыстың қысқаша сипаттамасы және оның тағайындалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның өнімді құрудағы шығындарды анықтау ... ... ... ... ..
Тапсырманың берілген күні __ ______________ 20__ жыл.
Жобаның орындалу мерзімі ___ ____________ 20__ жыл
Жобаның жетекшісі __________________________________
Жалпы білімдік пәндер циклдық комиссиясында қаралып, мақұлданды
Хаттама № _____ ___ _____________ 20__ жыл
Бірлестік жетекшісі:______________________М.А .Абдирауыкова
Delphi ортасында тестілеу бағдарламасын құру жобасы
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Тест бағдарламасын құру кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ..
Тестілеу процесінің кезеңдері ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ...
Delphi ортасымен танысу ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
Delphi бағдарламасының құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi бағдарламалау тілінің негізгі түсініктері ... ... ... ... ... ... ... ...
Кластың құрушылары ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ...
Delphi ортасының меню жолы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Delphi ортасының компоненттер тақтасы ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның құрылымдық сипаттамасы ... ... ... ... ... ... ... ... ... ...
Объектілер тармағының терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Программалар коды терезесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Тест бағдарламаның блок-схема алгоритмін өңдеу ... ... ... ... ... ...
Тестілеу жүйесін құру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Тестілеу бағдарламасының орындалуы ... ... ... ... ... ... .. ... ... ... ... ...
Жобаның техника-экономикалық негіздемесі ... ... ... ... ... ... ... ... ...
Жұмыстың қысқаша сипаттамасы және оның тағайындалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Бағдарламаның өнімді құрудағы шығындарды анықтау ... ... ... ... ..
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Қолданылған әдебиеттер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ...
Қосымшалар ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... .
Қазіргі кезде дербес компьютерлерді пайдаланушылар арасында Windows операциялық жүйелері жанұясы танымал және бағдарлама жасауға қызыққандар, осы жүйеде жұмыс жасайтын бағдарламалар жазуға ынталанады. Есептеуіш техниканың дамуы, бағдарламаны қамтамасыз жасау құралдарына деген эффективті қажеттілік, бағдарламалау тілдерінің пайда болуына әкелді, олардың ішінде келесілерді Borland Delphi және Microsoft Visual Basic көрсетуге болады. Тез жасау жүйесінің негізіне көрнекі жобалау технологиясы және оқиғалы бағдарламалау жатады. Оның мәні жасау ортасы бағдарламаның генерация кодының үлкен бөлігін алады және бағдарламалаушыға диалогтық терезелермен және жағдайларды өңдеу функциясын құрастыру жұмыстарын қалдырады.
Borland Delphi қазіргі уақытта бағдарламаудың ең танымал тілдерінің бірі болып саналады. Borland Delphi Windows - қа кәсіби деңгейлі интерфейсі бар қолданбалы бағдарлама жасауға мүмкіндік береді. Бұл дипломдық жобада қолданушының қосымша модульдік жобасын шешуде Windows ортасының мүмкіндіктері қарастырылған.
Осы жобада программаларды тестілеу және жөңдеу бағдарламасын Borland Delphi бағдарламалау ортасының мүмкіндіктері арқылы жүзеге асады.
Жобаның мақсаты - Borland Delphi интерактивті жобалау ортасында мектепте программаны тестілеу бағдарламасын құру болып табылады. Тест оқушы білімінің деңгейін ғана анықтап қана қоймайды, оның ойын жүйелеп, жылдам есептеуіне, логикалық ойлау, есептеу дағдыларының қалыптасуына, тез шешім қабылдау қасиетінің дамуына тиімді әсер етеді. Тест оқушының білім дәрежесін қандай екендігін анықтайтын және ол білімді түрлі жағдайларда қолдана білуін тексеруге мүмкіндік беретін тиімді жол.
Жобаның міндеттері:
oo Тапсырманың тұжырымдамасы мен жауаптары әрі қысқа, әрі анық болуы қажет;
oo Бір сұрақтың 3-5 түрлі жауабы болуы тиіс. Олардың ішінде біреуі ғана дұрыс болады, басқалары жауабына жақын бірақ дұрыс болмауы шарт;
oo Сұрақтарға жауап беру уақыты қатаң сақталуы тиіс;
oo Нұсқалар сұралушыларға бірдей дәрежеде түсіндіріледі, әдетте ол жазба не электрондық құжат түрінде болады;
oo Бірде-бір сыналушыға басқалармен салыстырғанда ешқандай артықшылық берілмейді;
oo Тестен сынаудың нәтижелерін бағалау алдын-ала жасалған жүйе арқылы барлығына бірдей қолданылады;
oo Тестке берілген нұсқау және әрбір тұжырымдаманың мағынасы сыналушылардың әрқайсысына түсінікті болуы керек;
oo Әрбір сұрақ жауабына берілетін ұпай бірдей (көбіне 1 ұпай) болуы керек;
oo Тест қолданудың жоспарланған жүйесі болуы керек.
І - деңгей (міндетті деңгей) 3 қанағаттанарлық бағасы қойылады;
ІІ - деңгей (міндетті деңгейден жоғары) 4 жақсы бағасы қойылады;
ІІІ - деңгей (эвристикалық деңгей) 5 өте жақсы бағасы қойылады.
Жоба төрт - бөлімнен тұрады: Бірінші бөлімде - тест бағдарламасы, яғни, тест бағдарламасын құру кезеңдері; тестілеу процесінің кезеңдері; Delphi ортасымен танысу туралы жалпы түсінік беріледі. Екінші бөлімде - мектепке (мысалға, информатика пәнінен) арналған тестілеу программасы келтіріледі, яғни, шығару жолдары көрсетіледі. Үшінші бөлімде -жобаның техникалық-экономикалық көрсеткіші келтірілсе,ал төртінші бөлімде -еңбекті қорғаузаңдары, компьютермен жұмыс кезіндегі қауіпсіздік техникасы қарастыралады.
1. Тест бағдарламасы туралы жалпы түсінік
Тестілеу (test, ағылшын сөзі сынау деген мағына береді) дегеніміз программаның немесе оның жеке бөліктерінің дұрыс жұмыс істейтіндігін сынау, тексеру.
Жөндеу және тестілеу бұлар бірінен бірі айқын ажыратылған және біріне- бірі ұқсамайтын екі кезең:
* жөндеу кезінде синтаксистік қателіктердің және кодтаудың айқын қателіктерін төңіректеу және жою орындалады.
* тестілеу процесі кезінде айқын қателіктері жоқ программаның жұмыс істеу қабілеттілігі тексеріледі.
Тестілеу қателіктің бар екендігін тағайындайды, ал жөндеу программаның дұрыс жұмыс істемеу себептерін анықтайды.
Қазіргі заманғы программалау жөндеу жұмысы жөндеуші деп аталатын арнай программалық құралды пайдалану жолымен жүзеге асырылады. Бұл құралдар программаның ішкі жұмысын зерттеуге мүмкіндік береді.
Жөндеу программасы әдетте мына төмендегідей мүмкіндіктер береді:
* әрбір командадан соң, тоқтай отырып, программаны қадамдап орындау;
* кез-келген айнымалының ағымдағы мәнәі қарау немесе кез-келген өрнектің, оның ішінде стандартты функцияларды пайдаланып мәнін табу қажеттілігіне қарай айнымалының жаңа мәнін пайдаланып орындау;
* программада тексеру нұктелерін орнату, яғни аралық нәтижелерді бағалау үшін программа уақытша өз жұмысын тоқтататын нүктелерді тағайындау т.б.
Программаны жөндеуде мыналарды есте сақтау маңызды;
* жөндеу процесінің басында қарапайым тестілік деректерді пайдалану;
* пайда болатын қиындықтарды айқын ажыратып және қатаң түрде кезегімен жою;
* қателіктің есебі компьютерде деп есептемеу керек.
Программа қаншалықты өте мұқият жөнделсе де оның жұмысқа жарамдылығын тағайындаудың шешуші кезеңі программаның тестер жүйесінде тікелей орындалуын тексеру болып табылады.
Егер программа таңдалынып алынған тестілік деректер жүйесінен өткенде барлық жағдайда дұрыс нәтижелер беретін болса, онда программаны шартты түрде дұрыс деп есептеуге болады.
Тестілеу тәсілін жүзеге асыру үшін тестердің эталондық нәтижелері алдын-ала даярланған немесе белгілі болуы тиіс.
Эталондық нәтижелерді прогрмманың компьютерде орындалу нәтижесін алғаннан кейін емес, керісінше алғанға дейін есептеп шығарып қою керек.
Тестілік деректер қателіктердің пайда болуының барлық мүмкін болатын шарттарын тексеруді қамтамасыз ететін болуы тиіс, атап айтқанда:
* алгоритмнің әрбір тармағының сыннан өтуі;
* кезектегі тестіден өткізу алдыңғы өткізудегі тексерілмегендердің тексерілуі;
* программаның жалпы жұмыс істейтіндігін тексеру үшін бірінші тестің мүмкіндігінше қарапайым болуы;
* есептеу көлемін қысқарту үшін тестідегі арифметикалық операциялардың шегіне дейін ықшамдалуы;
* тізбектер элементі санының, итерациялық есептеулер үшін алынған дәлдіктің, тестілік мысалдар цикліндегі интерация санының есептеулер көлемін қысқарту тұрғысынан берілуі;
* есептеулерді азайтудың тексеру сенімділігін төмендетпеуі;
* тестілік деректер жиынын кездейсоқ таңдау күткен нәтижелерді қолмен орындау тәсілімен анықтауда қиындықтарға алып келетіндіктен және көптеген жағдайлар тексерілмей қалатындықтан тестілеудің белгілі мақсатқа бағытталған және жүйеленген болуы;
* тестілік деректерді күрделендіруде түсідің біртіндеп жүргізілуі.
0.1 Тест бағдарламасын құру кезеңдері
Соңғы кезде тестілеу (сынақтау) маманды жұмысқа алу кезінде, мекеме қызметкерлерінің білім дәрежесін анықтауда және т.б. салаларда кеңінен қолдануда. Тестілеу жұмыстарын жүргізуде компьютерді пайдалану негізгі орын алып келеді.
Қазіргі кезде компьютерді пайдаланып, студенттер мен оқушыларды семестр, тоқсан ішінде бірнеше рет тестілеу- олардың ағымдық білімін бағалаудың негізгі әдістерінің бірі. Өзіндік жұмыстар, консультациялар ұйымдастыру және тест тапсырмаларын орындау студенттердің білім деңгейін көрсететіні сөзсіз.
Тест тапсырмаларын құру барысында мынадай әдістер бар:
oo таңдау;
oo сәйкестендіру;
oo толықтыру;
oo дұрыс тізбек құру.
Бұл әдістер ортақ қасиет - олар студенттердің есте сақтау, ойлау икемділігі, тапсырма орындаудың түрлі тәсілдерін меңгеру қабілеттілігі т.с.с. қасиеттерін танып - білуге бағытталған. Тест тапсырмалары көп деңгейлі және көп нұсқалы болып құрылуы да мүмкін.
0.2 Тестілеу процесінің кезеңдері
Тестілеу процесін үш кезеңге бөлуге болады.
1.Қалыпты жағдайда тексеру. Программалардың жұмыс істеуінің нақты жағдайына тән алғашқы деректер негізінде тестілеу болжанады.
2.Экстремальды жағдайда тексеру. Бұл жерде тестілік деректер дегеніміз алғашқы деректер жиынының шекаралық мәндері. Бұл жиын программа дұрыс жұмыс істеуге тиісті алғашқы деректерден тұрады. Өте кіші немесе өте үлкен сандар және деректердің болмауы Мұндағый деректердің типтік мысалдары болып табылады.
Барлық программалар қандайда бір шектеулі алғашқы деректер жиынын өңдеуде есептеліп жасақталатындығы белгілі. Сондықтан мына төмендегі сұрақтарға жауап алу маңызды:
1. Айнымалының теріс және нолдік мәндерін өңдеуге арналмаған программаға қандай да бір кеткен қателіктің себептерінен дәл сол мәндерді өңдеуге тура келсе не болар еді?
2. Егер массив элементтері оны хабарлауда көрсетілген саннан асып кетсе, онда массивтермен жұмыс істеп жатқан программа өзін қалай ұстар еді?
3. Егер өңделіп жатқан сан өте кіші немесе өте үлкен болса, онда не болар еді?
Программа дұрыс емес деректерді дұрыс деректер ретінде қабылдап, дұрыс нәтижеге ұқсас, бірақ дұрыс емес нәтиже беретін жағдайлар ең жаман жағдайлар болып есептеледі.
Программа өзі дұрыс өңдей алмайтын кез келген деректерді теріске шығаратын болу тиіс.
0.3 Delphi ортасымен танысу
Бағдарламалауға деген қызығушылық күн сайын өсуде. Бұл күнделікті өмірге ақпараттық технологиялардың енуімен және дамуымен байланысты. Егер де адам компьютермен жұмыс жасаса, онда ол адамда ерте ме, кеш пе ынта, кейбір кездері бағдарламаларды үйрену қажеттілігі туындайды.
Қазіргі кезде дербес компьютерлерді пайдаланушылар арасында Windows операциялық жүйелері жанұясы танымал, және бағдарлама жасауға қызыққандар, осы жүйеде жұмыс жасайтын бағдарламалар жазуға ынталанады. Есептеуіш техниканың дамуы, бағдарламаны қамтамасыз жасау құралдарына деген эффективті қажеттілік, бағдарламалау жүйесінің пайда болуына әкелді, олардың ішінде келесілерді Borland Delphi және Microsoft Visual Basic көрсетуге болады. Тез жасау жүйесінің негізіне көрнекі жобалау технологиясы және оқиғалы бағдарламалау жатады, оның мәнін жасау ортасы бағдарламаның генерация кодының үлкен бөлігін алады және бағдарламалаушыға диалогтық терезелермен және жағдайларды өңдеу функциясын құрастыру жұмыстарын қалдырады.
Delphi - бұл Windows операция жүйесіндегі жұмыстарға бағытталған бағдарламаларды жасау ортасы. Delphi-де бағдарламалар, қазіргі көрнекі жобалау технологиялары негізінде құрылады, ол өз кезегінде бағдарламалаудың объекті-бағдарлану ойына базаланады. Delphi- де бағдарламалар Object Pascal тілінде жазылады және ол Turbo Pascal тілінің ізбасары және дамытушысы болып табылады. Delphi және Object Pascal ұзақ эволюцияның қорытындысы және қазіргі кезде ол, ең жаңа компьютерлік технологиялары бар өнім болып табылады. Бөліп айтқанда, Delphi көмегімен, консольдық тіркемелерден бастап және мәліметтер қорымен Internet үшін тіркемелерін аяқтайтын, әртүрлі түрдегі бағдарламаларды құруға болады.
DELPHI тіліндегі қолданбалы программалар немесе қосымшалар IDE (Integrated Development Environment)- дамып отыратын құрылымдық ортада орындалады. IDE ортасы көптерезелік жүйе деп саналады және оның жүктелгеннен кейінгі көрінісі төмендегі түрде болуы мүмкін (1.1-сурет).
Сурет1.1 IDE терезесі
Интерфейстің құрамына 4 терезе кіреді
1.Негізгі терезе (Projegt1.dpr);
2.Объектілер бақылаушысының терезесі (Object Inspector);
3.Форманың құрастырушының терезесі (Form1.dfm);
4.Программа кодының терезесі(Unit1.pas).
DELPHI бірқұжаттық орта, яғни бір мезгілде тек қана бір қолданбалы программамен жұмыс атқаруға болады. Программа жобасының атауы негізгі терезесінің жоғарғы қатарында көрсетіледі.
Форманың терезесінен Unit кодына жөне одан кері өту F12 пернесі арқылы орындалады.
1.5Delphi бағдарламасының құрылымы
Delphi ортасы - программист жұмысының өте жоғары тиімділігін қамтамасыз ететін орта.
Delphi ортасын шақырғаннан кейін ортаның жұмысын басқаратын алты негізгі терезе шығады.
1. Негізгі терезе(Delphi7);
2. Объектілер тармағының терезесі(Form 1);
3. Объектілер инспекторының терезесі немесе объектілер қасиеттері редакторының терезесі (Object Inspector);
4. Броузер (көру) терезесі(Object TreeView);
5. Программа кодының терезесі(Unit 1.pas);
Программа кодының терезесін көру үшін Ғ12 пернесін басу жеткілікті. Delphi - ді алаш шақырғаннан кейін Delphi терезесі барлық терезенің үстіне шығады. Осы терезенің көмегімен Inprise коорпороциясының WEB - беттеріне кіругемүмкіндік туады.
Негізгі терезе. Негізгі терезе құрылатын программаның жобаларын басқаратын негізгі қызметті атқарады. Бұл терезе экранда барлық уақытта болады және ең жоғарғы бөлігінде орналасады. Негізгі терезеде Delphi ортасының бас менюі, пиктографиялық командалық батырмалар жиынтығы, компоненттер палитрасы орналасқан.
Бас меню жобаны басқаруға арналған барлық қажетті командалардан тұрады. Бас менюдің барлық опциялары екінші деңгейде ашылатын опциялар тақырыбын қамтиды.
Бас терезенің барлық элементтері арнайы панельдерде орналасқан, оның сол жақ бөлігінде басқару батырмалары бар. Бас менюден басқа кез келген панельді терезеден алып тастауға болады.
Панельде көрінетін батырмалардың құрамын өзгерту үшін оған курсорды келтіріп, тышқанның сол жақ батырмасын басу жеткілікті. Бұдан кейін ашылған көмекші меню терезесінде барлық панельдердің аттары келтірілген және олардың статусы көрсетілген (жалаушалар). Олардың ішінен Customize - ды (настройка, баптау) таңдағаннан кейін баптау терезесі пайда болады.. енді қажет емес батырмаларды алып тастауға да болады, Commands терезесіндегі тізімнен қажетті батырмаларды таңдап, оны экранға тасып апаруға болады.
Негізгі терезеге жиі пайдаланылатын пиктограммаларды орналасырған ыңғайлы:Project\Syntax Chek - программа командаларының синтаксисін тексеру; ViewDebug WindowsWatches - отклаткалық режимді бақылау терезесіне кіру жжәне т.б.;
Delphi - дегі кез келген программа жоба файлынан (файлдың заты .dpr) және бір немесе бірнеше модульдерден (заты .pas) тұрады. Әрбір осындай файлдар Object Pascal - дың программалық бірлігін сипаттайды.
6
3
5
2
4
1
Сурет1.2 Delphi бағдарламасының құрылымы
1.6 Delphi бағдарламалау тілінің негізгі түсініктері
Кластар - бұл күрделі программаларды жеңілдету және оның сапасын арттыру үшін ойластырылған программистердің ерекше өнер табысы. Кластардыңнегізінде үш іргелі принцип жатыр, олар инкапсуляция, мұрагерлік және полиморфизм.
Класс - өрістер, әдістер мен қасиеттер деп аталатынүш маңызды ұғымның бірлігін береді. Осы үш маңызды ұғымды бір бүтінге біріктіру инкапсуляция деп аталады. Көпшілік жағдайда, инкапсуляция класты программаның қалған бөліктерінен оқшаулауға мүмкіндік береді, нақты бір есепті шешудің өзіндік жеткіліктілігін арттырады. Нәтижесінде класс қандай да бір басқарушылықты арттырады. Мысалы, Tform класы Windows - терезесін құруға қажеттілерден, Tmemo класы - толық басқарылатын мәтіндік редактор жұмысын, Ttimer класы программа жұмысын таймермен қамтамасыз ететін құралдарды қамтиды (немесе инкапсуляциялайды).
Сонымен инкапсуляция дайын программалық жабдықтаумен жұмыс істеуге арналған қуатты құрал болып табылады. Delphi жүйесінің кластар кітапханасы - бұл программа құруға арналған Borland фирмасының программистері құрған кірпіштер жиынтығы екен.
Кез келген класс басқа кластан туындайды. Ол үшін оны хабарлағанда ата- ана кластың аты көрсетіледі:
TchildClass = class (TParentClass)
Туындаған кластан автоматты түрде өзінің ата- анасының өрісі, әдісі және қасиеті шығады және олардың жаңамен толықтырылуы мүмкін. Сөйтіп, мұрагерлік принципі күрделі кластарды кезеңмен құруды және өзінің жеке кластар кітапханасын жасауға мүмкіндік береді.
Object Pascal - дың барлық кластары жалғыз ата - ана ТObject класынан туындаған. Бұл кластың өрісі және қасиеттері жоқ, бірақ өзіне кез - келген объектілердің барлық өмірлік қасиеттерін қамтитын жалпы тағайындалудың әдістерін қамтиды. Программист ТObject класы ата - ана болмаитын класс құра алмайды. Оған төмендегідей бейнелеулер тән:
TaClass = Class (ТObject )
TaClass = Class
Мұрагерлік принципі ТObject класынан оның ұрпақтарына қарай дами отырып, біртіндеп кеңейетін тармақтар кластар құруға әкеледі. әрбір ұрпақ өзінің ата - анасының мүмкіндіктерін толықтырып, оны өзінің ұрпақтарына беріп отырады.
Delphi - дегі кластар тармағы қарайтырайық. TPersistent класы өзінің Тobject ата- анасының мүмкіндіктерін кеңейтеді: ол мәліметтерді файлға сақтап , оны одан қайтадан ала алады, нәтижесінде оның барлық ұрпақтары осы мүмкіндіктерді орындай алады. TComponent класы өз кезегінде, класты құрушының ортасымен әрекеттесіп, оны өзінің ұрпақтарына бере алады.
TControl класы файлдармен және класты құрушының ортасымен жұмыс істеп қоймай, сонамен бірге экранда көрінетін бейнелерді құруға және оның қызметін орындауға қабілетті, ал оның ұрпағы TWinControl Windows терезелерін де құра алады және т.б. 3-сурет.
InterfaceObject
TPresistent
Exception
Abort
TComponent
TStreamAdapter
TControl
TWinControl
TStrings
ELNO upError
EOutO FMemo
Tcollection
TObject
Сурет 1.3Delphi - дегі кластар тармағы
Полиморфизм - бұл мағынасы ұқсас мәселелердің әр түрлі тәсілмен шешетінкластар қасиеті. Object Pascal - дың шеңберінде кластардың қасиеті оған кіретін әдістердің жиынтығымен анықталады. Класс ұрпақтарындағы қандай да бір әдістің алгоритмін өзгерте отырып, программист бұл ұрпаққа ата- анасында жоқ ерекше қасиетті бере алады. Әдісті өзгерту үшін оны сол ұрпақта жабу қажет, яғни ұрпақта бір атаулы әдісті хабарлап, оған қажетті әрекетті жүзеге асыру қажет. Нәтижесінде объект - ата - ана мен объект - ұрпақта әр түрлі алгоритмдік негізі бар, объектілерге әр түрлі қасиет беретін екі бір атаулы әдіс жұмыс істейтін болады.
Object Pascal тілінде полиморфизм тек жоғарыда сипатталған мұрагерлік механизмі мен ата-ананың әдісін жабумен шектелмейді, сондай-ақ оларды виртуалдандыруда жүзеге асады.
Кластың құрушылары
Өріс деп кластағы инкапсуляцияланған мәліметтерді айтады. Өріс кез келген типті болуы мүмкін, оның ішінде класта болуы мүмкін;
Мысалы:
Type
TMyClass=class
AIntField:Integer;
AstrField:String;
AObjectField:TObject;
... ... ... ... ... ... ...
End;
Әрбір объект өрістер жиынтығын алады, бірақ осы кластың барлық объектілері үшін жалпы қасиеттер мен әдістер жиынтығы бар. Инкапсуляцияның іргелі принципі өріске кластың әдістері мен қасиеттерінің көмегі арқылы қатынас жасау керектігін талап етеді. Бірақ Object Pascal тілінде өріске тікелей шығуға рұқсат етіледі.
Type
TMyClass=class
FIntField:Integer;
FstrField:String;
... ... ... ... ... ..
End;
Var aObject:TMyClass;
Begin
... ... ... ... ...
AObject.FintField:=0;
AObject.FStrtField:='символдар жолы';
... ... ... ... ... ... ...
End;
Класс - ұрпақ өзінің барлық аталарынан барлық өрістерді ала алады және оны өзінікімен толықтырады, бірақ алдын-ала анықтай алмайды. Сөйтіп, тармақ иерархиясында класс қаншалықты төмен орналасса, соншалықты оның объектілерінен мәліметтер ала алады.
Класта инкапсуляцияланған процедуралар мен функциялар әдістер деп аталады. Олар әдеттегі қосалқы программалар тәрізді хабарланады:
Type TMyClass=class
Function MyFunc(aPar:Integer):integer;
Procedure MyProc;
End;
Кластың әдістеріне кіру оның өрістеріне кіргендей құрама атаулардың көмегімен жүзеге асырылады.
Var
AObject:TmyClass;
Begin
... ... ... ... ... ...
AObject:MyProg;
... ... ... ... ... ...
End;
Жоғарыда айтылғандай кластың әдістері ұрпақтарында жабылып тұруы мүмкін. Мысалы,
Type
TparentClass=Class
Procedure DOWork;
End;
TChildClass=Class (TParent Class);
Procedure DOWork;
End;
Екі класстың ұрпақтары да DOWork процедурасының атауы бойыншаұқсас әрекеттерді орындауы мүмкін. Бірақ, бұл жалпы жағдайда әртүрлі орындалады. Мұндағыәдістерді ауыстыру статикалық деп аталады, яғни копмильятормен программаны жүргізу кезеңінде әдістерді динамикалық ауыстыру жиі пайдаланылады. Мұны жүзеге асыру үшін аталық класта орналасқан әдіс динамикалық немесе виртуалды түрде хабарлануы тиіс. Осындай хабарлауды кездестіргеннен кейін компилятор екі кесте құрады.DMT (Dynamic Method Table) және VMT (Virtual Method Table) оларды сәйкес динамикалық немесе виртуалды әдістердің кіру нүктесіндегі адреске орналастырады. Әрбір ауыстырылатын әдіске оралған компилятор сәйкес кестелердің бірінен қосалқы программаға кіру нүктесінің адресін шығаруға мүмкіндік беретін кодты кояды.
Класс ұрпағында әдісті алмастыру override (жабу) директивасымен хабарланады. Осы нұсқауды алғаннан кейін, компилятор программаны жүргізу кезеңінде ата - аналық кестесіне класс - ұрпақ әдісінің кіру нүктесін орналастырады, ал аталыққа жаңа әдістің көмегімен қажетті әрекетті орындауға мүмкіндік береді.
Динамикалық және виртуалдық әдістердің арасындағы айырмашылығы - динамикалық әдістер кестесінде осы класта тек dynamic ретінде хабарланған әдістер адрестері болады, ал виртуалдың кестесінде сол кластың виртуалдың әдістерімен қатар, оның барлық аталықтарының да адрестері сақталады. Көлемі айтарлықтай VMTкестесі жылдам іздеуді жүзеге асырады, сондай-ақ, динамикалық әдіске оралғанда программа алдымен DMT объектінің кестесін қарап шығады, одан кейін аталық класын қажетті кіру нүктесі табылғанша іздейді.
Динамикалық жабылатын әдістер ешнәрсе орындамауы мүмкін. Мұндағы әдістер абстрактылы әдістер деп аталады, олар ұрпақтарында жабылуға міндетті. Программист adatract директивасымен хабарлау арқылы абстрак әдісті шақыруға тосқауыл қоя алады. Мысалы:
Type
TvisualObject=class (TWinControl)
...
Procedure DRAW (IsSHOW:Boolean);
Virtual; abstract; end;
TvisualChildObject=class(TWinContro l)
...
Procedure DRAW (IsSHOW:Boolean):override;
End;
Var
aVisualObject:TvisualObject;
aVisualChild: TvisualChildObject;
begin
...
aVisualObject. SHOW; {қате Абстракт әдіс шақырылды}
aVisualObject. SHAW {Шақыру дұрыс. TvisualChildObject класындағы DRAW әдісі жабылған}
... End;
Жабылмаған абстракт әдісті шақыру орындалу барысында қате болып есептеледі. Сауатты құрылған программада абстракт әдіс шақырылмайды. Кез келген класстың құрамына екі арнайы әдіс кіреді: конструктор және деструктор. Tobject класында бұл әдістер Create және Destroy деп аталады. Конструктор динамикалық жадыда объектілерді үлестіреді және жадының осы адресіне SELF айнымалысын орналастырады, ал автоматты түрде класта хабарланады. Конструктор және деструктор процедура болып табылады, бірақ Constructor және destructor қызметші сөздерінің көмегімен хабарланады:
Type
TMyClass=class
InField:Integer;
Constructor Create (Value:integer);
Destructor Destroy;
End;
Көптеген конструкторлар объектінің дұрыс жұмыс істеуіне қажетті қандай да бір әрекетті орындайды. Сондықтан класс ұрпақ конструкторында алдымен өзініңаталық конструкторын шақыру қажет, одан кейін қосымша әрекеттер жүзеге асырылады. Аталық кластағы кез келген әдісті шақыру Inherited (мұрагер) қызметші сөзінің көмегімен жүзеге асырылады:
Constructor TMyClass.Create (Value:Integer);
Begin
Inherited Create; Мұрагер конструкторды шақыру
Inherited:= Value Қосымша әрекетті орындау
End;
Кейбір әдістер объектіні құрмай және инициализация жасамай-ақ шақырылу мүмкін. Мұндағый әдістер кластың әдістері деп аталады, олар class қызметші сөзінің көмегімен шақырылады.
Type
TMyClass=class (TObject)
Class Function GetClassName:String;
End;
Var
S:string;
Begin
S:=TMyClass.GetClassName;
...
End;
Кластың әдістері өрістерін шақыра алмайды, жалпы жағдайда объект құрмай-ақ шақырылады. Әдетте класс туралы қызметші ақпаратпен шектеледі: класс аты, аталық класс аты, әдістәң адресі және т.б.
Қасиеттер-бұл өріске кіру мүмкіндігін реттейтін кластардың арнайы механизмі.Қасиеттер property, read және write қызметші сөздерінің көмегімен хабарланады (read және write сөздері тек қасиетті хабарлау контексінде пайдаланатын қызметші сөздер). Әдетте қасиет қандай да бір өріспен байланысты болады және осы өріске жазуда немесе одан оқуда пайдаланатын кластың әдістерін көрсетеді.
Мысалы:
Type
TaClass=Class
IntField: integer;
Function.GetField:integer;
Procedure SetField (Value: integer);
Property IntegerValue:integer read
GetField write SetField;
End;
Программа контексінде қасиет өзін әдеттегі өріс ретінде көрсетеді. Сондай-ақ, төмендегідей операторларды жазуға болады:
Var
aClass:TaClass;
Value: integer;
Begin
aClass:=TaClass.Creat {Өрісті немесе қасиетті шақырар
алдындағы конструктордың міндетті шақырылуы}
aClass.InterValue:=0;
...
Value:=aClass.InterValue;
...
aClass.Destroy; керек емес объектіні өшіру
end;
Мұнымен бірге, төмендегідей меншіктеу операторының жазылуы мүмкін:
aClass.IntField:=NewValue;
Бұл оператормен төмендегі оператордың арасындағы айырмашылық - қасиеті шақырғанда SetField әдісі автоматты түрде қосылады және арнайы әрекеттер орындалады.
Оқу программасында келтірілген
LbOUTPUT.CAPTION:="жол" операторын еске түсірейік.
Label компоненттің Caption қасиеті SetText әдісін шақырады, ол ішкі айнымалыдағы символдар жолын сақтап қана қоймай, жаңа мәтінді де еске сақтайды.
Егер қасиетті арнайы оқу немесе жазу үшін қажеттілік болмаса сәйкес әдістің атауының орнына өріс атауын көрсетуге болады:
Type
TaClass=Class;
IntField:integer;
Procedure SetField(Value:integer);
Property IntegerValue: Integer read IntField write SetField;
End;
Егер қасиет тек оқу немесе жазу үшін ғана қажет болса, онда оған сәйкес бөлігін жазбауға болады. Қасиет өріспен байланыспауы да мүмкін.
Шынында, ол қасиеттің өзінің типіндей мәліметтерден қандайда бір әрекетті жүзеге асыратын бір немесе екі әдісті сипаттайды.
Жобаның құрылымы. Жоба файлы Object Pascal тілінде жазылған, компилятормен өңдеуге арналған программа болып табылады. Бұл программа Delphi - де автоматты түрде құрылады, бірнеше жолдардан тұрады. Оны көру үшін Delphi - ді шақырып, бас менюден ProjectView Source опциясын таңдаңыз. Delphi Project1 мәтінінен тұратын код терезесін шығарады:
Program Project1;
Uses
Forms,
Unit1 in `Unit1.pas' {fmExample};
{SR*. RES}
Begin
Application. Unitialize;
Application. Greate Form (TfmExample, fmExample );
Application. Run;
End.
Код терезесінде қарайтылған шрифтпен қызметші сөздер жазылған, ал курсивпен фигуралық жақша ({}) ішіне түсіндірме жазылған. Программа мәтіні Program сөзінен басталып, End сөзімен аяқталып тұр. End сөзінен кейінгі нүктеден соң жазылған жазуды программалық бірліктің терминаторы деп атайды. Егер программа мәтінінде осындай терминетор кездесетін болса, компилятор программаны жолдауды тоқтатып, мәтіннің қалған бөлігін ескермейді (жойы жібереді).
Object Pascal тілінде қызметші сөздер маңызды роль атқарады. Әрбір қызметші сөз компиляторға шартты нұсқау береді, тек ағылшын тілінде жазылады.
Ал түсіндірменің компилятор үшін ешқандай мәні жоқ, түсіндірме кездессе, компилятор оны қалдырып кетеді. Программадағы түсіндірме программист үшін аса маңызды, ол программаны түсінуді жеңілдетеді. Object Pascal тілінде фигуралық жақшаға ({}) алынған кез келегн символдар тізбегі түсіндірме болып есептеледі.
Жоғарыдағы келтірілген мәтінде екі түсіндірме бар, бірақ {SR*. RES} жолы шын мәнінде түсіндірме емес. Бұл арнайы түрде жазылған фрагменті - компилятор директивасы деп аталады. Директивалар S символынан басталады. Түсіндірме үшін сондай - ақ, (*,*) және белгілері де пайдаланылады. (*.*) - фигуралық жақша тәрізді, ал символдары компиляторға түсіндірменің ағымдағы жолдың соңына дейін жазылатынын ескертеді.
Program сөзінен кейінгі жазылған атау мен соңынан қойылған ; программа тақырыбын құрайды. Тақырыптан кейін бейнелеу бөлімі жазылады, Мұндағы программист программада пайдаланылатын идентификаторларды сипаттайды. Идентификаторлар типер, айнымалылар, процедуралар, функциялар тәрізді программа элементтерін белгілейді. Uses қызметші сөзінен кейін басталатын сөйлемнің көмегімен программист программаның ажырамайтын құрамдас бөлігі ретінде қарастырылатын, басқа файлдарда орналасатын программа фрагменті (модульдер) туралы компиляторға хабарлайды.
Программадағы:
Uses
Forms,
Unit1 in `Unit1.pas' {fmExample};
Жолдар программада файл жобамен қатар, Forms және Unit1 модульдері пайдаланатындығын көрсетеді. Forms модулі Delphi - де стандартты модуль, ал Unit1 - әлі белгісіз, жаңа модуль, Delphi Мұндағый жағдайда модульдің мәтіні бар файлдың атын да көрсетеді (in `Unit1.pas') және файл модуліне байланысты форманың сипаттамасы {fmExample} - де.
Программа денесі Beginсөзінен басталып, End.Терминеторымен шектеледі. Программа денесі Object Pascal - дың біренеше операторларынан тұрады. Әрбір операторда қандай да бір әрекет жүзеге асырылады - айнымалы мәнін өзгерту, есептеу нәтижесін талдау, қосалқы программаға оралу және т.б. Біздің мысалда программа денесінде үш орындалатын оператор бар:
Application. Unitialize;
Application. Greate Form (TfmExample, fmExample );
Application. Run
Бұлардың әрқайсысы Application объектілер әдісінің біріне оралады. Объект дегеніміз - өңдеуге арналған мәліметтер мен қосалқы программаны қамтитын, арнайы дайындалған программа фрагменті. Мәліметтер деп объектінің өрістерін, ал қосалқы программа деп оның әдістерін айтамыз. Объект тұтасымен алғанда, қандай да бір нақты есепті шығаруға арналған, программада бөлінбейтін бүтін ретінде қарастырылады. Объект қазіргі программалау тілдерінде маңызды роль атқарады. Объектінің басты екі қасиеті бар: оның функционалдығы мен бөлінбейтіндігі.
Delphi - ді құрушылар жүздеген объектіні қарастырған, ол көп қабатты программалар үйін тұрғызатын кірпіштер тәрізді. Программаны құрудың Мұндағый принципі объектілі бағдарланған программалау деп аталады.
Application объектісінде Windows программаны толығымен басқаруға қажетті мілңметтер мен қосалқы программалар жинақталған. Delphi автоматты түрде әрбір жаңа проект үшін Application объект программасын құрады.
Application. Initialize жолы Application объектісінің Initialize әдісіне оралатынын көрсетеді. Осы жолды оқығаннан кейін компилятор қандай да бір программа фрагментін орындауды талап ететін кодты құрады. Осы фрагментті орындағаннан кейін (яғни программистердің тілімен айтқанда, қосалқы программадан шыққаннан кейін) процессор басқарудыпрограмманың келесі жолына береді, ол Сreate Form әдісі арқылы шақрылады.
Application объектісінің Сreate Form әдісі экранда бас форма терезесін құрып көрсетеді, ал Run - Windows - ден түскен пайдаланушының әрекеті жөніндегі хабарларды үздіксіз алып, оны өңдеуді жүзеге асырады. Пайдаланушы Close батырмасын тышқанмен белгілегенде Windows программаға программа жұмысын тоқтатып, оған бөлінген жүйелік ресурстарды босату жөнінде арнайы хабарлама береді.
Сонымен қорыта келгенде, файл жобаны толығымен Delphi өзіқұрады. Осы себепті файл - жобаның затының алатын орны ерекше, ол әдетте, код терезесінде көрінбейді. Күрделі жобаларды құрғанда бұл файлды оған кіретін басқа формалардың қызметін түсіндіру үшін, сондай - ақ, программа жұмысын бастар алдындағы кейбір арнайы әрекеттерді орындау үшін пайдалануға болады
DELPHI ортасының меню жолы
Менюдің "Файл" (File) пункті командаларын қарастырайық. Бұл пунктте Құру(Создать), Ашу(Открыть), Жобаны ашу(Открыть проекта), Таңдау(Выбрать), Сақтау(Сохранить) және т.б. командалар қарастырылған. Толығырақ сипаттама алу үшін Кесте 1 -де берілген.
Кесте 1Менюдің "Файл" (File) пункті командалары
Меню командалары
Сипаттамасы
Создать (New)
Құралатын объекттің типін (қосымша, форма, модуль) таңдауға арналған ішкі меню
Открыть...(Open)
Құрылған проект, форма, модуль, редактордағы тексттік файлды жүктеу үшін ашуға арналған диалогты терезені бейнелейді. Егер модуль форманы сипаттаса, онда бұл форма экранда пайда болады
Открыть проект... (Open Project)
Құрылған проекттi жүктеу үшiн диалогты терезенi көрсетедi (.bpr или .bpk)
Кесте 1 жалғасы
Выбрать (Reopen)
Соңғы жабылған проекттер мен модульдердiң тiзiмiнен тұратын iшкi менюдi көрсетедi
Сохранить(Save)
Редактрленген файлды оның ағымды атымен сақтайды
Сохранить как...(Save As)
Проект файлындағы өзгертулердi енгiзiп ағымды файлды жаңа атпен сақтайды
Сохранить проект как...(Save Project As)
Ағымды проекттi жаңа атпен сақтайды
Сохранить все (Save All)
Барлық ашылған файл, проект пен модульдердi сақтау
Закрыть
(Close)
Ағымды проекттi және онымен байланысты модульдер мен формаларды жабады
Закрыть все (Close All)
Барлық ашылған файлдарды жабады
Использовать модуль (Use Unit)
Таңдалған модульдi белсендi модульдiң сипаттамасына қосады
Печать (Print)
Белсендi файлды баспаға бередi
Выход (Exit)
Проекттi жабады және ортадан шығады
Менюдiң басқа пунктерiн қарастырайық. "Правка" (Edit) пунктi "Отменить" (Undo) және "Вернуть" (Redo) командаларынан тұрады, олар редактормен жұмыс iстеу кезiнде жасалған қате әрекеттердiң салдарын жоюға өте пайдалы. Мысалы, егер қажет текст фрагментi кездейсоқ өшiрiлген жағдайда.
"Отменить" (Undo) командасын орнату үшiн редактор менюiндегi Сервис Опции редактора (Options Environment) пунктiн қалай қолдануға болатындығын түсiндiредi. "Отменить" (Undo) командасының мүмкiн санын шектеуге болады."Вырезать"(Cut),"Копировать" (Copy), "Вставить" (Paste) және "Удалить"(Delete) командаларының қызметi Windows-тың басқа қосымшаларындағы осы командалардың қызметiмен бiрдей, бiрақ Delphi-де оларды тек текстке емес, визуалды компоненттерге де пайдалануға болады.
"Сделать верхним" (Bring To Front), "Сделать нижним" (Send To Back), "Выровнять" (Align) және "Размер" (Size) командалары 1 сабақта талқыланған. Қалған 4 пункт формаладың сыртқы түрiн жылдам "безендiруге" көмектеседi.
"Поиск" менюiнде программаны орындау кезiнде қатенi табуға көмектесетiн "Find Error" (қатенi iздеу) командасы бар. Қате туралы хабарда оның адресi (орны) көрсетiлген жағдайда Сiз менюдiң Search Find Error пунктiн таңдап, сол адрестi енгiзуіңізге болады. Егер мүмкiндiк болса, Delphi ортасы программада қате жiберiлген орынға сiздi апарады.
Менюдiң "Вид" (View) пунктi командаларын қарастырып, сипаттама берейік Кесте 2.
Кесте 2 Менюдiң "Вид" (View) пуктiнiң құрамы
Меню командалары
Сипаттамасы
Менеджер Проектов (Project Manager)
Проектiлердiң менеджерiн көрсету
Инспектор объектов (Object Inspector)
Объектiлер инспекторын көрсету. Онда өзгертуге болатын белсендi компоненттердiң қасиеттерiн бейнелейдi
Дерево объектов (Object TreeView)
Сiздiң формаңызға, модульге және т.б. орналастырған визуалды не визуалды емес компоненттердiң сатылы ағаш тәрiздес тiзiмiн көрсету
Списокдел
(To do List)
Жасалған iс-әрекеттер тiзiмi
Панель выравнивания (Alignment Palette)
Формадағы объектiлердi әртүрлi параметрлер бойынша түзету
Обозреватель (Browser)
Программадағы объектiлер сатысын, бастапқы текстегi идентификаторды iздеу және т.б. көру құралдарын шақыру
Обзор кода
(Code Explorer)
Сiздiң модулiңiзде сипатталған барлық типтердi, қасиеттердi, әдiстердi, глобалды айнымалыларды көрсететiн ағаш тәрiздес диаграмманы ұсынады
Список компонентов (Component List)
Компоненттер палитрасының альтернативасы. Тышқан болмаған жағдайда компоненттер аты бойынша iздеуде пайдаланады
Список окон
(Window List)
Delphi ортасында ашылған терезелер тiзiмi
ФормаМодуль
(Toggle FormUnit)
Формаданоғансәйкесмодульгеөту, тiзiмненмодульдi немесеформанытаңдау
Список модулей (Units)
Проектiдегi ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz