Digraflar va trigraflar C/C++

2023 Noy 29, 10:11 • Khusanboy Sobirjonov (@uzbek_coder_2022)

C va C++ dasturlash tilida digraflar va trigraflar mavjud bo'lib, mos ravishda ular 2 va 3 belgidan iborat ketma-ketlik. Dasturlash tilining spetsifikatsiyasiga ko’ra, bu belgilar bitta belgi sifatida ko’rib chiqiladi.

Digraflar va trigraflardan foydalanish uchun turli sabablar mavjud :

  1. klaviaturada tilning barcha belgilar majmuasini qamrab oluvchi tugmachalar boʻlmasligi
  2. maxsus belgilar kiritish qiyin boʻlishi
  3. matn muharrirlari baʼzi belgilarni maxsus foydalanish uchun zaxiralashi

mumkin va hokazo. 

Trigraf

2 ta so'roq belgisi va undan keyin keluvchi belgi, jami 3 ta belgi trigrafni ifodalaydi. Hamda shundagi eng so'nggi belgi orqali kompilyatsiya jarayonida mos ekvivalent belgi olinadi. Buning uchun jadvalga qarang.Misol :

Yuqoridagi kod quyidagi ko'rinishda bo'ladi :

#include <stdio.h>
int main() 
{
    char n[5];
     n[4] = '0' - (~0 ^ 1 | 2);
    printf("%c\n", n[4]);
    return 0;
}

Kodda natija esa 2 chiqadi.

IBM kompaniyasi noroziligi tufayli C++11 standartida trigraflar saqlab qolingan bo'lsada, trigraflarni C++17 standartida chiqarib yuborish taklif qilindi (eskirish natijasida) va qoʻmita ovozidan oʻtdi hamda IBM qarshiligiga qaramay trigraflar C++ 17 dan olib tashlandi.

Digraf

1994-yilda C standartiga me'yoriy tuzatish kiritildi va C99 da beshta digraflarni trigraf kabi o'qilishi mumkin bo'lgan alternativ sifatida taqdim etdi. Bular :

Trigraflardan farqli o'laroq, digraflarni preprotsessor bilan almashtirish leksik tahlildan so'ng va digraf alohida token bo'lsagina amalga oshiriladi. 

Misol :

#include <iostream>
int main() {
    int m[] = {10};
     std::cout << m[0];
}

Kodda natija 10 chiqadi.

Qo'shimcha operatorlarning faqat belgi sifatida emas, balki unga qo'yilgan nom orqali ham ishlata olamiz. Asosan, biz mantiqiy operatorlarni bilar edik bunday holatda. Quyidagi jadvalga e'tibor bering :

Yuqoridagi jadvalda operator nomlaridan foydalanib, quyidagi kodni yozdik :

((compl a bitor b) bitand c) = ((~a | b) & c)

kabi ifodaga tengdir.

Foydalanilgan saytlar
  1. Wikipedia1
  2. Wikipedia2
  3. Wikipedia3

Dunyoda turmoq uchun dunyoviy fan va ilm lozimdur, zamona ilmi va fanidan bebahra millat boshqalarga poymol bo'lur.

©️Mahmudxo'ja Behbudiy

319 marta ko'rildi
Khusanboy Sobirjonov - uzbekdevs photo

Khusanboy Sobirjonov

@uzbek_coder_2022

Telegram Post

@uzbekdevs
“uzbekdevs.uz” saytida eʼlon qilingan materiallardan nusxa koʻchirish, tarqatish va boshqa shakllarda foydalanish faqat manba ko'rsatilishi orqali amalga oshirilishi mumkin.
© UzbekDevs