☰ Mundarija · Informatika

CheckBox va massiv

Darslar 51–52 · 2 ta dars · N. I. Taylaqov (umumiy muharrir), A. B. Axmedov, M. D. Pardayeva, A. A. Abdug‘aniyev, U. M. Mirsanov. Informatika va axborot texnologiyalari, 10-sinf, 1-nashr. «Extremum-Press», Toshkent, 2017
51

Ilovada bayroqchalardan foydalanish

Darslik: 110–115-betlar
MaqsadCheckBox (bayroqcha) obyektini ishlatadi, Checked xossasini tekshiradi, global massiv e’lon qiladi va uni OnCreate hodisasida boshlang‘ich qiymatlar bilan to‘ldiradi.
Yangi so‘zlar
CheckBox · CheckBox: a box that can be ticked or clearedChecked · Checked: True if the box is ticked, otherwise Falseglobal o‘zgaruvchi · global variable: a variable declared outside procedures, available everywhere in the unitmassiv · array: numbered variables of one type under one name
Tushuntirish

CheckBox (Standard yorlig‘i) o‘rnatilgan yoki o‘rnatilmagan holatda bo‘ladi; bu holat mantiqiy Checked xossasida saqlanadi, yozuvi esa Caption da. Bir nechta CheckBox dan istalganini bir vaqtda tanlash mumkin, shuning uchun ularga xos so‘rovnomada javoblar soni so‘rovda qatnashganlar sonidan ko‘p bo‘lishi mumkin. Ilova ishlayotganda necha kishi nima tanlaganini eslab qolish uchun o‘zgaruvchilar kerak, lekin lokal o‘zgaruvchi protsedura tugashi bilan yo‘qoladi. Shuning uchun global o‘zgaruvchi (masalan, massiv) e’lon qilinadi: kod oynasida implementation bo‘limida var n: array[0..3] of Integer; deb yoziladi, elementlar n[0], n[1], n[2], n[3] deb ataladi. Boshlang‘ich qiymatlarni ilova oynasi yaratilayotganda berish qulay: Form1 ni tanlab, Object Inspector da Events yorlig‘idagi OnCreate ni ikki marta bosing va tsikl bilan elementlarni nolga tenglang. Delphi umumiy o‘zgaruvchilarni dastlab nolga o‘rnatadi, lekin ularni OnCreate da ochiq yozish dastur matnini tushunarli qiladi.

Namunalar
«Odatlar kundaligi»: CheckBox1 – kitob o‘qidim, CheckBox2 – sport bilan shug‘ullandim, CheckBox3 – erta turdim. Har kuni kechqurun belgilar qo‘yilib, «Kun yakuni» tugmasi bosiladi: procedure TForm1.Button1Click(Sender: TObject); ⏎ begin ⏎  n[0] := n[0] + 1; ⏎  if CheckBox1.Checked then n[1] := n[1] + 1; ⏎  if CheckBox2.Checked then n[2] := n[2] + 1; ⏎  if CheckBox3.Checked then n[3] := n[3] + 1; ⏎  CheckBox1.Checked := False; ⏎  CheckBox2.Checked := False; ⏎  CheckBox3.Checked := False; ⏎ end; n[0] kunlar sonini, n[1]–n[3] har bir odat necha kun bajarilganini sanaydi; belgilar ertangi kun uchun tozalanadi.
Olti kun yozildi: kitob 4 kun, sport 2 kun, erta turish 3 kun belgilandi. n[0] = 6, n[1] = 4, n[2] = 2, n[3] = 3. Belgilar yig‘indisi 4+2+3 = 9, bu kunlar sonidan (6) katta, chunki bir kunda bir nechta odat belgilanishi mumkin. Kitob o‘qilgan kunlar ulushi 4/6 ≈ 67%.
Sinfda faoliyat

«Sinf so‘rovnomasi»: guruh o‘z mavzusida (masalan, sevimli fan) 4 variantli ilova yaratadi; 8 ta o‘ylab topilgan «ovoz» kiritib, natijalar yig‘indisini qo‘lda hisoblangan natija bilan solishtiradi.

Mashq
1
CheckBox ning o‘rnatilganligi qaysi xossada saqlanadi?
2
var n: array[0..3] of Integer; da nechta element bor?
3
Besh o‘quvchi qatnashdi; bir variantga 3, boshqasiga 4 ta belgi qo‘yildi. Ikki variant bo‘yicha belgilar yig‘indisi?
4
Nima uchun belgilar soni qatnashganlardan ko‘p bo‘lishi mumkin?