|
| 1 | +// Namespaces (Фазои номҳо) Example |
| 2 | +чоп.сабт("=== Фазои Номҳо (Namespaces) ==="); |
| 3 | + |
| 4 | +// Define a namespace for utility functions |
| 5 | +номфазо Утилитҳо { |
| 6 | + содир функсия ҳисоби_фоиз(асл: рақам, фоиз: рақам): рақам { |
| 7 | + бозгашт (асл * фоиз) / 100; |
| 8 | + } |
| 9 | + |
| 10 | + содир функсия ҳисоби_тахфиф(нарх: рақам, тахфиф: рақам): рақам { |
| 11 | + бозгашт нарх - ҳисоби_фоиз(нарх, тахфиф); |
| 12 | + } |
| 13 | + |
| 14 | + содир функсия форматкунии_пул(маблағ: рақам): сатр { |
| 15 | + бозгашт маблағ.toFixed(2) + " сомонӣ"; |
| 16 | + } |
| 17 | +} |
| 18 | + |
| 19 | +// Define a namespace for math operations |
| 20 | +номфазо МатематикаиПешрафта { |
| 21 | + содир собит ПИ = 3.14159265359; |
| 22 | + содир собит E = 2.71828182846; |
| 23 | + |
| 24 | + содир функсия дараҷа(асос: рақам, намуд: рақам): рақам { |
| 25 | + тағйирёбанда натиҷа = 1; |
| 26 | + барои (тағйирёбанда и = 0; и < намуд; и++) { |
| 27 | + натиҷа *= асос; |
| 28 | + } |
| 29 | + бозгашт натиҷа; |
| 30 | + } |
| 31 | + |
| 32 | + содир функсия решаи_квадратӣ(рақам: рақам): рақам { |
| 33 | + бозгашт Math.sqrt(рақам); |
| 34 | + } |
| 35 | + |
| 36 | + содир функсия масоҳати_давра(радиус: рақам): рақам { |
| 37 | + бозгашт ПИ * радиус * радиус; |
| 38 | + } |
| 39 | + |
| 40 | + содир функсия ҳаҷми_кура(радиус: рақам): рақам { |
| 41 | + бозгашт (4 / 3) * ПИ * дараҷа(радиус, 3); |
| 42 | + } |
| 43 | +} |
| 44 | + |
| 45 | +// Nested namespaces |
| 46 | +номфазо Барномаи_Мағоза { |
| 47 | + содир номфазо Маҳсулот { |
| 48 | + содир интерфейс Маҳсулот { |
| 49 | + ном: сатр; |
| 50 | + нарх: рақам; |
| 51 | + миқдор: рақам; |
| 52 | + } |
| 53 | + |
| 54 | + содир функсия сохтани_маҳсулот(ном: сатр, нарх: рақам, миқдор: рақам): Маҳсулот { |
| 55 | + бозгашт { |
| 56 | + ном: ном, |
| 57 | + нарх: нарх, |
| 58 | + миқдор: миқдор |
| 59 | + }; |
| 60 | + } |
| 61 | + |
| 62 | + содир функсия нархи_умумӣ(маҳсулот: Маҳсулот): рақам { |
| 63 | + бозгашт маҳсулот.нарх * маҳсулот.миқдор; |
| 64 | + } |
| 65 | + } |
| 66 | + |
| 67 | + содир номфазо Харидор { |
| 68 | + содир интерфейс Харидор { |
| 69 | + ном: сатр; |
| 70 | + почта: сатр; |
| 71 | + телефон: сатр; |
| 72 | + } |
| 73 | + |
| 74 | + содир функсия сохтани_харидор(ном: сатр, почта: сатр, телефон: сатр): Харидор { |
| 75 | + бозгашт { |
| 76 | + ном: ном, |
| 77 | + почта: почта, |
| 78 | + телефон: телефон |
| 79 | + }; |
| 80 | + } |
| 81 | + } |
| 82 | + |
| 83 | + содир номфазо Фармоиш { |
| 84 | + содир интерфейс Фармоиш { |
| 85 | + рақами_фармоиш: рақам; |
| 86 | + харидор: Харидор.Харидор; |
| 87 | + маҳсулотҳо: Маҳсулот.Маҳсулот[]; |
| 88 | + сана: сатр; |
| 89 | + } |
| 90 | + |
| 91 | + содир функсия ҳисоби_ҷамъи_фармоиш(фармоиш: Фармоиш): рақам { |
| 92 | + тағйирёбанда ҷамъ = 0; |
| 93 | + барои (тағйирёбанда маҳсулот аз фармоиш.маҳсулотҳо) { |
| 94 | + ҷамъ += Маҳсулот.нархи_умумӣ(маҳсулот); |
| 95 | + } |
| 96 | + бозгашт ҷамъ; |
| 97 | + } |
| 98 | + } |
| 99 | +} |
| 100 | + |
| 101 | +// Using namespace members |
| 102 | +чоп.сабт("\n=== Истифодаи Утилитҳо ==="); |
| 103 | +тағйирёбанда нархи_аслӣ = 1000; |
| 104 | +тағйирёбанда фоизи_тахфиф = 15; |
| 105 | +тағйирёбанда нархи_ниҳоӣ = Утилитҳо.ҳисоби_тахфиф(нархи_аслӣ, фоизи_тахфиф); |
| 106 | + |
| 107 | +чоп.сабт("Нархи аслӣ: " + Утилитҳо.форматкунии_пул(нархи_аслӣ)); |
| 108 | +чоп.сабт("Тахфиф: " + фоизи_тахфиф + "%"); |
| 109 | +чоп.сабт("Нархи ниҳоӣ: " + Утилитҳо.форматкунии_пул(нархи_ниҳоӣ)); |
| 110 | + |
| 111 | +чоп.сабт("\n=== Математикаи Пешрафта ==="); |
| 112 | +чоп.сабт("2^10 = " + МатематикаиПешрафта.дараҷа(2, 10)); |
| 113 | +чоп.сабт("Решаи квадратии 144 = " + МатематикаиПешрафта.решаи_квадратӣ(144)); |
| 114 | +чоп.сабт("Масоҳати давра (r=5): " + МатематикаиПешрафта.масоҳати_давра(5)); |
| 115 | +чоп.сабт("Ҳаҷми кура (r=3): " + МатематикаиПешрафта.ҳаҷми_кура(3)); |
| 116 | + |
| 117 | +чоп.сабт("\n=== Системаи Мағоза ==="); |
| 118 | + |
| 119 | +// Create products using nested namespace |
| 120 | +тағйирёбанда маҳсулот1 = Барномаи_Мағоза.Маҳсулот.сохтани_маҳсулот("Китоб", 50, 2); |
| 121 | +тағйирёбанда маҳсулот2 = Барномаи_Мағоза.Маҳсулот.сохтани_маҳсулот("Қалам", 10, 5); |
| 122 | +тағйирёбанда маҳсулот3 = Барномаи_Мағоза.Маҳсулот.сохтани_маҳсулот("Дафтар", 25, 3); |
| 123 | + |
| 124 | +// Create customer |
| 125 | +тағйирёбанда харидор = Барномаи_Мағоза.Харидор.сохтани_харидор( |
| 126 | + "Алӣ Раҳмонов", |
| 127 | + "ali@example.com", |
| 128 | + "+992 900 123456" |
| 129 | +); |
| 130 | + |
| 131 | +// Create order |
| 132 | +тағйирёбанда фармоиш: Барномаи_Мағоза.Фармоиш.Фармоиш = { |
| 133 | + рақами_фармоиш: 1001, |
| 134 | + харидор: харидор, |
| 135 | + маҳсулотҳо: [маҳсулот1, маҳсулот2, маҳсулот3], |
| 136 | + сана: "2024-01-15" |
| 137 | +}; |
| 138 | + |
| 139 | +// Calculate total |
| 140 | +тағйирёбанда маблағи_умумӣ = Барномаи_Мағоза.Фармоиш.ҳисоби_ҷамъи_фармоиш(фармоиш); |
| 141 | + |
| 142 | +чоп.сабт("Фармоиш #" + фармоиш.рақами_фармоиш); |
| 143 | +чоп.сабт("Харидор: " + фармоиш.харидор.ном); |
| 144 | +чоп.сабт("Миқдори маҳсулотҳо: " + фармоиш.маҳсулотҳо.дарозӣ); |
| 145 | +чоп.сабт("Маблағи умумӣ: " + Утилитҳо.форматкунии_пул(маблағи_умумӣ)); |
0 commit comments