Муҳаммад ал-Хоразмий номидаги тату самарқанд филиали


Download 143.31 Kb.
Sana18.06.2023
Hajmi143.31 Kb.
#1584201
Bog'liq
Дастурлаш 8.3 машгулот


Муҳаммад ал-Хоразмий номидаги ТАТУ Самарқанд филиали
Лаборатория машғулотлари

ФАН





ДАСТУРЛАШ (С++)

Ҳафта рақами





8

Машғулот мазмуни




do-while – сўнг-шартли такрорлаш операторларига доир дастурлар тузиш.

Мақсад:




  1. С++ да такрорланувчи ҳисоблаш жараёнларини дастурлашда while – олд шартли ва do-while – сўнг-шартли операторларидан фойдаланишга оид билимларни такрорлаш;


  2. С++ да whileолд шартли ва do-while – сўнг-шартли операторларидан фойдаланиб дастурлар тузиш;


1-машқ. Сонлар айирмасини топинг викторинаси. Компьютер томонидан генерация қилинган 2 та соннинг айирмасини топиш имконини берувчи тест дастурини тузиш керак, дастур сўнгида топилган тўғри жавоблар сони ва кетган вақт экранда чоп этилиши керак бўлади.

Дастур коди:

  1. #include

  2. #include // time funsiyasi uchun zarur

  3. #include // rand va srand funksiyasi uchun zarur

  4. using namespace std;


  5. int main()

  6. {

  7. int tugriJavob = 0; // Tugri javoblar sonini hisoblash uchun

  8. int hisob = 0; // Savollar sonini hisoblash

  9. long boshlanishVaqt = time(0);

  10. const int Savollar_Soni = 5;


  11. srand(time(0)); // saonlarni rgeneratsiya qilish


  12. while (hisob < Savollar_Soni)

  13. {

  14. // 1. Ikkita sonni generastsiya qilish

  15. int son1 = rand() % 10;

  16. int son2 = rand() % 10;


  17. // 2. Agar son1 < son2 bo'lgandA, qiymatlar o'zagartiriladi

  18. if (son1 < son2)

  19. {

  20. int temp = son1;

  21. son1 = son2;

  22. son2 = temp;

  23. }


  24. // 3. Savolning javobini so'rash "son1 - son2 nechiga teng?"

  25. cout << "Javobini ayting " << son1 << " - " << son2 << "? ";

  26. int javob;

  27. cin >> javob;


  28. // 4. Javobni tekshirish va natijani chop etish

  29. if (son1 - son2 == javob)

  30. {

  31. cout << "Topdingiz!\n";

  32. tugriJavob++;

  33. }

  34. else

  35. cout << "Topolmadingiz.\n" << son1 << " - " <<

  36. son2 << " ning natijasi " << (son1 - son2) << endl;


  37. // hisobni oshirish

  38. hisob++;

  39. }


  40. long tugashVaqt = time(0);

  41. long Vaqt = tugashVaqt - boshlanishVaqt;


  42. cout << "To'g'ri javoblar soni " << tugriJavob

  43. << "\nO'tgan vaqt " << Vaqt << " sekund\n";


  44. return 0;

  45. }

Натижа:



2-машқ. Миляларни километрларга айлантириш. 1 дан n гача бўлган миля узунлик бирликларини километр узунлик бирлигига ўзгартирувчи дастур тузинг (1 миля 1.609 км га тенг).

Дастур коди:


  1. #include

  2. #include


  3. using namespace std;


  4. int main()

  5. {

  6. // o'zgaruvchilarni e'lon qilish

  7. int milya = 1, n;

  8. double km;


  9. cout << "Necha milyagacha bo'lgan uzunlik km larga

  10. aylantirilsin: ";

  11. cin >> n;

  12. // do while operatori yordamida hisob-kitobni amalga oshirish

  13. do {

  14. //sikl tanasi

  15. km = milya * 1.609;

  16. cout << setw(5) << milya << " milya -- " << setw(8)

  17. << fixed << setprecision(3) << km << " km ga teng!\n";

  18. milya++;


  19. } while (milya <= n); //sikl sharti


  20. return 0;

  21. }

Блок-схема:




Натижа:




3-машқ. Энг юқори балл. Фойдаланувчи томонидан ўқувчилар сони, ўқувчилар исми ва баллари киритилганда, энг юқори балл олган ўқувчининг исми ва балл натижасини экранда чоп этувчи дастур тузинг.
Дастур коди:

do-while операторини ишлатган ҳолдаги код:


  1. #include

  2. #include

  3. #include


  4. using namespace std;


  5. int main()

  6. {

  7. // o'zgaruvchilarni e'lon qilish

  8. int uquvchi=1, n, ball, maksBall=0;

  9. string uquvchiIsmi;

  10. string maksUquvchiIsmi;


  11. cout << "O'quvchilar sonini kiriting: ";

  12. cin >> n;

  13. // do while operatori yordamida hisob-kitobni amalga oshirish

  14. do {

  15. //sikl tanasi

  16. cout << "O'quvchi ismini kiriting: ";

  17. cin >> uquvchiIsmi;

  18. cout <

  19. cin>>ball;


  20. if (maksBall < ball){

  21. maksUquvchiIsmi = uquvchiIsmi;

  22. maksBall = ball;

  23. }


  24. uquvchi++;

  25. } while (uquvchi <= n); //sikl sharti


  26. cout << "Eng yuqori ball olgan o'quvchi "

  27. << maksUquvchiIsmi << " bali " << maksBall << "!\n";



  28. return 0;

  29. }


while операторини ишлатган ҳолдаги код:


  1. #include

  2. #include

  3. #include


  4. using namespace std;


  5. int main()

  6. {

  7. // o'zgaruvchilarni e'lon qilish

  8. int uquvchi=1, n, ball, maksBall=0;

  9. string uquvchiIsmi;

  10. string maksUquvchiIsmi;


  11. cout << "O'quvchilar sonini kiriting: ";

  12. cin >> n;


  13. //sikl sharti

  14. while (uquvchi <= n) {

  15. //sikl tanasi

  16. cout << "O'quvchi ismini kiriting: ";

  17. cin >> uquvchiIsmi;

  18. cout <

  19. cin>>ball;


  20. if (maksBall < ball){

  21. maksUquvchiIsmi = uquvchiIsmi;

  22. maksBall = ball;

  23. }


  24. uquvchi++;

  25. }


  26. cout << "Eng yuqori ball olgan o'quvchi "

  27. << maksUquvchiIsmi << " bali " << maksBall << "!\n";



  28. return 0;

  29. }



Натижа:



ДАСТУРЛАШ (С++) фанидан 8.3-лаборатория машғулотлари

Download 143.31 Kb.

Do'stlaringiz bilan baham:




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