
- •Мазмұны
- •2 Delphi ортасын алдын-ала даярлау...............................................................…....13
- •1304000-«Есептеуіш техника және
- •1 Delphi ортасы
- •Delphi ортасымен танысу
- •1304000-«Есептеуіш техника және
- •Негізгі терезе
- •Пиктограммалық батырмалар
- •View (қарап шығу) тобы
- •Компоненттер жинағы
- •Форма құрастырушысының терезесі
- •Объектілер бақылаушысының терезесі
- •Бағдарлама кодының терезесі
- •Визуалды бағдарламалаудың негіздері
- •2 Delphi ортасын алдын-ала даярлау
- •2.1 Бос форма
- •2.2 Форма қасиеттерін өзгерту
- •2.3 Формаға компонентті орналастыру
- •2.5 Компоненттің қасиетін бағдарлама орындалу барысында өзгерту
- •3 Delphi ортасының компоненттері
- •3.1 Standard парағы
- •1304000-«Есептеуіш техника және
- •3.2 Additional парағы
- •3.3 Dialogs парағы
- •3.4 System парағы
- •1304000-«Есептеуіш техника және
- •4 Delphi тіліндегі бағдарламаның құрылымы
- •Жобаның құрылымы
- •Delphi тіліндегі бағдарламаның құрылымы
- •Модульдердің тақырыбы, интерфейстік және орындалатын бөліктері
- •1304000-«Есептеуіш техника және
- •Delphi операторлары
- •5.1 Case операторы
- •5.2 Массив элементтерімен жұмыс атқару
- •5.3 Delphi ортасындағы динамикалық массивтер
- •1304000-«Есептеуіш техника және
- •1304000-«Есептеуіш техника және
Келесі
бағдарлама бойынша массив элементтеріне
0 мне 1000 аралығындағы кез келген
кездейсоқ мән меншіктеледі де экран
бетіне шығарылады. Мысалда fmExample формасы
қолданылған және procedure
bbRunClick(Sender:TObject)-bbRun батырмасы басылғандағы
оқиғаны өңдеуші үзінді келесі түрде
өзгертілген:
procedure
TfmExample.bbRunClick(Sender:TObject); const
n=10; m_v=1000+1;
var
m:array[1..n] of integer; i:integer; sr:real; begin
for i:=1 to n do
begin m[i]:=random(m_v);
mmOutput.Lines.Add(‘m[‘+IntToStr(i)+’]=’+IntToStr(m[i]));
end;
24-Сурет-Массив
элементтеріне 0-1000 аралығындағы
кездейсоқ
сандар меншіктеледі
2.
Бұл мысалда N элементтен тұратын бір
өлшемді массив берілген . Массивтің
элементтерінің қосындысын және ең
үлкенін тауып, элементтер мәндерін өсу
ретімен орналастыру алгоритмін
қарастырайық.
5.2 Массив элементтерімен жұмыс атқару
ҚР 1304000 КЖ
Өзг.
Құжат№
Қолы
Бет
Бет
Күні
Бағдарлама
жұмысын бастағанда Edit1
енгізу жолында көрсетілген массив
элементтерінің саны Button1
батырмасын басқанда енгізіледі . Енді
қайталау операторы арқылы массивтің
әр элементіне динамикалық түрде бөлек
Edit
терезелері ScrollBox
компонентінің ішінде құрастырылады .
Осы терезелерде массив элементтерінің
мәндері көрсетіледі және Button2
батырмасы басылғанда бірден қосындысы
есептеледі, сонан кейін элементтердің
ең үлкені табылады . Массив
элементтерін мәндерінің өсуі бойынша
реттеу келесі алгоритм арқылы жүзеге
асырылған . Соңында
массив элементтері мәндерінің өсуі
бойынша реттелген түрде ScrollBox
компонентінің
ішінде орнатылған Label
терезелеріне шығарылады (24-сурет).
Delphi
4 ортасынан бастап динамикалық массивтер
деген ұғым енгізілген. Осындай түрде
анықталған массивтердің индекстер
аралығын анықтаудың қажеті жоқ және
массив ішкі жады кеңістігінде орналасады
. Мысалы ,
Var
A:
array of Integer;
B:
array of array of Char;
C:
array of array of array of Real; Жоғарыдағы
А массиві бір өлшемді, В-екі өлшемді
және С-үш өлшемді деп анықталған .
Осындай түрдегі массивтерге жадыны
бөлу және индекстерінің аралығын
көрсету бағдарлама орындалу барысында
массивті орнату әрекеттерінің
SetLength(A,3) операторы орындалғанда А
динамикалық массивке жады бөлінеді ,
яғни үш бүтін санға жеткілікті орын
бөлінеді . Динамикалық
массивтердің кез келген өлшумінің
төменгі шегі нөлге тең деп саналады ,
сондықтан А массивінің индекстерінің
жоғарғы шегі 2 болады.
Динамикалық
массивтің идентификаторы негізінде
массивтің элементтеріне бөлінген
аумақтың бірінші байтының адресі-сілтеме
болып табылады . Сондықтан массивке
бөлінген жадыны босату үшін массив
идентификаторына NIL мәнін меншіктесе
жеткілікті ( немесе Finalize процедурасын
қолдануға болады ) .
5.3 Delphi ортасындағы динамикалық массивтер
ҚР 1304000 КЖ
Өзг.
Құжат№
Қолы
Бет
Бет
Күні
Орнатылған
динамикалық массивтің кез келген өлшем
индекстерінің шегін өзгерту үшін жаңа
массивке қажетті аумақ алдын-ала
даярланады және бұрыңғы массивтің
элементтері жаңа аумаққа орналастырылады
, сонан кейін ескі массивке бөлінген
жадының аумағы босатылады . Жалпы
динамикалық массивтің мөлшерін өзгертуге
кететін уақытты үнемдеу үшін, динамикалық
массивке бірден максималды ұзындығын
анықтаған жөн . Көп
өлшемді массивтерде алдымен бірінші
өлшемінің ұзындығы анықталады, сонан
кейін екіншінікі, үшіншінікі т.с.с. Мысалы, Var
A:array of array of integer; //
екі өлшемді динамикалық массив Begin SetLength
(A,3); //
бірінші
өлшемінің ұзындығын анықтаймыз, яғни
балалар санын SetLength
(A[0],3); // әр бағанының ұзындығын анықтаймыз SetLength
(A[1],3); SetLength
(A[2],3); ……………. End; Object
Pascal
тілінде динамикалық массивтердің
екінші және одан арғы өлшемдерінің
ұзындығы әртүрлі болуы мүмкін. Жоғарыдағы
мысалда 3х3 квадратты матрица анықталған.
Төмендегі мысалда үшбұрышты массив
құрылады: SetLength(A[0],3); SetLength(A[1],4); SetLength(A[2],5);
ҚР 1304000 КЖ
Құжат№
Бет
Өзг.
Бет
Қолы
Күні
Жалпы
көп өлшемді динамикалық массивтердің
N-1 өлшемдерінің (N-өлшемдер саны) әр
элементі динамикалық массив болып
табылады және ол іске қосуды
(инициализациялау) қажет етеді. Мысалы,
3х3х3 үш өлшемді массивті орнату келесі
түрде ұйымдастырылады: Var
A:array of array of array of Real; i,j:integer; Begin
SetLength(A,3);
For i:=0 to 2 do
Begin SetLength(A[i],3);
For j:=0 to 2 do
SetLength(A[i,j],3); End; ……………………End;
ҚР 1304000 КЖ
Күні
Қолы
Құжат№
Бет
Өзг.