AMALIY QISM. Delphi dasturlash muhitida 8-sinf algebra faniga oid masalalarni hisoblovchi amaliy dastur yaratish.
Biz obyectning xususiyatlarni oʻzgartirish va obyektga oid hodisalarga protsedura yozish ,yoki metod yozish bilan tanishib chiqamiz. Form1 nomli forma mavjud.12-rasm.
12-rasm.
Object inspectorning properties nomli boʻlimidan Form1 nomli yozuvni oʻzgartirish uchun Caption noml ixususiyatdan foydalanamiz.Form1 nomini dastur2 ga oʻzgartiramiz.13-rasm.
13-rasm.
Formaning sarlavxasi dastur2 ga oʻzagardi.Formaning dasturimizdagi nomi Object Inspector boʻlimida va Object TreeView boʻlimida Forma1 nomi bilan saqlangan.
14-rasm.
Formaning nomini name bandidan oʻzgartiramiz.
Dasturning maqsadi: Forma oynasining ustiga sichqonchaning tugmsini bir marta bosganda oyna sariq rangga aylansin, yana bir marta bosganda moviy rangga aylansin.
Har qanday daturda maʻlum bir oʻzgaruvchilar qatnashadi. Ana shu oʻzgaruvchilarni dastlabki qiymatlari odatda dastur ishga tushgan zahoti berib qoʻyilishi kerak.
Dasturni amalga oshirish uchun oʻzgaruvchi kiritamiz. Code qismidan Forma birning kod qismiga kiramiz15-rasm.
15-rasm.
Var noml iboʻlimda yangi rang nomli oʻzgaruvchi kiritamiz.
Mantiqiy oʻzgaruvchining bolean toifada boʻladi. Bu oʻzgaruvchining qiymati true boʻlishi mumkin yoki false boʻlishi mumkin. Hozircha bu oʻzgaruvchiga qiymat berilmagan .Dastur ishga tushirilganda uning qiymati true qiymat qaytarishi uchun dastur kodini yozamiz:
16-rasm
Object Inspector boʻlimining event hodisalar boʻlimida hodisa uchun metod yozamiz . OnCreatenomli hodisaning roʻparasida biz sichqonchani 2 marta bosganda kod yozish uchun oyna ochildi. FormCreate nomli protsedura mav yozilgan.Yuqorida kiritilgan Var boʻlimidagi Rang Bolean nomli oʻzgaruvchiga dastlabki qiymatni beramiz. Shu tariqa dastur ishga tushirilganda , kiritilgan Rang nomli oʻzgaruvchi true qiymatni qabul qiladi.
17-rasm.
Sichqoncha bir marta boshilganda sariq, yana bir marta bosilganda moviy rangga kirishi uchun, Events boʻlimiga kirib, Onclick nomli hodisani tanlaymiz ,roʻparasida sichqonchaning tugmasini ikki marta bosganda oyna ochiladi.
Dastur kodini yozishda if operatoridan foydalanamiz:
Agar if operatorining qiymati rost boʻlsa, u holda Forma1 formasinig rangi sariq ranga oʻzgasin,
Aks holda moviy rangga oʻzgarsin.
VA bu pretseduraning oxirida, Rang oʻzgaruvchisi oʻz qiymatini teskarisiga oʻzgartirsin.
Dasturni ishga tushiramiz. Buning uchun tugmani bosamiz. Dastur2 nomli dastur ishga tushdi. Dastur oynasi hududida sichqonchaning tugmasi bir marta bosilsa sariq rangga oʻzgaradi, yana bir marta bosganda moviy ranga oʻzgaradi. Dasturni saqlab qoʻyamiz.
18-rasm.
19-rasm.
tugmasini bosib saqlab qoʻyamiz. Dasturni nomini Unit1dan Unit2 ga oʻzgartiramiz va project1 ni dastur2 ga oʻzgartiramiz. Maʻlum bir oʻzgarishlar roʻy berdi, shuning uchun biz qaytadan komlyatsiya qilib koʻramiz.
20-rasm.
21-rasm.
Bizning dasrtur 8-sinf algebra fani misollarini bajarishi kerak edi.yuqorida biz boshlangʻich tushunchalarni koʻrib chiqdik, edni misol bajarish uchun dasturlar yaratishni koʻramiz.
Standart komponentalar politrasidagi komponentelarni formaga qoʻyish va joylashtirish ,formadagi joyini oʻzgartirsh kabi ishlar qanday amalga oshirilishini koʻrib chiqamiz.
Standart komponentalar politrasidagi komponentelardan birortasini formaga qoʻyishimiz uchun shu koponentani ustga bosishimiz kerak keyin formaga kelib, sichqonchani bir marta bosamiz, formada komponenta hosil boʻladi. Bu kompanentaning holatini, sichqoncha yordamida oson gina joylashtirishimiz mumkin, xohlagan joyga joylashtirishimiz mumkin. Shuningdek sichqoncha tugmasini bosib tortish evaziga uning kengligini, balandligini oʻzgartirishimiz mumkin. Keling yana biz klaviatura yordamida uni qanday joylashtirishni ham korib chiqaylik. Mana shu component tanlangan holatda, Ctrl klavishasini ushlab turib, qaysi yoʻnalishdagi strelkani bossak oʻzimiz istagan yoʻnalishda obyektimiz harakatlanadi. Biz hozir formaga Tedit toifasidagi bitta komponenta qoʻydik ,yana 2ta shunday komponenta va Button komponentesini qoʻyib chiqamiz. Endi dastur ishga tushganda edit maydonlari boʻsh turishi uchun Object inspectorga oʻtib , tanlangan Edit komponentasining text maydonini boʻshatib qoʻyishimiz kerak.hammasini shu tariqa boʻshatib chiqamiz.Button tugmasini kenligini kengaytirib, sarlavhasini Caption xususiyatini oʻzgartirib, qoʻshish deb yozib qoʻyamiz.
Bizning maqsadimiz 2 ta edit maydoniga yozilgan satrlarni birlashtirib 3-maydonga yozuvchi dasturni yozmoqchimiz.Edit toifasidagi komponentelarni maydoniga yozilgan har qanaqa belgilar hattoki son qiymatlar boʻlsa ham satr sifatida qabul qilinadi .Dastlabki 2 ta joyga yozilgan satrlarni 3-satrga birlashtirib qoʻyadigan dastur tuzish uchun qoʻshish tugmasiga maʻlum bir vazifa yuklashimiz kerak.
22-rasm.
23-rasm.
Button tugmasini ikki marta bossak, tegishli protsedura ochiladi va uni tanasini yozishga taklif etamiz.
23-rasm.
Birinchi komponentamizning nomi Edit1, ikkinchi komponentamizning nomi Edit2, uchinchi komponentamizning nomi Edit3.
Shuni hisobga olgan holda kod qismini yozamiz .
edt3. nuqtani bosgani edit komponentasiga oid funksiyalar ,protseduralar roʻyxati keladi bizga ,biz shu roʻyxatdan tanlashimiz mumkin.
24-rasm.
Biz hozir text maydonini oʻzgartirmoqchimiz. T harfini bosamiz T harfiga oid roʻyxatlar keldi, yana edni bossak Text ni oʻzi qoldi, probelni bosganda qolgan qismini sistemani oʻzi yozib qoʻyadi. Yozayotgan ifodamiz quyidagicha.
edit3.Text :=edt1.Text + edt2.Text
Keling dasturni ishga tushirib koʻramiz . tugmani bosib ishga tushiramiz.
Biror bir yozuvni yozib koʻraylik buyerga misol uchun birinchi maydonda Rustam , ikkinchi maydonda Nigora qiymatini kiritamiz .Qoʻshish tugmasini bosganda uchinchi maydonda RustamNigora deb ikkita yozuvni qoʻshib qoʻydi.
25-rasm.
Agar biz bu maydonga son qiymat kiritamiz. Birinchi maydonga 15 ,ikkinchi maydonga 45 yozamiz, uchinchi maydonga 15 va 45 satrlarini qoʻshib yozib yozib chiqaradi.
26-rasm.
15 va 45 sonlarini qoʻshib 60 sonini chiqarishi uchun, satrlarni songa aylantirib beradigan funksiyalardan foydalanishimiz kerak.
Endi dastur3 dasturini ikki oʻzgaruvchili funksiyani hisoblash dasturiga aylantirishni koʻrib chiqamiz.
Edt1 maydoniga kiritilgan sonning kvadratini Edt2 maydoniga kiritilgan sonning sonning kvadratiga qoʻshib, natijani Edt3 maydoniga chiqaruvchi dastur tuzib chiqaylik.
Buning uchun formaning kodiga oʻtib , Var boʻlimidan oldin ikkita funksiyani eʻlon qilamiz.
function Qmt (E : Edit) : Extended; // bu funksiya Qmt deb nomlaymiz ,bu funksiya TEdit toifasiga mansub E argumentni qabul qilib uning maydonidagi satrni Extended toifasidagi haqiqiy songa oʻtkazib beruvchi funksiya.
function Fxy (x, y : Extended ) : Extended ;Ikki son kvadratini hisoblovchi funksiya, funksiya nomi Fxy , extended toifasiga mansub x va y oʻzgaruvchilar , funksiya ham extended toifasidagi haqiqiy sonni bizga qaytarib bersin.
Forma kodinig implementation boʻlimida bu ikkila funksiyani amalga oshirib qoʻyishimiz kerak, yaʻni realizatsiya qilib qoʻyishimiz kerak. Ikkala funksiyani
Copy deb nusxalab Paste deb koʻchiramiz.
27-rasm.
Birinchi funksiyani tanasini yozishimiz mumkin. Begin bilan boshlanadi end bilan tugaydi. Tanasini yozamiz:
Qmt : =StrToFloat(E.Text ) // StrToFloat ()funksiyasidan foydalanamiz , qavs ichida E argumentning taxt maydoni mana bu funksiyaga uzatiladi.Bu funksiya oʻz argumenti sifatida TEdit komponentasini qabul qilib, ana shu komponentaning maydonidagi satrni son qiymatga oʻtkazib beruvchi funksiya dir.
Ikkinchi funksiyani yozamiz.
Fxy:=x*x + y*y
28-rasm.
29-rasm.
Formamizdagi qoʻshish nomli tugmani bosganimizda ishlaydigan protsedurani yuqorida yozgandik. Kod qismida turibdi.
30-rasm .
Bu ifodani biz yuqorida yozgan funksiyani qiymatini yozadigan ifoda bilan almashtirishimiz kerak.Buning uchun biz
FloatToStr(Fxy(Qmt(edt1), Qmt(edt2)))
// FloatToStr() funksiyasidan foydalanamiz , Fxy funksiyaning qiymatini yozamiz qavs ochib funksiyaga birinchi argumentni beramiz, birinchi argument bu Edt1 maydonining son qiymatidir, Son qiymatga aylantirish uchun Qmt funksiyasidan foydalanmiz, Qavs ichida Edt1 yozamiz, endi funksiyaning ikkinchi argumentini beramiz ,ikkinchi argument Edt2 maydonidagi qiymatdir.Funksiyaning button1 funksiyasini yozib qoʻydik. Bu dasturni komplyatsiya qiladigan boʻlsak xatolar yoʻq boʻlsa bu dastur ishga tushadi.
31-rasm.
Bu funksiyaning nomini Object Inspectorning Caption xususiyatidan foydalanib qoʻshish yozuvidan funksiyaning qiymatini hisoblash yozuviga oʻzgartirishimiz mumkin. Label Komponentasi orqali Ed1 va Edt2 va Edt3 maydonlarining oldiga ham izoh qoʻyib qoʻyamiz, Ed1 oldiga x, Edt2 y, Edt3 Fxy deb nom beramiz.
Endi qiyshiq narsalar hisol boʻlmasligi uchun biz buni toʻgʻrilab qoʻyishimiz ham mumkin, xni bosib Shiftni bosgan holda yni bossak, uchta maydon belgilanadi.
Object Inspector oynasining left xususiyatining qiymatini hammasi uchun bir xil 344 qiymat beramiz
Do'stlaringiz bilan baham: |