Skip to content

12-dars: Oylik imtihon (Dasturlash asoslari)

Dars haqida

Davomiyligi: 90 daqiqa Format: Test + amaliy C dasturlari + GitHub portfolio tekshiruvi Maqsad: 4-oy davomida o'rganilgan CS asoslari, terminal, Git/GitHub va C tili ko'nikmalarini baholash.

Imtihon tuzilmasi

QismVaqtBall
1-qism: Test (20 savol)30 daqiqa35 ball
2-qism: Amaliy C dasturlari50 daqiqa45 ball
3-qism: GitHub portfolio10 daqiqa20 ball
Jami90 daqiqa100 ball

O'tish chegarasi: 60 ball

1-qism: Test (35 ball)

20 ta savol, har biri 1.75 ball. Vaqt — 30 daqiqa.

CS asoslari, binary va algoritm (savol 1–5)

1. Algoritm nima?

  • a) Dasturlash tili
  • b) Muammoni yechishning ketma-ket qadamlari
  • c) Kompyuter qurilmasi
  • d) Tarjima dasturi

2. Decimal 13 binary'da qanday yoziladi?

  • a) 1100
  • b) 1101
  • c) 1011
  • d) 1110

3. ASCII jadvalida 'A' harfining raqami nechta?

  • a) 64
  • b) 65
  • c) 97
  • d) 100

4. Flowchart'da romb shakli nimani anglatadi?

  • a) Boshlash
  • b) Amal
  • c) Shart
  • d) Tugatish

5. Quyidagi pseudocode natijasi qanday?

SET x = 5
SET y = 3
IF x > y:
    PRINT "Katta"
ELSE:
    PRINT "Kichik"
  • a) Katta
  • b) Kichik
  • c) 5
  • d) 8

Terminal, Git va GitHub (savol 6–10)

6. Terminal'da hozirgi papkani ko'rish:

  • a) pwd
  • b) ls
  • c) cd
  • d) mkdir

7. git add . nima qiladi?

  • a) Hammasini commit qiladi
  • b) Hamma o'zgarishlarni staging'ga qo'yadi
  • c) GitHub'ga yuklaydi
  • d) Yangi branch yaratadi

8. Commit message qaysi konventsiyaga ko'ra to'g'ri yozilgan?

  • a) asdf
  • b) feat: add login form
  • c) xato tuzatildi
  • d) 12345

9. GitHub'dagi repo'ni kompyuterga olish:

  • a) git push
  • b) git pull
  • c) git clone
  • d) git fetch

10. Pull Request nimani anglatadi?

  • a) Faylni o'chirish
  • b) Branchdan main'ga qo'shish so'rovi
  • c) Repo'ni nusxalash
  • d) Bug yaratish

C tili asoslari (savol 11–20)

11. Har C dasturda bo'lishi shart funksiya:

  • a) start()
  • b) main()
  • c) program()
  • d) init()

12. Statement oxiriga qaysi belgi qo'yiladi?

  • a) . (nuqta)
  • b) , (vergul)
  • c) ; (nuqtali vergul)
  • d) : (ikki nuqta)

13. printf qaysi header'da?

  • a) <string.h>
  • b) <math.h>
  • c) <stdio.h>
  • d) <stdlib.h>

14. %d qaysi tur uchun?

  • a) double
  • b) float
  • c) int
  • d) char

15. int x = 5; x++; — natijada x qancha?

  • a) 5
  • b) 6
  • c) 4
  • d) 10

16. 10 % 3 natija:

  • a) 3.33
  • b) 3
  • c) 1
  • d) 0

17. Quyidagi kod nimani chiqaradi?

c
int x = 5;
if (x > 3 && x < 10) printf("A");
else if (x == 5) printf("B");
else printf("C");
  • a) A
  • b) B
  • c) AB
  • d) C

18. for (int i = 0; i < 5; i++) — sikl necha marta ishlaydi?

  • a) 4
  • b) 5
  • c) 6
  • d) Cheksiz

19. do-while va while farqi:

  • a) Farq yo'q
  • b) do-while kamida bir marta ishlaydi
  • c) while kamida bir marta ishlaydi
  • d) do-while tez

