Amaliy qism: Tasodifiy belgilarni hosil qilish


Download 1.86 Mb.
bet8/13
Sana07.05.2023
Hajmi1.86 Mb.
#1439378
1   ...   5   6   7   8   9   10   11   12   13
Bog'liq
S-D1-ma\'ruza-4

7.6. Amaliy qism: Lotoreya dasturini satrlarni qo`llagan holda qayta ko`rib chiqish
Key Point. Muammo turli yo`llar bilan hal qilinishi mumkin. Bu qismda lotoreya dasturi satrlardan foydalangan holda qayta ko`rib chiqilgan. Satrlardan foydalanilganda bu dasturni tuzish osonlashadi.
5.4-kodli ro`yxatda berilgan dastur ikki tasodifiy sonni generatsiya qiladi, foydalanuvchini ikkita sonni kiritishga undaydi va foydalanuvchining yutuqli sonlarini quyidagi qoidalar asosida aniqlaydi:

  1. Agar foydalanuvchi kiritgan sonlar aynan lotoreya raqamlari bo`lsa, u 10000$ yutuq sohibi bo`ladi;

  2. Agar kiritilgan barcha sonlar lotoreya sonlarida mavjud bo`lsa, u 3000$ yutuq sohibi bo`ladi;

  3. Agar kiritilgan sonlardan bittasi lotoreya sonlari tarkibida mavjud bo`lsa, u 1000$ yutuq sohibi bo`ladi;

5.4-kodli ro`yxatda sonni yozish uchun butun turdan foydalanilgan. 7.2-kodli ro`yxatda esa, ikkita tasodifiy sonni satr ko`rinishida generatsiya qiluvchi, foydalanuvchidan satr turida ikkita sonni qabul qiluvchi dastur keltirilgan.
7.2-kodli ro`yxat. SatrIshlatilganLotoreya.cpp
1 #include
2 #include // satrlarni qo`llash uchun
3 #include // time funksiyasi uchun
4 #include // rand va srand funksiyalari uchun
5 using namespace std;
6
7 int main()
8 {
9 string lotoreya;
10 srand(time(0));
11 int son = rand() % 10; // Birinchi son generatsiyasi
12 lotoreya += static_cast(son + '0');
13 son = rand() % 10; // Ikkinchi son generatsiyasi
14 lotoreya += static_cast(son + '0');
15
16 // Foydalanuvchini o`ylangan sonni kiritishga undash
17 cout << "Lotoreya raqamingizni kiriting (ikkita son): ";
18 string lotSon;
19 cin >> lotSon;
20
21 cout << "Lotoreya soni: " << lotoreya << endl;
22
23 // Lotoreya soni
24 if (lotSon == lotoreya)
25 cout << "Yutuqli o`yin: siz 10000$ yutdingiz" << endl;
26 else if (lotSon[1] == lotoreya[0] && lotSon[0] == lotoreya[1])
27 cout << "Barcha sonlar topildi: siz 3000$ yutdingiz << endl;
28 else if (lotSon[0] == lotoreya[0]||lotSon[0] == lotoreya[1]
29 || lotSon[1] == lotoreya[0] || lotSon[1] == lotoreya[1])
30 cout << "Bitta son topildi: siz 1000$ yutdingiz" << endl;
31 else
32 cout << "Kechirasiz, siz yutqazdingiz!" << endl;
33
34 return 0;
35 }

Lotoreya raqamingizni kiriting (ikkita son): 00
Lotoreya soni: 00
Yutuqli o`yin: siz 10000$ yutdingiz




Lotoreya raqamingizni kiriting (ikkita son): 45
Lotoreya soni: 54
Barcha sonlar topildi: siz 3000$ yutdingiz




Lotoreya raqamingizni kiriting (ikkita son): 23
Lotoreya soni: 34
Bitta son topildi: siz 1000$ yutdingiz




Lotoreya raqamingizni kiriting (ikkita son): 23
Lotoreya soni: 14
Kechirasiz, siz yutqazdingiz!

Dastur avval tasodifiy raqamni generatsiya qiladi (11-satr), keyin uni belgili turga o`tkazadi va belgini lotoreya satriga qo`shib ta’minlaydi (12-satr). Keyin dastur ikkinchi tasodifiy raqamni generatsiya qiladi (13-satr), uni belgili turga o`tkazadi va lotoreya satriga qo`shib ta’minlaydi. Shundan so`ng lotoreya ikkita tasodifiy raqamdan tashkil topadi.


Dastur foydalanuvchini ikkita raqamdan iborat satrli ma’lumotni kiritishga undaydi (19-satr) va kiritilgan lotoreya sonini quyidagi qoidalar asosida tekshiradi:

  1. Dastlab, o`ylangan son lotoreya soni bilan aynan bir xilligi tekshiriladi;

  2. Unday bo`lmasa, o`ylangan sondagi raqamlarning har ikkalasi ham lotoreya soni tarkibida mavjudligi tekshiriladi;

  3. Unday bo`lmasa, o`ylangan sondagi bitta raqamning lotoreya soni tarkibida mavjudligi tekshiriladi;

  4. Unday bo`lmasa, ekranga “Kechirasiz, siz yutqazdingiz!” degan jumla chiqariladi.




Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   13




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling