diff --git "a/Lab 10 \342\200\224 Strings aa938c6de5274b3692044a1a317bf323.md" "b/Lab 10 \342\200\224 Strings aa938c6de5274b3692044a1a317bf323.md" new file mode 100644 index 0000000..c1c1fe9 --- /dev/null +++ "b/Lab 10 \342\200\224 Strings aa938c6de5274b3692044a1a317bf323.md" @@ -0,0 +1,386 @@ +# Lab 10 — Strings + +### Masala 1 + +##### Description + +>`N` ta belgidan iborat bitta string o'qing. Bo'sh kataklar kiritish mumkin emas. Faqat kichik harflarni(lowercase) chop eting. + +> Masalan: "SaLoM" —>"ao" + + +###### Input + +`N` ta belgidan iborat string (`1 ≤ N ≤ 20`). + +###### Output + +Faqatgina kiritilgan stringdagi kichik harflarning o'zini chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `HelloWorld` | `elloorld` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `AbCdEEff` | `bdff` | + +--- + +### Masala 2 + +##### Description + +>Bitta butun N xonali son o'qing. Sonning har bir xonasini `char` ga o'giring. `char`larni bitta stringga teskari tartibda saqlang. Shu stringni string uchun ishlatiladigan *placeholder* yordamida chop eting, **print qilishda** *loop ishlatish mumkin emas*. + +###### Input + +`N` xonali son (1 ≤ N ≤ $2^{32}-1$). + +###### Output + +Kiritilgan sonni teskarisiga aylantirib, **`string`** sifatida `%s` orqali chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `9756` | `6579` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `12345` | `54321` | + +--- + +### Masala 3 + +##### Description + +>- Harflari orasida ***space*** bo'lmagan, uzunligi `N` ga teng bo'lgan `string` o'qing. +>- Stringning uzunligi nechi bo'lsa, shuncha marta namunadagidek o'zgartirib chop eting. +>- Har safar `string`ning birinchi elementi stringning eng oxirida chop etilishi kerak. Qolgan elementlar o'z o'rnida qoladi. + +###### Input + +Uzunligi `N` ga teng bo'lgan string ($1 \le N \le 100$). + +###### Output + +`N` qator namunadagidek aylantirilgan, uzunligi `N`ga teng string. + +#### Namuna 1 +| Input | Output | +| - | - | +| `abcde` | `abcde`
`bcdea`
`cdeab`
`deabc`
`eabcd` | + +--- + +### Masala 4 + +##### Description + +>- Uzunligi `N`ga teng bo'lgan 2 ta `string` o'qing. +>- String elementlari orasida ***space*** bo'lishi **mumkin**. +>- Birinchi string uzunligi va ikkala string bir xil yoki bir xil emasligini tekshiring. +>- `strlen()` va `strcmp()` funksiyalarini ishlatish mumkin emas. + +###### Input + +Har birining uzunligi `N` ga teng bo'lgan 2 ta string (N ≤ 100). + +###### Output + +Avvalo, birinchi stringning uzunligini chop eting. Keyin, agar ikkala string bir-biriga teng bo'lsa 1 ni, aks holda 0 ni chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `Hello`
`world` | `5 0` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `programming`
`programming` | `11 1` | + +--- + +### Masala 5 + +##### Description + +>- Elementlari orasida ***space*** bo'lmagan `str1` va `str2` stringlarni alohida o'qing. +>- `str1` ning uzunligini chop eting. +>- Agar `str1` o'z ichiga `str2`ni olsa, 1 ni, aks holda 0 ni chop eting. +>- `str1` ning uzunligi $\le 80$ +>- `str2` ning uzunligi $\le 10$ + +###### Input + +Ikkita `str1` va `str2` stringlar. + +###### Output + +Avvalo, birinchi stringning uzunligini chop eting. Keyin, agar `string1` o'z ichiga `string2`ni olsa 1 ni, aks holda 0 ni chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `Hello`
`world` | `5 0` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `Helloworld`
`low` | `10 1` | + +--- + +### Masala 6 + +##### Description + +>Ikkita `str1` va `str2` stringlarni o'qing. `str1`da ***space*** bor bo'lishi mumkin, `str2`da yo'q. `str1` ning ichida `str2` necha marta takrorlanib kelganini aniqlaydigan dastur tuzing. + +>- `str1` ning maksimum uzunligi ≤ 100. +>- AA string AAA stringning ichida bir marta takrorlanib keladi. AA string AAAA stringning ichida 2 marta takrorlanib keladi. Hech qaysi element ikki marta sanalamaydi. + +###### Input + +Ikkita alohida string. + +###### Output + +`str1` da `str2` necha marta takrorlanishini chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `Prrogram prrogram`
`rr` | `2` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `Helloworld`
`low` | `1` | + +--- + +### Masala 7 + +##### Description + +>Bitta butun son `N`ni o'qing. Ikkinchi qatordan boshlab `N` ta qatorda `N` ta string o'qing. Stringlarda ***space*** bo'lishi mumkin. Eng qisqa stringni chop eting. + +>- ***Space*** ham sanaladi. +>- Har bir stringning maksimum uzunligi ≤ 100. + +###### Input + +>- Birinchi qatorda butun son `N`. $2 \le N \le 100$ +>- Ikkinchi qatordan boshlab `N` qator `N` ta string. + +###### Output + +Uzunligi eng qisqa bo'lgan stringni chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `4`
`Program`
`Good`
`This is string`
`language` | `Good` | + +--- + +### Masala 8 + +##### Description + +>Ikkita `str1` va `str2` stringlarni, va bitta butun son `p` ni o'qing. `p` `str1` ning indeksini anglatadi. Kiritilgan indeksdan boshlab `str2` ni `str1` ning ichiga qo'shib qo'ying. + +>- Har bir stringning maksimum uzunligi `≤ 20`. +>- `p` butun soni `str1` ning uzunligidan katta emas. +>- agar `p = 0` bo'lsa, avval `str2` keyin `str1` chop etilishi kerak. +>- Qo'shimcha string ishlatish mumkin emas! Natijani chop etish uchun `str1` dan foydalanilsin. + +###### Input + +***Space*** qatnashmagan ikkita alohida stringlar `str1` va `str2` , va bitta butun son `p`. + +###### Output + +Kiritilgan indeksdan boshlab `str2` qo'shib qo'yilgan `str1` stringi. + +#### Namuna 1 +| Input | Output | +| - | - | +| `abcde`
`123`
`2` | `ab123cd3` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `ABCD`
`abc`
`4` | `ABCDabc` | + +--- + +### Masala 9 + +##### Description + +>8-masalaning davomi. Yana bitta butun son o'qing. Agar 1 kiritilsa, `str2` ni teskarisiga aylantirib, keyin qo'shing. Aks holda, to'g'ridan to'g'ri, aylantirmasdan qo'shing. + +>- 8-masalaning barcha shartlari amal qiladi. +>- 0: to'g'ri tartib, 1: teskari tartib. + +#### Namuna 1 +| Input | Output | +| - | - | +| `abcde`
`123`
`2`
`0` | `ab123cde` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `abcde`
`123`
`2`
`1` | `ab321cde` | + +--- + +### Masala 10 + +##### Description + +> ***cin >>*** yordamida ikkita ***space*** ishtirok etmagan stringlarni o'qing. Ikkala stringni leksikografik tartib(lexicographic order)dan foydalanib taqqoslang. Agar 1-string katta bo'lsa, 2-stringni 1-stringning oxiriga qo'shing(concatenate qiling) va 1-stringni chop eting. Agar 2-string katta bo'lsa, 1-stringni 2-stringning oxiriga qo'shing(concatenate qiling) va 2-stringni chop eting. + +>- Har bir stringning maksimum uzunligi ≤50. +>- faqatgina lowercase(kichik) harflar kiritilsin. + +###### Input + +Ikkita ***space*** qatnashmagan stringlar. + +###### Output + +Bitta bir qator, qo'shilgan string. + +#### Namuna 1 +| Input | Output | +| - | - | +| `sejong`
`university` | `universitysejong` | + +--- + +### Masala 11 + +##### Description + +>Bitta butun son `N`ni o'qing va uni ingliz tilida, quyidagicha chop eting. + +>- `N` < 10000; +>- Quyidagicha chop eting + - Raqamlar(0-9): one two three four five six seven eight nine; + - Ming uchun THO, yuz uchun HUN, o'n uchun TEN so'zlaridan foydalanilsin. + - Raqam 0 bo'lsa, tashlab keting. + +###### Input + +Bitta butun son `N`. + +###### Output + +Kiritilgan sonni ingliz harflari yordamida namunadagidek chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `3496` | `three THO four HUN nine TEN six` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `520` | `five HUN two TEN` | + +--- + +### Masala 12 + +##### Description + +>***Space*** qatnashmagan bitta string o'qing va kiritilgan string palindrom yoki palindrom emasligini tekshiring. + +>- `check()` + - argumentlari: stringning boshlanish manzilini saqlovchi pointer o'zgaruvchi + - Stringning palindrom yoki palindrom emasligini tekshiradi. + - Case-sensitive: Katta-kichik harflarni har xil qabul qiladi. + - Agar palindrom bo'lsa 1, palindrom bo'lmasa 0 ni qaytararadi. +>- `main()` + - Bitta string o'qiydi. Stringning maksimum uzunligi ≤ 30. + - Kiritilgan stringning uzunligini chop etadi. + - check() funksiyani chaqiradi va agar string palindrom bo'lsa 1 ni, aks holda 0 ni chop etadi. + +###### Input + +Uzunligi 30 dan oshmaydigan, ***space***lar ishtirok etmagan bitta string. + +###### Output + +Stringning uzunligini va check() funksiyadan qaytgan qiymatni bitta qatorda, orasida bo'sh kataklar bilan chop eting. + +#### Namuna 1 +| Input | Output | +| - | - | +| `Hello` | `5 0 ` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `aibohpphobia` | `12 1 ` | + +--- + +### Masala 13 + +## `strcpy` + +>Bitta string o'qing (maksimum uzunligi 100). Shu string ni ikkinchi yarmini boshqa stringga ko'chirib o'tkazing va ikkinchi stringni chop eting. + +>- kiritilgan stringda bo'sh kataklar bo'lmaydi +>- agar birinchi string uzunligi toq bo'lsa, o'rtadagi ortiqcha belgi ikkinchi yarmiga tegishli deb hisoblansin + +#### Namuna 1 +| Input | Output | +| - | - | +| `Helloworld` | `world` | + + +#### Namuna 2 +| Input | Output | +| - | - | +| `Hello` | `llo` | + +--- + +### Masala 14 + +## `strcat` + +>Birinchi stringni `N`-indexidan boshlab ikkinchi stringni ulaydigan dastur tuzing. + +>- birinchi string uzunligi $strlen(str1) \le 100$ +>- ikkinchi string uzunligi $strlen(str2) \le 20$ + +###### Input + +- birinchi qatorda bo'sh kataklarsiz birinchi string +- ikkinchi qatorda `N` $0 \le N \le strlen(str1)$ +- uchinchi qatorda ulash uchun bo'sh kataklarsiz yana bir string + +###### Output + +Birinchi stringni `N`-indeksidan boshlab ikkinchi stringni ulang va birinchi stringni chop eting. \ No newline at end of file diff --git "a/Lab 11 \342\200\224 Structs 358430f19bcf4452820535ecdb476fef.md" "b/Lab 11 \342\200\224 Structs 358430f19bcf4452820535ecdb476fef.md" new file mode 100644 index 0000000..84a2f08 --- /dev/null +++ "b/Lab 11 \342\200\224 Structs 358430f19bcf4452820535ecdb476fef.md" @@ -0,0 +1,409 @@ +# Lab 11 — Structs + +### Masala 1 + +###### Description + +>3 o'lchamli vector uchun `vector` **structure**ni yasang (x, y, z) va undan foydalanib 2 ta 3 o'lchamli `vector` turidagi o'zgaruvchilarni e'lon qiling (V1, V2). Ularning koordinatalarini foydalanuvchidan o'qing. Vektorlarni qo'shing va natijani chop eting. + +>- X, Y, Z — ichki o'zgaruvchilarning ma'lumot turi — `int`. + +###### Input + +Ikki vektor kordinatalarini anglatuvchi ikki qator 3 tadan butun son. + +###### Output + +Vektorlar yi'gindisi. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `1` `2` `3`
`-1` `5` `5` | `0` `7` `8` | + +--- + +### Masala 2 + +###### Description + +>3 o'lchamli vektor uchun `vector` **structure**ni yasang (x, y, z) va undan foydalanib 3 ta 3 o'lchamli `vector` turidagi o'zgaruvchilarni e'lon qiling (`V1`, `V2`, `V3`). V1 va V2 vektorlarning koordinatalarini foydalanuvchidan o'qing. V1 va V2 vektorlar ko'paytmasini V3 vektorga saqlang va `V3`ning koordinatalarini va ichki yig'indisini chop eting. + +>- X, Y, Z ichki o'zgaruvchilarining ma'lumot turi — `int`. + +###### Input + +Ikki vektor kordinatalarini anglatuvchi ikki qator 3 tadan butun son. + +###### Output + +Kiritilgan vektorlarning hadma-had ko'paytmasi va yangi vektorning ichki yig'indisini 2 ta qatorda chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `1` `2` `3`
`-1` `5` `5` | `-1` `10` `15`
`24` | + +--- + +### Masala 3 + +###### Description + +>**Structure** yordamida joriy vaqtni saqlash uchun ishlatiladigan (hour, minute, second) `time` o'zgaruvchisini yasang. 2 ta `time` turidagi o'zgaruvchi e'lon qiling (`time1`, `time2`) va ularga qiymat o'qing. Kiritilgan 2 vaqtning orasida necha soat, daqiqa, soniya borligini topib, chop etadigan dastur tuzing. + +>- Doimo `time2` ≥ `time1`; + +###### Input + +Ikki vaqt nuqtasi. + +###### Output + +Ikkala vaqt nuqtasi orasida qancha vaqt borligini chop etilsin. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `10` `20` `30`
`12` `05` `10`
`//10h 20m 30s` | `1` `44` `40` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `1` `10` `20`
`3` `20` `30` | `2` `10` `10` | + +--- + +### Masala 4 + +###### Description + +>Kasr sonlar uchun `fraction` **structure**ni yasang. U surat va mahrajni saqlaydigan 2 o'zgaruvchiga ega. Ikki kasr sonlar uchun `fraction` turidagi 2 o'zgaruvchi e'lon qilib, ikkala kasrning ko'paytmasini kasr ko'rinishida chop eting. + +>- Kasrning surat va mahraji butun sonlar — `int` deb e'lon qilinsin. + +###### Input + +Ikki kasrning surat va mahraji. + +###### Output + +Ikkala kasrning ko'paytmasini chop etilsin. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `4` `5` `3` `7` | `12/35` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `2` `10` `51` `22`
`// 2/10 * 51/22` | `102/220` | + +--- + +### Masala 5 + +###### Description + +>5 ta talabaning ismi va imtihon baholarini **structure** **array**ga saqlang. O'rtachadan past ball to'plagan talabalarning ismini chop etadigan dastur tuzing. + +>- Talabaning ismi maksimum 9 ta harfdan iborat. + +###### Input + +5 ta talabaning ismi va imtihon baholari 5 ta qatorda o'qilsin. + +###### Output + +o'rtachadan pastroq ball olgan talabalarning ismlari alohida qatorlarda chop etilsin. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `akim 75`
`bkim 85`
`ckim 65`
`dkim 95`
`ekim 100` | `akim`
`ckim` | + +--- + +### Masala 6 + +###### Description + +`N`ta talabaning ismi va 3 ta imtihon ballarini o'qing. Ularning ismi, hisoblangan o'rtacha bali va bahosini chop etilsin. + +> - $N \le 20$ +> - Talabalar ismi maksimum 19 ta harfdan iborat, orasida **space**lar mavjud bo'lmasligi kerak. +> - A, B, C baholar mavjud: + - Agar talabaning balli 90 balldan katta yoki teng bo'lsa — A. + - Agar talabaning balli 80 balldan katta yoki teng va 90 dan kichik bo'lsa — B. + - Agar talabaning balli 70 balldan katta yoki teng va 80 dan kichik bo'lsa — C. + - Undan past ball olgan bo'lsa — F. + +###### Input + +Birinchi qatorda `N` butun soni. + +Ikkinchi qatordan boshlab `N` ta qatorda `N` ta talabaning ismi va 3 tadan imtihon bahosi o'qilsin. + +###### Output + +Har bir talabaning ismi, nuqtadan keyin 1 ta aniqlikdagi o'rtacha balli va bahosi `N` ta qatorda chop etilsin. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `1`
`Alice 95 80 75` | `Alice 83.3 B` + +--- + +### Masala 7 + +###### Description + +>10 ta butun sonlar o'qing. Kiritlgan sonlar kamayib borish tartibida tartiblangan taqdirda nechanchi o'rinda turishi kerakligini aniqlab, 3 va 7-o'rinda turuvchi sonlarni chop etilsin. + +>- 1 ta son faqat 1 marta o'qiladi. +>- Sonlarni **sort** qilmang va tartib raqamini **array**ga ham saqlamang. Sonlarni arrayga qabul qilinganidek saqlang. + +###### Input + +10 ta butun sonlar + +###### Output + +Kattasidan kichigigacha tartiblanganda 3 va 7-o'rinda turuvchi elementlar bitta qatorda, orasida ***space*** bilan chop etilsin. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `78 65 23 43 82 95 31 15 8 54` | `65 23` | + +--- + +### Masala 8 + +###### Description + +>`N` ta talabaning ismi va 3 ta fandan (**Korean**, **English**, **Math**) imtihon ballarini o'qing. Har bir talabaning o'rtacha ballari hisoblanib, shunga asosan bahosi ham hisoblansin. + +>Har bir talabaning ismi, o'rtacha balli, va bahosini chop etadigan dastur tuzilsin. + +>- 1 ≤ `N` ≤ 50 +>- Ismlar — orasida **space** bo'lmagan alifbo harflari bo'lib, maksimum 8 ta harfdan iborat. +>- 1 ≤ Imtihon ballari ≤ 100. +>- O'rtacha ball nuqtadan keyin bitta aniqlikda chop etiladi (masalan, 53.2). +>- Global o'zgaruvchilardan foydalanilmasin. +>- **Structure pointer**lardan foydalanilsin. +>- Quyidagi `student struct`ni yasang: + - Ismlarni saqlash uchun bitta `char array`; + - Uchta fandan baholarni saqlash uchun `int array`lar; + - O'rtacha baholarni saqlash uchun bitta `double array`; + - Baholarni saqlash uchun bitta `char array`; +>- A, B, C baholar mavjud: + - Agar talabaning balli 90 balldan katta yoki teng bo'lsa — A. + - Agar talabaning balli 80 balldan katta yoki teng va 90 dan kichik bo'lsa — B. + - Agar talabaning balli 70 balldan katta yoki teng va 80 dan kichik bo'lsa — C. + - Undan past ball olgan bo'lsa — D. + +###### Input + +Birinchi qatorda talabalar soni `N`. + +Ikkinchi qatordta qatorda `N` ta talabaning ismi va 3 ta baholari orasida ***space*** bilan o'qilsin. + +###### Output + +Har bir talabaning ismi, o'rtacha balli, bahosi alohida qatorlarda, orasida ***space*** bilan chop etilsin. + +###### Namuna 1 + +| Input | Output | +| - | - | +| ` 2 `
`Kim 82 72 58`
`Young 90 100 99` | `Kim 70.7 C`
`Young 96.3 A` | + +--- + +### Masala 9 + +###### Description + +>Ikkita kompleks son o'qilsin. Ikkala kompleks sonlarning yig'indisini chop etilsin. + +>- Global o'zgaruvchilardan foydalanilmasin. +>- kompleks sonlarni saqlash va ifodalash uchun `struct complex` o'zgaruvchi turini e'lon qiling. + - Kompleks sonning aniq va mavhum qismini saqlash uchun 2 ta `double` turidagi o'zgaruvchilar. + +>- `add()` funksiyasi: + - Argumentlari: 2 ta `struct complex` o'zgaruvchi; + - return type: `struct complex`; + - Ikkala strukturaning yig'indisini yana struct ko'rinishida qaytaradi. +>- `main()` funksiyasi: + - Kompleks sonlar saqlash uchun `complex` strukturalar e'lon qiladi. + - Foydalanuvchidan 2 ta kompleks son o'qiydi. + - add() funksiyani chaqirib. ikkala kompleks sonlar yig'indisini hisoblaydi. + - Yig'indini chop etadi. + +###### Input + +Ikkita qatorda 2 ta kompleks sonlarning aniq va mavhum qismlari orasida **space** bilan o'qilsin. + +###### Output + +Ikkala kompleks sonlarning yig'indisi. + +###### Namuna 1 + +| Input | Output | +| - | - | +| ` 2.3 4.5 `
`3.4 5.0` | `5.7 + 9.5i` | + +--- + +### Masala 10 + +###### Description + +>Bitta talabaning imtihon baholarini o'qing (maksimum ball, minimum ball, o'tish oralig'i). Uning imtihodan o'tgan yoki o'tmaganini va o'tish ballidan qancha ko'p olganini chop etadigan dastur tuzilsin. + +>- O'tish yo yiqilish: Agar maksimum olish mumkin bo'lgan ball va olingan ballning ayirmasi o'tish oralig'idan kichik yoki teng bo'lsa o'tgan bo'ladi, aksincha holatda yiqligan hisoblanadi. + - O'tish oralig'i — bu maksimum ball va o'tish ballarining ayirmasi. +>- Maksimum ball va o'tish balli `1` dan `100` gacha oraliqdagi butun son. +>- Agar o'tgan bo'lsa `P`, agar yiqilgan bo'lsa `F` deb saqlansin va chop etilsin. +>- O'tish oralig'i `0` dan `15` gacha bo'lgan, butun son(`int`). +>- `result` strukturasini yasang va undan imtihon natijalari va ma'lumotlarini saqlash uchun foydalaning. + - `int` turidagi ichki o'zgaruvchilari: `maksimum_ball`, `minimum_ball`, `otish_oraligi`, `ball_oraligi`; `char` turidagi o'zgaruvchilar: `P_or_F`. +>- Global o'zgaruvchilar ishlatish mumkin emas. +>- `passorfail()` funksiyasi: + - Argumentlari: `struct` ***pointer***lar; + - O'tgan bo'lsa P, yiqilgan bo'lsa F harfini structning ichki o'zgaruvchisiga saqlaydi. + - return type: `void`; +>- `main()` funksiyasi: + - `result` strukturasini e'lon qiladi. + - max, min va o'tish ballarini foydalanuvchidan o'qiydi. + - `passorfail()` funksiyasini chaqirib, o'tgan yo o'tmaganligini aniqlaydi. + - O'tish ballidan qancha baland ball to'plangani va `P` yoki `F` harflaridan birini chop etadi. + +###### Input + +Maksimum ball, minimum ball, o'tish oralig'i. + +###### Output + +O'tish ballidan qancha baland ball to'plangani va `P` yoki `F` harflaridan biri. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `100 95 10` | ` 5 P ` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `70 50 15` | ` -5 F ` | + +--- + +### Masala 11 + +###### Description + +>Sinfdagi o'quvchilar soni `N`ni o'qing. `N` ta qatorda o'quvchilarning jinsi, vazni, bo'yini o'qing. Quyidagi jadval bo'yicha o'quvchilarning qanchalar xushbichim ekanligini baholab beradigan dastur tuzilsin. + +>**O'g'il bola** o'quvchilar uchun jadval: + +![Lab%2011%20%E2%80%94%20Structs%20358430f19bcf4452820535ecdb476fef/Untitled.png](Lab%2011%20%E2%80%94%20Structs%20358430f19bcf4452820535ecdb476fef/Untitled.png) + +>**Qiz** bola o'quvchilar uchun jadval: + +![Lab%2011%20%E2%80%94%20Structs%20358430f19bcf4452820535ecdb476fef/Untitled%201.png](Lab%2011%20%E2%80%94%20Structs%20358430f19bcf4452820535ecdb476fef/Untitled%201.png) + +>Weight — Vazni; + +>Height — Bo'yi; + +>- Talabalarning maksimal soni — `10`. +>- 1 kiritlsa o'g'il bola talabani, 2 kiritilsa qiz bola talabani bildiradi. +>- Talabalar ma'lumotlarini saqlash uchun `struct`dan foydalaning. + +###### Input + +1. Birinchi qatorda talabalar soni; +2. Ikkinchi qatordan N ta talabaning ma'lumotlari N ta qatorda kiritladi: + - Talabaning jinsini bildiruvchi 1 yoki 2 sonlaridan biri. + - Talabaning vazni; + - Talabaning bo'yi. + +###### Output + +Birinchi, ikkinchi, uchinchi darajali bahoga ega talabalar soni bitta qatorda, yonma-yon, orasida ***space*** bilan chop etilsin. + +###### Namuna 1 + +| Input | Output | +| - | - | +| ` 2 `
`1 66 170`
`2 48 155` | ` 2 0 0 ` | + +--- + +### Masala 12 + +###### Description + +>10 ta talabaning ismi va 3 ta testdan ballarini o'qing. + +>Dastur quyidagicha tuzilsin: + +>- Ballarining o'rtacha qiymati eng baland va eng past bo'lgan talabalarning ismi va o'rtacha ballini chop etsin. +>- O'rtacha ballari eng past bo'lgan 30% talabalarning ismi va o'rtacha balllarini chop etsin. + +>Qyidagi funksiyalarni ishlating: + +>- `read_data()` funksiyasi: + - Argumentlari: struct array ; + - 10 ta talabaning ismi va 3 ta fandan ballarini struct arrayga saqlaydi. + - return type: `void`; + - Talabaning ismi maksimum 9 harfdan iborat, orasida ***space*** bo'lmagan string. +>- `cal_avg()` funksiyasi: + - Argumentlari: struct array ; + - Har bir talabaning o'rtacha ballarini hisoblaydi; + - return type: void; +>- `sort()` funksiyasi: + - Argumentlari: struct array ; + - Struct arraydagi talabalarning o'rtacha ballariga asoslanib, arrayni kamayib borish tartibida tartiblaydi. + - return type: void; +>- `print_score()` funksiyasi: + - Argumentlari: struct array; + - Eng baland, eng past, va eng past ball olgan 30% talabalarning ismi va o'rtacha ballarini nuqtadan keyin 2 ta aniqlikda chop etadi. + - return type: `void`; +>- Hech qaysi talaba 2 ta bir xil o'rtacha ballga ega bo'lmaydi, deb faraz qilinsin. + +###### Input + +10 ta qatorda 10 ta talabaning ismi va uchtadan test natijalari. + +###### Output + +- O'rtacha balli eng baland o'quvchi. +- O'rtacha balli eng past o'quvchi. +- Eng past o'rtacha ballga erishgan 3 ta o'quvchi. + +Yuqorida aytilgan har bir talabaning ismi va o'rtacha ballarini alohida 5 ta qatorda chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| ` A.Kim 80 80 80 `
` B.Kim 90 90 90 `
` C.Kim 81 81 81 `
` A.Lee 82 82 82 `
` B.Lee 83 83 83 `
` C.Lee 84 84 84 `
` A.Park 85 85 85 `
` B.Park 86 86 86 `
`C.Park 87 87 87`
` A.Choi 88 88 88 ` | ` B.Kim 90.00 `
` A.Kim 80.00 `
` A.Lee 82.00 `
` C.Kim 81.00 `
` A.Kim 80.00 ` | + +--- diff --git a/Lab 5 - Shart Operatorlari.md b/Lab 5 - Shart Operatorlari.md new file mode 100644 index 0000000..70c4596 --- /dev/null +++ b/Lab 5 - Shart Operatorlari.md @@ -0,0 +1,893 @@ +## Lab 5 — Shart Operatorlari + +### Masala 1 + +###### Description + +>Bitta butun son `N` ni o'qing va quyidagicha chop eting + +> - Agar `N < 0` bo'lsa ⇒ ichkarida o'yna deb chop eting. +> - Agar `0 ≤ N < 40` bo'lsa ⇒ tashqarida o'yna deb chop eting. +> - Agar `N ≥ 40` bo'lsa ⇒ ichkarida o'yna deb chop eting. + +###### Input + + +Bitta butun son `N` . + +###### Output + + +Kiritilgan sonning qiymatiga qarab ichkarida o'yna yoki tashqarida o'yna matnlaridan biri. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `-1` | `ichakarida o'yna` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `0` | `tashqarida o'yna` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `40` | `ichkarida o'yna` | + +--- + +### Masala 2 + + +###### Description + + +>Ikkita butun sonlar `N` va `M`larni o'qing. Agar ulardan biri boshqasining kvadratiga teng bo'lsa namunadagidek chop eting. Aks holda, **none** deb chop eting. + +###### Input + + +Ikkita butun `N` va `M` sonlar. + +###### Output + + +Namunadagidek tenglama yoki **none** so'zi. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `4 2` | `2*2=4` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `3 9` | `3*3=9` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `3 4` | `none` | + +--- + +### Masala 3 + + +###### Description + + +>Ikkita butun son o'qing va kattasini chop eting. + +###### Input + + +2 ta butun sonlar. + +###### Output + + +Kiritilgan sonlarning kattarog'i. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `2 3` | `3` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `-5 -9` | `-5` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `1 1` | `1` | + +--- + +### Masala 4 + + +###### Description + + +>Uchta butun sonlar o'qing. Kiritilgan sonlarning eng kattasini va eng kichigini chop eting. + +> - *Maksimum* va *minimum* qiymatlarning orasida **space** bo'lishi, *minimum* qiymatdan keyin esa bo'lmasligi kerak. + +###### Input + + +3 ta butun sonlar. + +###### Output + + +Kiritilgan sonlarning eng kattasi va eng kichigini orasida ***space*** bilan chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `2 3 4` | `4 2` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `3 2 1` | `3 1` | + +--- + +### Masala 5 + + +###### Description + + +>Bitta musbat son o'qing va songa qarab alifbo harflarini quyidagicha chop eting: + +> - `2`, `3`, va `5` larning har biriga bo'linsa ⇒ `A` +> - Faqat `2` va `3` larga bo'linsa ⇒ `B` +> - Faqat `2` va `5` larga bo'linsa ⇒ `C` +> - Faqat `3` va `5` larga bo'linsa ⇒ `D` +> - `2`, `3`, va `5` larning faqat bittasiga bo'linsa ⇒ `E` +> - `2`, `3`, va `5` larning hech biriga bo'linmasa ⇒ `N` + +###### Input + + +Bitta butun musbat son `N` . + +###### Output + + +Bo'linish-bo'linmasligiga ko'ra chop etlishi so'ralgan tegishli alifbo harfi (yuqoridagi jadval bo'yicha). + +###### Namuna 1 + +| Input | Output | +| - | - | +| `30` | `A` | + + +###### Namuna 2 + +| Input | Output | +| - | - | +| `6` | `B` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `7` | `N` | + +--- + +### Masala 6 + + +###### Description + + +>Yilni anglatuvchi bitta butun musbat son `N`ni o'qing va kabisa yili yoki oddiy yil ekanligini aniqlaydigan dastur tuzing. + +> - Kiritilgan yil kabisa yili bo'ladi, agar: +> - 4 ga bo'linsa va 100 ga bo'linmasa; +> - 4 va 400 ga bo'linsa (garchi 100 ga bo'linsa ham). +> - Kiritilgan yil kabisa yili bo'lmaydi, agar: +> - 4 ga bo'linmasa; +> - 4 va 100 ga bo'linsa, lekin, 400 ga bo'linmasa. + +###### Input + + +Yilni anglatuvchi bitta butun musbat son `N` (`1 ≤ N ≤ 4000`). + +###### Output + + +Agar kiritilgan yil kabisa yili bo'lsa **leap year** deb, aks holda **normal year** deb chop eting. + +```mermaid +graph LR; + A[son] --> B{4ga bo'linadimi?}:::blue + B -- Yo'q -->C{{Oddiy yil}}:::red + B -- Ha --> D{100ga bo'linadimi?}:::blue + D -- Yo'q --> E{{Kabisa yili}}:::green + D -- Ha --> F{400ga bo'linadimi?}:::blue + F -- Ha --> G{{Kabisa yili}}:::green + F -- Yo'q --> H{{Oddiy yil}}:::red + + classDef red fill:#f33 + classDef green fill:#5a5 + classDef blue fill:#337 +``` + +###### Namuna 1 + +| Input | Output | +| - | - | +| `4` | `leap year` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `1900` | `normal year` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `2016` | `leap year` | + + +### Masala 7 + + +##### **Sonni Tahmin qil o'yini** + +###### Description + +> - 1-qatorda bitta butun son `N` . +> - 2-qatordan boshlab tahmin qilish boshlanadi(faraz qiling siz to'g'ri javobni bilmaysiz). + +> - To'g'ri javobni topishga ko'pi bilan 2 ta imkoniyat beriladi. +> - 2-qatorda tahminni bildiruvchi `M` soni kiritiladi. Agar `M` soni `N` ga teng bo'lsa `Correct` deb chop etilsin. +> - Agar `M` soni `N`dan kichik bo'lsa `UP` deb chop etilsin. +> - Agar `M` soni `N`dan katta bo'lsa `DOWN` deb chop etilsin. +> - Agar birinchi urinishdan so'ng to'g'ri javob topilmasa `M` ni yana o'qilsin va yuqorida ta'kidlangan shartlarga ko'ra `Correct`, `UP`, yoki `DOWN` lardan birini chop etilsin va o'yin tugatilsin. + +###### Input + + +- O'yin javobi sifatida bitta butun son `N`. +- Birinchi tahmin sifatida `M` butun soni. +- Agar `M` soni `N`ga teng bo'lmasa `M` soni yana qayta o'qiladi. + +###### Output + + +- Birinchi tahmin to'g'ri bo'lsa `Correct` deb chop eting va o'yinni tugating. +- Birinchi taxmin javobdan kichik bo'lsa `UP` deb, aks holda `DOWN` deb chop eting. +- Agar bitta urinishda javob topilmasa birinchi va ikkinchi qadamlarni yana bir marta takrorlang va o'yinni tugating. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `5 4 5` | `UP`
`Correct` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `5 4 7` | `UP`
`DOWN` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `5 5` | `Correct` | + +--- + +### Masala 8 + + +###### Description + + +>`char` turdagi bitta belgi `c`ni o'qing. + +> - Agar katta harf bo'lsa kichik harfga, kichik harf bo'lsa katta harfga aylantirib chop eting. +> - Agar alifbo harfi bo'lmasa **none** deb chop eting. + +###### Input + + +Bitta belgi `c`. + +###### Output + + +- Belgi katta harf bo'lsa, kichigini chop eting. +- Belgi kichik harf bo'lsa, kattasini chop eting. +- Belgi harf bo'lmasa, **none** deb chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `A` | `a` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `t` | `T` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `#` | `none` | + +--- + +### Masala 9 + + +###### Description + + +> - To'g'ri javobni anglatuvchi 3 ta butun sonlarni o'qing. Har bir son 0~9 oraliqda bo'lsin. +> - Tahminni anglatuvchi 3 ta butun 0~9 oraliqdagi sonlarni o'qing. +> - Nechta **strike**, nechta **ball** borligini namunadagidek chop eting. +> - `strike` - son bir xil ustunda taxmin qilib topilsa; +> - `ball` - son boshqa ustunda taxmin qilib topilsa. + +###### Input + + +- 1 - qatorda o'yin javobi uchun uchta sonlar: **$0 \leq javob \leq 9$** +- 2- qatorda taxminlar uchun uchta sonlar: **$0 \leq taxmin \leq 9$** + +###### Output + + +`strike` va `ball`lar sonini *x***S** *y***B** ko'rinishida chop eting. (`x` o'rnida **strike**lar soni, `y` o'rnida **ball**lar soni). + +###### Namuna 1 + +| Input | Output | +| - | - | +| `5 2 3`
`5 3 4` | **`1S1B`** | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `5 2 3`
`5 2 3` | **`3S0B`** | + + +###### Namuna 3 + +| Input | Output | +| - | - | +| `5 2 3`
`2 3 5` | **`0S3B`** | + +###### Namuna 4 + +| Input | Output | +| - | - | +| `1 1 1`
`1 0 0` | **`1S0B`** | + +###### Namuna 5 + +| Input | Output | +| - | - | +| `0 0 1`
`1 1 1` | **`1S2B`** | + +--- + +### Masala 10 + + +###### Description + + +>Bitta operator va ikkita butun musbat sondan iborat ifodani bitta qatorda o'qing va shu ifodaning natijasini chop eting. + +> - butun son, operator, butun son ketma-ketligida, orasida **space** bilan ajratilgan holda kiritiladi. +> - Faqat `+` yoki `-` operatorlari ishlatilsin, boshqa hech qanday operatorlarni ishlatish mumkin emas! + +###### Input + + +`son1 +/- son2` ko'rinishidagi ifoda. + +###### Output + + +Kiritilgan ifodaning javobini chop eting. + +###### Namuna 3 + +| Input | Output | +| - | - | +| `7 + 12` | `19` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `7 - 2` | `5` | + +--- + +### Masala 11 + +##### Vending machine + +##### Description + +>Ikkita butun musbat sonlar `N` va `M`larni o'qing. `N` tanlangan ichimlik raqamini bildiradi: + +>1. Americano = 500; +>2. Caffe Latte = 400; +>3. Lemon Tea = 300; + +>M tanlangan ichimlik uchun kiritilgan summani anglatadi. (`M` 100 ga karrali bo'ladi, deb faraz qilinsin). **Vending machine** faqat 500 va 100 so'mlik kupyuralarni qaytara oladi, xolos. Tanlangan ichimlik nomi, va shu ichimlik uchun berilgan qaytim pullarning sonini chop etadigan dastur tuzing. + +###### Input + + +- Birinchi qatorda ichimlik raqamini anglatuvchi bitta `N` soni: $1 \leq N \leq 3$ +- Ikkinchi qatorda shu tanlangan ichimlik uchun kiritilgan pul summasi. + +###### Output + + +- Birinchi qatorda tanlangan ichimlik nomi. +- Ikkinchi qatorda, avval 500 so'mlikdan nechta pul qaytarilishi, keyin 100 so'mlik puldan nechta qaytarishini ifodalovchi ikkita `son`ni orasida **space** bilan chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `3 1000` | `Lemon Tea`
`1 2` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `1 1000` | `Americano`
`1 0` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `2 1000` | `Caffe Latte`
`1 1` | + +--- + +### Masala 12 + + +###### Description + + +>Bitta butun son kiriting va shu sonning juft yoki toq ekanini aniqlang. + +###### Input + + +Bitta butun son `N`. + +###### Output + + +- agar kiritilgan son juft bo'lsa `even` deb chop eting +- agar kiritilgan son toq bo'lsa `odd` deb chop eting + +###### Namuna 1 + +| Input | Output | +| - | - | +| `1` | `odd` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `10` | `even` | + +--- + +### Masala 13 + + +###### Description + + +>`2` ta son o'qing. Agar ikkala sonning yig'indisi `100` dan katta bo'lsa, `true` deb chop eting. Aks holda `false` deb chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `1 100` | `true` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `99 1` | `false` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `25 78` | `true` | + +--- + +### Masala 14 + + +###### Description + + +>`3` ta son o'qing. Agar shu sonlar Pifagor sonlari bo'lsa, `true` deb chop eting. Aks holda `false` deb chop eting. + +> - Pifagor sonlari deb 2 ta sonning kvadratlari yig'indisi 3-son kvadratiga teng bo'lgan sonlarga aytiladi. +> - **a**, **b** va **c** Pifagor sonlari bo'lish uchun ular quyidagi shartlardan birini qoniqtirishi kerak: +> - $a^2 + b^2 = c^2$ +> - $a^2 + c^2 = b^2$ +> - $b^2 + c^2 = a^2$ + +###### Namuna 1 + +| Input | Output | +| - | - | +| `3 4 5` | `true` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `5 4 3` | `true` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `4 5 6` | `false` | + +--- + +### Masala 15 + + +###### Description + + +>Bitta belgi (`char`) o'qing. Agar u belgi arifmetik operator bo'lsa `true` deb chop eting. Aks holda `false` deb chop eting. + +> - Arifmetik operatorlar quyidagilardan iborat: **`+`** , **`-`** , **`*`** , **`/`** , **`%`** + + +>✅ **`switch()`** *kontroli orqali ishlansin!* + +###### Namuna 1 + +| Input | Output | +| - | - | +| `+` | `true` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `-` | `true` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `%` | `true` | + +###### Namuna 4 + +| Input | Output | +| - | - | +| `#` | `false` | + +--- + +### Masala 16 + + +###### Description + +>Bitta son o'qing. Agar u son `0` va `9` oraliqda bo'lsa, o'sha sonni o'zbekcha chop eting. Aks holda `boshqa` deb chop eting. + +> - so'zlar kichik harflarda chop etilsin. + +>✅ **switch()** *kontroli orqali ishlansin!* + +###### Namuna 1 + +| Input | Output | +| - | - | +| `1` | `bir` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `8` | `sakkiz` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `10` | `boshqa` | + +--- + +### Masala 17 + + +###### Description + + +>Wahid amaki har kuni budilnik ovoziga uyg'onadilar. Budilnik ovozini eshitgach *yana-biroz, yana-biroz* 😴 deb doim budilnik ovozidan keyin ham bir qancha vaqtdan keyin o'rinlaridan turadilar. Shuning uchun Wahid amaki doim vaqtida o'rindan turish uchun yangi yechim topdilar. Endi budilnikni turishlari kerak bo'lgan vaqtdan 45 minut avvalroqqa to'g'rilab qo'yadigan bo'ldilar. + +> - Wahid amakining turishi kerak bo'lgan vaqti ko'rsatilsa, ular budilnikni nechaga to'g'rilashlari kerakligini aniqlaydigan dastur tuzing. +> - Kun `00:00` dan boshlanadi va `23:59` da yakunlanadi. + +###### Input + + +Wahid amakining turishi kerak bo'lgan vaqtini anglatuvchi ikki butun sonlar `S` va `M`: +$$0 \leq S \leq 23$$ +$$0 \leq M \leq 59$$ + +###### Output + + +Budilnik to'g'rilanishi kerak bo'lgan vaqtning soat va minutini bir qatorda, orasida **space**larsiz, ortiqcha nollarsiz chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `10 10` | `9 25` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `0 30` | `23 45` | + +--- + +### Masala 18 + + +###### Description + + +>Imtihon natijasini anglatuvchi bitta butun musbat son `N`ni o'qing. +> Agar `N` soni +> - `90` dan katta yoki teng bo'lsa ⇒ `A` +> - `80` dan katta yoki teng bo'lsa ⇒ `B` +> - `70` dan katta yoki teng bo'lsa ⇒ `C` +> - `60` dan katta yoki teng bo'lsa ⇒ `D` +> - `60` dan kichik bo'lsa `F` deb chop eting. + +###### Input + + +Bitta butun musbat son `N`: $1 \leq N \leq 100$ + +###### Output + +Jadvaldagi kiritilgan songa mos harf chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `100` | `A` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `79` | `C` | + + +###### Namuna 3 + +| Input | Output | +| - | - | +| `57` | `F` | + +--- + +### Masala 19 + + +##### Yandex Taxi 🚕 + +##### Description + +>Yandex taxi Toshkent shahrida ancha-muncha ommalashib ketdi. Lekin, oddiy bir muammoni hali ham hal qilinmagani mijozlar va haydovchilar o'rtasida tez-tez tushunmovchilik va noroziliklarga sabab bo'lmoqda. Toshkent shahri bo'ylab taksi narxlari shunday belgilanadiki, agar mijozlar 1000ga karrali summa berishsa haydovchilarda qoldiq summani, ya'ni, 1000 so'mdan kam qaytimni berishda muammo yuzaga keladi. Ko'p hollarda haydovchilar qaytim haqida o'ylab ham o'tirmay jimgina ketib qolishadi. Bu o'z navbatida mijozlar o'rtasida noroziliklar tug'diradi. + +>✅ Taksi narxini **1000** so'mdan kam laxtak qismini yaxlitlaydigan dastur tuzing. Bu dastur mijozlar va haydovchilar orasidagi tushunmovchilikka barham beradi va oradagi ishonchni qayta tiklaydi. + +###### Input + + +Taksi yo'l haqini ifodalovchi bitta butun musbat son `N`: $3000 \leq N \leq 1000000$. + +###### Output + + +Berilgan sonni **minglar** xonasigacha yaxlitlab chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `35800` | `36000` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `29300` | `29000` | + + +###### Namuna 3 + +| Input | Output | +| - | - | +| `99999` | `100000` | + +--- + +### Masala 20 + + +###### Description + + +>Bitta belgi o'qib, shu belgini alifbo harfi, yoki boshqa belgi ekanligini aniqlaydigan dastur tuzing. + +###### Input + + +`ASCII` jadvalida mavjud bitta belgi. + +###### Output + + +Agar kiritilgan belgi alifbo harfi bo'lsa `1` ni, aks holda `0` ni chop eting. + +###### Namuna 1 + +| Input | Output | +| - | - | +| `K` | `1` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `t` | `1` | + +###### Namuna 3 + +| Input | Output | +| - | - | +| `#` | `0` | + +###### Namuna 4 + +| Input | Output | +| - | - | +| `0` | `0` | + +--- + +### Masala 21 + + +###### Description + + +>Masala sonini anglatuvchi `n` butun sonini o'qing: $1 \leq n \leq 20$ + +>- yuqoridagi songa mos keluvchi masalani ishga tushiring + +###### Input + + +- birinchi qatorda masala soni; +- ikkinchi qatordan boshlab o'sha songa mos keladiga masalaga kerak bo'ladigan inputlar kiritilsin. +- agar kiritilgan sonli masala mavjud bo'lmasa, **ERROR** deb chop eting. + +###### Output + + +- tanlangan raqamdagi masalani shartida nimalarni chop etish kerak bo'lsa, o'shalarni chop eting va dasturni yakunlang. +- ✅`switch()` operatoridan foydalanilsin; +- oldin yozilgan funksiyalarni o'z o'rnida chaqirib olish kerak: `main_1();`, `main_1();`, ... . + +###### Namuna 1 + +| Input | Output | +| - | - | +| `1`
`2 3 4` | `4 2` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `2`
`5 2 3`
`5 3 4` | `1S1B` | + +
+ +###### Yordam + +```cpp +#include + +using namespace std; + +int main_1() +{ + ... +} +... +int main_20() +{ + ... +} + +int main() +{ + int masalan_soni; + cin >> masala_soni: + + switch(masala_soni) + { + case 1: main_1(); break; + ... + case 20: main_20(); break; + default: cout << "ERROR" << endl; + } + + return 0; +} +``` + +--- + diff --git a/Lab 6 - Looplar.md b/Lab 6 - Looplar.md new file mode 100644 index 0000000..7f5e56b --- /dev/null +++ b/Lab 6 - Looplar.md @@ -0,0 +1,883 @@ +# Lab 6 — Loops + +### Masala 1 + +###### Description + +>Bitta butun son `N` ni o’qing. Shu son qoldiqsiz bo’linadigan barcha sonlarni orasida bo’sh katak bilan, bitta qatorda chop etilsin. + +> ✅ `while loop` ishlatilsin! + + +###### Input + +Butun son `N`. + +###### Output + +Kiritilgan sonning barcha bo’luvchilari. `N` ning o’zi ham kiradi. + +###### Namuna 1 +| Input | Output | +| - | - | +| `7` | `1 7` + + + +###### Namuna 2 +| Input | Output | +| - | - | +| `18` | `1 2 3 6 9 18` + + +###### Namuna 3 +| Input | Output | +| - | - | +| `23` | `1 23` + +--- + +### Masala 2 + + +### Sonni top o’yini + +###### Description + +>Bitta butun son `N` ni o’qing. Bu to’g’ri javobni bildiradi. Faraz qiling, siz javobni bilmaysiz. Shundan so’ng, tahminlarni kiritishni boshlaysiz va ularni butun sonni anglatuvchi `K` o’zgaruvchisiga saqlaysiz. + +>- Agar siz kiritgan son `N` dan katta bo’lsa `K>` deb chop etilsin. +>- Aksincha, kichik bo’lsa bo’lsa `K<` deb chop etilsin. +>- Yuqoridagi ikki amalni to’g’ri javob topilguncha takrorlansin. +>- Agar to’g’ri javob topilsa, javob topilguncha nechta tahmin kiritilganini chop etilsin va o’yin tugatilsin. + +###### Input + +- Birinchi qatorda bitta butun son `N` . +- Ikkinchi qatordan boshlab `N` ga teng bo’lgan son kiritlmaguncha son o’qiyveriladi. + +###### Output + +Barcha urinishlar va ularning yuqorida aytilgan natijalarning har biri bittadan alohida qatorlarda, umuman **space** ishlatilmasdan chop etilsin. + +###### Namuna 1 +| Input | Output | +| - | - | +| `5`
`10`
`3`
`7`
`4`
`5` | `10>`
`3<`
`7>`
`4<`
`5`| + +--- + +### Masala 3 + +###### Description + +>`0` kiritlmaguncha bir nechta butun sonlar o’qing. `0` kiritilgunga qadar o’qilgan barcha sonlar yig’indisini hisoblab, chop etilsin. + +> ✅ `do while loop` ishlatilsin! + + +###### Input + +- Bir nechta butun sonlar o’qilsin. +- `0` kiritilganda o’qish to’xtatilsin. + +###### Output + +`0` dan oldin kiritilgan barcha sonlar yigi’indisi. + +###### Namuna 1 +| Input | Output | +| - | - | +| ` 2 3 4 0` | `9` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| ` 3 2 1 0` | `6` | + +--- + +### Masala 4 + +###### Description + +>2 dan 10 gacha bo’lgan barcha sonlarning faktorialini quyidagi ko’rinishda chop etuvchi dastur tuzilsin. + +> ✅ `for loop` ishlatilsin! +> + +###### Input + +Input mavjud emas. Shunchaki namunadagiday chop eting. + +###### Output + +2 dan 10 gacha sonlarning har birining alohida qatorlarda, namunadagidek ko’rinishda chop etilgan faktoriallar jadvali. + +###### Namuna Output + +```sh +2!=1*2=2 +3!=1*2*3=6 +4!=1*2*3*4=24 +5!=1*2*3*4*5=120 +6!=1*2*3*4*5*6=720 +7!=1*2*3*4*5*6*7=5040 +8!=1*2*3*4*5*6*7*8=40320 +9!=1*2*3*4*5*6*7*8*9=362880 +10!=1*2*3*4*5*6*7*8*9*10=3628800 +``` + +--- + +### Masala 5 + +###### Description + +>Ikkita butun sonlar `N` va `M` larni o’qilsin. Ularning EKUBini, ya’ni, Eng Katta Umumiy Bo’luvchisini chop etilsin. + +> ✅ `for` yoki `while loop` ishlatilsin! + + +> ⚠️`Time limit` hisobga olinsin. + + +###### Input + +Ikkita butun sonlar `N` va `M` bitta qatorda o’qilsin. + +###### Output + +Bir vaqtning o’zida shu sonlarning har ikkisi ham qoldiqsiz bo’linadigan sonlarning eng kattasini chop etilsin. + +###### Namuna 1 +| Input | Output | +| - | - | +| ` 4 3` | `1` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| ` 16 24` | `8` | + + +###### Namuna 3 +| Input | Output | +| - | - | +| ` 27 36` | `9` | + +--- + +### Masala 6 + +###### Description + +>Bitta butun musbat `N` sonini o’qing va balandigi `N`ga bog’liq bo’lgan piramidani yulduzchalar orqali chop eting. + +> ✅ Nested for loop ishlatilsin! +> + +> ✅ spacelardan to’g’ri foydalanilsin. +> + +> ✅ Piramida markaziy qatorigacha bo’lgan balandligi Nga teng bo’lishi kerak. +> + +###### Input + +Bitta musbat butun son `N`: $2 \leq N \leq 1000$ + +###### Output + +Namunadagidek piramida chop etilsin. + +###### Namuna 1 +| Input | | +|- | - | +| `5` |        `*`
     `***`
    `*****`
  `*******`
