Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
39
Belgili ma’lumotlar kompyuterlarda raqamli kodlash orqali saqlanadi.
Kodlashning eng ko‘p tarqalgan tizimi ASCII (American
Standard Code for
Information Interchange – Axborot almashinuvi uchun Amerika standart kodi) bo‘lib,
bunda 128 turli belgilarni kodlash uchun 0127 qiymatli diapazon qo‘llaniladi.
Alohida belgilar kodlarini qayta ishlashni ta’minlovchi vositalar sifatida ko‘pchilik
dasturlash tillari ular uchun alohida asosiy tip ko‘rib chiqadi.
Kommersiya dunyoviylashuvi va kompyuterlar orasidagi aloqalarning
zaruriyligi natijasida, butun dunyo bo‘ylab ASCII belgilar to‘plami
tezroq keraksiz
bo‘lib bormoqda. Yaqinda alternativ 16 bitli belgilar to‘plami ishlab chiqildi, u
Unicode nomini oldi. Ushbu to‘plamda dunyoning ko‘pgina tabiiy tillarining belgilari
kiritilgan. Masalan, unda kirilcha belgilar va taycha raqamlar mavjud. Unicode
belgilar to‘plamini birinchi bo‘lib qo‘llagan dasturlash tili Java tili hisoblanadi, ammo
ushbu to‘plam albatta boshqa keng tarqalgan tillarda ham qo‘llanila boshlaydi.
Belgili satrlar
Belgili satrlar belgilar ketmaketligi hisoblanadi. O‘zgarmas
belgili satrlar
natijalar chiqarilishini o‘zi bilan birga olib keladi, barcha ma’lumot tiplarini kiritish va
chiqarish ko‘pincha satrlar orqali bajariladi. Albatta, belgili satrlar barcha dasturlarda
asosiy rol o‘ynaydi.
Ishlab chiqarish muammolari
Quyida belgili satrlar bilan bog‘liq ishlab chiqarishning ikkita asosiy muammosi
keltirilgan.
Satrlar oddiygina belgilardan iborat bo‘lgan massivlar xilmaxilligi yoki
elementar tip (massivga xos indeksatsiyasiz) bo‘lishi mumkinmi?
Satrlar statistik yoki dinamik uzunlikka ega bo‘lishi kerakmi?
Satrlar va ular ustida amallar
Agar satrlar elementar tip kabi aniqlanmagan bo‘lsa, satrli ma’lumotlar,
odatda, alohida belgilardan iborat massivlarda saqlanadi va ularga massiv elementi
bo‘libgina ssыlkalanish mumkin. Bunday yondashuv Pascal, C, C++ va Ada dasturlash
tillarida qabul qilingan. Pascal tilida satrlar asosiy tip bo‘lmaydi va packed atributiga
ega char massivlariga qiymatlar berish mumkin va ular munosabatlar operatorlari
orqali o‘zaro taqqoslanishi mumkin.
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
40
Ada tilida STRING tipi o‘rnatilgan hisoblanadi va bir o‘lchamli elementlar
massivini aniqlaydi, ular CHARACTER tipiga tegishli. Quyi satrni chaqirish butun sonli
diapazon
orqali beriladi, ular aylana qavsga olingan hamda kerakli belgilar
joylashuvini ko‘rsatadi. Masalan,
NAME1 (2:4)
buyrug‘i ikkinchi, uchinchi va to‘rtinchi satr belgiidan iborat quyi satrni beradi.
Ada tilida belgilar satri konkatenatsiyasi operatsiya bo‘lib, & belgii bilan
beriladi. Keyingi operator NAME2 o‘zgaruvchisini NAME1 o‘zgaruvchisi
qiymati
bo‘lgan satrning o‘ng oxiriga oxiriga qo‘yishni bajaradi:
NAME1 := NAME1 & NAME2;
Masalan, agar NAME1 o‘zgaruvchisi “PEACE” satriga ega bo‘lib, NAME2
o‘zgaruvchisi “FUL” satriga ega bo‘lsa, qabul qilish operatsiyasidan so‘ng NAME1
o‘zgaruvchisi “PEACEFUL” satriga ega bo‘ladi.
S va S++ tillarida belgilar satrini saqlash uchun char massivlaridan
foydalaniladi; satrlar bilan amallar to‘plami esa string.h sarlavhali faylli odatiy
kutubxonada ko‘rib chiqilgan. Satrlar bilan bajariluvchi
amallar va kutubxona
funksiyalarining ko‘pchiligida belgilar satrlari alohida belgi bilan tugallanadi deyiladi:
nolli bayt bo‘lib, 0 soni bilan taqdim etiladi.
char *str = “apples”;
Ushbu misolda str – char tipining ko‘rsatkichi bo‘lib, apples0 belgilar satrini
manzillaydi, bu yerda 0 – nol belgii. str ko‘rsatkichini initsializatsiyalashga ruxsat
berilgan, chunki belgilar satrlarining literallari char tipi ko‘rsatkichliari orqali taqdim
etiladi.
C va C++ tillarida keng tarqalgan kutubxona funksiyalarining ba’zilarini
aytib
o‘tamiz, ular belgilar satrlari bilan amallar bajaradi. Ushbu strcpy funksiyasi satrlarni
joyini o‘zgartiradi; strcat funksiyasi bir mavjud satrni boshqasi bilan
konkatenlashtiradi; strcmp funksiyasi ikki berilgan starlarni taqqoslaydi (ASCII kodi
bo‘yicha).
FORTRAN 77, FORTRAN 90 va BASIC tillarida satralr asosiy tiplar kabi
interpretatsiya qilinadi
va ular uchun qaabul qilish, konkatenatsiya, ssыlka va
munosabatlar operatorlari ko‘ri chiqilgan.
Quyidagi dastur bo‘lagini ko‘rib chiqamiz:
LETTER = ‘abcdefghijklmnopqrstuvwxyz’
WORDPAT = BREAK (LETTER) SPAN (LETTER) . WORD
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
41
LETTER – bu tezkor xarflarning baridan iborat
satr qiymati hisoblangan
qiymatdir. WORDPAT – bu namuna bo‘lib, u quyidagicha so‘zlarni tavsiflaydi: harf
topilmaguncha boshida barcha belgilar qo‘yiladi, keyin esa to harf bo‘lmagan belgi
topilmaguncha ushbu harflar birlashtiriladi. Namuna “.” operatoriga ham ega.
Ushbu namuna operatorda ham qo‘llanilishi mumkin
TEXT WORDPAT
“+” belshisi ismda kamida bitta belgi bo‘lishi lozimligini bildiradi. Shunday
qilib,
butun etalon satrga mos, bundan so‘ng esa kamida bitta harflar yoki sonlar
keladi.
Quyidagi iboraviy namuna ko‘rib chiqamiz:
/\d+\.?\d*|\.\d+/
Ushbu namuna sonli o‘zgarmaslarga mos. \. belgilari sonning o‘nlik kattaligida
nuqta beradi.