II-BOB MA’LUMOTLAR TARKIBI VA ALGORITMLAR
2.1 Ma’lumotlar
tarkibi va algoritmlar to`risida
tushuncha
Ma’lumotlar
tarkibi va algoritmlar shunday tushunchalarki, ulardan dasturlar tuziladi.
Bundan ham tashqari kompyuterni o`zi
ma’lumotlar tarkibi va algoritmlardan tashkil topadi.
Yaratilgan ma’lumotlar tarkibi xotiraning shunday registrlari va xotirasi
bilan tasvirlanganki, unda ikkilik miqdorlar saqlanadi. Apparatura
konstruktsiyasida singdirilgan algoritmlar, bu elektron zanjirlarda o`z aksini
topgan qat’iy qoidalar bo`lib, ular bo`yicha xotiraga joylashtirilgan
ma’lumotlarni bajarish uchun mo`ljallangan buyruqlar sifatida talqin qilinadi.
Shuning uchun ham har bir kompyuter ishining asosida faqat bitta ko`rinishdagi
ma’lumotlar bilan ishlay olishi mumkin. Bu ma’lumotlar alohida bitlar yoki
ikkilik raqamlari bo`ladi. Ushbu ma’lumotlar bo`yicha kompyuterning markaziy
prosessorining komandalari tizimi o`zgartirilmaydigan algorotmlar naboriga mos
ravishda ishlaydi.
Dasturlarning abstrakt ma’lumotlar tarkibi va algoritmlari aniq ifodalash
uchun dasturlash tillari deb atalgan formal belgilashlartizimini ishlatiladi.
Dasturlash tillarida har bir gap aniq va bir qiymatli aniqlanadi. Barcha
dasturlash tillarida o`zgaruvchilar, konstantalarni belgilash (nomlash) uchun
identifikatorlar ishlatiladi. Ba’zi dasturlash tillarida konstantalarni
qiymatlari butun dastur bajarilish jarayonida o`zgarmaydi, ba’zi bir tillarda
esa ularni o`zgartirish mumkin.
Endi identifikator tushunchasiga ta’rif beramiz.
Harf va raqamlar kombinatsiyasidan tashkil topgan va faqat harf bilan boshlanuvchi
so`z identifikator deb ataladi.
Masalan: A, A12, Ab42C, TI134 va h.k.
Ba’zi dasturlash tillarida identifikatorlarni belgilashda ba’zi bir
belgilar ham ishlatiladi.
Masalan: _A404, _ABBA2 va h.k.
Konstantalarning yoki o`zgaruvchilarning nomlari dasturchiga yordam
beradi, lekin kompyuter uchun ular hech narsani anglatmaydi. Kompilyatorlar esa
identifikatorlar uchun xotirani aniq adresi uchun xotira ajratadi. Kompilyator
ishlashi, ya’ni har bir nomlangan miqdorlarni (identifikatorlarni) tipini bilishi
kerak. Odam esa nomlangan o`zgaruvchilarni tiplarini intuitiv tarzda biladi va
shunga qarab ish qiladi. Ma’lumki, kompyuter uchun ma’lumotlarni barcha tiplari
natijada bitlar ketma-ketligiga keltiriladi, shuning uchun ham ularning
tiplarini oshkor holda aniqlash zarur.
Dasturlash tillarida qabul qilingan tiplar natural, butun va haqiqiy
sonlar, literlar, qatorlar va h.klardan iborat.
Ba’zi bir
dasturlash tillarida har bir konstanta va o`zgaruvchilarni tiplari o`zlashtirilayotgan qiymatlarga ko`ra kompilyatorlar
tomonidan aniqlanadi. Masalan, o`nlik nuqta haqiqiy son belgisi hisoblanadi.
Boshqa bir dasturlash tillarida esa dasturchidan o`zgaruvchilarni qiymatlarini
tiplarini oshkor ko`rsatish talab etiladi.
Dasturlash tillarining vazifasiga
qarab tiplarni himoyasi ularning ba’zi birlarida juda ham qat’iy ba’zilarida
esa unchalik qat’iy bo`lmagan bo`lishi
mumkin.
Masalan: Pascal (bu til yaratilishidan boshlab ma’lumotlar tarkibi va
algoritmlarni illyustrasiya qilish uchun yaratilgan) boshidan boshlab tiplar
himoyasi juda ham qat’iydir. Pascal – kompilyator ko`p hollarda bir ifodada har
xil tiplar va o`zgaruvchilarni aralashmasi uchun faqat (tuzatib bo`lmaydigan)
xatolarga olib kelishi mumkin. Bunga qarama-qarshi C tili esa bu hol uchun
uning kompilyatori faqat bu to`rida ogohlantiradi xolos. Demak bu tilda tiplar
etarlicha himoya etilmagan, tilning o`zi esa tizimli dasturlash uchun
yaratilgan. Demak dasturchi C tilida dastur tuzgan o`zining bu “qiliqlari”
uchun o`zi javob beradi.
Xulosa: Ma’lumotlar tarkibi mohiyati bo`yicha “fazoviy” tushunchaga tegishli:
uni kompyuter xotirasida ma’lumotlarni tashkil etish sxemasiga olib kelish
mumkin. Algoritm esa dastur tarkibida prosedurali elementga mos keladi va u
hisoblash uchun resepti hisoblanadi.
Birinchi algoritmlar sonlarni ko`paytirish, eng katta umumiy bo`luvchini
topish, trigonometrik funktsiyalarni qiymatlarini hisoblash va h.k.lar bo`lgan.
Hozirgi kunda bular bilan bir qatorda sonli bo`lmagan algoritmlar o`ta
muhim hisoblanadi. Ular matndagi berilgan so`zlarni qidirishda, hodisalarni
rejalashtirishda, ko`rsatilgan tartibda ma’lumotlarni saralash va h.k.da
ishlatiladi. Bundan tashqari ularni loyihalashtirish (hosil qilish) va
tushunishda hech qanday chuqur matematik tushunchalar kerak emas. Lekin bu
erdan bunday algoritmlarni o`rganishda matematika o`rni yo`q degan tushuncha
kelib chiqmaydi, aksincha matematik usullar sonli bo`lmagan masalalarni
yechishda, eng yaxshi yechimni topishda hamda bu yechimlarni to`riligini
isbotlashda juda ham zarur.
Algoritmlarda ishlatiladigan ma’lumotlar tarkibi o`ta murakkab bo`lishi
ham mumkin. Ma’lumotlarni tasvirlashni to`ri tanlash natijasida muvaffaqiyatli
dasturlashda kalit bo`lib xizmat qiladi va ishlatilayotgan algoritm detaliga
nisbatan dasturlarni samaradorlik darajasiga o`zini katta hissasini qo`shadi.
Qilinishi kerak bo`lgan ishlarni eng yaxshisi, bu barcha tayanch “ishtchalar”
va ulardan yaratilgan tuzilmalarni nimaligini mohiyatini tushunib etishdir. Bu
bilimlar asosida katta tizimlarni yaratish eng avvalo bu muhandislik mahorati
va amaliyotining ishidir.
Ma’lumotlar tarkibi va algoritm tushunchalarini o`quvchini yanada puxta
bilim olishi uchun biz D. Knutni “Искусство программирования” (“Dasturlash san’ati”) nomli uch tomlik kitobni
o`rganishni takilf etamiz.
Ma’lumotlar tarkibini EHM xotirasida tasvirlash, ma’lumotlar tabiati va
ularni saqlash, sanoq tizimlari to`risidagi ma’lumotlar “Dasturlash maxsus
kursi” o`quv qo`llanmasida keltirilgan.