20. void func(void) ning ma'nosi:

  • a) func hech narsa qaytarmaydi va parameter yo'q
  • b) func bo'sh
  • c) func ishlamaydi
  • d) Xato

Javoblar kaliti

Test javoblari (o'qituvchi uchun)

1-b, 2-b, 3-b, 4-c, 5-a, 6-a, 7-b, 8-b, 9-c, 10-b, 11-b, 12-c, 13-c, 14-c, 15-b, 16-c, 17-a, 18-b, 19-b, 20-a

2-qism: Amaliy C dasturlari (45 ball)

Vaqt: 50 daqiqa. 3 ta masala + Git ish jarayoni.

Ish jarayoni ham baholanadi (8 ball)

Yechimlar foundation-darslar repo ichida imtihon/ papkaga yoziladi:

  1. Repo ichida imtihon/ papka yarating
  2. Har masala — alohida .c fayl (nomi quyida berilgan)
  3. Har masala tugagach — alohida commit (conventional format, masalan feat: add fizzbuzz solution)
  4. Imtihon oxirida hammasini GitHub'ga push qiling

Commit qilmagan yoki push qilmagan ish — topshirilmagan hisoblanadi.

Eslatma

Foydalanuvchidan qiymat o'qish (scanf) hali o'tilmagan — u 5-oyda o'rganiladi. Shuning uchun boshlang'ich qiymatlarni kod ichida o'zgaruvchi sifatida bering.

Masala 1: Sonlar yig'indisi (12 ball)

Fayl: imtihon/yigindi.c

for sikli yordamida:

  1. 1 dan 100 gacha barcha sonlar yig'indisini hisoblang
  2. Toq sonlar yig'indisini alohida hisoblang
  3. Juft sonlar yig'indisini alohida hisoblang
  4. Uchala natijani printf bilan chiqaring

Kutilgan natija:

1 dan 100 gacha yig'indi: 5050
Toq sonlar yig'indisi: 2500
Juft sonlar yig'indisi: 2550

Baholash:

MezonBall
Sikl to'g'ri tuzilgan4
Umumiy yig'indi to'g'ri3
Toq/juft ajratish (% bilan)3
Chiqish toza va tushunarli2

Masala 2: FizzBuzz (12 ball)

Fayl: imtihon/fizzbuzz.c

1 dan 50 gacha sonlarni chiqaring, lekin:

  • Son 3 ga ham, 5 ga ham bo'linsa — FizzBuzz yozing
  • Faqat 3 ga bo'linsa — Fizz yozing
  • Faqat 5 ga bo'linsa — Buzz yozing
  • Boshqa hollarda — sonning o'zini yozing

Kutilgan natija (boshi):

1
2
Fizz
4
Buzz
Fizz
7
...
14
FizzBuzz
...

Baholash:

MezonBall
Sikl to'g'ri (1–50)3
Shartlar tartibi to'g'ri (avval FizzBuzz)4
% operatori to'g'ri ishlatilgan3
Chiqish formati to'g'ri2

Masala 3: Funksiyalar (13 ball)

Fayl: imtihon/funksiyalar.c

Uchta funksiya yozing va main ichida ishlating:

  1. int eng_katta(int a, int b, int c) — uchta sondan eng kattasini qaytaradi
  2. int juftmi(int n) — son juft bo'lsa 1, toq bo'lsa 0 qaytaradi
  3. long faktorial(int n) — n! ni hisoblaydi (sikl bilan)

main funksiyasida har birini kamida 2 xil qiymat bilan chaqirib, natijalarni chiqaring.

Namuna chiqish:

eng_katta(3, 9, 5) = 9
eng_katta(12, 4, 12) = 12
juftmi(8) = 1
juftmi(7) = 0
faktorial(5) = 120
faktorial(7) = 5040

Baholash:

MezonBall
eng_katta to'g'ri ishlaydi4
juftmi to'g'ri ishlaydi3
faktorial to'g'ri ishlaydi4
main'da chaqirish va chiqish2

Git ish jarayoni (8 ball)

MezonBall
imtihon/ papka to'g'ri joyda1
Har masala alohida commit (conventional)4
GitHub'ga push qilingan2
Fayl nomlari topshiriqqa mos1

3-qism: GitHub portfolio (20 ball)

Bu qism uchun imtihon kuni alohida ish talab qilinmaydi — oy davomida yig'ilgan repo baholanadi. Imtihon oxirida o'qituvchi foundation-darslar repo'ngizni ochib tekshiradi (oxirgi push qilingan holat hisobga olinadi).

Tekshiriladi:

  1. Repo tartibi — har dars uchun alohida 4-oy-dars-N/ papka, fayllar o'z joyida
  2. Commit tarixi — oy davomida muntazam commitlar, conventional format (feat:, fix:, docs: ...)
  3. README — repo tavsifi, darslar ro'yxati, siz haqingizda qisqacha
  4. Ochiqlik — repo Public, .c fayllar ochilib o'qiladi

Baholash:

MezonBall
Repo tartibi (papkalar tizimi)6
Commit tarixi (muntazam, conventional)8
README to'liq va chiroyli4
Repo Public, fayllar ochiladi2

Baholash

Umumiy taqsimot

QismBall
1-qism: Test35
2-qism: Amaliy C dasturlari45
3-qism: GitHub portfolio20
Jami100

Natijalar

  • 90+ — A+, ajoyib
  • 80–89 — A, juda yaxshi
  • 70–79 — B, yaxshi
  • 60–69 — C, o'tdi
  • < 60 — F, qayta topshirish

O'tish chegarasi: 60 ball.

Qayta topshirish

60 dan past ball olganlar — 1 hafta ichida qayta topshiradi.

Imtihondan oldin tayyorgarlik

Tavsiyalar

  1. Yaxshi uxlang — 7+ soat
  2. Compiler tekshiring: gcc --version yoki clang --version
  3. Git sozlangan: git config --global --list da ism va email bor
  4. GitHub'ga kirish ishlayapti (push qilib ko'ring)
  5. VS Code tayyor
  6. Vaqtni boshqaring:
    • Test: 30 daqiqa
    • Amaliy: 50 daqiqa
    • Portfolio va yakuniy push: 10 daqiqa

