• MAVZU: SINTAKTIK TAHLIL DARAXTINING DASTURINI TUZISH Bajardi: __________________ __________________________
  • Kirish - Mavzuning dolzarbligi Nazariy qism - Mavzu bo‘yicha nazariy ma’lumotlar Amaliy qism
  • Topshiriq sharti
  • Dasturiy inginiring




    Download 0.77 Mb.
    bet1/3
    Sana24.03.2024
    Hajmi0.77 Mb.
    #175902
      1   2   3
    Bog'liq
    4 amaliy ish


    O‘ZBEKISTON RESPUBLIKASI
    RAQAMLI TEXNOLOGIYALAR VAZIRLIGI


    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

    DASTURIY INGINIRING” FAKULTETI


    TIZIMLI VA AMALIY DASTURLASHTIRISH” KAFEDRASI


    TIZIMLI DASTURLASH”
    FANIDAN
    4-AMALIY ISH


    MAVZU: SINTAKTIK TAHLIL DARAXTINING
    DASTURINI TUZISH
    Bajardi: __________________


    __________________________


    Qabul qildi: B.A. Sharipov


    __________________________


    TOSHKENT – 2024


    Amaliy ish hisobotining tarkibi:
    Kirish
    - Mavzuning dolzarbligi
    Nazariy qism
    - Mavzu bo‘yicha nazariy ma’lumotlar
    Amaliy qism
    -Berilgan topshiriq bo‘yicha dasturlar
    Xulosa
    Foydalanilgan adabiyotlar
    Ilovalar


    Topshiriq №4. Sintaktik tahlil daraxtining dasturini tuzish
    Topshiriqni baholash. MAX 6 ball.

    1. Amaliy ishni to‘g‘ri bajarish va mustaqil yondashuv – 2 ball;

    2. Xulosa va foydalangan adabiyotlarni yoritilganlik – 2 ball;

    3. Amaliy ishni himoya qilish – 2 ball.



    Topshiriq sharti:

    1. 3- topshiriqda berilgan variant bo‘yicha sintaktik tahlil daraxtining dasturi tuzilsi.

    2. Bajarilgan ish bo‘yicha hisobot shakllantirilsin.

    Nazariy qism
    Sintaktik tahlil daraxtlari tabiiy tildagi jumlalar yoki matematik ifodalar kabi real hayotdagi konstruksiyalarni ifodalash uchun ishlatilishi mumkin. 1-rasmda sodda gapning ierarxik tuzilishi ko'rsatilgan. Bu tasvir bizga qism daraxtlar yordamida uning alohida bo‘laklari bilan ishlash imkonini beradi.

    1-rasm. Sodda gapning sintaktik tahlil daraxti

    Bundan tashqari,


    \(((7 + 3) * (5 - 2))\)
    kabi matematik ifodalarni sintaktik tahlil daraxti shaklida aks ettirish mumkin (2-rasm).



    2-rasm: \(((7+3)*(5-2))\) ifodasi uchun sintaktik tahlil daraxti


    Ko'paytirish amali qo'shish va ayirish amalidan ko’ra yuqori ustuvorlikka egadir. Biroq, qavslar tufayli, bu yerda birinchi navbatda yig'indi va ayirma hisoblanishi kerak. Daraxt ierarxiyasi ifodani hisoblash tartibini yaxshiroq tushunishga yordam beradi.


    Daraxtning eng yuqori qismida joylashgan ko‘paytmani topishdan oldin, qism daraxtlarda qo'shish va ayirish amallar bajarilishi kerak. Birinchi jarayon - chap qism daraxt natijasi - 10 ni, ikkinchisi - o’ng qism daraxt natijasi – 3 ni beradi. Ierarxik tuzilish xususiyatidan foydalanib, har bir qism daraxtni topilgan natijani o'z ichiga olgan tugun bilan almashtirish mumkin. Ushbu protsedura 3-rasmda ko'rsatilgan soddalashtirilgan daraxtni hosil qiladi.



    3-rasm: \(((7+3)*(5-2))\) ifoda uchun soddalashtirilgan tahlil daraxti


    Quyidagilarni ko'rib chiqamiz:



    • To'liq qavslar bilan matematik ifoda uchun tahlil daraxtini qanday qurish mumkin.

    • Tahlil daraxtida saqlangan ifodani qanday baholash mumkin.

    • Tahlil daraxtidan asl matematik ifodani qanday yozish kerak.

    Sintaktik tahlil daraxtini qurishda birinchi qadam ifoda qatorini tokenlar ro'yxatiga ajratib chiqishdir. Bu misolda tokenlar ro'yxati to'rt xil bo‘lishi mumkin: chap qavs, o'ng qavs, operator va operand. Ma’lumki, Sintaktik tahlilchi tomonidan o'qilgan chap qavs har doim yangi ifodaning boshlanishini anglatadi va shuning uchun u bilan bog'langan quyi qism daraxt hosil qilish kerak. Aksincha, o'ngdagi qavsni o'qish ifodaning tugashini bildiradi. Bundan tashqari, operandlar ularning operatorlarining barglari va avlodlari bo'lishi ham ma'lum. Nihoyat, ma’lumki, har bir operatorning ikkala avlodi (farzandi) ham bor.
    Yuqoridagi ma'lumotlardan foydalanib, biz quyidagi qoidalarni aniqlaymiz:
    1) Agar '(' belgisi o'qilgan bo'lsa, joriy tugunning chap avlodi sifatida yangi tugunni qo’shiladi va unga o‘tiladi.
    2) Agar ushbu ['+','-','/','*'] ro'yxatdagi elementlaridan biri o'qilgan bo'lsa, u holda joriy tugunning qiymatini ushbu tokendagi operatorga tenglashtiriladi. Joriy tugunning o’ng avlodi tomoniga yangi tugun qo’shiladi va o’ng qismdaraxtga tushiladi.
    3) Agar o'qilgan token raqam bo'lsa, u holda joriy tugun qiymati ushbu raqamga tenglashtiriladi va ushbu joriy tugunning ajdodiga qaytiladi.
    4) Agar ')' belgisi o'qilgan bo'lsa, joriy tugunning ajdodiga o’tiladi.

    Amalda yuqoridagi qoidalarni ko'rib chiqamiz. Biz



    Download 0.77 Mb.
      1   2   3




    Download 0.77 Mb.