8-ДӘРІС. Нысанды-бағдарланған программалаудың ерекшеліктері
1. Класстар және нысандар;
2. Өрістер;
3. Қасиеттер;
4. Әдістер;
5. Хабарламалар мен оқиғалар;
6. Визуалды компоненттер кітапханасы.
Кез келген жіберілген программа автоматты жан жақты төрт объектімен байланысты ол: Application (программа), Screen (экран), Printer (принтер), Clipboard (буфердің программа арасында ауысуы).
Application объектісі TApplication класында жатады, ол автоматты түрде кез келген программада жіберіледі.
Screen объектісі Тscreen класында инкапсуляцияланған қасиеті және әдісі. Printer объектісі автоматты түрде құрылады, егер де программада Printers модульдік сілтемеде көрсетілсе.
Clipboard – Windows - та Clipboart мәліметтер мен буфер программасында ауысу кең көлемде пайдаланады. Егер де Delphi программасы Clipboart –тік модульде, онда оған автоматты түрде Clipboart объектісіне енуге болады.
Кілт сөзді анықтау.
Help қызметі кілтік сөздерді іздеуге мүмкіндік береді. Басты бөлімде кілтік сөзді анықтау үшін (символдық текстің ең алдында ), латын әріпімен «К» немесе «к» Мысалы:
Открыть: текстік файл; Asil; текст;
Секция Options
Секция [Options] құралады немесе ауыса алады. Options батырмасының көмегімен Options батырмасын басқаннаң кейін көп бетті терезе ашылады.
General беті.
Default topic-идентификатор.
Help title- негізгі іздеу тересзесінде қызмет етеді.
Notes-қысылғыш таңдалса, онда компелятор мәселені хабарлайды.
Errors- кодтын қатесін көрсетеді.
Compession –беті нәтижелік файлды қысу арқылы байқалады.
Sorting –беті кілт сөзіне тіл әдістері өңделеді.
Longuage of Help file-кілт сөзді тілді өңдеу үшін пайдалынады.
Other-индексі бойынша тілді өңдейді.
Files –беті папкадағы файлдың жобасын анықтайды.
Help Files- HIP-файл нәтиже аты.
Log Files-ASCII-файл текстің аты.
Секция Windows
Секция Windows толықтырылған терезені іздеу жиынына қызмет етеді. Әр көрсетілген секция терезеде сипатталынады, түсімен, өлшемімен және тақырып.
Егерде секцияда 1 терезеде анықталмаса, онда Windows батырмасын басып диалог терезесін шақырамыз.
Greate жолында Windows named-қа терезе атын береміз.
Procedure-текстік процедураны шығаруға арналған.
Reference- іздеу терезесі.
Error massage-қатені шығаруға арналған.
Ескерту осы 3 түрдегі стандартты Windows-те терезесінде «қалың» рамка және заголовка мен құралады.
General беті.
Windows type- бірнешенің терезесінің ішінен ерте таңдалғанды шығарады.
Add- тізімдер терезесін шақырады, жаңадан терезе қосуға.
Remove-тізімнен терезені жояды.
Include-ASCII текстік файл тізімдеріне терезе қосады.
Title bar text-терезе заголовкасын анықтайды.
Comment-тәлкелік түсініктеме сақтайды.
Position –беті экранға шықпас бұрын, терезе өлшемін, қанша орын алып
Жатқаның анықтайды.
Height-терезе биіктігі
Weigth-терезе енің анықтайды.
Auto Sizer-батырмасын басқаннаң кейін ОК, Gancel батырмасы шығады.
Buttons –беті төменде орналасқан қосылғыштар терезеде сәйкес батырмасы қойылса.
Contents-мазмұны.
Index-индексі.
Find-поиск.
Help Topic- бөлімдері.
Back-артқа.
Options-параметрлары.
Brows-алдын-ала көру.
Macros- осы бетің көмегімен макрокомандаларды анықтауға болады, экранда терезе шықпас бұрын автоматты түрде орындалады.
Секция MAP.
Бұл секцияда сандық идентификатор бөлімі анықталады, автаматты түрде Help батырмасы шақырылады және F1 клавишімен программа жұмыс істейді.
Ескерсек көшіру компоненті Delphi –де арнайы Help Context қасиеті бар, сандық идентификаторы бөлімін іздеу кітабын сығыстыруға болады. Бөлімдердегі [MAP] секцияда көрсетілген, компонентік-жіберілуі жұмыс істеу программасында.
MAP батырмасын басқаннаң кейін Ms HW терезесі пайда болады.
MAP topic тізімінде IDS to numeric values форматта бөлімдер көрсетіледі. Идентификаторды құру үшін жаңа бөлімдер немесе тізмнен жою MAР сәйкес ADD және Remove батырмасы пайдалынады.
Edit батырмасы жөндеу элемент тізімімен жұмыс істеуге мүмкіндік береді.
Секция Aliases.
Мына секцияда псевдонимін көрсетуге болады идентификатор бөлімімен, MAP секциясын модификациялау көмегімен RTF –файлыңын өзгеруінсіз. Тағайындау батырма Add, Remove, Include және Edit тағы сол сияқты, MAP секциясында да жүреді.
Секция Baggage.
Data Files батырмасы Ms HW тірізеден диалог терезесі ашылады, файлдың анықталуы, іздеу кітапханасыда пайдалынады. Осы файалдардың тізімі [Baggage] секциясын жоба файлын сақтайды.
Delphi-де программалау элементтері
- Тармақталу командасы. RadioButton компоненті.
Тармақталу командасының қысқа және толық нұсқалары бар. Олардың жазылу түрлері Турбо Паскальдағы сияқты:
1) if P then S //қысқа нұсқа
2) if P then S1 else S2 //толық нұсқа
мұндағы P– шарт; S,S1,S2- орындалуы тиіс сериялар (бір блоктық операторлар). Егер блок бірнеше операторлардан тұрса, олар бір құрама оператор ретінде қарастырылып, begi – end операторлық жақшылардың ішіне жазылады:
If P then begin
S1
End
Else begin
S2
End;
Блокқа енгізілген оператор тек біреу болса, оны операторлық жақшаларға алу міндетті емес.
Мысал. RadioButton компоненттерін пайдаланып, геометриялық фигуралардың аудандарының формулалары жөнінде анықтамалық программа құру керек.
1. Жаңа жоба ашу. Формаға Memo1, RadioButton1,…RadioButton4, BitBtn1,BitB2 компоненттерін орнату. (1 - сурет).
RadioButton - байланысты ауыстырып қосқыш компонент. Формада оның кемінде екеуі орнатылуы тиіс. Олар Checked қасиеті арқылы анықталатын тек екі күйде болуы мүмкін: True және False. жоба іске қосылып, көрінген формада қай ауыстырып қосқыш шертілсе (Check қасиетіне True мәні меншіктелсе), программада осыған сәйкес программа бөлімі орындалады.
1 - сурет Калькулятор үшін дайындалған
- Компоненттер қасиеттеріне мәндер меншіктеу:
Компонент |
Қасиет |
Мән |
Form1
RadioButton1 RadioButton2 RadioButton3 RadioButton4 BitBtn1 BitBtn2 |
Caption Font Caption Caption Caption Caption Kind Kind |
Геометрия-анықтамалық Tmes Kaz, 11 Үшбұрыш Тіктөртбұрыш Дөңгелек Трапеция BkOK BkClose |
- ОК батырмасын екі рет шертіп, батырманың OnClickоқиғасын өңдеуіш процедурасын құру:
Procedure Tform1.BitBtn1Click(Sender: TObject);
Begin
If RadioButton1.Checked then
Begin Memo1.Lines.clear;
Memo1.Lines.Add(S=ah/2);
Memo1.Lines.Add(‘a – үшбұрыш табаны, h - биіктігі’);
End;
If RadioButton2.Checked then
Begin Memo1.Lines.clear;
Memo1.Lines.Add(S=ab);
Memo1.Lines.Add(‘a – тіктөртбрыш табаны, b- биіктігі’);
End;
If RadioButton3.Checked then
Begin Memo1.Lines.clear;
Memo1.Lines.Add(S=Pi*r*r);
Memo1.Lines.Add(‘r- дөңгелек радиусы, Pi – 3,14’);
End;
If RadioButton4.Checked then
Begin Memo1.Lines.clear;
Memo1.Lines.Add(S=(a+b)*h/2);
Memo1.Lines.Add(‘a,b – тіктөртбрыш табаны, h- биіктігі’);
End;
End;
- Жобаны сақтап, - іске қосу. Көрінген формадан қажетті фигураның атауын таңдап, ОК батырмасын шерту. Мысалы, «Трапеция» қатарындағы ауыстырып-қосқыш орнатылса, өрісінде нәтиже көрінеді (1-сурет).
2. Таңдау командасы. StaticText, ComboBox компоненттері
Таңдау комакндасы – көп сериялы тармақталу командасы. Әдетте ол Турбо Паскальдағы сияқты (жағдай) операторын пайдаланып құрылады. Оператордың жазылу үлгісі:
Case <өрнек> of
1-тізім: begin
S1
End;
2-тізім: begin
S2
End;
……………
n-тізім: begin
Sn
End;
End;
мұндағы: «өрнек» мәні бойынша сәйкес тізім нұсқаулары (S1,S2,’,Sn)орындалатын өрнек;
k-тізім – таңдаушы.
Мысал. Таңдау командасын пайдаланып, арифметикалық төрт амалды орындайтын калькулятор программасын құру керек.
- Жаңа жоба ашып, форма бетіне ComboBox1, StaticText1, Edit1,Edit2, BitBtn1, BitBtn2 компоненттерін орнату. (2-сурет).
StaticText–мәтін шығаруға арналған компонент (оның орнына Label компонентін пайдалануға да болады); ComboBox - амалдарды таңдау үшін ашылатын тізім. Компоненттің Items қасиетін шерткен кезде String List Editor терезесі көрінеді. Осы терезенің жеке жолдарына амалдар операторларының тізімін енгізу керек.
(+,-,*,/);
- Компоненттер қасиеттеріне мәндер меншіктеу:
Компонент |
Қасиет |
Мән |
Form1 |
Caption |
Калькулятор |
Edit1 Edit2 BitBtn1 BitBtn2 ComboBox1 StaticText1 |
Font Text Text Kind Kind Text Caption Align |
TimesKaz, 11 Бос ету Бос ету BkOK BKClose Бос ету Бос ету AlTOP |
- ComboBox1 компонентінің Items қасиетін шертіп, ашылған String List Editor терезесіне +,/,*,/ операторларының әрқайсысын жеке жолға енгізу.
- ОК батырмасын екі рет шертіп, сәйкес оқиғаны өңдеуіш процедура құру:
Prozedur Tform1.BitBtn1Click(Sender:TObject);
Var z,x,y:real;
Begin
X:=StrToFloat(Edit1.text); y:= StrToFloat(Edit2.text);
Case ComboBox1.ItemIndex of
0: begin z:=x+y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;
1: begin z:=x-y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;
2: begin z:=x*y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;
3: begin z:=x/y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;
end;
end;
- Жобаны сақтап, іске қосу. өрітеріне мәндер енгізіп, ComboBox1 тізімін орындалуы тиіc амалды таңдау және ОК батырмасын шерту. StaticText1 өрісінде нәтиже көрінеді (3-сурет).
2 - сурет Калькулятор терезесі
3. Цикл. Delphi–де циклдермен жұмыс стандартты Турбо Паскальдағы сияқты. While(әзірше), Repeat(дейін), For(үшін) циклдік құрылымдардың жазылу үлгілері:
1) While P do
Begin
S
End;
2) Repeat
S
Until (not P);
3) For k:=k0 to kn do
Begin
S
End;
мұндағы Р – шарт; do - орындау, until – дейін (do, until - кілттік cөздер); S -цикл денесі;k - есептегіш (цикл параметрі); k0,kn - есептегіштің бастапқы, соңғы мәндері.
Мысалы, жалпы мүшесі ak=1/k2 (k=1,2…)тізбектің алғшқы бес мүшесінің қосындысын табу керек (n=5; Sn - ?).
Procedure Tform1.FormCreat(Sender: TOject);
Var s,a:real; k,n:integer; s1:string;
Begin
n:=StrToInt(‘’,’Мүшелер саны=’,’’));
s:=0; k:=0;
For k:=1 to n do
Begin
a:=FloatToStrF(s,ffFixed,7,3); ShowMessage(s1);
End;
Жиындармен (массивтермен) жұмыс
Жиын (массив) – бір типті нысандар (объектілер) жиыны. Жиындар (массивтер) бір өлшемді (сызықтық), екі өлшемді (матрица) не көп өлшемді болуы мүмкін. Жиындарды сипатту Турбо Пакальдағы сияқты. Мысалы:
var
a:array[1..10] of integer; //бүтін сандар жиыны
b:array[3..8] of real; //нақтысандар жиыны
c:array[0..5] of string; //жолдық типті жиыны
Мартица – екі өлшемді жиын. Матрицаны сипаттаудың сызықтық жиынды сипаттаудан айырмавшылығы шамалы. Мысалы:
var
аa:array[1..10,1..10] of integer; //бүтін сандар матрицасы
bb:array[1..8,1..5] of real; //нақтысандар матрицасы
cc:array[0..5,0..3] of string; //жолдық типті матрицасы
Мысал. 100 метрлік қашықтыққа жүгіру барысында үш топтың әрқайсысынан үш студент іріктеп алынды. Олардың секөндпен өлшенген жүгіру нәижелері 1-кестеге енгізілген. Қайсы топтың студенттері бірінші орынға шықты? Орта есеппен олардың әрқайсысы 100 метрді қанша уақытта өтті?
12,69 13,25 12,98 |
14,05 13,16 13,08 |
13,32 14,27 14,02 |
1-кесте 1-топ 2-топ 3-топ
- Жаңа жоба ашып, формада Memo1, StringGrid1, BitBtn1, BitBtn2, Label1 компоненттерін орнату (4-сурет).
TstringGrid -ұяшықтарында кез-келген ұзындықтағы жолдық шамаларды орналастыруға болатын кестелік компонент.
Қасиет |
Мағынасы |
Cells[n,n]
ColCount RowCount GrigLineWidth Fixedcos FixedRows FixedColor
ColWidth[i] RowHeight[j] |
n*m өлшемді кесте ұяшықтарының мәндері Кестенің баған саны Кестенің жол саны Кесте сызылатын сызықтың қалыңдығы Ерекше жолдар саны Ерекше бағандар саны Ерекше жолдар мен бағандар түсі i-бағанның ені j-жодың биіктігі |
Компоненттер қасиеттеріне мәндер меншіктеу:
- Код терезесінде батырмасын оқиғасын өңдеуіш процедурасын құру.
Компонент |
Қасиет |
Мән |
BitBtn1 BitBtn2 StringGrid1
Label1 Memo1 |
Kind Kind FxedCols FxedRows Caption Strigns |
bkOK bkClose 1 1 бос ету бос ету |
Procedure Tform1.BitBtn1click(Sender: TObject);
Const n=3;
Var nomer,k,I,j:longint;
S:array[1..n,1..n] of real; //матрица
P:array[1..n] of real; //қосындылар жиыны
Min:real; nomerT:string;
Begin
{кесте құру}
StringGrid1.Font,Name:=’Times Kaz’;
StringGrid1.ColCount:=n+1;
StringGrid1.RowHeight:=n+2;
StringGrid1.Cells[0,n+1]:= ‘Орт.жылд.’;
For I:=1 to n do
Begin
P[i]:=0; //қосыенды жиынға бастапқы мәндер меншіктеу
StringGrid1.Colwidth[i]:=60;
StringGrid1.Cells[0,i]:=’ ‘+FloatToStr(i);
StringGrid1.RowHeight[i]:=15;
StringGrid1.Cells[I,0]:=’’+FloatToStr(i)+’топ’;
End;
{енгізілген элменттерді мартица ретіндек құу және экранға шығару}
k:=0;
for I:=1 to n do
for j:=1 to n do
begin s[i,j]:=StrToFloat(memo1.Lines[k]);
StringGrid1.Cells[I,j]:=’ ’+Memo1.Lines[k]; k:=k+1;
End;
{топ студентетрінің орташа жылдамдықтарын анықтау}
for I:=1 to n do
begin for j:=1 to n do
p[j]:=p[j]+s[j,i];
end;
for I:=1 to n do
StringGrid1.Cells[I,n+1]:=’ ‘FloatToStrF(p[i]/n,ffGeneral,4,2);
{бірінші орынға қай топ шыққанын анықтау}
min:=p[1];
nomer:=1;
for I:=111 to n do
if p[i]<min then
begin min:=p[i];
nomer:=I;
end;
nomerT:=IntToStr(nomer);
Label1.Font.Size:=10;
Label1.Caption:=’1 – орынға’ +nomerT+ ‘топ шыққан’+#13+#13+’Орташа жылдамдығы:’’+FloatToStrF(min/nffGeneral,4,2);
End;
Жобаны сақтап, іске қосу. Форма көрінеді. Memo1 терезесіне топтар көрсеткіштерін кезекпен енгізіп, ОК батырмасын шерту. Нәтиже алынады(4-сурет).
3 - сурет Жарыс нәтижесі
Ескерту. StrigGrid компонентін пайдаланбай, мәндерді терезесіне енгізіп, нәтижені Label өрістеріне шығару да мүмкін.
Нысанды-бағдарланған программалаудың негізгі принциптері
Тізімді өңдеу операторлары
ЭЕМ-нің қызметі,құрамы және жіктелуі
Delphi бағдарламалау жүйесі
Информатиканы тереңдетіп оқытатын сыныптарда информатика сабағын өткізу әдістемесі
Delphi ортасынның графикалық мүмкіндіктерін сипаттайтын программа
Дельфи ортасында тізімдермен жұмыс істейтін компоненттер
Нысанды-бағдарланған программалаудың негізгі принциптері: инкапсуляция, мұрагерлеу, полиморфизм
Жаратылыстану-математикалық бағытта бейіндік оқытудың әдістемелік ерекшеліктері
Delphi программалау тілін оқыту әдістемесі