Takrorlash uchun asosiy mavzular:

  • Binary konvertatsiya va ASCII
  • Flowchart shakllari, pseudocode o'qish
  • Terminal buyruqlari: pwd, ls, cd, mkdir
  • Git zanjiri: addcommitpush, branch va Pull Request
  • C: o'zgaruvchilar, % operatori, if/else, for/while, funksiya yozish

5-oyga tayyorgarlik

5-oyda C tili davom etadi — endi dasturlar jiddiylashadi:

MavzuNima o'rganiladi
Input/Outputscanf — foydalanuvchidan qiymat o'qish
StringMatnlar bilan ishlash
MassivKo'p qiymatni bitta o'zgaruvchida saqlash
Saralash va qidirishSort va search algoritmlari C'da
PointerXotira manzillari — C'ning yuragi
StructO'z ma'lumot turingizni yaratish
FaylMa'lumotni faylga yozish va o'qish

Tayyorgarlik:

  1. 4-oy darslarini takror ko'ring (ayniqsa sikllar va funksiyalar)
  2. foundation-darslar repo'ni tartibga keltiring
  3. Massiv haqida qisqacha o'qib keling (nima ekanini bilish yetadi)

Refleksiya

Imtihondan keyin Drive'da Google Doc: "4-oy refleksiya"

4-oy refleksiya

1. Eng yoqqan mavzu: ___
2. Eng qiyin mavzu: ___
3. 3-oyda AI yordamida dastur yasatgansiz, 4-oyda o'zingiz yozdingiz —
   farqni qanday sezdingiz? ___
4. GitHub'dagi eng faxrlanadigan commit'ingiz: ___
5. 5-oyga maqsadlar:
   - ___
   - ___
   - ___

Drive havolasini o'qituvchiga jo'nating.

Aloqa

Imtihon vaqtida muammo bo'lsa (compiler, internet, GitHub) — darrov o'qituvchini chaqiring.

Yutuqlar tilab qolaman! 5-oyda C tilining eng qiziqarli qismlari kutmoqda.

Keyingi oy

5-oy darslariga o'tish →

Master IT o'quv markazi — o'qitish rejasi