`*********`
  `*******`
    `*****`
     `***`
       `*` | + +--- + + +### Masala 7 + +###### Description + +>Bitta `10x10` , 0 dan birgacha raqamlardan yasalgan, namunadagidek kvadrat yasab, chop etilsin. + +>- 9 lardan boshqa har bir sonning o’ng tomoni va pastidagi son shu sonning o’zidan bittaga ortiq — pastga va o’ngga qarab o’sib boradi. 9 dan keyin esa 0 ga teng bo’lib qoladi va yana 0 dan boshlab o’sishni davom ettirad. +>- Diagonallardan biri hamisha bitta sondan iborat bo’ladi + +> ✅ `for loop` va `while loop`lar birga ishlatilsin. +> + +###### Input + +Input mavjud emas. Shunchaki namunadagiday chop eting. + +###### Output + +Namunadagidek, raqamlardan yasalgan kvadrat chop etilsin. + +- Har bir son orasida 1 ta **space** bo’lsin. +- Har bir qator bitta yangi qatorda chop etilsin. Ortiqcha, bo’sh qator tashlanmasin. + +###### Namuna Output + +``` +1 2 3 4 5 6 7 8 9 0 +2 3 4 5 6 7 8 9 0 1 +3 4 5 6 7 8 9 0 1 2 +4 5 6 7 8 9 0 1 2 3 +5 6 7 8 9 0 1 2 3 4 +6 7 8 9 0 1 2 3 4 5 +7 8 9 0 1 2 3 4 5 6 +8 9 0 1 2 3 4 5 6 7 +9 0 1 2 3 4 5 6 7 8 +0 1 2 3 4 5 6 7 8 9 +``` + +--- + +### Masala 8 + +###### Description + +>Bitta `N` butun soni o’qilsin. Agar 1 dan boshlab shu songacha barcha sonlarni yozib chiqilsa, klaviaturada 3️⃣ soni necha marta bosilishini aniqlaydigan dastur tuzilsin. + +> Masalan, 100 kiritildi. Shunda, aytaylik, 33 soniga kelganda sanoq ikkitaga oshadi. Chunki 33 sonini yozish uchun 2 marta 3️⃣ bosiladi. +> + +> ✅ `for loop` va `while loop`lar birga ishlatilsin. +> + +###### Input + +Bitta musbat butun son `N`: $3 \leq N \leq 1000000000$ + +###### Output + +1 dan boshlab shu songa yetib kelguncha yozilishi kerak bo'lgan 3️⃣ lar soni. + +###### Namuna 1 +| Input | Output | +|- | - | +| `10` | `1` | + + + +###### Namuna 2 +| Input | Output | +|- | - | +| `33` | `8` | + + +###### Namuna 3 +| Input | Output | +|- | - | +| `333` | `102` | + +--- + +### Masala 9 + +###### Description + +>Bitta butun son `N` ni o’qing va balandligi shu songa teng bo’lgan uchburchak chop eting. Uchburchakni `0~9` oraliqdagi raqamlar ketma-ketligini qayta-qayta chop etishdan hosil qiling. + +> Namunaga qarang. + + +###### Input + +Bitta butun son `N`: $2 \leq N \leq 1000$ + +###### Output + +Uchburchakni namunadagidek chop eting. + +- Har bir raqam orasida bitta **space** bo’lishi kerak. + +###### Namuna 1 +| Input | | +|- | - | +| `7` |          `1`
       `2 3`
      `4 5 6`
    `7 8 9 0`
   `1 2 3 4 5`
 `6 7 8 9 0 1 `
