Ma’lumotni matn satridan butun son turiga va teskarisiga
o‘zgartirish. Yodingizda bo‘lsa, Pascal dasturlash tilida bir turdagi o‘zgaruvchiga ikkinchi turdagi ifodaning qiymatini berib bo‘lmas edi. Delphida ham bu taqiq o‘rinli. Uni qanday aylanib o‘tish mumkin?
Masalan, Button1 obyektining eni (Width xossasi) qancha bo‘lishi (butun son turi) Editning Text xossasidan (matn satri turi) olinishi kerak bo‘lsa, Button1.Width:=Edit1.Text operatoridan foydalanish xatoga olib keladi. Natijada ilova dasturi ishlashdan to‘xtab, xato to‘g‘risida ogohlantiradi.
Object Pascalda o‘zgaruvchini bir turdan ikkinchi turga o‘tkazish uchun bir qator standart funksiyalar mavjud. Ularni quyida keltiramiz:
StrToInt (string to integer) – matn satrini butun songa o‘tkazadi;
IntToStr (integer to string) – butun sonni matn satriga o‘tkazadi;
StrToFloat (string to float) – matn satrini haqiqiy songa o‘tkazadi;
FloatToStr (float to string) – haqiqiy sonni matn satriga o‘tkazadi. Yuqoridagi operatorni bu funksiyalardan foydalanib, bexato yozamiz:
Button1.Width:=StrToInt(Edit1.Text);
Shar hajmi va sfera yuzasi ilovasi. Shar hajmi va unga mos sferaning sirtini hisoblaydigan ilova yaratamiz. Buning uchun yangi ilova yaratib, unga uchta Label, bitta Edit va bitta Button obyektlarini joylaymiz. Ilova oynasini va undagi obyektlarni quyidagi rasmda ko‘rsatilgandek qilib o‘zgartiramiz:
Ilova oynasidagi Button1ni ikki marta bosib, hosil bo‘lgan dastur kodi oynasiga quyidagi ikki satrni kiritamiz. Ularning har biri ham bitta satrga sig‘magan bo‘lsa-da, bittadan qatorga kiritilishi kerak. Ikkala satr ham nuqtali vergul bilan tugaydi.
Label2.Caption:='Shar_hajmi:'+FloatToStr(4/3*pi*sqr (StrToFloat(Edit1.Text))*StrToFloat(Edit1.Text)); Label3.Caption:='Sfera_yuzasi:'+FloatToStr(4*pi*sqr (StrToFloat(Edit1.Text)));
F9 tugmasini ikki marta bosib, ilovani ishga tushiramiz. Dastlab kiritish
maydonchasiga 1 ni kiritib, Hisobla tugmasini bosamiz, keyin esa radiusi 3
ga teng shar hajmi va sfera yuzini hisoblaymiz. Ilovaning ishi natijalari quyidagi rasmlarda ko‘rsatilgan.
Ilovalarda o‘zgaruvchilardan foydalanish. Oxirgi ikki satr juda murakkab ko‘rinishga ega bo‘lib, ularni kiritishda xato o‘tkazib yuborish hech gap emas. Sharning hajmi va sfera yuzasi ;
formulalar bilan hisoblanishini inobatga olsak, yuqoridagi formulalar rostdan ham g‘aliz chiqqanligi yaqqol ko‘rinib qoladi.
Bu kamchilikni bartaraf qilishning yo‘li bormi? Albatta bor. Buning uchun qo‘shimcha o‘zgaruvchilardan foydalanish kerak bo‘ladi. O‘zgaruvchilar dastur matniga qanday kiritilishini eslash uchun dastur kodi oynasi va undagi dastur matni bilan yaqindan tanishib chiqamiz.
Butun sonlar yig‘indisi ilovasi. va butun sonlar berilgan bo‘lsin. Ular va ular orasidagi barcha butun sonlar yig‘indisini topadigan ilova yaratamiz. Buning uchun yangi ilova yaratamiz va unga uchta Label,
ikkita Edit va bitta Button obyektini joylaymiz. Ularning joylashishi va
xossalari quyidagi rasmda berilgan.
Sonlar yig‘indisini hisoblash Button1 tugmasini bosganda amalga oshadi. Uni ilovaga kiritish uchun bu tugmani ikki marta bosamiz. Natijada ekranda dastur matni oynasi paydo bo‘ladi. undagi yozuvlar bilan tanishaylik:
procedure TForm1.Button1Click(Sender: TObject); begin end;
Bu Paskal tilida yozilgan oddiy protsedura bo‘lib, hozircha u bo‘sh. Demak, biz ilova oynasi Form1 ga joylangan Button1ni bosganimizda ilova
boshqaruvni TForm1.Button1Click nomli protseduraga o‘tkazar ekan. Bu protseduraga u qilishi kerak bo‘lgan ishni bajaradigan operatorlarni kiritamiz: protseduraning to‘liq ko‘rinishi quyida keltirilgan:
procedure TForm1.Button1Click(Sender: TObject); var i,m,n,s:integer;
begin m:=Strtoint(Edit1.Text); n:=Strtoint(Edit2.Text);
s:=0; for i:=m to n do s:=s+i; Label3.Caption:='Yig‘'indi: '+Inttostr(s); end;
Protseduraning ikkinchi satrida var operatori yordamida to‘rtta butun
son turidagi o‘zgaruvchi tavsiflangan. Uchinchi satrdan protseduraning tanasi boshlanadi. Unda bajariluvchi operatorlar joylashgan bo‘ladi. to‘rtinchi satrda Edit1 maydonchasiga kiritilgan son butun son turiga aylantirilib, m o‘zgaruvchiga beriladi. Beshinchi satrda Edit2 ga kiritilgan son n o‘zgaruvchiga beriladi.
Oltinchi satrda yig‘indi saqlanadigan o‘zgaruvchiga boshlang‘ich qiymat: 0 beriladi. Yettinchi satrdagi sikl kerakli yig‘indini topadi. Sakkizinchi satrda topilgan yig‘indining qiymatini Label3 orqali ilova oynasiga chiqaradi. To‘qqizinchi satrdagi operator protsedura tugaganini bildiradi.
Ilovani ishga tushirib uning ishini kuzatamiz.
Ma’lumotlarning qanday turlarini bilasiz?
StrToInt ma’lumotni qaysi turdan qaysi turga o‘tkazadi?
FloatToStr ma’lumotni qaysi turdan qaysi turga o‘tkazadi?
StrToFloat ma’lumotni qaysi turdan qaysi turga o‘tkazadi?
a) kvadrat; b) to‘g‘ri to‘rtburchak perimetri va yuzasini hisoblaydigan ilova yarating.
Do'stlaringiz bilan baham: |