Dasturlash masalalari
Bu bo'limda darslarda o'rganilgan mavzularni mustahkamlash uchun amaliy masalalar jamlangan. Masalalarning yechimi berilmaydi: ularni Python tilida o'zingiz yozib, natijani tekshirasiz. Har bir masala ostida Misol qatori bor: unda sinash uchun kirish qiymatlari va dasturingiz chiqarishi kerak bo'lgan natija ko'rsatilgan.
Masalalar ikki qismga bo'lingan:
- Asosiy mavzular — 1230 ta algoritmik masala. Ular oddiy hisob-kitobdan boshlanib, massiv, satr, fayl, rekursiya va daraxtlargacha boradi.
- Python tili — 270 ta masala. Ular ro'yxat va lug'atlar, comprehension, dekoratorlar, klasslar, generatorlar, asyncio va test yozish kabi Python'ga xos imkoniyatlarni mashq qildiradi.
Qanday ishlash kerak?
- Mavzularni tartib bilan yeching. Har bir mavzu oldingilariga tayanadi.
- Masala shartida berilgan formulalar faqat yo'l-yo'riq. Hisoblashni o'zingiz dasturlaysiz.
- Yechimni turli kirish ma'lumotlari bilan tekshiring, chegaraviy holatlarni (0, manfiy son, bo'sh ro'yxat) unutmang.
- Misollardagi ro'yxatlar
[1 2 3]ko'rinishida yozilgan bo'lishi mumkin — Python'da bu[1, 2, 3]ga mos keladi. «Massiv» deganda Python ro'yxati (list) tushuniladi. - Asosiy mavzularda iloji boricha tayyor funksiyalardan (
sum,max,sorted,reversedva hokazo) emas, o'zingiz yozgan sikl va funksiyalardan foydalaning — keyin natijani tayyor funksiya bilan solishtiring. - Python tili masalalariga asosiy mavzularni yechib bo'lgandan keyin o'ting. Barcha masalalar Python 3.12+ uchun mo'ljallangan.
Asosiy mavzular
| № | Mavzu | Masalalar |
|---|---|---|
| 1 | Begin — Kiritish-chiqarish va o'zlashtirish | 40 |
| 2 | Integer — Butun sonlar | 30 |
| 3 | Boolean — Mantiqiy ifodalar | 40 |
| 4 | If — Shart operatori | 30 |
| 5 | Case — Tanlash operatori (match) |
20 |
| 6 | For — Parametrli sikl | 40 |
| 7 | While — Shartli sikl | 30 |
| 8 | Series — Sonli ketma-ketliklar | 40 |
| 9 | Proc / Func — Funksiyalar | 60 |
| 10 | Minmax — Minimum va maksimumlar | 30 |
| 11 | Array — Bir o'lchamli massivlar | 140 |
| 12 | Matrix — Ikki o'lchamli massivlar | 100 |
| 13 | String — Belgilar va satrlar | 70 |
| 14 | File — Ikkilik fayllar | 90 |
| 15 | Text — Matnli fayllar | 60 |
| 16 | Param — Funksiyalarda murakkab turlar | 70 |
| 17 | Recur — Rekursiya | 30 |
| 18 | Dynamic — Dinamik ma'lumotlar strukturalari | 80 |
| 19 | Tree — Daraxtlar | 100 |
| 20–21 | TablBase / TablExt — Jadval ma'lumotlarini qayta ishlash | 130 |
Python tili
| № | Mavzu | Masalalar |
|---|---|---|
| P1 | List / Tuple — Ro'yxat va kortejlar | 25 |
| P2 | Dict / Set — Lug'at va to'plamlar | 25 |
| P3 | Comprehension — Ro'yxat, lug'at va to'plam ifodalari | 20 |
| P4 | Functions — Argumentlar, closure va dekoratorlar | 30 |
| P5 | OOP — Klasslar va obyektga yo'naltirilgan dasturlash | 30 |
| P6 | Exceptions — Istisnolar va kontekst menejerlari | 20 |
| P7 | Iterators / Generators — Iteratorlar va generatorlar | 25 |
| P8 | Typing — Tur izohlari va statik tekshiruv | 15 |
| P9 | Stdlib — Modullar va standart kutubxona | 30 |
| P10 | Concurrency — threading, multiprocessing va asyncio | 30 |
| P11 | Testing — Testlar va profillash | 20 |