`2 3 4 5 6 7 8` | + + + +###### Namuna 2 +| Input | Output | +|- | - | +| `3` |    `1`
 `2 3`
`4 5 6` | + +--- + +### Masala 10 + +###### Description + +>Sonning singularity(yakkalik) qiymati quyidagi qoida bo’yicha topiladi. + +>- agar son bir xonadan katta bo’lsa, uning yangi qiymati eski qiymatining raqamlari yig’indisiga teng. +>- sonning qiymati bir xonali bo’lguncha tepadagi operatsiyani takrorlash + +>`N`soni berilganda uning singularity qiymatini topadigan dastur tuzing. + + +###### Masalan +```mermaid +graph LR; + A[6345] -..-> B[6 + 3 + 4 + 5] --> C[18] -..-> D[1 + 8] --> E[9] +``` +> + +###### Input + +`int` turidagi bitta butun musbat `N` soni. + +###### Output + +Sonning singularity qiymati. + +###### Namuna 1 +| Input | Output | +| - | - | +| `6345` | `9` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `1234567890` | `9` | + + +###### Namuna 3 +| Input | Output | +| - | - | +| `123` | `6` | + +--- + +### Masala 11 + + +### **Dice Game** + +###### Description + +>3 ta kichkina kub bor. Har bir kubning 6 ta tomoni bor. Kublarning har bir tomoni 1 dan 6 gacha raqamlangan. Kublar otilganda ularning tepa tomonidagi qiymat 10 ga teng bo’lishi mumkin bo’lgan barcha holatlarni aniqlab, chop etadigan dastur tuzilsin + +> ✅ `Nested(cascade) loop`lar ishlatilsin. + + +###### Input + +Input mavjud emas. Shunchaki namunadagiday chop eting. + +###### Output + +Otilganda tepa tomonidagi qiymatlar yig'indisi 10 ga teng bo’lishi mumkin bo'lgan barcha kombinatsiyalarni alohida qatorlarda, qiymatlar orasida bitta **space** bilan chop etilsin. + +###### Namuna Output + +``` +1 3 6 +1 4 5 +1 5 4 +1 6 3 +2 2 6 +2 3 5 +2 4 4 +2 5 3 +2 6 2 +3 1 6 +3 2 5 +3 3 4 +3 4 3 +3 5 2 +3 6 1 +4 1 5 +4 2 4 +4 3 3 +4 4 2 +4 5 1 +5 1 4 +5 2 3 +5 3 2 +5 4 1 +6 1 3 +6 2 2 +6 3 1 +``` +--- + +### Masala 12 + +###### Description + +>Bitta butun musbat son `N` ni o’qing. 1 dan boshlab shu songacha bo’lgan barcha sonlarning yig’indisini chop etadigan dastur tuzing. + +> ✅ `Infinite for loop` ishlatilsin. +> + +> ✅ `break statement` ishlatilsin. +> + +###### Input + +Bitta butun musbat son `N` + +###### Output + +Shu sondan kichik bo’lgan barcha musbat sonlar yig’indisi. Shu sonning o’zi ham yig’indiga kiradi. + +###### Namuna 1 +| Input | Output | +| - | - | +| `10` | `55` | + + + +###### Namuna 2 +| Input | Output | +| - | - | +| `33` | `561` | + + +###### Namuna 3 +| Input | Output | +| - | - | +| `40` | `820` | + + +--- + +### Masala 13 + +###### Description + +>0 yoki manfiy son kiritilmaguncha `N` butun sonlari o’qilsin. O’qilgan sonlarning yig’indisi, o’rtacha qiymati va sonini hisoblab, chop etadigan dastur tuzilsin. + +> ✅ `Infinite while loop` ishlatilsin. +> + +> ✅ `break statement` ishlatilsin. +> + +###### Input + +0 yoki manfiy qiymat kiritilmaguncha o’qilaveradigan butun son `N`: $0 \leq N \leq 100$ + +###### Output + +- Yig’indi; +- Nuqtadan keyin 2 xonagacha aniqlikda chop etiladigan o’rtacha qiymat; +- Kiritilgan raqamlarning umumiy soni; + +Yuqoridagi uchalasini bitta qatorda, orasida bitta **space** bilan chop etilsin. + +###### Namuna 1 +| Input | Output | +| - | - | +| `2 8 3 7 4 6 0` | `30 5.00 6` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `1 2 3 4 5 6 7 8 9 -1` | `45 5.00 9` | + + +###### Namuna 3 +| Input | Output | +| - | - | +| `10 20 30 40 50 60 70 -3` | `280 40.00 7` | + +--- + +### Masala 14 + +###### Description + +>`N` ta son o’qing va ularni kublari yig’indisini chop eting. + +###### Input + +- Birinchi qatorda `N` soni kiritiladi: $2 \leq N \leq 10$ +- Ikkinchi qatorda `N` ta butun `sonlar`: $-50 \leq sonlar \leq 50$ + +###### Output + +Kiritilgan `N` ta sonlarning kublari yig’indisini chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `3`
`2 2 2` | `24` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `4`
` -5 -5 50 1` | `124751` | + +--- + +### Masala 15 + +###### Description + +>Berilgan son biror boshqa sonning faktoriali ekanligini yoki unday emasligini aniqlaydigan dastur tuzing. + +###### Input + +Bitta butun son `N`ni o'qing: $1 \leq N \leq 1000000000$ + +###### Output + +Agar `N` biror boshqa sonning faktoriali bo’lsa `true` deb, aks holda `false` deb chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `479001600` | `true` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `5` | `false` | + + +###### Namuna 3 +| Input | Output | +| - | - | +| `120` | `true` | + +--- + +### Masala 16 + +###### Description + +>Berilgan sondan keyingi tub sonni topadigan dastur tuzing. + +###### Input + +Bitta butun musbat `N` soni: $1 \leq N \leq 10000000$ + +###### Output + +- Agar `N` soni tub bo’lsa o’zini chop eting. +- Agar `N` tub bo’lmasa, undan keyingi tub sonni chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `4` | `5` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `21017` | `21017` | + + +###### Namuna 3 +| Input | Output | +| - | - | +| `1299680` | `1299689` | + +--- + +### Masala 17 + +###### Description + +>2D haritada harakatlanuvchi robotni harakatlarini kuzating va so’nggi manzili kordinatasini chop eting. + +>- Robotni boshlanish pozitsiyasi(`0,0`) va u shimol(⬆️)ga yuzlanib turibdi. +>- Robot har gal turli qadamlar harakatlanadi. +>- Robot har bir harakatlanishdan keyin soat strelkasi bo’ylab 90° buriladi. + +> shimol  ⬆️ +> + +> janub   ⬇️ +> + +> sharq   ➡️ +> + +> g’arb    ⬅️ +> + +###### Input + +- Birinchi qatorda robotning harakatlanishlari soni bo’lgan `N`ni o’qing: $2 \leq N \leq 1000$ +- Ikkinchi qatorda robot har harakatlanishda mos ravishda necha qadam yo’l bosishini anglatuvchi, qadamlar sonini ifodalovchi `N` ta `Q` sonlarni o’qing: $−50 \leq Q \leq 50$ + + Agar kiritilgan qadam manfiy bo’lsa, robot burilmasdan, orqamachasiga yurishini anglatadi. + + + Har bir qadam koordinata o’qida bir birlikka tengdir + + +###### Output + +Robotni yakuniy manzili kordinatasining `x` va `y` qiymatlarini orasida bo’sh katak bilan chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `3`
`2 -3 5` | `-3 -3` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `3`
`1 -5 2` | `-5 -3` | + +--- + +### Masala 18 + +###### Description + +>**Collatz** ketma-ketligi butun son ustida quyidagi qoidalarni qayta-qayta bajarishdan hosil qilinadi. + +>- Agar son juft bo’lsa, sonni 2 ga bo’linadi. +>- Agar son toq bo’lsa, sonni 3 ga ko’paytirib 1 ni qo’shiladi. + +>**Collatz** algoritmida barcha butun musbat sonlar uchun son doimo 1ga yetib boradi. + +>Ikkita butun sonlar kiritilganda, qaysi biri 1ga ertaroq yetib borishini aniqlovchi dastur tuzing. + +###### Input + +2 ta butun sonlar `N` va `M`: $1 \leq N, M \leq 1000000000$ + +###### Output + +Ikkala sondan 1 ga tezroq yetib boradiganini va Collatz algoritmi necha marta qaytarilganidan keyin 1 ga yetib borganini ikkisining orasida bitta bo’sh katak bilan chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `423620969 670051213` | `423620969 153` | + +###### Namuna 2 +| Input | Output | +| - | - | +| `174000990 81824353` | `174000990 118` | + +--- + +### Masala 19 + +###### Description + +>`N`- [Fibonacci](https://uz.wikipedia.org/wiki/Fibonachchi_sonlari) sonini chop etadigan dastur tuzing. + +>- Dastlabki 2 ta fibonacci sonlar `0` va `1` deb olinsin. + +###### Input + +Bitta musbat `N` soni (`1 ≤ N ≤ 50`). + +###### Output + +`N`- Fibonacci sonni chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `43` | `267914296` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `12` | `89` | + +--- + +### Masala 20 + +###### Description + +>`0~99` oraliqdagi son berilgan bo’lsa, ular ustida quyidagi operatsiyani amalga oshirsa bo’ladi: + +>- Agar son bir xonali bo’lsa, ikki xonali qilish uchun uning chap tarafiga `0` yoziladi. +>- Keyin, hosil qilingan 2 xonali sonning o’ng tarafidagi xonasi va berilgan son raqamlari yig’indisining o’ng tarafidagi xonasi ketma-ket yozilib, yangi son hosil qilinadi. + +```mermaid +graph TD; + A[26] --> B[2 + 6 = 8] + subgraph 26ni oxirigi xonasi va 26ni raqamlar yig'indisini oxirgi xonasi + B --> C[68] + end + subgraph 68ni oxirigi xonasi va 68ni raqamlar yig'indisini oxirigi xonasi + C --> D[6 + 8 = 14] + D --> E[84] + end + subgraph 84ni oxirigi xonasi va 84ni raqamlar yig'indisini oxirigi xonasi + E --> F[8 + 4 = 12] + F --> G[42] + end + subgraph 42ni oxirigi xonasi va 42ni raqamlar yig'indisini oxirigi xonasi + G --> H[4 + 2 = 6] + H --> I[26] + end +``` + + +> Endi ushbu operatsiya yangi yaratilgan son ustida amalga oshiriladi. Qayta-qayta shu operatsiya amalga oshirilsa, bir nechta qaytarishdan keyin, albatta, yangi hosil qilingan son dastlab kiritilgan songa teng bo’lib qoladi. + +>`N` soni kiritilganda nechta operatsiyadan keyin dastlabki qiymatiga qaytib kelishini aniqlaydigan dastur tuzing. + +###### Input + +Bitta butun musbat son `N` (`0≤N≤99`). + +###### Output + +Qaytarilish sikli soni. + +###### Namuna 1 +| Input | Output | +| - | - | +| `26` | `4` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `1` | `60` | + +###### Namuna 3 +| Input | Output | +| - | - | +| `5` | `3` | + + +###### Namuna 4 +| Input | Output | +| - | - | +| `0` | `1` | + +--- + +### Masala 21 + +###### Description + +>Palindrom son deb teskarisiga o’qiganda ham qiymati o’zgarmaydigan songa aytiladi (1221).Palindrom son va uning raqamlarini teskari yozilishidan hosil bo’lgan sonni qo’shib yangi palindrom hosil qilish mumkin.Agar son Palindrom bo’lmasa, yangi palindrom hosil qilish uchun yuqoridagi amalni bir necha marta takrorlashga to’g’ri keladi. + +> Masalan: 78 soni berilgan bo’lsa, to’rtta qadamda palindrom hosil qilsa bo’ladi: 78 + 87 = 165. 165 + 561 = 726. 726 + 627 = 1353. 1353 + 3531 = 4884. +> + +>`10~1000`oraliqda son berilganda, undan nechta qadamda palindrom hosil bo’lishini aniqlovchi dastur tuzing. + +###### Input + +Bitta butun musbat son `N`: $10 \leq N \leq 1000$ + +###### Output + +Palindrom hosil qilish uchun ketadigan qadamlar soni va hosil qilingan palindromni orasida bo’sh katak bilan chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `240` | `1 282` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `596` | `3 5335` | + + +--- + +### Masala 22 + +### Armstrong Sonlari + +###### Description + +Agar son `n` xonali bo’lsa va sonning har bir xonasidagi 1 xonali raqamning `n`-darajalari yig’indisi shu sonning o'ziga teng bo’lsa, bu sonlar `Armstrong sonlari` deyiladi. + +`N` sonidan kichik barcha `Armstrong` sonlarni chop etadigan dastur tuzing. + +###### Input + +Bitta butun musbat son `N`: $1 \leq N \leq 100000$ + +###### Output + +`N`gacha bo’lgan barcha `Armstrong` sonlar. + +###### Namuna 1 +| Input | Output | +| - | - | +| `1` | `0 1 2 3 4 5 6 7 8 9` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `21955` | `0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474` | + +--- + +### Masala 23 + +###### Description + +>Berilgan son necha xonali ekanini aniqlaydigan dastur tuzing. + +###### Input + +`int` turidagi bitta butun musbat son `N`. + +###### Output + +Berilgan son necha xonali ekanini chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `12345678` | `8` | + +--- + +### Masala 24 + +###### Description + +>Balandligi `N`ga teng bo’lgan uchburchakni yulduzchalar (`*`) orqali chop eting. + +###### Input + +Bitta butun musbat son `N`: $1 \leq N \leq 1000$ + +###### Output + +Namunadagidek uchburchak chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `3` | `*`
`**`
`***` | + + +###### Namuna 2 +| Input | Output | +| - | - | +| `1` | `*` | + +--- \ No newline at end of file diff --git a/Lab 7 - Functions.md b/Lab 7 - Functions.md index 1cf9651..f4bce02 100644 --- a/Lab 7 - Functions.md +++ b/Lab 7 - Functions.md @@ -2,20 +2,20 @@ ### Masala 1 -###### Description +##### Description -Bitta butun son `N` ni o’qing. 1 dan `N` gacha barcha sonlar yig'indisini chop etilsin. +>Bitta butun son `N` ni o’qing. 1 dan `N` gacha barcha sonlar yig'indisini chop etilsin. -`add()` funksiyasi: +>`add()` funksiyasi: -- Argumentlari: 2 ta butun sonlar `x` va `y`. -- Return type: `int`. -- Qaytaradi: `x` va `y` larning yig'indisi. +>- Argumentlari: 2 ta butun sonlar `x` va `y`. +>- Return type: `int`. +>- Qaytaradi: `x` va `y` larning yig'indisi. -`main()` funksiyasi: +>`main()` funksiyasi: -- `N` ni o'qiydi va yig'indi topilmaguncha `add()` funksiyani qayta-qayta chaqiradi. -- `main()` funksiyada (`+`) yoki (`-`) ishlatish mumkin emas. Increment (`++`) yoki decrement (`--`) ishlatish mumkin. +>- `N` ni o'qiydi va yig'indi topilmaguncha `add()` funksiyani qayta-qayta chaqiradi. +>- `main()` funksiyada (`+`) yoki (`-`) ishlatish mumkin emas. Increment (`++`) yoki decrement (`--`) ishlatish mumkin. #### Input @@ -34,12 +34,12 @@ Butun son `N`. ### Masala 2 -###### Description +##### Description -`A` va `B` sonlar o'qilsin va `A` dan `B` gacha bo'lgan sonlar yig'indisini hisoblansin. +>`A` va `B` sonlar o'qilsin va `A` dan >`B` gacha bo'lgan sonlar yig'indisini hisoblansin. -- Hamisha *`A`* *`≤`* *`B`* bo'lsin. -- `sum()` funksiyasi: +>- Hamisha *`A`* *`≤`* *`B`* bo'lsin. +>- `sum()` funksiyasi: - Argumentlari: bitta butun son `N`. - Return type: `int`. - `1` dan `n` gacha sonlar yig'indisini qaytaradi. `n(n+1)/2` formuladan foydalanilsin. @@ -61,14 +61,14 @@ Ikkita butun sonlar `A` va `B` (`1 ≤ A, B ≤ 10000`). ### Masala 3 -###### Description +##### Description -`X` musbat butun son berilganda quyidagi formulaning natijasini hisoblansin: `1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + ... + X)`. +>`X` musbat butun son berilganda quyidagi formulaning natijasini hisoblansin: `1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ... + (1 + 2 + 3 + ... + X)`. -- `sum()` funksiyasi: -- Argumentlari: bitta butun son `N`. -- Return type: `int`. -- 1dan `n` gacha sonlar yig'indisini qaytaradi. `n(n+1)/2` formuladan foydalanilsin. +>- `sum()` funksiyasi: +>- Argumentlari: bitta butun son `N`. +>- Return type: `int`. +>- 1dan `n` gacha sonlar yig'indisini qaytaradi. `n(n+1)/2` formuladan foydalanilsin. #### Input @@ -87,18 +87,18 @@ Yuqoridagi formulaning natijasini chop eting. ### Masala 4 -###### Description +##### Description -Bitta butun son `N` ni o'qilsin va shu son orqali namunadagidek to'rtburchak chop etilsin. +>Bitta butun son `N` ni o'qilsin va shu son orqali namunadagidek to'rtburchak chop etilsin. -- `print_row1()` funksiyasi: - - Argumentlari: bitta butun son `x` (`2 ≤ x ≤ 9`). - - Return type: `void`. - - `x` sonini bitta qatorda `x` marta chop etadi. -- `print_row2()` funksiyasi: - - Argumentlari: bitta butun son `x` (` 2 ≤ x ≤ 9`). - - Return type: `void`. - - Ikki marta `x`ni va ularning orasida nechtaligi `x`ga bo'g'liq bo'lgan ***`space`*** larni chop etadi. +>- `print_row1()` funksiyasi: + - Argumentlari: bitta butun son **x** (2 ≤ x ≤ 9). + - Return type: **void**. + - **x** sonini bitta qatorda **x** marta chop etadi. +>- **print_row2()** funksiyasi: + - Argumentlari: bitta butun son **x** ( 2 ≤ x ≤ 9). + - Return type: **void**. + - Ikki marta **x**ni va ularning orasida nechtaligi **x**ga bo'g'liq bo'lgan ***space*** larni chop etadi. ![Example Output 4](4.png) @@ -119,14 +119,14 @@ Namunadagidek to'rtburchak chop etilsin. ### Masala 5 -###### Description +##### Description -Bir nechta `x` sonlar o'qilsin va ularning orasidan 0 yoki manfiy son kiritilishidan oldin kiritilganlarining soniga mos, balandligi `x` ga bo'g'liq bo'lgan yulduzli uchburchaklar chop etilsin. +>Bir nechta **x** sonlar o'qilsin va ularning orasidan 0 yoki manfiy son kiritilishidan oldin kiritilganlarining soniga mos, balandligi **x** ga bo'g'liq bo'lgan yulduzli uchburchaklar chop etilsin. -- `print_triangle` funksiyasi: - - Argumentlari: bitta butun son `x`. - - qaytaradi:`void`. - - balandligi `x` ga teng bo'lgan uchburchak chop etadi. +>- **print_triangle** funksiyasi: + - Argumentlari: bitta butun son **x**. + - qaytaradi: **void**. + - balandligi **x** ga teng bo'lgan uchburchak chop etadi. #### Input @@ -151,18 +151,18 @@ Har bir kiritilgan `x` son uchun balandligi `x` bo'lgan uchburchak chop eting. * ### Masala 6 -###### Description +##### Description -$x$ ning qiymatini o'qilsin va quyidagi funksiyaning javobini chop etilsin: +>$x$ ning qiymatini o'qilsin va quyidagi funksiyaning javobini chop etilsin: - $f(x) = 2x^2 - 5x + 1$ + >$f(x) = 2x^2 - 5x + 1$ -- `func()` funksiyasi: +>- **func()** funksiyasi: - Argumentlari: 1 ta butun son $x$. - - Return type: `int`. + - Return type: **int**. - $f(x)$ funksiyaning javobini qaytaradi. -- `main()` funksiyasi: - - $x$ ning qiymatini o'qiydi, `func()` funksiyani chaqiradi va natijani chop etadi. +>- **main()** funksiyasi: + - $x$ ning qiymatini o'qiydi, **func()** funksiyani chaqiradi va natijani chop etadi. > Masalan, 2 kiritilsa, $2 * 2^2 - 5*2 + 1$ $= -1$ bo'ladi. Demak, 2 kiritilsa -1 chop etilishi kerak. > @@ -184,23 +184,23 @@ $f(x)$ funksiyaning javobini chop etilsin. ### Masala 7 -###### Description +##### Description -Kvadrat ($f(x) = ax^2 + bx + c$) funksiyaning javobini qaytaradigan funksiya yozing. +>Kvadrat ($f(x) = ax^2 + bx + c$) funksiyaning javobini qaytaradigan funksiya yozing. -- `func()` funksiyasi: +>- **func()** funksiyasi: - Argumentlari: 4 ta butun sonlar x, a, b, c. - Return type: `int`. - Formulaning javobini qaytaradi: $ax^2$ $+ bx + c$. -- `main()` funksiyasi: - - 4 ta sonni o'qiydi, `func()` funksiyani chaqiradi va natijani chop etadi. +>- **main()** funksiyasi: + - 4 ta sonni o'qiydi, **func()** funksiyani chaqiradi va natijani chop etadi. ![Explanation](7.png) #### Input - Birinchi qatorda `x`ning qiymati o'qilsin. -- Ikkinchi qatorda mos ravishda `a`, `b`, `c`larning qiymati bitta qatorda, shu tartibda o'qilsin. +- Ikkinchi qatorda mos ravishda `a`, `b`, `c` larning qiymati bitta qatorda, shu tartibda o'qilsin. #### Output @@ -215,31 +215,31 @@ Kvadrat funksiyaning javobini chop etilsin. ### Masala 8 -###### Description +##### Description ### 7-masalaning davomi -Ikkita kvadrat funksiyalar $f(x)$ va $g(x)$ uchun $g(f(x))$ funksiyaning javobini qaytaradigan dastur tuzing. +>Ikkita kvadrat funksiyalar $f(x)$ va $g(x)$ uchun $g(f(x))$ funksiyaning javobini qaytaradigan dastur tuzing. -- `func()` funksiyasi: +>- **func()** funksiyasi: - Argumentlari: 4 ta butun sonlar x, a, b, c. - - Return type: `int`. + - Return type: **int**. - Formulaning javobini qaytaradi: $ax^2$ $+ bx + c$. -- `main()` funksiyasi: - - $x$ ni va ikkita funksiya uchun ularning ***a, b, c*** parametrlarini o'qiydi, `func()` funksiyani chaqiradi va natijani chop etadi. +>- **main()** funksiyasi: + - $x$ ni va ikkita funksiya uchun ularning ***a, b, c*** parametrlarini o'qiydi, **func()** funksiyani chaqiradi va natijani chop etadi. -> Masalan, x = 2, f(x) va g(x) funksiyaning parametrlari mos ravishda 3, 2, 1 va -1, 8, 4 bo'lsa $f(x) = 3*2^2+2*2+1=17$ va $g(f(x)) = -1*17^2+17*8+4=-149$ bo'ladi. +> Masalan, $x = 2, f(x) va g(x) $funksiyaning parametrlari mos ravishda 3, 2, 1 va -1, 8, 4 bo'lsa $f(x) = 3*2^2+2*2+1=17$ va $g(f(x)) = -1*17^2+17*8+4=-149$ bo'ladi. > #### Input -- Birinchi qatorda `x`ning qiymati o'qilsin. +- Birinchi qatorda `x` ning qiymati o'qilsin. - Ikkinchi qatorda mos ravishda $f(x)$ funksiyaning `a`, `b`, `c` qiymatlari bitta qatorda, shu tartibda o'qilsin. - Uchinchi qatorda mos ravishda $g(x)$ funksiyaning `a`, `b`, `c` qiymatlari bitta qatorda, shu tartibda o'qilsin. #### Output -g(f(x)) funksiyaning javobini chop etilsin. +$g(f(x))$ funksiyaning javobini chop etilsin. #### Namuna 1 | Input | Output | @@ -250,22 +250,22 @@ g(f(x)) funksiyaning javobini chop etilsin. ### Masala 9 -###### Description +##### Description -Yakunlovchi shart bajarilmaguncha sonlar o'qilsin va eng kattasi va ikkinchi eng kattasini chop etilsin. +>Yakunlovchi shart bajarilmaguncha sonlar o'qilsin va eng kattasi va ikkinchi eng kattasini chop etilsin. -- Son o'qishni yakunlovchi shart: `0` kiritish (`0`kiritishdan avval kamida `2` ta son o'qilishi kerak). -- global o'zgaruvchilar `max1` va `max2` lardan foydalanilsin. +>- Son o'qishni yakunlovchi shart: **0** kiritish (**0** kiritishdan avval kamida **2** ta son o'qilishi kerak). +>- global o'zgaruvchilar **max1** va **max2** lardan foydalanilsin. -`update()` funksiyasi: +>**update()** funksiyasi: -- Argumentlari: bitta butun son `x`. -- Return type: `void`. -- Eng katta sonni `max1` ga va ikkinchi eng katta sonni `max2`ga o'zlashtiradi. +>- Argumentlari: bitta butun son **x**. +>- Return type: **void**. +>- Eng katta sonni **max1** ga va ikkinchi eng katta sonni **max2** ga o'zlashtiradi. -`main()` funksiyasi: +>**main()** funksiyasi: -- Sonlarni o'qiydi, `update()` funksiyani qayta-qayta chaqiradi, `max1` va `max2` larni aniqlab, chop etadi. +>- Sonlarni o'qiydi, **update()** funksiyani qayta-qayta chaqiradi, **max1** va **max2** larni aniqlab, chop etadi. #### Input @@ -284,15 +284,15 @@ Kiritilgan sonlarning eng kattasini va undan keyingi ikkinchi eng kattasini bitt ### Masala 10 -###### Description +##### Description -Agar berilgan sonning har bir raqami arifmetik progressiya hadlari bo'lsa, shu son `Magic Son` deb ataladi. Arifmetik progressiya deb hadlari o'rtasidagi farq konstant bo'lgan ketma-ketlikka aytiladi. +>Agar berilgan sonning har bir raqami arifmetik progressiya hadlari bo'lsa, shu son **Magic Son** deb ataladi. Arifmetik progressiya deb hadlari o'rtasidagi farq konstant bo'lgan ketma-ketlikka aytiladi. -Berilgan `N` sonigacha nechta `Magic Son` borligini aniqlovchi dastur tuzilsin. +>Berilgan **N** sonigacha nechta **Magic Son** borligini aniqlovchi dastur tuzilsin. -- `magicSon` funksiyasi: - - Argumentlari: butun son`x`; - - Berilgan `x` son `Magic Son` yoki yo'qligini aniqlaydi. Agar son `Magic Son` bo'lsa `1` ni, yo'qsa `0` ni qaytaradi. +>- **magicSon** funksiyasi: + - Argumentlari: butun son**x**; + - Berilgan **x** son **Magic Son** yoki yo'qligini aniqlaydi. Agar son **Magic Son** bo'lsa **1** ni, yo'qsa **0** ni qaytaradi. #### Input @@ -326,14 +326,14 @@ Berilgan songacha `Magic Son` lar nechta ekanini chop etilsin. ### Masala 11 -###### Description +##### Description -`N` ta kiritilgan sonlarning nechtasi `musbat` ekanini aniqlaydigan dastur tuzilsin. +>`N` ta kiritilgan sonlarning nechtasi `musbat` ekanini aniqlaydigan dastur tuzilsin. -- `isPositive()` funksiyasi: +>- `isPositive()` funksiyasi: - Argumentlari: bitta butun son `x`. - Agar son musbat bo'lsa `1` ni, yo'qsa `0` ni qaytaradi. -- `readNumbers()` funksiyasi: +>- `readNumbers()` funksiyasi: - Argumentlari: bitta musbat butun son `N`. - `N` ta son o'qiydi va musbatlari sonini qaytaradi. @@ -357,17 +357,17 @@ Kiritilgan sonlarning musbatlari sonini chop etilsin. ### Masala 12 -###### Description +##### Description -`ATM` mashinasi karta kiritilgan paytda, avvalo, `parol` orqali foydalanuvchining shaxsini tasdiqlaydi. +>`ATM` mashinasi karta kiritilgan paytda, avvalo, `parol` orqali foydalanuvchining shaxsini tasdiqlaydi. ATM `4` yoki `6` xonali parollarni qabul qiladi. -Parol kiritilganda u to'g'ri yoki no'to'gri formatda ekanini aniqlaydigan dastur tuzilsin. +>Parol kiritilganda u to'g'ri yoki no'to'gri formatda ekanini aniqlaydigan dastur tuzilsin. -- `isCorrectFormat()` funksiyasi: +>- `isCorrectFormat()` funksiyasi: - argumenti bitta butun musbat son `parol`. - agar kiritilgan parol `4` yoki `6` xonali bo'lsa `1` ni, yo'qsa `0` ni qaytaradi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - `parol` ni o'qiydi va `isCorrectFormat` funksiyani chaqirib, parol to'g'ri yoki noto'g'ri formatda ekanini aniqlaydi. #### Input @@ -392,16 +392,15 @@ Agar kiritilgan son to'g'ri formatda bo'lsa `1` ni, yo'qsa `0` ni chop eting. ### Masala 13 -###### Description +##### Description -Butun musbat sonning `ikkilik sanoq` tizimi(`binary`)dagi ko'rinishida nechta `1` lar borligini aniqlaydigan dastur tuzing. +>Butun musbat sonning `ikkilik sanoq` tizimi(`binary`)dagi ko'rinishida nechta `1` lar borligini aniqlaydigan dastur tuzing. -- `countOnes` funksiyasi: +>- `countOnes` funksiyasi: - Argumentlari: bitta butun musbat son `n`. - Berilgan `n` sonini ikkilik sanoq tizimidagi ko'rinishida nechta `1` lar qatnashganini qaytaradi. - > Masalan: countOnes(5) --> 2, chunki 5ning ikkilik sanoq tizimidagi ko'rinishi 101ga teng. - > + > Masalan: countOnes(5) --> 2, chunki 5ning ikkilik sanoq tizimidagi ko'rinishi 101ga teng. #### Input @@ -420,17 +419,17 @@ Berilgan sonning ikkilik sanoq tizimidagi ko'rinishida mavjud bo'ladigan `1` lar ### Masala 14 -###### Description +##### Description -**`Perfect Son`** deb o'zidan boshqa barcha bo'luvchilari yig'indisiga teng songa aytiladi. +>**`Perfect Son`** deb o'zidan boshqa barcha bo'luvchilari yig'indisiga teng songa aytiladi. > Masalan: 6 --> 1 + 2 + 3 = 6, sonning bo'luvchilari yig'indisi shu sonning o'ziga teng. 28 --> 1 + 2 + 4 + 7 + 14 = 28. > -- `isPerfect()` funksiyasi: +>- `isPerfect()` funksiyasi: - Argumentlari: bitta musbat butun son `n`. - Agar `n` perfect son bo'lsa `1`ni, yo'qsa `0`ni qaytaradi. -Kiritilgan son perfect son bo'lsa `1` ni, yo'qsa `0` ni chop eting. +>Kiritilgan son perfect son bo'lsa `1` ni, yo'qsa `0` ni chop eting. #### Input @@ -454,7 +453,7 @@ Kiritilgan son perfect son bo'lsa `1` ni, yo'qsa `0` ni chop eting. ### Masala 15 - Kichkina Shahzoda -###### Description +##### Description > Kichik shahzoda o'z planetasida yashaydi. Uning malikasi esa boshqa planetada. Kichik shahzoda malikaning xavfda ekanidan xabar topadi va uni qutqarishga yo'lga otlanadi. Afsuski, uning raketasi unchalik kuchli emas. Shuning uchun, u yo'lda iloji boricha kamroq planeta kesib o'tishiga to'g'ri keladi. Quyidagi xarita *Somon Yo'li* galaktikasining Kichik Shahzoda sayohat qiladigan qismini ko'rsatadi. diff --git a/Lab 8 - Arrays.md b/Lab 8 - Arrays.md index 3bdd742..e538be2 100644 --- a/Lab 8 - Arrays.md +++ b/Lab 8 - Arrays.md @@ -1,19 +1,19 @@ -## Lab 8 — Arrays +## Lab 8 — Arraylar -### Masala 1. +### Masala 1 -###### Description +##### Description > - 5 ta son o'qib, ularni ***`array`*** ga saqlansin. > - Ularning o'rtachasini hisoblab, shu o'rta arifmetik qiymatdan katta sonlarning o'zinigina chop etilsin. -###### Input +#### Input 5 ta butun son. -###### Output +#### Output Kiritilgan sonlarning o'rtachadan kattalarini chop eting. @@ -26,18 +26,18 @@ Kiritilgan sonlarning o'rtachadan kattalarini chop eting. ### Masala 2. -###### Description +##### Description > - 5 ta son o'qib, ularni ***`array`*** ga saqlansin. > - ***`Array`*** ning birinchi va ikkinchi elementlarini taqqoslansin. > - Agar birinchi element ikkinchisidan katta bo'lsa, ularning qiymatlarini almashtirilsin(swap). > - Yuqoridagi amalni ***`array`*** ning birinchi elementidan oxiridan bitta oldingi elementigacha takrorlansin. -###### Input +#### Input 5 ta butun son. -###### Output +#### Output Hosil bo'lgan ***`array`*** ning har bir elementini alohida qatorlarda chop etilsin. @@ -50,17 +50,17 @@ Hosil bo'lgan ***`array`*** ning har bir elementini alohida qatorlarda chop etil ### Masala 3. -###### Description +##### Description -> - 10 ta butun `N` sonlarni o'qib, ularni ***`array`*** ga saqlansin (`1 ≤ N ≤ 3`). +> - 10 ta butun `N` sonlarni o'qib, ularni ***`array`*** ga saqlansin: (`1 ≤ N ≤ 3`). > - Arrayda har bir sonning nechtadan mavjudligini aniqlansin. > - Har bir sonni va shu sonning sanog'icha yulduzchalarni chop etadigan dastur tuzilsin. -###### Input +#### Input 10 ta butun son `N` (`1 ≤ N ≤ 3`). -###### Output +#### Output Har bir sonni va shu sonning sanog'icha yulduzchalarni orasini `:` va ***`space`*** bilan ajratilgan holda chop etilsin. @@ -74,16 +74,16 @@ Har bir sonni va shu sonning sanog'icha yulduzchalarni orasini `:` va ***`space` ### Masala 4. -###### Description +##### Description -- 5 ta butun sonlarni o'qib, ularni ***`array`*** ga saqlansin. -- Kiritilgan elementlarning eng kattasini va ikkinchi eng kattasini chop etilsin. +>- 5 ta butun sonlarni o'qib, ularni ***`array`*** ga saqlansin. +>- Kiritilgan elementlarning eng kattasini va ikkinchi eng kattasini chop etilsin. -###### Input +#### Input 5 ta butun son. -###### Output +#### Output Arrayning eng katta qiymatga ega 2 ta elementlarini alohida qatorlarda chop etilsin. @@ -103,16 +103,16 @@ Arrayning eng katta qiymatga ega 2 ta elementlarini alohida qatorlarda chop etil ### Masala 5. -###### Description +##### Description > - 7 ta **`char`** belgi o'qib, ularni ***`array`*** ga saqlansin. > - Hosil bo'lgan ***`array`*** da `cat` **`char`** lar ketma-ketligi necha marta uchrashini aniqlab chop etilsin -###### Input +#### Input 7 ta **`char`** belgi. -###### Output +#### Output ***`Array`*** da **`cat`** so'zining takrorlanish soni. @@ -125,18 +125,18 @@ Arrayning eng katta qiymatga ega 2 ta elementlarini alohida qatorlarda chop etil ### Masala 6. -###### Description +##### Description > - 5 ta **`char`** belgi o'qib, ularni ***`array`*** ga saqlansin. > - 5 ta qatorda ***`array`*** ni namunadagidek aylantirib, chop eting: - 1 - qatorda kiritilgan ***`array`*** ning o'zi chop etiladi. - 2 - qatordan boshlab har safar bitta oldingi qatordagi chop etilgan yozuvning oxirgi elementi eng birinchi chop etiladi, qolgan elementlarni oldingi qatordagi bilan bir xil chop etiladi. -###### Input +#### Input 5 ta **`char`** belgi. -###### Output +#### Output ***`Array`*** ni 5 ta qatorda, namunadagidek aylantirib chop eting. ***`Array`*** elementlarining joyi o'zgarmasligi, faqat chop etish jarayonida to'g'ri chaqirib olinishi kerak. @@ -150,16 +150,16 @@ Arrayning eng katta qiymatga ega 2 ta elementlarini alohida qatorlarda chop etil ### Masala 7. -###### Description +##### Description > - 9 ta butun son o'qib, ularni 3x3 `array`ga saqlansin. > - Asosiy diagonaldagi (`\`) elementlarning yig'indisini hisoblab, chop etilsin. -###### Input +#### Input 9 ta butun son. -###### Output +#### Output Asosiy diagonaldagi sonlar yi'g'indisi. @@ -172,20 +172,27 @@ Arrayning eng katta qiymatga ega 2 ta elementlarini alohida qatorlarda chop etil ### Masala 8. -###### Description +##### Description - 3 ta butun `sonlar` o'qilsin (`0 ≤ sonlar ≤ 5`). - Shu sonlarni ifodalovchi ingliz tilidagi so'zlar 3 ta alohida qatorlarda, namunadagidek chop etilsin. +> - 3 ta butun `sonlar` o'qilsin: $0 \leq sonlar \leq 5$ +> - Shu sonlarni ifodalovchi ingliz tilidagi so'zlar 3 ta alohida qatorlarda, namunadagidek chop etilsin. -> HINT: 2 o'lchamli `array`dan foydalanilsin. +:bulb: 2 o'lchamli `array`dan foydalanilsin. -![Jadval](8-8.png) +| **Son** | **So'z** | +|---------|----------| +| **0** | `ZERO-` | +| **1** | `ONE--` | +| **2** | `TWO--` | +| **3** | `THREE` | +| **4** | `FOUR-` | +| **5** | `FIVE-` | -###### Input +#### Input -3 ta butun `sonlar` (`0 ≤ sonlar ≤ 5`). +3 ta butun `sonlar`: $0 \leq sonlar \leq 5$ -###### Output +#### Output Shu sonlarning ingliz tilidagi nomini alohida qatorlarda chop etilsin. @@ -196,19 +203,19 @@ Shu sonlarning ingliz tilidagi nomini alohida qatorlarda chop etilsin. --- -### Masala 9. +### Masala 9 -###### Description +##### Description > - 2 o'lchamli ***`array`*** e'lon qilinsin. > - 3 ta talabaning *`Fizika`* va *`C dasturlash`* fanlaridan olgan ballarini o'qib, e'lon qilingan ***`array`*** ga joylansin. > - Har bir talabaning 2 ta fandan olgan umumiy ballini hisoblaydigan dastur tuzilsin. -###### Input +#### Input Uchala talabaning 2 ta fandan olgan ballarini bitta qatorda o'qing. Oldin bir talabaning 2 ta fan bo'yicha ballini, keyin boshqasinikini o'qilsin. -###### Output +#### Output Har bir talabaning umumiy balli alohida qatorlarda chop etilsin. @@ -219,21 +226,19 @@ Har bir talabaning umumiy balli alohida qatorlarda chop etilsin. --- -### Masala 10. +### Masala 10 - Achchiq Haqiqat -###### Description +##### Description -### Achchiq Haqiqat +> $90\%$ birinchi kurs talabalari o'zlarini o'rtachadan yuqori baho oladi deb hisoblashadi. Achchiq haqiqatni aytish vaqti keldi -90% birinchi kurs talabalari o'zlarini o'rtachadan yuqori baho oladi deb hisoblashadi. Achchiq haqiqatni aytish vaqti keldi +#### Input -###### Input - - - Birinchi qatorda `testcase`lar soni `C` (1 ≤ C ≤ 1000). - - Keyingi `C` ta qatorlarda studentlar soni `N` va ularning `N` ta baholari bitta qatorda ketma-ket kiritiladi. (1 ≤ N ≤ 1000). - - Baholar 1 dan 100 gacha bo'lgan butun sonlar (1 ≤ baholar ≤100). + - Birinchi qatorda `testcase`lar soni `C`: $1 \leq C \leq 1000$ + - Keyingi `C` ta qatorlarda studentlar soni `N` va ularning `N` ta baholari bitta qatorda ketma-ket kiritiladi: $1 \leq N \leq 1000$ + - Baholar 1 dan 100 gacha bo'lgan butun sonlar: $1 \leq baholar \leq 100$ -###### Output +#### Output Har bir `testcase` uchun o'rtachadan yuqori natija ko'rsatgan o'quvchilar foizini nuqtadan keyin 3 ta raqam aniqlikda chop etilsin. @@ -244,11 +249,9 @@ Har bir `testcase` uchun o'rtachadan yuqori natija ko'rsatgan o'quvchilar foizin --- -### Masala 11. +### Masala 11 - Soyabon -### Soyabon - -###### Description +##### Description > Wahid amaki *Gluwa* kompaniyasida ishlaydi. U har kuni biznes uchrashuvlarga qatnashish uchun *Gluwa*ning **`N`** ta ko'p qavatli binolari o'rtasida u binodan bu binoga borib keladi. Avval u $B_0$ binoga boradi va **`M`** marta binodan binoga sayohat qiladi. $B_1$, $B_2$, $B_3$... BM - bu binolar orasidagi sayohatlar ketma-ketligini anglatadi. @@ -256,18 +259,21 @@ Har bir `testcase` uchun o'rtachadan yuqori natija ko'rsatgan o'quvchilar foizin >Keyingi binoga borishda soyabon shart bo'lmasa, shunchaki soyabonsiz harakatlanadi. Agar soyabon kerak bo'lsa va hozirgi bino javonida soyabonlar bo'lsa, shu soyabonlardan birini olib yo'lga chiqadi. Agar unga narigi binoga borishga soyabon kerak bo'lsayu, u turgan binoda soyabon yo'q bo'lsa, bino magazinidan soyabon sotib oladi. Soyabon bilan binoga kelsa va keyingi binoga borishda soyabon kerak bo'lmasa, qo'lidagi soyabonni shu bino javonida qoldiradi. Sizga binolar o'rtasidagi harakatlanish va soyabon zarurati haqida ma'lumot berilgan bo'lsa, binolarda birorta ham soyabon yo'q deb hisoblagan holda Wahid bugun nechta soyabon sotib olishini aniqlaydigan dastur yarating. -###### Input +#### Input -Birinchi qatorda **`3`** ta butun sonlar ($N, M$, $B_0$) berilgan. +Birinchi qatorda **`3`** ta butun sonlar $N, M, B_0$ berilgan. -> - $N$ — binolar soni (2 ≤ $N$ ≤ 10). -> - $M$ — harakatlanishlar soni (1 ≤ $M$ ≤ 200). -> - $B_0$ — harakatlanish boshlanadigan bino (1 ≤ $B_0$ ≤ $N$). +> - $N$ — binolar soni: $2 \leq N \leq 10$ +> - $M$ — harakatlanishlar soni: $1 \leq M \leq 200$ +> - $B_0$ — harakatlanish boshlanadigan bino: $1 \leq B_0 \leq N$ -> Keyingi $M$ qatorning har bir i - qatorida Wahid ketayotgan $B_i$ bino va soyabon ehtiyojini anglatuvchi $R_i$ kiritiladi. (1 ≤ $B_i$ ≤ $N$; 0 ≤ $R_i$ ≤ 1; $B_{i − 1}$ $!= B_i$) +> Keyingi $M$ qatorning har bir i - qatorida Wahid ketayotgan $B_i$ bino va soyabon ehtiyojini anglatuvchi $R_i$ kiritiladi. +$$1 \leq B_i \leq N$$ +$$ 0 \leq R_i \leq 1$$ +$$B_{i − 1} != B_i$$ -###### Output +#### Output Sotib olingan soyabonlar sonini chop eting. @@ -275,3 +281,93 @@ Sotib olingan soyabonlar sonini chop eting. | Input | Output | | - | - | | `2 5 1`
`2 0`
`1 1`
`2 0`
`1 1`
`2 1` | `2` | +--- + +### Masala 12 - Ikki array medianasi + +###### Description + +> - Uzunligi mos ravishda **`m`** va **`n`** bo'lgan, o'sish tartibida tartiblangan 2 ta **`array`** $nums_1$ va $nums_2$ berilgan. +> - Ikkala arraydagi sonlar uchun umumiy medianani toping. + +###### Input + +Birinchi qatorda $nums_1$ uzunligi $n$ va ikkinchi qatorda $nums_1$ sonlarini o'qiladi. + +Uchinchi qatorda $nums_2$ uzunligi $m$ va to'rtinchi qatorda $nums_2$ sonlarini o'qiladi. + +Ikkala arrayning ham sonlari orasida `space` bilan o'qiladi. + +$$0 \leq n, m \leq 1000$$ +$$-10^6 \leq nums_1[i], nums_2[i] \leq 10^6$$ + +###### Output + +Ikkala arraydagi sonlarning umumiy medianasini nuqtadan keyin 5 ta aniqlikda chop etiladi. + +###### Namuna 1 +| Input | Output | +| - | - | +| `1 3`
`2` | `2.00000` | +| `1 2`
`3 4` | `2.50000` | + +###### Izoh +> * Umumiy array = $[1, 2, 3]$ va mediana = $2$ +> * Umumiy array = $[1, 2, 3, 4]$ va mediana = $\frac{(2 + 3)}{2} = 2.50000$ + +--- + +### Masala 13 - Arraydagi uchliklar soni + +###### Description + +> - Uzunligi $n$ bo'lgan $nums$ array berilgan. +> - Ushbu arraydagi quyidagi shartlarni qanoatlantiradigan $[nums[i], nums[j], nums[k]]$ uchliklarni toping: + +$$i \neq j \neq k$$ +$$nums[i] + nums[j] + nums[k] = 0$$ + +###### Input + +Birinchi qatorda $nums$ uzunligi $n$ va ikkinchi qatorda $nums$ arrayning sonlarini o'qiladi. + +Arrayning sonlari orasida `space` bilan o'qiladi. + +$$0 \leq n \leq 3000$$ +$$-10^5 \leq nums1[i] \leq 10^5$$ + +###### Output + +Yuqoridagi shartlarni qanoatlantiradigan uchliklarni alohida qatorlarda orasida `space` bilan chop eting. + +| Input | Output | +| - | - | +| `6`
`-1 0 1 2 -1 -4` | `-1 -1 2`
`-1 0 1`
| +| `1`
`0` | | + +###### Izoh +> - $[-1,0,1,2,-1,-4] \Longrightarrow [[-1,-1,2],[-1,0,1]]$ +> - $[0] \Longrightarrow []$ +--- + +### Masala 14 - Arraylarni birlashtirish + +###### Description + +> Siz ikkita array o'qib oling. +> Ikkita arrayni bitta arrayda birlashtiring. +> Birlashtirilgan arrayni o'sib borish tartibida sort qiling. +> Birlashtirilgan arrayni chop eting. + + +###### Input +> - array elementlar soni: $1 \leq N \leq 50$ +> - arraydagi sonlar: $-100 \leq qiymat \leq 100$ + +###### Output +Birlashtirilgan arrayni o'sish borish tartibida chop eting. + +###### Namuna 1 +| Input | Output | +| - | - | +| `1 2 4`
`1 3 4` |`1 1 2 3 4 4`| \ No newline at end of file diff --git a/Lab 9 - Pointers.md b/Lab 9 - Pointers.md index c2cced4..9d4652d 100644 --- a/Lab 9 - Pointers.md +++ b/Lab 9 - Pointers.md @@ -2,7 +2,7 @@ ### Masala 1. -###### Description +##### Description > - `int` turidagi bitta butun son `x` va `int` turidagi bitta `px` ***`pointer`*** e'lon qilinsin. `px` ga `x`ning adresi o'zlashtirilsin. @@ -10,11 +10,11 @@ > - `scanf()` va `px` ***`pointer`*** yordamida `x` ning qiymatini yangilansin. > - `x`ning o'zgartirilgan qiymatini `px` ***`pointer`*** dan foydalanib chop etilsin. -###### Input +#### Input 2 ta butun son (`x`ga avval bitta butun son o'qib, keyin uning qiymatini `px` pointer yordamida yangilansin). -###### Output +#### Output `x`ning yangilangan qiymatini `px` ***`pointer`*** yordamida chop etilsin. @@ -25,9 +25,9 @@ --- -### Masala 2. +### Masala 2 -###### Description +##### Description > - Ikkita butun `N` va `M` butun musbat sonlar o'qilsin. `N`dan `M`gacha bo'lgan sonlar yig'indisini hisoblab, chop etadigan dastur tuzilsin. @@ -40,11 +40,11 @@ >- Oddiy o'zgaruvchining manzilini ***`pointer`*** o'zgaruvchiga saqlansin. >- Oddiy o'zgaruvchiga murojaat qilish uchun ***`pointer`*** o'zgaruvchidan foydalanilsin. -###### Input +#### Input 2 ta butun son `N` va `M`. -###### Output +#### Output `N` dan `M`gacha yig'indini chop etilsin. `N` ham, `M` ham yig'indiga qo'shilsin. @@ -61,9 +61,9 @@ --- -### Masala 3. +### Masala 3 -###### Description +##### Description > - Hajmi 100 ga teng bo'lgan ***`array`*** e'lon qilinsin. So'ngra ***`array`*** ga `N` ta butun son o'qilsin. Keyin, foydalanuvchidan bitta indeks o'qilsin. @@ -72,26 +72,26 @@ > - ***`Array`*** dan boshqa barcha o'zgaruvchilarga faqatgina ***`pointer`*** o'zgaruvchilar orqali murojaat qilinsin. > - To'rtburchak qavslardan foydalanish mumkin emas (`arr[1]` ⇒ ❌). -###### Input +#### Input - Birinchi qatorda musbat `N` butun soni (1 ≤ N ≤ 100); - Ikkinchi qatorda ***`array`*** ga N ta qiymat o'qilsin. - Uchunchi qatorda `a` index o'qilsin. (0 ≤ a ≤ N). -###### Output +#### Output Arrayning `a` indeksdagi elementini chop etilsin. -#### Namuna Input 1 +#### Namuna 1 | Input | Output | | - | - | | `5`
`2 4 7 9 3`
`3` | `9` | --- -### Masala 4. +### Masala 4 -###### Description +##### Description > - Hajmi 100 ga teng bo'lgan ***`array`*** e'lon qilinsin. So'ngra ***`array`*** ga `N` ta butun son o'qilsin. @@ -100,12 +100,12 @@ Arrayning `a` indeksdagi elementini chop etilsin. > - ***`Array`*** dan boshqa barcha o'zgaruvchilarga ***`pointer`*** o'zgaruvchilar orqali murojaat qilinsin. > - To'rtburchak qavslardan foydalanish mumkin emas (`arr[1]` ⇒ ❌). -###### Input +#### Input - Birinchi qatorda musbat `N` butun soni (`1 ≤ N ≤ 100`); - Ikkinchi qatorda ***`array`*** ga N ta qiymat o'qilsin. -###### Output +#### Output ***`Array`*** ning eng katta va eng kichik elementlarini chop etilsin. @@ -118,20 +118,20 @@ Arrayning `a` indeksdagi elementini chop etilsin. --- -### Masala 5. +### Masala 5 -###### Description +##### Description > - `#` kiritilmaguncha maksimum 20 ta belgi o'qilsin. `#` dan oldin kiritilgan elementlarni ***`pointer`*** lar orqali teskari tartibda chop etilsin. > - ***`Array`*** dan boshqa barcha o'zgaruvchilarga ***`pointer`*** o'zgaruvchilar orqali murojaat qilinsin. > - To'rtburchak qavslardan foydalanish mumkin emas (`arr[1]` ⇒ ❌). -###### Input +#### Input Maksimum 20 ta ***`space`*** larsiz bir qator belgilar. -###### Output +#### Output `#` kiritilgunga qadar o'qilgan belgilarni teskari tartibda chop etilsin. @@ -148,9 +148,9 @@ Maksimum 20 ta ***`space`*** larsiz bir qator belgilar. --- -### Masala 6. +### Masala 6 -###### Description +##### Description > - 10 ta alifbo harflarini o'qilsin. ***`Pointer`*** yordamida eng ko'p uchragan harfni va uning necha marta uchraganini chop etilsin. Agar eng ko'p uchragan 2 yoki undan ko'proq harflar mavjud bo'lsa, eng birinchi qaysi biri maksimumga erishgan bo'lsa, o'shani chop eting. @@ -158,11 +158,11 @@ Maksimum 20 ta ***`space`*** larsiz bir qator belgilar. > - To'rtburchak qavslardan foydalanish mumkin emas (`arr[1]` ⇒ ❌). > - **`Loop`** ichida o'zgaruvchilarning faqatgina manzilidan foydalanib ishlansin. -###### Input +#### Input 10 ta ***`space`*** larsiz bir qator belgilar. -###### Output +#### Output Eng ko'p uchragan harfni va necha marta takrorlanganligini orasida ***`space`*** bilan chop etilsin. @@ -173,9 +173,9 @@ Eng ko'p uchragan harfni va necha marta takrorlanganligini orasida ***`space`*** --- -### Masala 7. +### Masala 7 -###### Description +##### Description > - Hajmi 3 ga teng bo'lgan ***`array`*** e'lon qilinsin. Foydalanuvchidan 3 ta butun son o'qib, kiritilgan qiymatlar bilan arrayni to'ldirilsin. ***`Array`*** ning o'rtancha qiymatga ega bo'lgan elementini chop etilsin. @@ -186,11 +186,11 @@ Eng ko'p uchragan harfni va necha marta takrorlanganligini orasida ***`space`*** >- To'rtburchak qavslardan foydalanish mumkin emas (`arr[1]` ⇒ ❌). >- **`Loop`** ichida o'zgaruvchilarning faqatgina manzilidan foydalanib ishlansin. -###### Input +#### Input 3 ta butun son. -###### Output +#### Output Kiritilgan sonlarning o'rtanchasini chop etilsin. @@ -207,9 +207,9 @@ Kiritilgan sonlarning o'rtanchasini chop etilsin. --- -### Masala 8. +### Masala 8 -###### Description +##### Description > Foydalanuvchidan 5 ta butun son o'qilsin va hajmi 5 ga teng bo'lgan `arr[]` ***`array`*** ga saqlansin. Bu 5 ta o'quvchining imtihon natijalarini anglatadi. Eng katta ball olgan o'quvchi birinchi o'rin, eng kam ball olgan o'quvchi oxirgi o'rin deb topiladi. Agar 2 talaba bir xil ball olgan bo'lsa ularning o'rni ham bir xil bo'ladi. @@ -222,11 +222,11 @@ Kiritilgan sonlarning o'rtanchasini chop etilsin. > - To'rtburchak qavslardan foydalanish mumkin emas (`arr[1]` ⇒ ❌). > - **`Loop`** ichida o'zgaruvchilarning faqatgina manzilidan foydalanib ishlansin. -###### Input +#### Input 5 ta butun son. -###### Output +#### Output Kiritilgan sonlarning o'rni. Ikki bir xil son kiritilgan taqdirda ikkisi ham bitta o'rinda turishi kerak. @@ -243,9 +243,9 @@ Kiritilgan sonlarning o'rni. Ikki bir xil son kiritilgan taqdirda ikkisi ham bit --- -### Masala 9. +### Masala 9 -###### Description +##### Description > - Hajmi 50 bo'lgan bitta `int` ***`array`*** e'lon qilinsin. Unga `N` ta son o'qib, ularni ***`array`*** ga joylansin. 0 dan avval kiritilgan barcha raqamlar nechta ekanini chop etilsin. @@ -258,12 +258,12 @@ Kiritilgan sonlarning o'rni. Ikki bir xil son kiritilgan taqdirda ikkisi ham bit >- To'rtburchak qavslardan foydalanish mumkin emas (`arr[1]` ⇒ ❌). >- **`Loop`** ichida o'zgaruvchilarning faqatgina manzilidan foydalanib ishlansin. -###### Input +#### Input 1. Birinchi qatorda `N` butun soni (1 ≤ N ≤ 50). 2. Ikkinchi qatorda `N` ta butun sonlar. -###### Output +#### Output `0` dan avval kiritilgan raqamlarning sonini chop etilsin. @@ -280,9 +280,9 @@ Kiritilgan sonlarning o'rni. Ikki bir xil son kiritilgan taqdirda ikkisi ham bit --- -### Masala 10. +### Masala 10 -###### Description +##### Description > - Hajmi 50 bo'lgan bitta `int` ***`array`*** e'lon qilinsin. Unga `N` ta son o'qib, ularni ***`array`*** ga joylansin. So'ngra, ***`array`*** ning indeksini anglatuvchi 2 ta butun son ***`a`*** va ***`b`*** larni o'qilsin. Arrayning ikkala indeksidagi sonlarni bir-biri bilan almashtirilsin. Yangilangan arrayni chop etilsin. @@ -294,13 +294,13 @@ Kiritilgan sonlarning o'rni. Ikki bir xil son kiritilgan taqdirda ikkisi ham bit >- `main()` funksiyasi: - Sonlarni o'qiydi va natijani chop etadi. -###### Input +#### Input 1. Birinchi qatorda `N` butun soni (1 ≤ N ≤ 50). 2. Ikkinchi qatorda `N` ta butun sonlar. 3. Uchinchi qatorda `a` va `b` butun sonlar. -###### Output +#### Output `a` va `b` indeksdagi qiymatlari almashtirilgan yangilangan ***`array`*** ni chop etilsin. @@ -311,24 +311,24 @@ Kiritilgan sonlarning o'rni. Ikki bir xil son kiritilgan taqdirda ikkisi ham bit --- -### Masala 11. +### Masala 11 -###### Description +##### Description - - Ikkita butun sonlar o'qib ularning yig'indisini chop etadigan dastur tuzilsin. + >- Ikkita butun sonlar o'qib ularning yig'indisini chop etadigan dastur tuzilsin. -- `sum()` funksiyasi: +>- `sum()` funksiyasi: - Argumentlari: bitta `int` ***`pointer`*** va ikkita butun son. - Return type: `void`. - ***`Pointer`*** qarab turgan ozgaruvchiga ikkala butun sonning yig'indisini joylaydi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - Ikkita son o'qiydi va ularning yig'indisini chop etadi. -###### Input +#### Input Ikkita butun son `a` va `b`. -###### Output +#### Output `a` va `b`larning yig'indisi. @@ -345,25 +345,25 @@ Ikkita butun son `a` va `b`. --- -### Masala 12. +### Masala 12 -###### Description +##### Description -`N` ta butun son o'qilsin va kiritilgan sonlardagi **juft raqam**larning sonini chop etilsin. +>`N` ta butun son o'qilsin va kiritilgan sonlardagi **juft raqam**larning sonini chop etilsin. -- `findeven()` funksiyasi: +>- `findeven()` funksiyasi: - Argumentlari: bitta `int` ***`array`*** va uning hajmi `int size`. - Return type: `int`. - ***`Array`*** dagi juft raqamlar sonini qaytaradi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - `N` ta son o'qiydi va natijani chop etadi. -###### Input +#### Input 1. Birinchi qatorda bitta butun son $`N`$ (1 ≤ N ≤ 100). 2. Ikkinchi qatorda $`N`$ ta butun sonlar. -###### Output +#### Output Nechta juft son kiritilganini chop etilsin. @@ -374,24 +374,24 @@ Nechta juft son kiritilganini chop etilsin. --- -### Masala 13. +### Masala 13 -###### Description +##### Description -6 ta belgi o'qilsin va uni ***`array`*** ga joylansin. Ushbu ***`array`*** elementlarini boshqa arrayga ko'chiring. Ikkala arrayda ham belgilar saqlanib qolish kerak, +>6 ta belgi o'qilsin va uni ***`array`*** ga joylansin. Ushbu ***`array`*** elementlarini boshqa arrayga ko'chiring. Ikkala arrayda ham belgilar saqlanib qolish kerak, -- `strcopy()` funksiyasi: +>- `strcopy()` funksiyasi: - Argumentlari: Ikkita `int` ***`array`*** lar `a[]` va `b[]`. - Return type: `void`. - `b[]` ***`array`*** dagi elemntlarni `a[]` ***`array`*** ga ko'chiradi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - `N` ta son o'qiydi va natijani chop etadi. -###### Input +#### Input 6 ta belgi. -###### Output +#### Output Shu oltita belgini ikkichi ***`array`*** orqali chop etilsin. @@ -402,26 +402,26 @@ Shu oltita belgini ikkichi ***`array`*** orqali chop etilsin. --- -### Masala 14. +### Masala 14 -###### Description +##### Description -N ta butun son o'qilsin. Kiritilgan sonlarning yig'indisini chop etadigan dastur tuzilsin. +>N ta butun son o'qilsin. Kiritilgan sonlarning yig'indisini chop etadigan dastur tuzilsin. -- `arrsum()` funksiyasi: +>- `arrsum()` funksiyasi: - Argumentlari: Bitta `int` ***`array`*** `a[]` va uning hajmi. - Return type: `int`. - `Array` elementlarining yig'indisini qaytaradi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - `N` ta son o'qiydi va natijani chop etadi. -###### Input +#### Input Birinchi qatorda butun son `N` (1 ≤ N ≤ 100). Ikkinchi qatorda `N` ta butun sonlar. -###### Output +#### Output Kiritilgan sonlarning yig'indisini chop etilsin. @@ -432,26 +432,26 @@ Kiritilgan sonlarning yig'indisini chop etilsin. --- -### Masala 15. +### Masala 15 -###### Description +##### Description -10 ta butun son o'qilsin va kiritilgan sonlarni kamayib borish tartibida saqlab, chop etilsin. +>10 ta butun son o'qilsin va kiritilgan sonlarni kamayib borish tartibida saqlab, chop etilsin. -- `ABC()` funksiyasi: +>- `ABC()` funksiyasi: - Argumentlari: Bitta `int` ***`array`*** `a[]` va bitta butun son `int k`. - Return type: `void`. - ***`Array`*** ning`k` indeksdagi elementidan boshlab ***`array`*** ning oxirgi elementigacha bo'lgan elementlarni solishtirib shu oraliqdagi eng katta sonni aniqlaydi va `k` indeksga joylaydi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - Array elementlarini o'qiydi. - `ABC()` funksiyasini 9 marta chaqiradi. - Tartiblangan arrayni chop etadi. -###### Input +#### Input 10 ta butun son `N`. -###### Output +#### Output Kiritilgan sonlarni kattasidan kichigiga qarab array orqali chop etilsin. @@ -468,26 +468,26 @@ Kiritilgan sonlarni kattasidan kichigiga qarab array orqali chop etilsin. --- -### Masala 16. +### Masala 16 -###### Description +##### Description -`N` ta butun son o'qilsin. Kiritilgan sonlarni yoki o'sib borish, yoki kamayib borish tartibida chop etilsin. +>`N` ta butun son o'qilsin. Kiritilgan sonlarni yoki o'sib borish, yoki kamayib borish tartibida chop etilsin. -- `userAlign()` funksiyasi: +>- `userAlign()` funksiyasi: - Argumentlari: ***`Array`*** ga qarab turgan bitta `int` ***`pointer`,*** ***`array`*** ning hajmi, tartiblash qaysi tartibda (o'sib borish yoki kamayib borish) bo'lishi kerakligini anglatuvchi bitta butun son (0: o'sib borish, 1: kamayib borish). - Return type: `void`. - Butun sonlarni o'sib borish yoki kamayib borish tartibida joylashtiradi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - Sonlarni o'qiydi va natijani chop etadi. - Sonlarni takroran kiritish mumkin emas. -###### Input +#### Input 1. Birinchi qatorda butun son `N` va yana bitta butun son `a`. Agar a = 1 bo'lsa kamayib borish tartibida, a = 0 bo'lsa o'sib borish tartibida joylashtiriladi. 2. Ikkinchi qatorda `N` ta butun sonlar o'qiladi. -###### Output +#### Output `a` ning qiymatiga qarab, sonlarni o'sib borish yoki kamayib borish tartibida joylashtirilsin. @@ -504,26 +504,26 @@ Kiritilgan sonlarni kattasidan kichigiga qarab array orqali chop etilsin. --- -### Masala 17. +### Masala 17 -###### Description +##### Description -2 marta `N` ta butun son o'qilsin va 2 ta `arr1[]` va `arr2[]` ***`array`*** larga saqlansin. Ikkinchi arrayni birinchi arrayga teskari tartibda qo'shib, chop etadigan dastur tuzilsin. Uchinchi array ham e'lon qilinsin. +>2 marta `N` ta butun son o'qilsin va 2 ta `arr1[]` va `arr2[]` ***`array`*** larga saqlansin. Ikkinchi arrayni birinchi arrayga teskari tartibda qo'shib, chop etadigan dastur tuzilsin. Uchinchi array ham e'lon qilinsin. -- `addArray()` funksiyasi: +>- `addArray()` funksiyasi: - Argumentlari: 3 ta ***`array`*** uchun 3 ta ***`pointer`,*** 3 ta arrayning hajmi uchun bitta butun son `int size`. - Return type: `void`. - 1-***`array`*** ning 1-elementini 2-***`array`*** ning oxirgi elementiga, 1-***`array`*** ning 2-elementini 2-***`array`*** ning oxirgidan bitta oldingi elementiga (va hokazo) qo'shib, natijani 3-arrayga saqlaydi. -- `main()` funksiyasi: +>- `main()` funksiyasi: - Sonlarni o'qiydi va natijani chop etadi. -###### Input +#### Input 1. Birinchi qatorda bitta butun son `N` (N ≤ 20). 2. Ikkinchi qatorda 1-arrayga `N` ta element o'qilsin. 3. Uchinchi qatorda 2-arrayga `N` ta element o'qilsin. -###### Output +#### Output Uchinchi arrayni chop etilsin. diff --git a/template-problem.md b/template-problem.md new file mode 100644 index 0000000..cad5bbe --- /dev/null +++ b/template-problem.md @@ -0,0 +1,34 @@ +### Masala X - Masala nomi + +###### Description +Masala ta'rifi shu yerda yoziladi. +- Masalan ta'rifini aniq va tiniq tushintirilsin. +- Masala bir nechta tilda ishlanishi inobatga olinsin +- **data type**lar va limitlar aniq ko'rsatilsin + +> Bu yerda e'tibor talab qiladigan izohlar va qo'shimcha ma'lumot yozsa bo'ladi. + + +###### Input +Bu yerda masalaga kiritiladigan **input**lar tushintiriladi +- input limitlari berib ketiladi +- limitlarni ifodalashda KateX syntax dan foydalanish kerak +- Masalan: `X` soni $1 \le X \le 2^{32}-1$ oraliqda bo'ladi + +###### Output +Bu yerda dastur nimani chop etishi kerakligini aniq yozish kerak. + + +###### Namuna 1 + +| Input | Output | +| - | - | +| `16` `14` | `30` | + +###### Namuna 2 + +| Input | Output | +| - | - | +| `1` `2` | `3` | + +---