
- •2.2 Дәрістік сабақтар конспектісі
- •Дәріс №3. Delphi жобасының файлдары. Delphi жобалары. Delphi-де жобаны ұйымдастыру, жобалардың негізгі файлдары
- •Дәріс №4. Тұрақтылар, ауыспалылар, типтік тұрақтылар. Тұрақтылар және тұрақтылар өрнегі.
- •Айнымалылар
- •Дәріс №5. Object Pascal тіліндегі деректер типі.Деректер типінің, хабарландыру типінің жіктелуі.
- •Типтердің келтірілуі
- •Реттелген деректер типі.
- •Бүтін деректер типі
- •Нақты деректер типі.
- •Булевтер деректер типі.
Айнымалылар
Айнымалылардың мәні сақталатын жадтың кейбір аймағын сипаттайтын идентификаторлар айнымалылар деп аталады. Бұл қосымшаны орындаған кезде өзгеруі мүмкін.
Айнымалылардың көрсетілімі мынадай көріністе болады:
var <айнымалы идентификаторлар тізімі> : <тип>;
var кілтті сөзінен соң бір емес бірнеше айнымалылар көрсетілімі шығуы мүмкін. Әрбір көрсетілімде үтірмен бөлінген айнымалылардың идентификаторларының тізімі немесе бір идентификатор болуы мүмкін. Әрбір көрсетілімде үтірмен бөлінген айнымалылардың идентификаторларының тізімі немесе бір идентификатор болуы мүмкін.
Айнымалыларды көрсетілімнен мысал келтірейік:
var I: integer;
X, Y, Z: Double; Digit: 0..9; Okay: Boolean;
Айнымалыларды жергілікті және басты болып бөлінеді. Процедураларда және функцияларда болатын айнымалыларды жергілікті деп атайды. Олар прцедуралар мен функцияларды орындаған кезде болады. Яғни жады олар үшін процедуралар мен функцияларды шақырған кезде бөлінеді және шақырған процедураларды қайтарған кезде жіберіледі. Көрсетілген процедуралар мен функциялардан тыс айнымалылар басты деп аталады.
Басты айнымалылар олардың көрсетілімінде инициализациялауға болады, яғни оларға бастапқы мән беруге болады. Бұлар сөйлемдермен жүзеге асырылады.
< айнымалы идентификаторы> : <тип> = <тұрақты өрнегі>;
Айнымалылырдың инициализация мысалы:
var I:integer = 7;
Deg:double = 35*180/Pi;
Жергілікті айнымалыларды инициализациялауға болмайды. Бұл жағдайда ахуалдан шығу типтелген тұрақтыларды қолдануға тура келеді. Басқаша жолы — программалық түрде айнымалылардың мәнін бірінші қолданбас бұрын беруіміз қажет. Егер бұларды жасамасақ, онда айнымалылардың мәні мүмкін емес болатынын ескеруіміз қажет. Айнымалылар астынан жадтың облысына сәйкес бөлінген кезде, ол кездегі кездейсоқ жадтың жағдайына байланысты.
FreeMem және Dispose процедураларына сәйкес жадтарды босату арқылы және GetMem процедурасымен heap (үйме) жадының облысының динамикалық бөліктеуінде орын бөлу арқылы динамикалық айнымалыларды құруға болады. Сондай-ақ ReallocMem, Initialize, StrAlloc және StrDispose функцияларын динамикалық айнымалылар үшін де қолданылуға болады.
Қосымшаларда бірнеше паралельдік орындалған ағындық есептердің ағындарында локальды (жергіліктенген) айнымалылар анықталуы мүмкін (thread-local немесе thread). Олар глобальды айнымалылар секілді, бірақ әрбір ағын немесе жіп (thread) басқа ағындарға рұқсат етілмеген осы айнымалының көшірмесін алады. Ағымдарда жергіліктелген айнымалылар көрсетілімі threadvar кілттік сөзі арқылы жүзеге асырылады. Мысалы :
threadvar X: Integer;
Қажет айнымалылар процедураларда және функцияларда көрсетілмейді, олар инициализиялана алмайды, динамикалық түрде беріле алмайды.
Типтелген тұрақтылар.
Типтелген тұрақтылар const бөлімінде көрсетілетіне қарамастан, шын тұрақты болып табылмайды, яғни бастапқы мән алатын олардың көрсетілімдерінде инициаланған айнымалылар болып табылады. Типтелген тұрақтылар локальды айнымалылардың бастапқы мәндерін беру үшін қолданылу мүмкін, сондай-ақ — глобальды айнымалылар үшін де. Толығымен айнымалылардың инициализациясын 13.5.2.бөлімінен қараңыз.
Типтелінген тұрақты мына өрнекпен көрсетіледі:
const <идентификатор> : <тип> = <тұрақтының өрнегі>;
Мысалы:
cons.t In: integer = 7;
Angl: double = 35*Pi/180;
Келесі мәтіндерде типтелген тұрақтылардағы программалар өзінің мәнін керек етіп өзгертіп тұрса да, оларға қарапайым айнымалы секілді қарауымызға болады. Яғни бұны {$J+} опциясын қосқан кезде істеуімізге болады. Delphi 7- ден бұрын бұл компилятор директивасы ретінде қолданылды. Delphi 7- ден бастап, ол тыныш кейпінде {$J+}директивасын қосқанда типтелген тұрақтылардың орындалуы кезіндегі мәндерін өзгерту мүмкін емес. Бұл жағдайда олар қарапайым тұрақтыларға айналады. Сондықтан, егер сіздер бұрын құрылған және типтелген тұрақтылар қолданылған жобаларды Delphi 7- де компиляцияласаңыз, онда {$J+} директивасын қосу керек, немесе айнымалыларға өзгерте отырып, жобадан типтелген тұрақтыларды алып тастау керек, яғни const сөзін var-ға ауыстыру.
Деректерді енгізу
Күнделікті жағдайда программа деректерді үш тәсілмен ала алады;
енгіу терезесінен – қарапайым, консольды режимде;
енгізу терезесінен – InputBox сұхбаттық енгізу терезесі;
3. форма енгізу терезесінен - стандартты режимде Delphi редакторлау терезесімен, т.с.с. форма терезесімен (Edit компоненті).
Файлдармен жұмыс кезінде – файлдан дискіге сақталынатын .
Енгізу терезесінен
Енгізу терезесі – бұл InputBox функциясын енгізгеннен кейін нәтижесінде экранға шығатын стандартты сұхбаттық терезесі. Қолданушы InputBox жолының функцияның мәнін енгізген.
Деректерді енгізу операторы прогаммада InputBox функциясы арқылы мына түрде болады:
Айнымалылар:= InputBox(Тақырып, Айтып жіберу, Мағына);
где:
Тақырып – енгізу терезесінің тақырыбының мәтіні;
Айтып жіберу – хабарламаны түсіндіруші мәтіні;
Мағына – экранда терезе пайда болған кезде, енгізу өрісіндегі мәтін.
Программаға деректерді енгізу мысалы «Минутты сағатқа айналдыру уақыты»:
s
:=
InputBox('Сағаттар-минуттар','Уақытты сағатпен
беріңіз','0');
InputBox функциясының мәні жол болып табылатын - String типі екенін ескеру қажет. Сондықтан енгізілетін санды қарапайым сан секілді енгізу керек болса, онда енгізлетін жол функцияның көмегімен санға түрленуі қажет.
Редакторлау өрісінен кіру
Редакторлау өрісі – бұл Edit компоненті. Редакторлау өрісінен деректерге ену Text қасиеттерін пайдалану арқылы жүзеге асады.
31- суретте програманың сұхбаттық терезесінде салмақ яғни, фунттан килограммға айналдыру көрінісін көреміз. Егер Edit1 – салмақтың фунтқа айналуындағы өріс аты болса, онда енгізілу нұсқауында шығатын мәліметтер мына түрде болады:
funt:= StrToInt(Edit1.Text);
Нәтиженің қорытындысы.
Қарапайым программа өзінің жұмысының нәтижесін хабарлау терезесіне немесе форманың сұхбаттық терезесі – Form бар Label - шығу өрісіне шығарады .
Хабарлау терезесіне шығу.
Хабарлау терезесі қолданушының назарын аудару үшін қолданылады. Хабарлау терезесінің көмегімен программа мысалы шыққан деректердің қателерін ақпараттайды және мүмкін емес операцияларды орындалуын растайтын сұрауларды орындайды, мысалы, файлдарды өшіру.
ShowMessage немесе MessageDlg процедуралары арқылы экранға хабарлау терезесін шығаруға болады.
ShowMessage процедурасы экранға мәтіндік терезені және OK командалық батырманы шығарады. Жалпы алғанда ShowMessage процедурасын шақыру нұсқауының көрінісі мына түрде;
ShowMessage (Хабарлама);
мұнда Хабарлама – терезеге шығатын мәтін;
Төменде нұсқауды орындағаннан кейінгі хабарлау терезесінің көрінісі келтірілген:
S
howMessage
(‘Уақытты
сағатпен енгізіңіз’);
Application қосымшасында берілетін Project Options терезесінің ShowMessage процедурасы арқылы шыққан хабарлау терезесінің тақырыптамасында қосымшаның аты берілгені туралы ескеру қажет. Егер қосымшаның аты берілмесе, онда тақырыптамада орындалған файл аты болады.
MessageDig функциясы әмбебаптырақ. Ол хабарлау терезесін стандартты белгілердің біріне айналуына мүмкіндік береді, мысалы "Назар аударыңыз", санын беру және командалық батырма типін және анықтау, қолданушы қандай батырма басқандығы.
Төменде нұсқау орындалғаннан кейін нәтижеге шығатын терезе көрсетілген:
r
:=MessageDlg('Вы
действительно хотите закрыть программу?',
mtWarning,[mbOk,mbCancel],0);
MessageDig функциясының мәні — число, анықтауға болатын мәнді бақылайтын сұхбат қандай батырманы басқанда аяқталатынын таңдайтын сан.
Жалпы жағдайда MessageDig функциясының мәні мынадай:
Таңдау:= MessageDig(Хабарлама, Тип, Батырмалар, АнықтамаКонтексті)
мұнда:
Хабарлама — хабарлама мәтіні;
Тип — хабарлама типі. Хабарлама ақпаратық, ескертуші немесе ірі қателерді көрсетуші болуы мүмкін. Әр хабарлама типінің өзіне сәйкес белгісі бар. Хабарлама типі атаулы тұрақтымен беріледі:
Тұрақты |
Хабарлама типі |
Белгі
|
mtWarning Mt |
Назар аударыңыз |
|
Error |
Қате |
|
mt Information |
Ақпарат |
|
mtConfirmation |
Растау |
|
mt Custom |
Күнделікті |
Белгісі жоқ |
Батырма — хабарлама терезесінде батырмалар тізімін көрсетеді. Тізім бірнеше бөлінген атаулы тұрақтылардың үтірлерінен тұруы мүмкін. Барлық тізім квадратты жақшамен аяқталады.
Тұрақты |
Батырма |
Тұрақты |
Батырма |
mbYes |
Yes |
mb Abort |
Abort |
mbNo |
No |
mbRetry |
Retry |
mbOK |
OK |
mbIgnore |
Ignore |
mbCancel |
Cancel |
mbAll |
All |
rcbHelp |
Help |
|
|
Мысалы, хабарлама терзесінде ОК және Cancel батырмалары пайда болуы үшін, батырмалар тізімі мынадый болуы қажет: [mbOk, mbCancel]
Көрсетілген тұрақтылардан мына тұрақтыларды қолдануға болады: mbokcancel, mbYesNoCancel және mbAbortRetryIgnore. Бұл тұрақтылар сұхбаттық терезеде жиі бір уақытта қолданылатын командалық батырмалардың комбинациясын анықтайды.
Анықтама контексті — егер қолданушы <F1> клавишасын басқан кезде аықтамалық жүйенің бөлімін анықтайтын экранда пайда болатын параметр. Егер анықтама қорытындысы қаралмаса, онда Анықтама контекстінің параметрінің мәні нөлге тең болуы қажет.
MessageDlg функциясының мәні қолданушы қандай командалық батырманы басқандығы туралы анықтайды.
MessageDlg функциясының мәні |
Диалог батырмасы басқаннан кейін аяқталады |
MrAbort |
Abort |
MrYes |
Yes |
MrOk |
Ok |
MrRetry |
Retry |
MrNo |
No |
MrCancel |
Caftcel |
Mrlgnore |
Ignore |
Mr All |
All |
Негізгі әдебиет: 1[825-828]
Бақылау сұрақтары:
1. Тұрақтылар және тұрақтының өрнектері өздіктерінен не ұсынады, олар қайда қолданылады және қалай оларды көрсетуге болады?
2. Программада тұрақтының өрнектерін қолдану не береді?
3. Программа деректерді қалай ала алады?