• Operator hisoblash tartibi Bir tilning operator ustunligi va birlashish qoidalari uning operatorlarini hisoblash tartibini aytib beradi. O‘rin (Navbat , Ketma ketlik)
  • Fortran, Ruby, Visual Basik va Ada
  • Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr




    Download 6,33 Mb.
    Pdf ko'rish
    bet32/194
    Sana20.02.2024
    Hajmi6,33 Mb.
    #159185
    1   ...   28   29   30   31   32   33   34   35   ...   194
    Arifmetika ifodalar 
    Yuqori darajadagi dasturlash tillari birinchi asosiy maqsadlaridan biri 
    matematika, ilm-fan va muhandislikda topilgan arifmetik ifodalarni avtomatik 
    baholash bo‘lgan. Dasturlash tillarida arifmetik ifodalarning ko‘pchilik xususiyatlari 
    matematikada rivojlangan konvensiyalardan meros edi. Dasturlash tillarida, 
    arifmetik ifodalar operatorlar, operandlar, qavslar va funksiya chaqiruvlaridan 
    iborat. Operatorlar “Unar”, ya’ni u bir operandli, “binar” ya’ni ikki operandli 
    “ternari”(ma’nosi uchta operandi bor ) bo‘lishi mumkin.
    Ko‘pchilik dasturlash tillarida, binar operatorlari infix, ular operandlar 
    o‘rtasida bo‘ladi. Bir istisno bu Perl, ba’zi operatorlari prefix ular operandlaridan 
    oldin keladi. 
    Arifmetik ifodaning maqsadi - arifmetik hisoblashni belgilash hisoblanadi. 
    Bunday hisoblash amalga oshirish ikki harakatlarga sabab bo‘lishi kerak: 
    operandlarni olib kelish, odatda xotiradan, bu operandlar ustida arifmetik amallarni 
    bajarish. Quyidagi qismilarda, biz arifmetik ifodalarning umumiy loyihasini tadqiq 
    etamiz. 
    Arifmetik ifodalar uchun asosiy dizayn masalalari quyidagilarni, barchasi shu
    qismida muhokama qilinadi: 
    • Operator ustunlik qoidalari nima? 
    • Operator bog‘liqlik(birlashish) qoidalari nima? 
    • Operand baholash tartibi qanday? 
    • Operand baholash yon ta’sirida cheklashlar mavjudmi? 
    • Til foydalanuvchiga ortiqcha yuklangan belgilangan operatori yo‘l qo‘ya 
    oladimi? 
    • Ifodalarda qanday tur aralashtirish yo‘l qo‘yiladi? 
    Operator hisoblash tartibi 
    Bir tilning operator ustunligi va birlashish qoidalari uning operatorlarini 
    hisoblash tartibini aytib beradi. 
    O‘rin (Navbat , Ketma ketlik) 


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    52 
    Bir ifoda qiymati kamida ifodadagi operatorlarini hisoblash tartibidagi qismga 
    bog‘liq. Quyidagi ifoda ko‘rib chiqaylik: 
    a + b * c 
    Faraz qilaylik, o‘zgaruvchilar a, b va c deylik va mos ravishda 3, 4 va 5. Agar 
    (birinchi qo‘shish, keyin ko‘paytirish) chapdan o‘ngga hisoblansa natija 35. Agar 
    o‘ngdan chapga hisoblansa natijasi 23 bo‘ladi.
    Ifodalardagi operatorlarni oddiygina chapdan o‘ngga yoki o‘ngdan chapga 
    hisoblash o‘rniga, matematiklar uzoq yillar oldin hisoblash ustuvorligining 
    ierarxiyasida operatorlarni joylashtirish va qisman bu ierarxiyada ifodalarning 
    hisoblash tartibini asoslash tushunchasini rivojlantirishgan. Misol uchun, 
    matematikada ko‘paytirish qo‘shishdan ko‘ra ortiq oliy ustuvor hisoblanadi, ehtimol 
    uning yuqori darajasi murakkabligi tufaylidir. Agar bu usul oldingi misoldagi ifodaga 
    qo‘llaniladigan bo‘lsa, ko‘p dasturlash tillaridagi kabi, ko‘paytirish birinchi qilinishi 
    kerak bo‘ladi. 
    Ifoda baholash uchun operator ustunlik qoidalari, turli darajadagi ustunlikning 
    operatorlari xisoblash tartibini qisman aniqlaydi. Ifodalar uchun operator qoidalari, 
    til loyihalari tomonidan ko‘rilgan, operator ustuvorligi ierarxiyasiga asoslangan. 
    Odatiy imperativ tillarning operator ustunlik qoidalari deyarli barcha bir xil bo‘ladi, 
    chunki ular o‘sha matematikaga asoslanadi. Bu tillarda, eksponent eng yuqori 
    o‘ringa (u til tomonidan taqdim qilingan paytda) ega, ortidan ko‘paytirish va bo‘lish, 
    keyin shu darajada olish binary qo‘shish va ayirish. 
    Ko‘pchilik tillar qo‘shish va ayirishning unar versiyalarini ham o‘z ichiga 
    oladi. u bir terimli Kiritilgan identifikatsiya operatori deb ataladi , chunki u odatda 
    hech qanday bog‘liqlik amali yo‘q va shu tariqa uning operand ustida hech qanday 
    ta’siri yo‘q. Ellis va Stroustrup (1990, bet 56), S ++ haqida gapirib, uni tarixiy halokat 
    deb ataydi va uni foydasizligini ko‘rsatib beradi. Unar minus, albatta, o‘zining 
    operandi belgisini o‘zgartiradi. Shuningdek, Java va S# da, unar minus, short va bayt 
    operandlarining int turiga mutloq konvertatsiyasiga sabab bo‘ladi.
    Barcha odatiy imperativ tillarda, unar minus operatori , modomiki u qavslar 
    bilan ajratilib boshqa operatorlar yonida bo‘lishdan oldini olinar ekan, ifodaning yo 
    boshida yo istagan joyida ko‘rinishi (paydo bo‘lishi) mumkin. Masalan, 
    a + (- b) * c 
    bo‘lgan to‘g‘ri (legal), lekin 
    a + - b * c 
    odatda to‘g‘ri emas. 


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    53 
    Keyingi, quyidagi ifodalarni ko‘rib: 
    - a/ b 
    - a * b 
    - a ** b 
    Birinchi ikki hollarda, unar minus operator va ikkilik operatorning nisbiy 
    ustunligi ikki operatorlar baholash tartibining ifoda qiymatiga ta’siri yo‘q. Oxirgi 
    holatda, biroq, u muhim emas.
    Umumiy dasturlash tillarining, faqat Fortran, Ruby, Visual Basik va Ada 
    eksponention operatori bor. Barcha to‘rtalasida,eksponention unar minusdan yuqori 
    ustunlikka ega, shuning uchun
    - A ** B teng bo‘ladi - (A ** B) 
    Ruby va S asoslangan tillarda arifmetik amalar ketma-ketligi quyidagicha: 

    Ruby
    S-asoslangan tillar 
    Eng birinchi **
    postfix ++, -- 

    unar +- 
    prefix ++,--, unar + , - 

    *,/,%
    *,/,% 
    Eng oxirgi
    binary +,-
    binary +,- 

    Download 6,33 Mb.
    1   ...   28   29   30   31   32   33   34   35   ...   194




    Download 6,33 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr

    Download 6,33 Mb.
    Pdf ko'rish