Konsol ilovasi yozing:
Tasknomlirecordyarating (Id,Title,IsDone).List<Task>saqlang.- Foydalanuvchiga quyidagi menyu ko‘rsating:
add / list / list-done / toggle / exit. add— sarlavha so‘rang, yangiTaskqo‘shing.list— hamma vazifalarni ko‘rsating.list-done—Predicate<Task>orqali faqatIsDone == truebo‘lganlarini filtr qiling.toggle— Id bo‘yichaIsDoneqiymatini o‘zgartiring.
Talablar
• Filtrlash logikasini alohidastaticmetoddaPredicate<Task>parametr bilan yozing.
• Id autoincrement bo‘lsin.
• Har bir buyruqdan so‘ng foydalanuvchi menyuga qaytadi.
cmd> add
Title: Buy milk
Task added (Id: 1)
cmd> add
Title: Write lab report
Task added (Id: 2)
cmd> list
1. Buy milk [ ]
2. Write lab report [ ]
cmd> toggle
Enter Id: 1
Task 1 marked done.
cmd> list-done
1. Buy milk [X]
cmd> exit
Sensordan kelayotgan har bir temperatura qiymatini konsolga chiqaradigan, lekin 40 °C dan oshsa ogohlantirish beradigan dastur yozing.
-
TemperatureSensorklassi
•event Action<double> TemperatureMeasured;
•void Measure(double value)metodi eventni chaqirsin. -
TemperatureMonitorklassi
• Konstruktorida sensorga subscribe qiladi.
• Delegat: har qiymatni chiqaradi; agarvalue > 40,High temperature!deb yozadi. -
Program
• Sensor yaratadi, monitor ulaydi.
•whileichida foydalanuvchidan qiymat olib,sensor.Measure()chaqiradi.
Qoida: Eventni
?.Invokebilan chaqiring; subscription / unsubscription ni to‘g‘ri bajaring.
Input temp (or x): 36.5
Temp: 36.5°C
Input temp (or x): 42
Temp: 42°C --> High temperature!
Input temp (or x): x
Exiting...
-
List<Func<string,string>>konveyer yarating. -
Menyu buyruqlari:
upper– matnni katta harflarga o‘tkazish funksiyasini qo‘shishtrim– bo‘sh joylarni olib tashlaydigan funksiyani qo‘shishreverse– matnni teskari qiluvchi funksiyani qo‘shishrun– foydalanuvchidan satr olib, pipeline bo‘yicha ishlatishexit
-
Agar pipeline bo‘sh bo‘lsa,
runsatrni o‘zgartirmaydi.
cmd> upper
Added UPPER.
cmd> reverse
Added REVERSE.
cmd> run
Enter text: hello
Result: OLLEH
cmd> exit
Internet‑do‘kon uchun narx hisoblash dasturi yozing.
Dictionary<string, Func<decimal, decimal>> strategiesyarating:none→ narxni o‘zgartirmaydivip→ 20 % chegirmablackfriday→ 50 % chegirma
- Foydalanuvchidan narx va strategiya nomi so‘raladi.
- Belgilanmagan nom uchun
noneishlatiladi. - Yakuniy narxni 2 kasr belgisi bilan formatlab chiqaring.
Price: 200
Discount type (none/vip/blackfriday): vip
Final: 160.00
Price: 100
Discount type (none/vip/blackfriday): student
Final: 100.00
Bank hisobida balans o‘zgarishini kuzatib boruvchi dastur yozing.
-
BankAccountklassipublic event EventHandler<decimal>? BalanceChanged;Deposit(decimal amount)vaWithdraw(decimal amount)balansni o‘zgartiradi; har ikkisi eventni chaqiradi.Withdrawbalans yetarli bo‘lmasa xabar chiqarib, event chaqirmasin.
-
Program- Hisob yaratadi.
- Eventga obuna bo‘lib,
Balance: XX.XXformatida balansni chiqaradi. - Foydalanuvchidan
d(deposit),w(withdraw) yokix(exit) va summani oladi.
Eʼtibor: Eventni trigger qilayotganda
?.Invoke(this, balance)dan foydalaning.
Command (d/w/x): d
Amount: 150
Balance: 150
Command (d/w/x): w
Amount: 70
Balance: 80
Command (d/w/x): w
Amount: 100
Insufficient funds.
Command (d/w/x): x
Goodbye!

































7