• Shartsiz o‘tish operatori.
  • Savollar va mustaqil bajarish uchun topshiriqlar
  • Takrorlanish operatorlari.
  • Switch operatoridan chiqish uchun break




    Download 14,73 Mb.
    bet63/178
    Sana13.05.2024
    Hajmi14,73 Mb.
    #230019
    1   ...   59   60   61   62   63   64   65   66   ...   178
    Bog'liq
    Darslik 01.05.2023

    Switch operatoridan chiqish uchun break operatoridan foydalanish talab etiladi. Agar break operatori qo‘llanilmasa, u holda aniqlangan qiymat ifoda qiymatiga mos kelmasligiga qaramay, ro‘yxatdagi barcha operatorlar bajariladi.
    Yuqorida bayon etilgan fikrlarni tekshirish uchun C++ dasturlash tilida shartli operatorlardan foydalangan holda bir nechta misollarni ko‘rib chiqamiz.
    1-misol. Berilgan k soniga mos keladigan hafta kunining nomini chop etuvchi dastur. (Bunda va birinchi kun dushanba).
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    unsigned int k, z;
    cout<<"k= "; cin>>k;
    if (k<=31) {
    z=k % 7;
    switch (z) {
    case 1: cout<<"Dushanba"; break;
    case 2: cout<<"Seshanba"; break;
    case 3: cout<<"Chorshanba"; break;
    case 4: cout<<"Payshanba"; break;
    case 5: cout<<"Juma"; break;
    case 6: cout<<"Shanba"; break;
    case 7: cout<<"Yakshanba"; break;
    }
    }
    else cout<<"Bunday kun yo‘q";
    return 0;
    }
    2-misol. Bahoni anglatadigan k soni berilgan. Agar k=1 bo‘lsa “yomon”, k=2 bo‘lsa “qoniqarsiz”, k=3 bo‘lsa “qoniqarli”, k=4 bo‘lsa “yaxshi”, k=5 bo‘lsa “a’lo” so‘zlaridan birini, agar k bu oraliqda bo‘lmasa “xato” so‘zini chop etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    unsigned int k;
    cout<<"k= "; cin>>k;
    switch (k) {
    case 1: cout<<"Yomon"; break;
    case 2: cout<<"Qoniqarsiz"; break;
    case 3: cout<<"Qoniqarli"; break;
    case 4: cout<<"Yaxshi"; break;
    case 5: cout<<"A’lo"; break;
    default: cout<<"Xato";
    }
    return 0;
    }
    3-misol. 1-12 oraliqdagi sonlarga mos keluvchi oy raqami berilgan. Shu oyga mos keladigan yil faslini chop etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    unsigned int oy;
    cout<<"Oy raqami: "; cin>>oy;
    switch (oy) {
    case 1: case 2: case 12: cout<<"Qish fasli"; break;
    case 3: case 4: case 5: cout<<"Bahor fasli"; break;
    case 6: case 7: case 8: cout<<"Yoz fasli"; break;
    case 9: case 10: case 11: cout<<"Kuz fasli"; break;
    default: cout<<"Xato";
    }
    return 0;
    }
    4-misol. Arifmetik amallar quyidagi ko‘rinishda raqamlangan: 1 “qo‘shish”; 2 “ayirish”; 3 “ko‘paytirish”; 4 “bo‘lish”. n butun soni 1-4 oralig‘ida berilgan bo‘lib, a va b (b≠0) haqiqiy sonlari berilganda n ga mos keluvchi amalni bajarish va natijani chop etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    unsigned int n; float a, b;
    cout<<"a= "; cin>>a;
    cout<<"b= "; cin>>b;
    cout<<"n= "; cin>>n;
    switch (n) {
    case 1: cout<
    }
    return 0;
    }
    5-misol. Birliklar quyidagi ko‘rinishda raqamlangan: 1-km; 2-m; 3-dm; 4-sm; 5-mm. Kesma uzunligi (haqiqiy son ko‘rinishida) berilib, uning birligi tanlanganda metrdagi ifodasini topish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    unsigned int n; float a, m;
    cout<<"a= "; cin>>a;
    cout<<"n= "; cin>>n;
    switch (n) {
    case 1: cout<
    case 2: cout<
    case 3: cout<
    case 4: cout<
    case 5: cout<
    default: cout<<"Xato";
    }
    return 0;
    }
    6-misol. Robot to‘rtta yo‘nalish bo‘yicha harakatlanishi mumkin (“1” Shimol, “2” G‘arb, “3” Janub, “4” Sharq) va uch xil buyruqni qabul qila oladi, ya’ni 0 harakatni davom ettirish, 1 chapga burilish, -1 o‘ngga burilish, c-robotning berilgan yo‘nalishi bo‘lib, n-unga uzatilgan buyruq bo‘lsa, berilgan buyruqdan keyingi robotning holatini chop etish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int c, n;
    cout<<"c= "; cin>>c;
    cout<<"n= "; cin>>n;
    switch (c) {
    1: switch (n){
    0: cout<<"Shimol"; break;
    1: cout<<"G‘arb"; break;
    -1: cout<<"Sharq"; break;
    }
    2: switch (n){
    0: cout<<"G‘arb"; break;
    1: cout<<"Janub"; break;
    -1: cout<<"Shimol"; break;
    }
    3: switch (n){
    0: cout<<"Janub"; break;
    1: cout<<"Sharq"; break;
    -1: cout<<"G‘arb"; break;
    }
    4: switch (n){
    0: cout<<"Sharq"; break;
    1: cout<<"Shimol"; break;
    -1: cout<<"Janub"; break;
    }
    default: cout<<"Xato";
    }
    }
    7-misol. 1-99 oralig‘idagi butun son berilgan. U sonni satr ko‘rinishida chiqarish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    using namespace std;
    int main(){
    int n, a, b;
    cout<<"1 <= n <= 99 oralig‘idagi son kiriting: "; cin>>n;
    if ((1<=n) && (n<=99)) {
    a=n/10; b=n%10;
    switch (a) {
    case 1: cout<<"O‘n "; break;
    case 2: cout<<"Yigirma "; break;
    case 3: cout<<"O‘ttiz "; break;
    case 4: cout<<"Qirq "; break;
    case 5: cout<<"Ellik "; break;
    case 6: cout<<"Oltmish "; break;
    case 7: cout<<"Yetmish "; break;
    case 8: cout<<"Sakson "; break;
    case 9: cout<<"To‘qson "; break;
    }
    switch (b){
    case 1: cout<<"bir "; break;
    case 2: cout<<"ikki "; break;
    case 3: cout<<"uch "; break;
    case 4: cout<<"to‘rt "; break;
    case 5: cout<<"besh "; break;
    case 6: cout<<"olti "; break;
    case 7: cout<<"yetti "; break;
    case 8: cout<<"sakkiz "; break;
    case 9: cout<<"to‘qqiz "; break;
    }
    } else cout<<"Xato";
    }
    Shartsiz o‘tish operatori. Shartsiz o‘tish operatori – dasturni bajarishda tasodifiy xatoliklarni keltirib chiqarishi mumkin. Uning qulayligi shundaki, algoritmning ixtiyoriy qatoridan boshqaruvni qulay hisoblash qatoriga o‘tkazadi. Bunda goto operatoridan foydalaniladi. goto operatorining sintaksisi quyidagicha:
    goto ;
    Nishon – bu biror bir belgilar davomida ikkita nuqta ( : ) qo‘yilgan identifikator. Nishon bilan operatorlar belgilanadi va keyinchalik, dasturning boshqa bir qatoridan unga shartsiz o‘tish amalga oshiriladi. Nishonga o‘tish goto operatori yordamida bajariladi. goto operatori orqali faqat, uning o‘zi joylashgan funksiya ichidagi operatorlarga o‘tish mumkin.
    Yuqorida bayon etilgan fikrlarni tekshirish uchun C++ dasturlash tilida shartsiz o‘tish operatoridan foydalangan holda, bir nechta misollarni ko‘rib chiqamiz.
    1-misol. n butun son berilgan. Agar n soni 10 dan katta bo‘lsa, n ning kvadrat ildizini topish, aks holda n sonini qayta kiritishni so‘rovchi dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    #include
    using namespace std;
    int main(){
    int n;
    x: cout<<"n= "; cin>>n;
    if (n>10) cout<
    else {
    cout<<"Qayta kiriting \n"; goto x;
    }
    }
    2-misol. ax2+bx+c=0 kvadrat tenglama ildizlarini topish dasturi.
    Berilgan masalaning dastur kodi quyidagicha:
    #include
    #include
    using namespace std;
    int main()
    {
    int a, b, c;
    float d, x1, x2;
    cout <<" ax^2+bx+c=0 tenglama ildizini topish dasturi!";
    z: cout<<"\n a - koeffitsientni kiriting: ";
    cin>>a;
    cout<<"\n b - koeffitsientni kiriting: ";
    cin>>b;
    cout<<"\n c - koeffitsientni kiriting: ";
    cin>>c;
    if (a==0) {
    cout<<" kvadrat tenglama emas\n qayta kiriting"; goto z; } else
    {
    d = b*b - 4 * a * c;
    if (d<0)
    { cout << " tenglama haqiqiy ildizlarga ega emas\n qayta kiriting";
    goto z; }
    if (d==0)
    {
    cout << " tenglama yagona ildizga ega: ";
    x1=x2= -b / (2 * a);
    cout<<"\n x= "<
    }
    else
    {
    cout << " tenglama ikkita ildizga ega: ";
    x1 = (- b + sqrt(d)) / (2 * a);
    x2 = (- b - sqrt(d)) / (2 * a);
    cout<<"\n x1= "<
    cout<<"\n x2= "<
    }
    }
    return 0;
    }
    Savollar va mustaqil bajarish uchun topshiriqlar
    1. x va y butun sonlar berilgan. Ularning hech bo‘lmaganda bittasi toq ekanligini tekshiruvchi dastur tuzing.
    2. Berilgann x, y, z butun sonlardan musbatlarining kubini chiqaruvchi dastur tuzing.
    3. Uchta haqiqiy son berilgan. Ushbu sonlar uchburchakning tomonlarini tashkil etishini tekshiruvchi dastur tuzing.
    4. Quyidagi misolni dasturini tuzing:
    5. Quyidagi misolni dasturini tuzing:
    6. To‘rtta haqiqiy son berilgan. Ulardan bittasi qolgan uchtasidan ishorasi bilan farq qilsa, shu farq qiluvchi sonning tartib raqamini aniqlovchi dastur tuzing.
    7. Ox va Oy o‘qlarida yotmaydigan nuqta koordinatalari berilgan. Uning qaysi chorakka tegishli ekanligini aniqlovchi dastur tuzing.
    8. To‘g‘ri sanani ifodalovchi kabisa bo‘lmagan yilning (k) kuni va (o) oyi butun sonlar ko‘rinishida berilgan. Berilgan sanadan keyingi sanani topuvchi dastur tuzing.
    9. Uch xonali a va b sonlar oralig‘idagi avtomashina davlat raqamini bildiruvchi butun son berilgan. Ushbu sonni satr ko‘rinishida chiqaruvchi dastur tuzing.
    10. Kvadrat tenglamani to‘la tekshiruvchi dastur tuzing.


    2.3-§. C++ dasturlash tilida takrorlanuvchi jarayonlarni dasturlash




    Takrorlanish operatorlari. Ba’zi bir misol va masalalarning parametrlarini o‘zgarishiga qarab ma’lum hisoblashlar bir necha marta takrorlanib, bajarilishi talab etiladi. Ushbu jarayonlarni amalga oshirishda takrorlanuvchi operatorlardan foydalaniladi. Masalan, funksiyada x ning bir nechta qiymatlarini hisoblashni va berilgan ikkita oraliqdagi sonlarni yoki qatorlarni yig‘indisi, ko‘paytmasi kabi amallarni dasturlash talab etilgan bo‘lsin. Bu kabi dasturlarni shartli o‘tish operatori yordamida ham dasturlash mumkin. Ammo takrorlanuvchi operatorlardan foydalanilsa, hisoblash vaqti ma’lum darajada tejaladi. Shu bois, C++ dasturlash tilida takrorlanuvchi jarayonlarni dasturlash uchun for, while, do-while, break, continue operatorlar mavjud. Ushbu operatorlarning imkoniyatlarini quyida ko‘rib chiqamiz.

    Download 14,73 Mb.
    1   ...   59   60   61   62   63   64   65   66   ...   178




    Download 14,73 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Switch operatoridan chiqish uchun break

    Download 14,73 Mb.