MANTIQIY AMALLARNI ARIFMETIK AMALLAR ORQALI
IFODALASH VA HISOBLASH ALGORITMI
Rayimov D. J.,
SamDUmagistratura talabasi, dinislom971@gmail.com
Mantiqiy inkor, koyunksiya, dizyunksiya, implikatsiya, ekvivalensiya, ikki moduli bo'yicha qo'shish, sheffer shtrixi, pirs strelkasi amallarni arifmetik amallar orqali quyidagicha ifodalash mumkin:
otr : (x) (1 - x);
kon := (x, y) (x * y);
diz := (x, y) (x + y - x * y);
imp := (x, y) (1 - x + x * y);
eqv := (x, y) (1 - x - y + 2* x * y);
mod 2 := (x, y) (x +t - 2* x * y);
shef := (x, y) (1 - x * y);
pirs := (x, y) (1 - x - y + x * y);
Bunda, quyidagi moslik o‘rnatilgan:
otr- inkor;
kon- koyunksiya;
diz- dizyunksiya;
imp-implikatsiya;
eqv- ekvivalensiya;
mod2- ikki moduli bo'yicha qo'shish;
shef- sheffer shtrixi;
pirs- pirs strelkasi.
Endi, mantiqiy formula arifmetik amallar orqali ifodalanganligi uchun uni chinlik jadvalini hisoblashda arifmetik ifodalarni teskari polyakcha yozuvga o‘tkazish va hisoblash algoritmdan foydalanish mumkin.
Arifmetik ifodalarni yozuvidagi qavslardan qutulish uchun teskari polyakcha yozuvga (T.P.Y) o‘tish qulay hisoblanadi. Teskari polyakcha yozuvga ga o‘tgan ifodalar qiymatini ketma-ket chapdan o‘nga tomon hisoblash mumkin. teskari polyakcha yozuvga almashtirishning ikkita eng ko‘p uchraydigan usuli mavjud.
Bizga belgili char tipidagi o‘zgaruvchilar uchun stek kerak bo‘ladi, chunki berilgan ifoda satr ko‘rinishida bo‘ladi.
Teskari polyakcha yozuvni hosil qilish uchun 3 xil maydon bor deb hisoblaymiz. 1-maydonga berilgan ifoda, 3-maydonga natija yoziladi, 2-maydonda amallar steki hosil qilinadi.
Navbatma-navbat har bir belgini tekshiramiz:
Agar bu belgi-son yoki o‘zgaruvchi bo‘lsa, u holda uni chiqish maydoniga joylashtiramiz.
Agar belgi-amal ishorasi (+,-,*, / ) bo‘lsa, u holda berilgan amal imtiyozini(prioritet) tekshiramiz. Ko‘paytirish va bo‘lish amallari eng ko‘p imtiyozga ega (faraz qilaylik u 3 ga teng bo‘lsa). Qo‘shish va ayirish amallari kichik imtiyozga ega (2 ga teng). Eng kichik imtiyoz (1 ga teng) ochuvchi qavsga ega.
Bu simvollardan birini olib biz stekni tekshirishimiz lozim.
Agar stek ham bo‘sh bo‘lsa, yoki undagi simvolda (unda faqat amallar ishoralari va ochuvchi qavs bo‘lishi mumkin) joriy simvol imtiyozidan kam imtiyozga ega bo‘lsa, u holda joriy simvolini stekga joylashtiramiz.
Agar stek uchidagi simvol joriy simvol imtiyozidan katta yoki teng imtiyozga ega bo‘lsa, u holda stekdan simvollarni chiquvchi satrga bu shart bajarilguncha o‘tkazaveramiz va keyin a) bandga o‘tamiz.
Agar joriy simvol-ochuvchi qavs bo‘lsa, u holda uni stekga joylashtiramiz.
Agar joriy simvol-yopuvchi qavs bo‘lsa, u holda stekdan simvollarni chiqaruvchi satrga o‘tkazaveramiz (ya’ni 1 imtiyozli simvol) uni esa yo‘qotib yuboramiz. Chiquvchi qavs ham yo‘qotiladi.
Do'stlaringiz bilan baham: |