- •Зертханалық жұмыс №1
- •Зертханалық жұмыс №2
- •2. Delphi негізгі терезесі
- •4. Объектілер инспекторы терезесі
- •Зертханалық жұмыс №3
- •Өзіндік жұмыс тапсырмалары
- •Зертханалық жұмыс №4
- •Зертханалық жұмыс №5
- •Зертханалық жұмыс №6
- •Зертханалық жұмыс №8
- •Зертханалық жұмыс №9
- •Зертханалық жұмыс №10
- •Зертханалық жұмыс №11
- •Зертханалық жұмыс №12.
- •Зертханалық жұмыс №13.
- •Зертханалық жұмыс №14
- •Зертханалық жұмыс №15
- •Зертханалық жұмыс № 16
- •Зертханалық жұмыс №17
- •3.Қорғалған блок механизмі.
- •Зертханалық жұмыс №18
- •Зертханалық жұмыс №19
- •Зертханалық жұмыс № 20
- •Зертханалық жұмыс №21
- •Зертханалық жұмыс №22
- •Зертханалық жұмыс №23
- •Зертханалық жұмыс №24
- •Зертханалық жұмыс №25
- •Зертханалық жұмыс №26
- •Зертханалық жұмыс №27
- •Зертханалық жұмыс №28
- •Зертханалық жұмыс № 29
Зертханалық жұмыс № 16
Тақырыбы: Қолданушы интерфейсін жасау
Мақсаты: Қолданушы интерфейсін жасауды үйрету
Теориялық мәліметтер
Калькулятор программасын жазу
Программа негізгі екі пунктен тұрады : жай калькулятор және инженерлік калькулятор. Төмендегі (сурет-1) суретте көрсетілген калькулятор бұл бізде жай калькулятор және инженрлік калькулятор.
Сурет 1 – Калькулятор программасының түрі
Берілген калькулятор программасын жасау үшін программалаудың ең қолайлы ортасы Delphi7 –ді қолданамыз.
Жай калькулятордың элементтері:
- арифметикалық операциялар орындау үшін: қосу,алу,көбейту,бөлу және процент,түбір,1/х,MS,M+,MC,MR, Backspase батырмалары қажет;
- мәзір командалары: правка, вид, справка, выход. Мұндағы, правка батырмасында: -> копировать->вставить; вид батырмасында: ->жай(обычный), инженерлік(инженерный); справка батырмасында: ->вызов справки, ->О программе, ->выход.
Жай калькулятор программасындағы арифметикалық амалдарды орындауға арналған процедуралар:
procedure TForm1.Button10Click(Sender: TObject);
begin
h:=strtofloat(Edit1.Text); Қосу процедурасын орындау
w:='+';
Edit1.Text:='';
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
h:=strtofloat(Edit1.Text);
w:='-'; Алу процедурасын орындау
Edit1.Text:='';
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
h:=strtofloat(Edit1.Text);
w:='*'; Көбейту процедурасын орындау
Edit1.Text:='';
end;
procedure TForm1.Button18Click(Sender: TObject);
begin
h:=strtofloat(Edit1.Text);
w:='/'; Бөлу процедурасын орындау
Edit1.Text:='';
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
case w of
'/':sut:=h/strtofloat(edit1.Text);
'*':sut:=h*strtofloat(edit1.Text); Тең болады процедурасын орындау
'-':sut:=h-strtofloat(edit1.Text);
'+':sut:=h+strtofloat(edit1.Text);
end; edit1.Text:=floattostr(sut);
end;
procedure TForm1.Button13Click(Sender: TObject);
begin 1/х- процедурасын орындау
edit1.Text:=floattostr(1/strtoint(edit1.Text));
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
case w of %-Процент процедурасын орындау
'/':sut:=h/((1/100)*strtofloat(edit1.Text)*h);
'*':sut:=h*((1/100)*strtofloat(edit1.Text)*h);
'-':sut:=h-((1/100)*strtofloat(edit1.Text)*h);
'+':sut:=h+((1/100)*strtofloat(edit1.Text)*h);
end;
Edit1.Text:=floattostr(sut); end;
procedure TForm1.Button19Click(Sender: TObject);
begin sqr- процедурасын орындау
Edit1.Text:=floattostr(sqrt(strtofloat(Edit1.Text)));
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin СЕ- процедурасын орындау edit1.Text:='0,';
edit1.Text:='';
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
h1:=0; j:=0;
f:=0; С- процедурасын орындау
h:=0; edit1.Text:='0,'; end;
procedure TForm1.Button25Click(Sender: TObject);
begin +/- процедурасын орындау
Edit1.text:=floattostr(-(strtofloat(Edit1.text)));
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin МС- процедурасын орындау
Edit1.Text:=inttostr(mem);
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin MR- процедурасын орындау
BitBtn8.Caption:='';
edit1.Text:=inttostr(mem);
mem:=0;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin MS- процедурасын орындау
if mem<>0 then edit1.Text:=inttostr(mem);
mem:=mem-strtoint(edit1.Text);
BitBtn8.caption:='M';
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin М+- процедурасын орындау
if mem<>0 then edit1.Text:=inttostr(mem);
mem:=mem+strtoint(edit1.Text);
BitBtn8.caption:='M'; end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin Backspase- процедурасын орындау
Edit1.Text:=copy(edit1.Text,1,length(edit1.Text)-1);
if edit1.Text='' then edit1.Text:='0,'; f:=1;
end;
Жоғарыда көрсетілген процедуралар жай калькулятор программасының арифметикалық амалдары.
Енді, инженерлік калькулятор программасына сипаттама. Инженерлік калькулятор мен жай калькуляторды салыстырсақ, әлде қайда күрделірек, өздеріңізде бақылаған шығарсыз сыртқы көрінісіне қарап. Енді сыртқы көрінісіне қарай отырып моделін құрайық.
Инженерлік калькулятор моделі үшін мына батырмалар қажет: процент, түбір, MS, M+, MC, MR, бүтін, Mod, And, Or, Xor, Lsh, Not, Int, A, B, C, D, E, F, Backspase, C, CE, sin, cos, tg, Exp, Ln, Log, n!, 1/x, x^y, x^3, x^2, max, min, clock және т.б.
Мұндағы, «С» батырмасы мәтіндік өрісті тазартады. Бұл операция орындалу кезінде бұрын мәтіндік өріске енгізілген сан жойылады да, мәтіндік өріс сандарды енгізуге дайын екендігі көрінеді(мәтіндік сан енгізу өрісде «0,» саны пайда болады ).
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
h1:=0;
j:=0;
f:=0;
h:=0; edit1.Text:='0,'; end;
«СЕ» батырмасы мәтіндік өрісті тазартады, бірақ бұл операция орындалу кезінде бұрын енгізілген сан жойылмайды: Мысалы 4+2 операциясы орындалған кезде екіні емес басқа сан енгізу керек болса СЕ батырмасы мәтіндік өрістегі екі санын ғана өшіреді ал, төрт өшірілмейді.
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
edit1.Text:='0,';
edit1.Text:='';
end;
«Backspase» батырмасы мәтіндік өрістегі сандардың соңғы санын жою функциясын орындайды. Бұл батырманың функциясын әдетте сандарды енгізу кезінде қате кеткен жағдайда соңғы санды жою операциясын орындайды. Бұл функцияның фрагменті мына түрде болады:
Edit1.Text:=copy(edit1.Text,1,length(edit1.Text)-1);
if edit1.Text='' then edit1.Text:='0,'; f:=1;
«Mod» батырмасының операциясы орындалған кезде шыққан санның қалдық бөлігін алуға болады. Мысалы, 5 Mod 2 операциясы орындалғаннан кейін 1саны мәтіндік өрісте пайда болады. Жауабы, 1 болады.
procedure TForm4.BitBtn54Click(Sender: TObject);
begin
w:='m';
h1:=strtoint(edit1.Text);
edit1.clear;
end;
«And» батырмасы басылған кезде логически көбейту операциясы орындалады. Мысалы, 5 And 2, (деп отырғанымыз 5 және 2) .
procedure TForm4.BitBtn60Click(Sender: TObject);
begin
w:='a';
h1:=strtoint(edit1.Text);
edit1.clear;
«Or» батырмасы басылған кезде логически қосу операциясы орындалады. Мысалы, 5 Or 2, (деп отырғанымыз 5+2).
procedure TForm3.BitBtn23Click(Sender: TObject);
begin
w:='o';
h1:=strtoint(edit1.Text);
edit1.Clear; end;
«Not» батырмасы басылған кезде логически алу операциясы орындалады:
procedure TForm3.BitBtn53Click(Sender: TObject);
begin edit1.Text:=inttostr(not(strtoint(edit1.Text))); end;
«Xor» батырмасы басылған кезде логически қосу(немесе) операциясы орындалады. Мысалы, 5 Xor 2 .
procedure TForm3.BitBtn57Click(Sender: TObject);
begin
w:='x';
h1:=strtoint(edit1.Text);
edit1.Clear; end;
«int» батырмасының операциясы орындалған кезде шыққан саның бүтін бөлігін алуға болады. Мысалы, 5,2 + 2,2=7.4, int операциясы орындалғанан кейін шыққан санның мәтіндік өрісте ,бүтін саннын аламыз. Жауабы 7 болады.
procedure TForm3.BitBtn54Click(Sender: TObject);
begin
edit1.Text:=inttostr(trunc(strtofloat(edit1.Text)));
end;
Келесі операция оналтылық символдарды мәтіндік өріске шығарады:
«A» «B» «C» «D» «E» «F» батырмалары символдары мәтіндік өріске он алтылық санау жүйесіндегі сәйкесінше сандарды немесе символдарды шығарады.Ол шығарылған символдарды программалық түрде он алтылық санау жүйесіндегі санға түрлендіреді. Және осы енгізілген сандар арқылы түрліше операциялар орындалады. Бұл символдар мәтіндік өріске шығуы үшін байланысты ауыспалы батырмаларындағы «Hex» радиобатырмасы қосулы болуы керек. Бұл радиобатырма қосылмаған жағдайда «A» «B» «C» «D» «E» «F» батырмаларының bitbtnN (мұндағы N-бұл сәйкесінше қойылған «A» «B» «C» «D» «E» «F» батырманың реттік саны) батырмасының Enabled қасиетіне «жалған» тип яғни, False меншіктеледі ( bitbtnN.Enabled:=false;). Төмендегі процедура «Hex» радиобатырмасының фрагменті. Мұнда RadioButton1 радиобатырмасы Click событиясы (бұл событие радиоқосқыш қосылып тұрған кезде болады).
Келесі операциялар есте сақтау және есте тұрған элементті іске қосады:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin МС- процедурасын орындау
Edit1.Text:=inttostr(mem);
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin MR- процедурасын орындау
BitBtn8.Caption:='';
edit1.Text:=inttostr(mem);
mem:=0;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin MS- процедурасын орындау
if mem<>0 then edit1.Text:=inttostr(mem);
mem:=mem-strtoint(edit1.Text);
BitBtn8.caption:='M';
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin М+- процедурасын орындау
if mem<>0 then edit1.Text:=inttostr(mem);
mem:=mem+strtoint(edit1.Text);
BitBtn8.caption:='M';
end;
«Pi» батырмасының операциясы орындалған кезде Pi-дің тұрақты мәнін шығарады. Ал бізде Pi-дің тұрақты мәні 3,14159265358979 тең болады.
procedure TForm3.BitBtn36Click(Sender: TObject);
begin
edit1.Text:=floattostr(Pi);
end;
«x^y» батырмасының операциясы орындалған кезде бірінші еңгізілген санның , екінші сан квадраты болып есептеледі. Мысалы, 2 x^y 5 операциясы орындалғанан кейін 32саны мәтіндік өрісте пайда болады. жауабы 1 болады.
procedure TForm3.BitBtn47Click(Sender: TObject);
begin
h:=strtofloat(edit1.Text);
w:='p';
edit1.Text:='';
end;
«x^3» батырмасы басылған кезде еңгізілген санның үшінші дәрежесін шығарады . Мысалы, 2-нің үшінші дәрежесі 8-ге тең болады.
procedure TForm3.BitBtn48Click(Sender: TObject);
begin
x:=strtofloat(edit1.Text);
x:=x*x*x;
edit1.Text:=floattostr(x);
end;
«x^2» батырмасы басылған кезде еңгізілген санның екінші дәрежесін шығарады . Мысалы, 2-нің екінші дәрежесі 4-ке тең болады.
procedure TForm3.BitBtn50Click(Sender: TObject);
begin
x:=strtofloat(edit1.Text);
x:=x*x;
edit1.Text:=floattostr(x);
end;
«Exp» батырмасы басылған кезде еңгізілген санның Exp дәрежесін шығарады . Мысалы, 2-нің Exp дәрежесі 7,38905609893065 -қа тең болады.
procedure TForm3.BitBtn45Click(Sender: TObject);
begin
edit1.Text:=floattostr(exp(strtofloat(edit1.Text))); end;
«n!» батырмасы басылған кезде еңгізілген санның сол дәрежесін шығарады . Мысалы, 5-нің n! дәрежесі 120 -ға тең болады.
procedure TForm3.BitBtn30Click(Sender: TObject);
var i,f:integer;
begin
f:=1;
for i:=1 to strtoint(edit1.Text)do f:=f*i;
edit1.Text:=inttostr(f);
end;
«log» батырмасы басылған кезде еңгізілген санның сол log дәрежесін шығарады . Мысалы, 5-тің log дәрежесі жуықтап алғанда 0,691 -ға тең болады.
«ln» батырмасы басылған кезде еңгізілген санның сол ln ондық логарифмін шығарады. Мысалы, 5 ln -тің ондық логарифмін жуықтап алғанда 1,6-ға тең болады. «sin»батырмасы басылған кезде sin(х) операциясын орындайды.Мысалы, 2sin(x)= 0,909297426825682 осылай орындайды.
procedure TForm3.BitBtn43Click(Sender: TObject);
begin
edit1.Text:= floattostr(sin(strtofloat(edit1.Text))); end;
«cos»батырмасы басылған кезде cos (х) операциясын орындайды.Мысалы, 2 cos(x)= -0,416146836547142 осылай орындайды.
procedure TForm3.BitBtn46Click(Sender: TObject);
begin
edit1.Text:=floattostr(cos(strtofloat(edit1.Text)));
end;
«tg»батырмасы басылған кезде tg (х) операциясын орындайды.Мысалы, 2 tg(x)= 1,09975017029462осылай орындайды.
procedure TForm3.BitBtn49Click(Sender: TObject);
begin
edit1.Text:=floattostr(1/sin(strtofloat(edit1.Text)));end;
Ескерту: Калькулятор программасындағы справка мәзіріндегі (О программе) пішінін мына жолмен аламыз: File -> New -> Other сілтемемен басып New Items терезесін ашамыз оның ішін қараған кезде, Forms батырмасын көреміз оны ашып AboutBox компанентін таңдап аламыз.
Тапсырма
1 Қарапайым блокнот программасын жазыңыз
Бақылау сұрақтары:
1 Delphi ортасында программадау қандай негізгі процестерді қамтиды?
2 Delphi ортасында программалау неден басталады және форма қалай
түрлендіріледі?
3 Delphi ортасында пайдаланылатын атауларға қандай талаптар қойылады?
4 Меню құру үшін қандай компоненттер пайдаланылады және ол қандай
бетте орналасқан?
