Dasturlash masalalari
Bu bo'limda darslarda o'rganilgan mavzularni mustahkamlash uchun amaliy masalalar jamlangan. Masalalarning yechimi berilmaydi: ularni Go 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 uch qismga bo'lingan:
- Asosiy mavzular — 1230 ta algoritmik masala. Ular oddiy hisob-kitobdan boshlanib, massiv, satr, fayl, rekursiya va daraxtlargacha boradi.
- Go tili — 230 ta masala. Ular slice, map, interfeys, generics, goroutine va test yozish kabi Go'ga xos imkoniyatlarni mashq qildiradi.
- SQL (PostgreSQL) — 1000 ta masala. Ular
SELECTdan boshlanib,JOIN, window funksiyalar,JSONB, triggerlar va indekslargacha boradi.
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.
- Go tili masalalariga asosiy mavzularni yechib bo'lgandan keyin o'ting.
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 | 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 |
Go tili
| № | Mavzu | Masalalar |
|---|---|---|
| G1 | Slice — Slice'larning ichki tuzilishi | 20 |
| G2 | Map — Xaritalar | 25 |
| G3 | Struct — Struct va metodlar | 25 |
| G4 | Interface — Interfeyslar | 25 |
| G5 | Errors — Xatolar, defer, panic va recover | 20 |
| G6 | Generics — Umumiy dasturlash | 20 |
| G7 | Goroutine — Goroutine va kanallar | 30 |
| G8 | Sync — Sinxronizatsiya va context | 20 |
| G9 | Stdlib — Paketlar va standart kutubxona | 30 |
| G10 | Testing — Testlar va benchmark'lar | 15 |
SQL (PostgreSQL)
SQL bo'limida 1000 ta masala bor. Ular PostgreSQL'da ishlaydi va to'rtta namuna sxema (do'kon, maktab, bank, kutubxona) ustida tuzilgan. Avval Sxemalar va tayyorlov sahifasidan ma'lumotlar bazasini tayyorlab oling. Har bir masala ostida kutilgan natija yashirin blokda berilgan.
| № | Mavzu | Masalalar |
|---|---|---|
| 001 | SELECT, alias va ifodalar | 30 |
| 002 | WHERE sharti | 42 |
| 003 | NULL bilan ishlash | 30 |
| 004 | ORDER BY, LIMIT, OFFSET, DISTINCT | 30 |
| 005 | IN, BETWEEN, LIKE, ILIKE | 29 |
| 006 | Matematik funksiyalar | 24 |
| 007 | Satr funksiyalari | 39 |
| 008 | Sana va vaqt | 44 |
| 009 | CASE ifodasi | 24 |
| 010 | CAST va ma'lumot turlari | 24 |
| 011 | Agregat funksiyalar, GROUP BY, HAVING | 56 |
| 012 | JOIN | 65 |
| 013 | Subquery va EXISTS | 40 |
| 014 | UNION, INTERSECT, EXCEPT | 20 |
| 015 | CTE (WITH) | 28 |
| 016 | Rekursiv CTE | 25 |
| 017 | Window funksiyalar | 61 |
| 018 | INSERT, UPDATE, DELETE, RETURNING | 32 |
| 019 | UPSERT va MERGE | 20 |
| 020 | CREATE TABLE va cheklovlar | 33 |
| 021 | ALTER, DROP va migratsiya | 20 |
| 022 | Normalizatsiya va sxema loyihalash | 23 |
| 023 | JSON va JSONB | 41 |
| 024 | ARRAY | 26 |
| 025 | ENUM, UUID, range va composite turlar | 21 |
| 026 | Full-text search va pg_trgm | 21 |
| 027 | View va Materialized view | 16 |
| 028 | Funksiyalar va PL/pgSQL | 30 |
| 029 | Triggerlar | 15 |
| 030 | Tranzaksiyalar, izolyatsiya va lock | 25 |
| 031 | Indekslar | 20 |
| 032 | EXPLAIN va ANALYZE | 20 |
| 033 | Partitioning va VACUUM | 11 |
| 034 | Rollar, GRANT va RLS | 15 |