O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI QARSHI FILIALI
AXBOROT TEXNOLOGIYALARI TEXNIKUMI
Dasturiy injiniring guruh 1-kurs talabasi
Xurramov Bayramalining
Ob’ektga yunaltirilgan dasturlash fanidan tayyorlagan
MUSTAQIL ISHI
Mavzu:Operatsiyalar va ifodalar ifodalarni shakillantirish va hisoblash qoidalari
Tekshirdi Qayumov SH
Bajardi Xurramov B
Mavzu;Operatsiyalar va ifodalar ifodalarni shakillantirish va hisoblash qoidalari
Reja;
1.Operatsiya va ifoda turlari
2.Ifodaviy natijalar
3.Ifodalarni hisoblash qoidalari
Operand (inglizcha operand) dasturlash tillarida - operatsiya argumenti; jamoa tomonidan qayta ishlangan ma'lumotlar; amal argumentining qiymatini bildiruvchi ifodani bildiruvchi grammatik konstruksiya [1]. Ba'zan operand operatsiya argumenti paydo bo'lishi kerak bo'lgan matndagi joy, pozitsiya deb ataladi. Demak, operatsiyaning joylashuvi, ya'ni operatsiya argumentlari soni degan tushuncha paydo bo'ladi.
Belgining joylashishiga qarab, amallar prefiks (masalan, * (x - operand)), infiks (masalan, * (a, b - operandlar)) va postfiksga bo'linadi. Operandlar soniga qarab, bitta (unar yoki monad) amallar ajratiladi (masalan, -a); ikki o'rinli (ikkilik, ikkilik) amallar (*); ko'p o'rindiqli (yoki poliadik) operatsiyalar.
Haqiqiy argument sifatida operandning pozitsiyasi va operand o'rtasidagi farq bilan bog'liq holda, operandni operatsiya talab qiladigan shaklga qisqartirish tushunchasi paydo bo'ladi. Misol uchun, agar to'g'ri argument butun son operandining pozitsiyasida bo'lsa, til qoidalari haqiqiy sonni mos keladigan butun songa yaxlitlashning qandaydir usulini nazarda tutishi mumkin. Kastingning yana bir misoli - ob'ekt shaklini o'zgartirish, masalan, skaler bir komponentdan iborat vektorga aylantiriladi.
Operandlar - qiymatlari ma'lumotlarni o'zgartirish operatsiyalarida ishtirok etadigan o'zgaruvchilardir.
Barcha o'zgaruvchilar ro'yxati (kirish ma'lumotlari, oraliq qiymatlar va hisoblash natijalari) har qanday dasturning yana bir muhim elementidir.
Muayyan qiymatga olib keladigan operatsiya belgilari va operandlarning kombinatsiyasi ifoda deyiladi. Amaliyot belgilari operandlarda bajariladigan amallarni belgilaydi. Ifodadagi har bir operand ifoda bo'lishi mumkin. Ifodaning ma'nosi ifodadagi amal belgilari va qavslarning joylashishiga, shuningdek, amallarning ustuvorligiga bog'liq.
SI tilida topshiriq ham ifoda hisoblanadi va bunday ifodaning qiymati tayinlangan qiymatdir.
Ifodalarni baholashda har bir operandning turi boshqa turga aylantirilishi mumkin. Turlarni o'zgartirish operatsiyalar va funksiya chaqiruvlarini bajarishda yashirin bo'lishi mumkin yoki translatsiya operatsiyalarini bajarishda aniq bo'lishi mumkin.
Operand - bu operandlar, operatsiya belgilari va qavslar birikmasidan hosil bo'lgan doimiy, literal, identifikator, funksiya chaqiruvi, pastki kodli ifoda, element tanlash ifodasi yoki yanada murakkab ifoda. Doimiy qiymatga ega bo'lgan har qanday operand doimiy ifoda deyiladi. Har bir operand o'z turiga ega.
Agar doimiy operand sifatida ishlatilsa, u holda uni ifodalovchi doimiyning qiymati va turiga mos keladi. Butun son konstantasi qiymati va yozuv shakliga qarab int, long, unsigned int, unsigned long tipidagi bo‘lishi mumkin. Belgilar konstantasi int tipiga ega. Suzuvchi nuqta doimiysi har doim double tipiga ega.
Literal satr qo'shtirnoq ichiga olingan belgilar ketma-ketligidan iborat bo'lib, xotirada belgilangan belgilar ketma-ketligi bilan ishga tushirilgan char elementlari massivi sifatida ifodalanadi. Satr literalining qiymati satrning birinchi elementining manzilidir va sintaktik jihatdan satr literali char yozish uchun o'zgartirilmaydigan ko'rsatkichdir. String literallari ko'rsatkich qiymatlarini qabul qiladigan ifodalarda operand sifatida ishlatilishi mumkin. Biroq, satrlar o'zgaruvchan emasligi sababli, ularni topshiriqning chap tomonida ishlatib bo'lmaydi.
Shuni esda tutish kerakki, satrning oxirgi belgisi har doim null belgi bo'lib, satr xotirada saqlanganida avtomatik ravishda qo'shiladi.
O‘zgaruvchilar va funksiya identifikatorlari. Har bir identifikator e'lon qilinganda o'rnatiladigan turga ega. Identifikatorning ma'nosi quyidagi turga bog'liq:
butun va suzuvchi turdagi ob'ekt identifikatorlari tegishli turdagi qiymatlarni ifodalaydi;
enum tipidagi ob'ektning identifikatori ro'yxatdagi doimiylar qiymatlari to'plamidan bitta doimiyning qiymati bilan ifodalanadi. Identifikator qiymati doimiy qiymatdir. Qiymat turi int bo'lib, sanab o'tishning ta'rifidan kelib chiqadi;
struct yoki birlashma tipidagi ob'ekt identifikatori tuzilma yoki birlashma tomonidan belgilangan qiymatni ifodalaydi;
ko'rsatgich sifatida e'lon qilingan identifikator tur deklaratsiyasida ko'rsatilgan qiymatga ko'rsatgichni ifodalaydi;
massiv sifatida e'lon qilingan identifikator qiymati massivdagi birinchi elementning manzili bo'lgan ko'rsatgichni ifodalaydi. Ko'rsatkich bilan murojaat qilingan qiymatlarning turi massiv elementlarining turidir. E'tibor bering, dasturni bajarish jarayonida massivning manzilini o'zgartirib bo'lmaydi, garchi alohida elementlarning qiymati o'zgarishi mumkin. Massiv identifikatori tomonidan ko'rsatilgan ko'rsatkich qiymati o'zgaruvchi emas va shuning uchun massiv identifikatori tayinlash bayonotining chap tomonida ko'rsatilmaydi.
funktsiya sifatida e'lon qilingan identifikator qiymati ma'lum bir turdagi qiymatlarni qaytaradigan funktsiyaning manzili bo'lgan ko'rsatgichni ifodalaydi. Funksiya manzili dasturni bajarish jarayonida o'zgarmaydi, faqat qaytariladigan qiymat o'zgaradi. Shunday qilib, funktsiya identifikatorlari tayinlash operatsiyasining chap tomonida paydo bo'lishi mumkin emas.
Funktsiya chaqiruvi iboradan iborat bo'lib, undan keyin qavs ichidagi ifodalarning ixtiyoriy ro'yxati mavjud:
ifoda-1 ([iboralar ro'yxati])
Ifodaning-1 qiymati funksiya manzili bo'lishi kerak (masalan, funksiya identifikatori). Ifodalar ro'yxatidagi har bir ifodaning qiymati funktsiyaga haqiqiy argument sifatida uzatiladi. Funktsiya chaqiruvi operandi funksiyaning qaytariladigan qiymatining turi va qiymatiga ega.
Subscript ifodasi massiv elementini belgilaydi va quyidagi shaklga ega:
ifoda-1 [ifoda-2]
Subscript ifodasining turi massiv elementlarining turi, qiymat esa ifoda-1 va ifoda-2 qiymatlari yordamida manzili baholanadigan qiymatni ifodalaydi.
Odatda ifoda-1 massiv identifikatori kabi ko'rsatgich, ifoda-2 esa butun son qiymatidir. Biroq, ifodalardan faqat bittasi ko'rsatkich, ikkinchisi esa butun son bo'lishi talab qilinadi. Shuning uchun ifoda-1 butun son qiymat bo'lishi mumkin, ifoda-2 esa ko'rsatkichdir. Har qanday holatda, ifoda-2 kvadrat qavs ichiga olinishi kerak. Massiv elementlariga murojaat qilish uchun ko'pincha pastki indeks ifodasi qo'llanilsa-da, baribir pastki indeks har qanday ko'rsatgichda paydo bo'lishi mumkin.
Bir o'lchovli massivning elementlariga havola qilish uchun indeks ifodalari ko'rsatgichning qiymatlariga butun son qiymatini qo'shish va natijaga adreslash operatsiyasini (*) qo'llash orqali hisoblanadi.
Indeks ifodasida ko'rsatilgan ifodalardan biri ko'rsatkich bo'lganligi sababli, qo'shish manzil arifmetikasi qoidalaridan foydalanadi, unga ko'ra butun son qiymati uni ko'rsatgich tomonidan ko'rsatilgan turning o'lchamiga ko'paytirish orqali manzil ko'rinishiga aylantiriladi. . Masalan, arr identifikatori double tipidagi elementlar massivi sifatida e'lon qilinsin.
Shunday qilib, arr massivning i-elementiga kirish uchun arr [i] ni yozish mumkin, bu yuqoridagilardan kelib chiqib, i [a] ga ekvivalentdir. Qiymati i qo'sh tipning o'lchamiga ko'paytiriladi va uning boshidan arr massivning i-elementining manzili hisoblanadi. Keyin bu qiymat arr ko'rsatkichining qiymati bilan qo'shiladi, bu esa o'z navbatida massivning i-elementining manzilini beradi. Qabul qilingan manzilga murojaat qilish operatsiyasi qo'llaniladi, ya'ni. arr massivining elementi yaratilgan manzilda olinadi.
Shunday qilib, arr [i] (yoki i [arr]) subscript ifodasining natijasi massivning i-elementining qiymati hisoblanadi.
Ko'p indeksli ifoda ko'p o'lchovli massivlar elementlariga ishora qiladi. Ko'p o'lchovli massiv - elementlari massiv bo'lgan massiv. Masalan, 3 o'lchamli massivning birinchi elementi 2 o'lchovli massivdir.
Ko'p o'lchovli massivning elementiga murojaat qilish uchun indeks ifodasi kvadrat qavs ichiga olingan bir nechta indeksga ega bo'lishi kerak:
ifoda-1 [ifoda-2] [ifoda-3] ...
Bunday indeks ifodasi chapdan o'ngga talqin qilinadi, ya'ni. birinchi pastki ibora birinchi hisoblanadi:
ifoda-1 [ifoda-2]
Bu ifodaning natijasi manzil ifodasi bo'lib, unga-3 ifoda qo'shiladi va hokazo. Adreslash operatsiyasi oxirgi indeks ifodasi baholangandan keyin amalga oshiriladi. E'tibor bering, agar oxirgi ko'rsatgichning qiymati massivga o'xshash qiymatga murojaat qilsa, manzillash operatsiyasi qo'llanilmaydi.
Birinchi ikkita misol raqamlar va raqamli ifodalarni baholashni o'z ichiga oladi. U erda biz ifodaning yagona qiymatini baholash bilan shug'ullanamiz. Qolgan misollarda o'zgaruvchilarga ega ifodalar bilan bog'liq baholashlar mavjud. Ifoda uchun ODZ yoki bizni qiziqtirgan ba'zi X to'plamidagi o'zgaruvchining har bir qiymati (bu, albatta, qabul qilinadigan qiymatlar diapazonining kichik to'plamidir) ifodaning o'ziga xos qiymatiga ega. Ya'ni, agar ODZ (yoki to'plam X ) dan iborat bo'lmasa birlik, keyin o'zgaruvchiga ega ifoda ifoda qiymatlari to'plamiga mos keladi. Bunday holda, biz bitta qiymatni emas, balki ODZ (yoki X to'plami)dagi ifodaning barcha qiymatlarini baholash haqida gapirishimiz kerak. Bunday baholash ODZ (yoki X to'plami) dan o'zgaruvchining qandaydir qiymatiga mos keladigan ifodaning har qanday qiymati uchun amalga oshiriladi.
Fikrlash uchun biz ifoda qiymatini baholash nimani anglatadi, degan savolga javob izlashdan biroz chalg'itdik. Yuqoridagi misollar bizni bu masalada ilgari suradi va quyidagi ikkita ta'rifni qabul qilishimizga imkon beradi:
Do'stlaringiz bilan baham: |