Rasmiy grammatika.
Arifmetik formulalar to'plamini belgilaydigan oddiy tilning misolini ko'rib chiqing. Formulalar arifmetik belgilar, sonlar va qavslardan iborat bo'lishi mumkin. Bunday til o'z grammatikasini tuzishning ma'lum qoidalarini o'z ichiga oladi. Har bir qoida o'ng va chap tomonga ega. Shu bilan birga, qoidadagi ⇒ belgisining chap tomonida faqat bitta terminal bo'lmagan belgi mavjud.
Bu alifbodagi terminal belgilar to'plami quyidagicha bo'ladi:
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '-', ' * ',' / ',' (',') '}
Terminal bo'lmagan alifbo quyidagicha:
{EXPRESSION, DIGIT, NUMBER, SIGN}
Til grammatikasi qoidalari:
1. Ifoda - bu belgi bilan bog'langan ikkita ibora:
BOShQA ⇒ BOShQA BELGISI
2. Ifoda - bu son:
BOShQA RAKAM
3. Ifoda - bu qavs ichidagi ifoda.
BOShQA ⇒ (BOShQA)
4. Ifoda yo ortiqcha, na minus, na ko'paytirish yoki bo'lish:
KIRISH ⇒ + | - | * | /
5. Raqam - bu raqam:
NUMBER ⇒ NUMBER
6. Raqam - bu raqam va raqam:
NUMBER ⇒ NUMBER DIGIT
7. Raqam 0 yoki 1, ..., yoki 9:
Raqam ⇒ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | to'qqiz
Boshlang'ich bo'lmagan:
FORMULA
Formulani chiqarish:
Formalni (25 + 3) rasmiy grammatik xulosa qoidalari yordamida olamiz. Chiqish ketma -ketligi quyida ko'rsatilgan, har bir tokni almashtirish chizilgan.
3 -qoida: EXPRESSION ⇒ (EXPRESSION)
1 -qoida: (BILDIRISH) ⇒ (BOShQA BELGILARI)
4 -qoida: (BELGI BILGISI) ⇒ (EXPRESSION + EXPRESSION)
2 -qoida: (EXPRESSION + EXPRESSION) ⇒ (EXPRESSION + NUMBER)
5 -qoida: (EXPRESSION + NUMBER) ⇒ (EXPRESSION + NUMBER)
7 -qoida: (EXPRESSION + DIGIT) ⇒ (EXPRESSION + 3)
2 -qoida: (EXPRESSION + 3) ⇒ (NUMBER + 3)
6 -qoida: (NUMBER + 3) ⇒ (Raqam + 3)
5 -qoida: (DIGIT + 3) ⇒ (DIGIT DIGIT + 3)
7 -qoida: (Raqamli raqam + 3) ⇒ (2 raqamli + 3)
7 -qoida: (2 DIGIT + 3) ⇒ (2 5 + 3)
Dasturiy ta'minotni amalga oshirish
1C tilidagi ifoda tahlilini dasturiy ta'minot bilan amalga oshirish quyidagi operatsiyalarni tahlil qilishni o'z ichiga oladi:
1. Arifmetik amallar: "+" (qo'shish), "-" (ayirish), "*" (ko'paytirish), "/" (bo'linish).
2. Amallarning ustuvorligini o'zgartirish: "(" (ochiq qavs), ")" (yaqin qavs).
3. Taqqoslash operatsiyalari: "" (katta), "=" (katta yoki teng), "=" (teng), "<>" (teng emas).
4. Matematik funktsiyalar:
• Butun son (x1) - sonning butun qismi. Parametrlar: x1 - boshlang'ich raqam;
• Okr (x1, x2) - yaxlitlash. Parametrlar: x1 - asl raqam, x2 - qabul qilingan raqamning bit kengligi. Agar parametr manfiy bo'lsa, unda asl raqam butun sonning mos keladigan raqamiga yaxlitlanadi;
• Ln (x1) - natural logarifma. Parametrlar: x1 - boshlang'ich raqam;
• Lg (x1) - O'nlik logarifm. Parametrlar: x1 - boshlang'ich raqam;
• Gunoh (x1) - Sinus. Parametrlar: x1 - funktsiya argumenti;
• Kos (x1) - Kosinus. Parametrlar: x1 - funktsiya argumenti;
• Tg (x1) - teginish. Parametrlar: x1 - funktsiya argumenti;
• Asin (x1) - Arkinsin. Parametrlar: x1 - funktsiya argumenti;
• Acos (x1) - Ark kosinusi. Parametrlar: x1 - funktsiya argumenti;
• Atg (x1) - Arktangens. Parametrlar: x1 - funktsiya argumenti;
• Pow (x1, x2) - eksponentatsiya. Parametrlar: x1 - tayanch, x2 - eksponent;
• Sqrt (x1) - Kvadrat ildiz. Parametrlar: x1 - funktsiya argumenti;
• Abs (x1) - son moduli. Parametrlar: x1 - boshlang'ich raqam;
• Exp (x1) - x1 darajadagi e raqami. Parametrlar: x1 - funktsiya argumenti;
• Pi (x1) - x1 soniga teng pi son. Parametrlar: x1 - eksponent;
• Cmp (x1, x2, x3) - shartli filial. Agar x1> = 0 bo'lsa, u holda cmp = x2, aks holda cmp = x3. Parametrlar: x1 - nolga nisbatan raqam, x2, x3 - shartlar qiymati;
• Agar (x1, x2, x3) - Shartli tarmoq. Agar x1 = 0 bo'lsa, u holda = x2, aks holda = x3 bo'lsa. Parametrlar: x1 - nolga nisbatan raqam, x2, x3 - shartlar qiymati;
• Min (…) - Minimal qiymat;
• Maks (…) - Maksimal qiymat;
• Va (...) - "AND" mantiqiy operatori;
• Yoki (…) - "OR" mantiqiy operatori.
5. Belgilar qatorini ajratish: "’ "(apostrof).
6. Jadvalning o'zgaruvchilari: (). O'tkazilgan jadvalda ma'lum qiymatga ega bo'lgan katakchani topadi. Masalan, About ("522000") funktsiyasi "522000" identifikatori bo'lgan qatordagi "Haqida" ustunida ko'rsatilgan qiymatni topadi. Agar bir nechta bunday identifikator topilsa, u holda kataklarning qiymatlari qo'shiladi.
Do'stlaringiz bilan baham: |