Sayt bo'limlari
Muharrir tanlovi:
- Nima uchun noutbukga kichik SSD kerak va unga Windows-ni o'rnatishga arziydimi?
- Ramka kiritish. Ramkalar yaratish. noframes zaxirasini ta'minlash
- Windows tizimini qayta tiklash Hech qachon tugamaydigan avtomatik tiklashga tayyorgarlik
- Dasturlar yordamida flesh-diskni ta'mirlash Noutbukdagi USB portni qanday tuzatish kerak
- Disk tuzilishi buzilgan, o'qish mumkin emas, nima qilishim kerak?
- Qattiq disk kesh xotirasi nima va u nima uchun kerak?Kesh hajmi nima uchun javob beradi?
- Kompyuter nimadan iborat?
- Tizim blokining tuzilishi - qaysi komponentlar kompyuterning ishlashi uchun javobgardir Tizim blokining ichki qurilmalari xususiyatlari
- Qattiq diskni SSD ga qanday o'zgartirish mumkin
- Kirish qurilmalari kiradi
Reklama
2 asosiy asosiy va tuzilgan ma'lumotlar turlari. Asosiy algoritm dizaynlari |
3.2.1 Oddiy va tuzilgan ma'lumotlar turlari. Ma'lumotlar tuzilmalari - yozuvlar, massivlar, ro'yxatlar. O'zgaruvchilar Dasturlash jarayonida odatda ma'lum miqdordagi ma'lumotlarni (oraliq natijalar, sodir bo'lgan voqealar, kiritilgan ma'lumotlar, chiqish ma'lumotlari va boshqalar) eslab qolish kerak. Ushbu qiymatlar xotirada saqlanishi kerak. Buning uchun xotirada ma'lumotlarni saqlash uchun foydalaniladigan joy e'lon qilinadi va bu e'lon qilingan joy o'zgaruvchi deb ataladi. Saqlanadigan ma'lumotlar juda xilma-xil bo'lishi mumkinligi sababli, o'zgaruvchini e'lon qilishda ushbu o'zgaruvchida (o'zgaruvchi turi) saqlanadigan ma'lumotlar turi ham e'lon qilinadi. Oddiy turlar Oddiy turdagi o'zgaruvchilar uchun kalit so'z ostida bitta qiymat (ko'pincha raqam sifatida o'qiladi) yashiringan va unga bevosita kirish mumkin. Eng mashhur oddiy turlar: belgili butun son, ishorasiz butun son, kasr son (vergul bilan), belgi, mantiqiy. Turli tillarda ular biroz farq qilishi mumkin. Strukturaviy turlar Strukturaviy turlar bo'lsa, bir nechta qo'shma qiymatlar nuqta koordinatalari yoki shaxsning ismi va familiyasi kabi bitta kalit so'z ostida guruhlangan. Ushbu shaklda ma'lumotlar to'plamini bir vaqtning o'zida uzatish osonroq. Shu bilan birga, struktura ichidagi ma'lumotlarni birma-bir ishlatishingiz yoki o'zgartirishingiz kerak. Massivlar Massiv - bir xil nomga ega bo'lgan va bir-biridan indeks bilan ajratilgan bir xil turdagi ma'lumotlar to'plami. Massivlar bir xil turdagi ma'lumotlarni qayta ishlashni sezilarli darajada osonlashtiradi. Qayta ishlashning qulayligi shundan kelib chiqadiki, dasturni bajarish jarayonida siz shunchaki indeksni o'zgartirishingiz va shu bilan kerakli o'zgaruvchiga osonroq kirishingiz mumkin. Tartib raqami yordamida massivdan o‘zgaruvchining qiymatini olish kompyuter uchun juda tez ishdir. Massivlar bir o'lchovli (qator, qator), ikki o'lchovli (jadval, matritsa), uch o'lchovli (kub) va boshqalar bo'lishi mumkin. Misol (C#, Java) int massa = yangi ; //o'nta butun sonni saqlash uchun massiv yarating massa=1; //1-qiymat 0 indeksida yoziladi Qo'shimcha o'qish: http://enos.itcollege.ee/~jpoial/java/i200loeng4.html Xabarlar Yozuvlar birgalikda tegishli to'plamni tashkil etuvchi har xil turdagi ma'lumotlarni saqlash uchun ishlatiladi. Masalan, shaxsning yozuvi quyidagi ma'lumotlardan tuziladi: ism (matn), familiya (matn), jins (mantiqiy qiymat, 0 - ayol, 1 - erkak), vazni (kasr soni). Ushbu ma'lumotlar bir shaxsni tavsiflashda bir butunni tashkil qiladi, ammo ularning o'zlari juda xilma-xildir. Misol (C#) struktinimen { publicstring eesnimi; publicstring perenimi; publicbool jinsiy aloqa; ommaviy float vazn; Ushbu yozuv bilan biz kasutaja (foydalanuvchi) o'zgaruvchisini yaratishimiz va foydalanuvchiga ism, familiya, jins va vazn qiymatlarini belgilashimiz mumkin: inimene kasutaja; kasutaja.eesnimi ="Jan" ; kasutaja.perenimi ="Mets" ; kasutaja.sex = 1; kasutaja.weight = 80,0; Ro'yxatlar va daraxtlar Hozirgi vaqtda ro'yxatlar ko'pincha ma'lumotlarni saqlash uchun ishlatiladi. Agar ro'yxatning har bir elementi o'zidan keyingi elementga ishora qilsa, u bog'langan ro'yxatdir; bunday ro'yxatning oxiri bo'sh element bilan ko'rsatiladi (null). Har bir element faqat keyingisiga ishora qiluvchi bog'langan ro'yxat bir yo'nalishli ro'yxat deb ataladi. Har bir element keyingi va oldingi elementlarga ishora qiluvchi bog'langan ro'yxat ikki tomonlama deyiladi. Birinchi va oxirgi element bo'lmagan va har bir element keyingisiga ishora qiladigan bog'langan ro'yxat aylanma ro'yxat deb ataladi. Bog'langan ro'yxatning uzunligi uning elementlari soni bilan belgilanadi. Ro'yxatning birinchi elementi bosh, qolgan elementlar esa quyruqdir. Stack - bu bog'langan ro'yxat bo'lib, unda oxirgi qo'shilgan element birinchi bo'lib o'qiladi (LIFO - Oxirgi kiruvchi birinchi chiqadi). Navbat - bu bog'langan ro'yxat bo'lib, unda birinchi qo'shilgan element birinchi o'qiladi (FIFO - Birinchi kiruvchi birinchi chiqadi). Qo'shimcha o'qish: http://www.cs.tlu.ee/~inga/alg_andm/linked_list_C_2011.pdf Daraxt - bu ma'lumotlar daraxt shaklida joylashtiriladigan ma'lumotlar strukturasi bo'lib, cho'qqilarni (ko'rsatkichlarni) bog'laydigan uchlari (English Node) va yoylardan (English Edges) iborat. Yuqorida joylashgan cho'qqi bilan yoylar bilan bog'langan cho'qqilar bolalar deb ataladi va bu holda yuqorida joylashgan cho'qqi ota-ona hisoblanadi. Eng yuqori cho'qqi - ildiz. Bolalari bo'lmagan cho'qqiga barg deyiladi. Yuqoridan ota-onaga, u erdan keyingi ota-onaga o'tish va hokazo. ildiziga etib boramiz. Ajdodlar - bu ko'rib chiqilayotgan cho'qqidan ildizgacha bo'lgan yo'lda joylashgan barcha cho'qqilar. Daraxt balandligi bargdan ildizgacha bo'lgan eng uzun yo'l bilan belgilanadi. Tartibli daraxt bo'lsa, ildiz va unga to'g'ridan-to'g'ri bog'langan cho'qqilar birinchi darajali tugunlar (ildizning bolalari), to'g'ridan-to'g'ri birinchi darajali cho'qqilarga bog'langan cho'qqilar esa ikkinchi darajali cho'qqilar (birinchi darajali cho'qqilarning bolalari) va h.k. .; Bolalarning chapdan o'ngga tartibi ham muhimdir. Qo'shimcha o'qish: http://www.cs.tlu.ee/~inga/alg_andm/tree_gen_2011.pdf Ikkilik daraxt - har bir ota-onaning bitta farzandi bo'lishi mumkin bo'lgan, ikkita farzandi yoki umuman farzandi bo'lmagan daraxt bo'lib, bolalarning tartibi muhim ahamiyatga ega. Ikkilik qidiruv daraxti tartiblangan ikkilik daraxtdir. Cho'qqining chap tomonida har doim kichikroq raqam va o'ng tomonda har doim kattaroq raqam mavjud. Bunday daraxtni izlashda izlanayotgan qiymat ildiz bilan solishtiriladi va agar izlangan qiymat ildizga teng bo'lsa, u mavjud va topiladi. Agar kerakli qiymat ildizga teng bo'lmasa, taqqoslash operatsiyasi mos ravishda davom etadi, kerakli narsani o'ng yoki chap tomonda joylashgan cho'qqilar to'plami bilan ular barglarga yetguncha solishtiradi. Agar qidirilayotgan qiymat cho'qqilardan birining qiymatiga teng bo'lsa, u holda qidirilayotgan element topiladi va mavjud bo'ladi, lekin bunday cho'qqi topilmasa, bu daraxtda qidirilayotgan element mavjud emas. Ushbu qidirish usuli massiv yoki bog'langan ro'yxatni to'liq aylanib o'tishdan ko'ra ko'p marta tezroq. B daraxti qidiruv daraxti bo'lib, unda har bir tugundagi bolalar soni (t-1) dan (2t-1) oralig'ida bo'ladi, bu erda t har qanday doimiydir. B*-daraxt - bu B-daraxt bo'lib, uning cho'qqilari 2/3 ga to'ldirilgan bo'lib, avval tugmachalarni qayta taqsimlash yo'li bilan ikkita kichik cho'qqilarni to'ldirish va keyin ularni 3 ta burchakka bo'lish yo'li bilan to'ldiriladi. Shu sababli, B-daraxt daraxt chuqurligini ikkilik daraxtga qaraganda kamroq saqlashga imkon beradi. To'ldirishni cheklash orqali, shuningdek, oraliq darajalarda ishlatiladigan xotira miqdorini aniq belgilangan chegaralar ichida ushlab turish va shu bilan birga ma'lumotlarni tegishli joyga darhol qo'shish mumkin. Kompozit, yoki strukturaviy, ma'lumotlar turlari, oddiylaridan farqli o'laroq, bitta umumiy nom bilan murakkab qiymatlar to'plamini belgilaydi. Aytishimiz mumkinki, strukturaviy tiplar mavjud bo'lganlar asosida yangi ma'lumotlar turlarini yaratishning ma'lum bir usulini belgilaydi. Shunday qilib, o'zboshimchalik bilan murakkablikdagi ma'lumotlar tuzilmalarini shakllantirish mumkin, bu esa u ishlaydigan ma'lumotlar dasturida adekvat ko'rinishga erishish imkonini beradi. Strukturalashning bir nechta usullari mavjud bo'lib, ularning har biri alohida komponentlarga taalluqli bo'lishi va shuning uchun struktura ma'lumotlariga kiritilgan komponentlarga taalluqli bo'lishi bilan farqlanadi. Murakkab ma'lumotlar turlarida tarkibiy qismlarni tashkil etish usuli va turiga ko'ra quyidagi navlar ajratiladi:
Oddiy ma'lumotlar turlaridan farqli o'laroq, tuzilgan turdagi ma'lumotlar ushbu turni tashkil etuvchi elementlarning ko'pligi bilan tavsiflanadi, ya'ni. tuzilgan turdagi o'zgaruvchi yoki doimiy har doim bir nechta komponentlarga ega. Har bir komponent, o'z navbatida, tuzilgan turga tegishli bo'lishi mumkin, ya'ni. turlarini joylashtirish mumkin. Adabiyot
6-bob. TUZILGAN Ma'lumotlar turi haqiqiy qiymatlar to'plamini va amaldagi operatsiyalar to'plamini belgilaydi. Oddiy turlar. Oddiy turlar ORDINAL va REAL ga bo'linadi. 1. TARTIBI TURLARI , o'z navbatida quyidagilar mavjud: a) butun Paskal 5 ta butun son turini belgilaydi, ular o'zgaruvchi qabul qiladigan belgi va qiymatga qarab aniqlanadi.
b) mantiqiy Bu turning nomi BOOLEAN. Mantiqiy qiymatlar mantiqiy doimiylardan biri bo'lishi mumkin: TRUE (to'g'ri) yoki FALSE (noto'g'ri). c) ramziy Bu tipning nomi CHAR - 1 baytni egallaydi. Belgilar turining qiymati kompyuterning barcha belgilar to'plamidir. Har bir belgiga 0…255 oralig'ida butun son beriladi. Bu raqam belgining ichki ko'rinishi uchun kod bo'lib xizmat qiladi. 2. REAL TURLAR . Qiymatlari har doim bir qator butun sonlar bilan taqqoslanadigan va shuning uchun shaxsiy kompyuterda mutlaqo aniq ifodalanadigan tartibli turlardan farqli o'laroq, haqiqiy turlarning qiymatlari ixtiyoriy sonni faqat haqiqiy sonning ichki formatiga qarab cheklangan aniqlik bilan belgilaydi. .
TUZILGAN TURLAR Strukturaviy ma'lumotlar turlari skalyar o'zgaruvchilarning tartiblangan to'plamini belgilaydi va ularning tarkibiy qismlari turi bilan tavsiflanadi. Strukturaviy ma'lumotlar turlari, oddiylaridan farqli o'laroq, bitta umumiy nom bilan ko'plab murakkab qiymatlarni belgilaydi. Aytishimiz mumkinki, strukturaviy tiplar mavjud turlardan yangi turlarni shakllantirishning ma'lum bir usulini belgilaydi. Bir nechta tuzilish usullari mavjud. Kompleks ma'lumotlar turlarida tashkil etish usuli va komponentlar turiga ko'ra quyidagi navlar ajratiladi: muntazam tip (massivlar); birlashtirilgan turdagi (yozuvlar); fayl turi (fayllar); bir nechta tur(lar); string turi (strings); Turbo Paskal tilining 6.0 va undan yuqori versiyalarida ob'ekt turi (ob'ektlar) kiritildi. Oddiy ma'lumotlar turlaridan farqli o'laroq, tuzilgan turdagi ma'lumotlar ushbu turni tashkil etuvchi elementlarning ko'pligi bilan tavsiflanadi, ya'ni. tuzilgan turdagi o'zgaruvchi yoki doimiy har doim bir nechta komponentlarga ega. Har bir komponent, o'z navbatida, tuzilgan turga tegishli bo'lishi mumkin, ya'ni. turlarini joylashtirish mumkin. 1. Massivlar Turbo Paskaldagi massivlar ko'p jihatdan boshqa dasturlash tillaridagi o'xshash ma'lumotlar turlariga o'xshaydi. Massivlarning o'ziga xos xususiyati shundaki, ularning barcha komponentlari bir xil turdagi (ehtimol tuzilgan) ma'lumotlardir. Ushbu komponentlar osongina tartibga solinishi mumkin va ulardan istalgan biriga oddiygina seriya raqamini ko'rsatish orqali kirish mumkin. Massiv tavsifi quyidagicha belgilanadi: <имя типа>= massiv[<сп.инд.типов>] ning<тип> Bu yerga<имя типа>- to'g'ri identifikator; Massiv, of – ajratilgan so‘zlar (massiv, dan); <сп.инд.типов>- vergul bilan ajratilgan bir yoki bir nechta indeks turlarining ro'yxati; ro'yxatni belgilovchi kvadrat qavslar sintaksis talabidir; <тип>- Turbo Paskalning istalgan turi. Turbo Paskalda indeks turlari sifatida har qanday tartibli turlardan foydalanish mumkin, LongInt va asosiy LongInt tipidagi diapazon turlaridan tashqari. Umuman tuzilgan tiplarni va shuning uchun massivlarni joylashtirish chuqurligi ixtiyoriydir, shuning uchun tip indekslari ro'yxatidagi elementlar soni (massiv o'lchami) cheklanmagan, ammo har qanday massivning ichki tasvirining umumiy uzunligini aniqlab bo'lmaydi. 65520 baytdan ortiq bo'lishi kerak. 2. Yozuvlar Yozuv - bu yozuv maydonlari deb ataladigan qattiq miqdordagi komponentlardan tashkil topgan ma'lumotlar strukturasi. Massivdan farqli o'laroq, yozuvning komponentlari (maydonlari) har xil turdagi bo'lishi mumkin. Yozuvning u yoki bu komponentiga murojaat qilish imkoniyatini yaratish uchun maydonlar nomlanadi. Post turi deklaratsiyasining tuzilishi: < Ismturi>=YOZISH< Qo'shma korxona. dalalar>END Bu yerga<имя типа>- to'g'ri identifikator; RECORD, END – zahiralangan so‘zlar (record, end); <сп.полей>- maydonlar ro'yxati; nuqta-vergul bilan ajratilgan yozuvning bo'limlari ketma-ketligi. 3. To'plamlar To'plamlar bir-biri bilan mantiqiy bog'langan bir xil turdagi ob'ektlar to'plamidir. Ob'ektlar orasidagi bog'lanishlarning tabiati faqat dasturchi tomonidan nazarda tutiladi va Turbo Paskal tomonidan hech qanday tarzda boshqarilmaydi. to'plamga kiritilgan elementlar soni 0 dan 256 gacha o'zgarishi mumkin (elementlari bo'lmagan to'plam bo'sh deyiladi).Masivlar va yozuvlardan farq qiladigan narsa uning elementlari sonining nomuvofiqligidir. Ikki to'plam, agar ularning barcha elementlari bir xil bo'lsa va to'plam elementlarining tartibi inferent bo'lsa, ekvivalent hisoblanadi. Agar bir to'plamning barcha elementlari boshqa to'plamga kiritilgan bo'lsa, birinchi to'plam ikkinchisiga kiritilgan deyiladi. To'plam turining tavsifi: < Ismturi>=SET OF< asoslar. turi> Bu yerga<имя типа>- to'g'ri identifikator; SET, OF – ajratilgan so‘zlar (to‘plam, ning); <баз.тип>- WORD, INTEGER va LONGINT dan boshqa har qanday tartib tipdagi bo'lishi mumkin bo'lgan to'plam elementlarining asosiy turi. To'plamni aniqlash uchun to'plam konstruktori deb ataladigan narsa qo'llaniladi: vergul bilan ajratilgan to'plam elementlarining spetsifikatsiyalari ro'yxati; ro'yxat kvadrat qavslar bilan o'ralgan. Element spetsifikatsiyalari asosiy turdagi konstantalar yoki ifodalar, shuningdek, bir xil asosiy turdagi diapazon turi bo'lishi mumkin. 4. Fayllar Fayl deganda shaxsiy kompyuterning tashqi xotirasining belgilangan maydoni yoki mantiqiy qurilma - potentsial manba yoki ma'lumot qabul qiluvchisi tushuniladi. Har qanday fayl uchta xarakterli xususiyatga ega uning nomi bor, bu dasturga bir vaqtning o'zida bir nechta fayllar bilan ishlash imkonini beradi. unda bir xil turdagi komponentlar mavjud. Komponent turi fayllardan tashqari har qanday Turbo Paskal turi bo'lishi mumkin. Boshqacha qilib aytganda, siz "fayllar faylini" yarata olmaysiz. yangi yaratilgan faylning uzunligi e'lon qilinganda hech qanday tarzda ko'rsatilmaydi va faqat tashqi xotira qurilmalarining sig'imi bilan cheklanadi. Fayl turi yoki fayl turi o'zgaruvchisi uchta usuldan birida ko'rsatilishi mumkin: < Ism>= FILE OF< turi>; < Ism>=TEXT; <имя>= FILE; Bu yerga<имя>- fayl turi nomi (to'g'ri identifikator); FILE, OF – zahiralangan so‘zlar (fayl, dan); TEXT – standart matnli fayl turining nomi; <тип>- Turbo Paskalning istalgan turi, fayllardan tashqari. Deklaratsiya usuliga qarab, fayllarning uch turini ajratish mumkin: · terilgan fayllar (FILE OF... bandi bilan o'rnatiladi); · matnli fayllar (TEXT turi sifatida belgilanadi); · tiplanmagan fayllar (FILE turi bilan belgilanadi). Paskalning raqamli ma'lumotlar turlarini konvertatsiya qilish haqida Paskalda raqamli ma'lumotlar turlarini yashirin (avtomatik) konvertatsiya qilish deyarli mumkin emas. Istisno faqat real turdagi ifodalarda foydalanishga ruxsat berilgan butun son turi uchun qilingan. Misol uchun, agar o'zgaruvchilar quyidagicha e'lon qilingan bo'lsa: Var X: butun son; Y: haqiqiy; keyin operator sintaktik jihatdan to'g'ri bo'ladi, garchi tayinlash belgisining o'ng tomonida butun son ifodasi va chap tomonda haqiqiy o'zgaruvchi bo'lsa ham, kompilyator raqamli ma'lumotlar turlarini avtomatik ravishda o'zgartiradi. Paskalda avtomatik ravishda haqiqiy turdan butun son turiga teskari aylantirish mumkin emas. Integer va real tipidagi o‘zgaruvchilar uchun qancha bayt ajratilganligini eslaylik: integer tipli integer uchun xotira 2 bayt, real uchun 6 bayt ajratilgan. Haqiqiyni butun songa aylantirish uchun ikkita o'rnatilgan funksiya mavjud: round(x) haqiqiy x ni eng yaqin butun songa yaxlitlaydi, trunc(x) kasr qismini tashlab, haqiqiyni qisqartiradi. Oddiy turlarga ordinal, real va datetime tiplari kiradi. Tartibiy tiplar har birida mumkin bo'lgan qiymatlarning cheklangan soniga ega bo'lishi bilan farqlanadi. Ushbu qiymatlar ma'lum bir tarzda tartibga solinishi mumkin (shuning uchun turlarning nomi) va shuning uchun ularning har biri qandaydir butun son - qiymatning tartib raqami bilan bog'lanishi mumkin. Haqiqiy turlar, aniq aytganda, haqiqiy sonning ichki ko'rinishi formati bilan belgilanadigan cheklangan miqdordagi qiymatlarga ega. Biroq, haqiqiy turlarning mumkin bo'lgan qiymatlari soni shunchalik kattaki, ularning har biri bilan butun sonni (uning raqamini) bog'lash mumkin emas. Datetime turi sana va vaqtni saqlash uchun mo'ljallangan. Aslida, bu maqsadlar uchun haqiqiy formatdan foydalanadi. Tartib turlariTartib turlarga (1.1-rasmga qarang) butun son, mantiqiy, belgi, sanab o‘tilgan va diapazon turlari kiradi. X ifoda qiymatining tartib raqamini qaytaruvchi Ord(x) funksiyasi ularning har qandayiga qo'llanilishi mumkin. Guruch. 1.1 Butun sonlar turlari uchun ord(x) funksiyasi x ning o'zi qiymatini qaytaradi, ya'ni har qanday butun son turiga tegishli bo'lgan x uchun Ord(X) = x. Ord(x) ni mantiqiy, belgilar va sanab turlariga qo‘llash 0 dan 1 gacha (mantiqiy), 0 dan 255 gacha (belgi), 0 dan 65535 gacha (sanoq) oralig‘ida musbat butun son hosil qiladi. Diapazon turi asosiy tartib turining barcha xossalarini saqlab qoladi, shuning uchun unga ord(x) funksiyasini qo‘llash natijasi shu turning xususiyatlariga bog‘liq. Funksiyalarni tartibli turlarga ham qoʻllashingiz mumkin: pred(x) - tartib turining oldingi qiymatini qaytaradi (tartib raqami ord(x) -1 ga mos keladigan qiymat, ya'ni ord(pred(x)) = ord(x) - 1); succ(x) - ord(x) +1 tartib raqamiga mos keladigan tartib turining keyingi qiymatini qaytaradi, ya'ni ord(Succ(x)) = ord(x) + 1. Misol uchun, agar dastur o'zgaruvchini aniqlasa keyin PRED(c) funksiyasi “4” belgisini, SUCC(c) funksiyasi esa “6” belgisini qaytaradi. Agar biz har qanday tartibli turni chapdan o'ngga ortib boruvchi va raqamlar o'qida ma'lum bir segmentni egallagan tartiblangan qiymatlar to'plami sifatida tasavvur qilsak, u holda pred(x) funktsiyasi chap uchi uchun aniqlanmagan va succ (x) bo'ladi. ushbu segmentning o'ng uchi uchun aniqlanmagan. Butun turlari. Butun son turlarining mumkin bo'lgan qiymatlari diapazoni ularning ichki ko'rinishiga bog'liq bo'lib, ular bir, ikki, to'rt yoki sakkiz bayt bo'lishi mumkin. Jadvalda 1.1 butun son turlarining nomlarini, ularning baytlarda ichki tasvirlash uzunligini va mumkin bo'lgan qiymatlar diapazonini ko'rsatadi. 1.1-jadval - Butun sonlar turlari
LongWord va Int64 turlari birinchi marta 4-versiyada taqdim etilgan, biroq Smallint va Cardinal turlari Delphi 1da yo'q edi. Ushbu versiya uchun butun son turi 2 baytni egallaydi va -32768 dan +32767 gacha bo'lgan qiymat oralig'iga ega, ya'ni xuddi shunday. Smallint. Butun son parametrlari bilan protseduralar va funktsiyalardan foydalanganda, siz turlarni "uya joylashtirish" ga amal qilishingiz kerak, ya'ni. Qayerda so'z ishlatilishi mumkin bo'lsa, Baytga ruxsat beriladi (lekin aksincha emas), Longint Smallintni "o'z ichiga oladi", bu esa o'z navbatida Shortintni o'z ichiga oladi. Butun sonlar turlari uchun qo'llaniladigan protseduralar va funktsiyalar ro'yxati jadvalda keltirilgan. 1.2. b, s, w, i, l harflari mos ravishda Bayt, Shortint, Word, Integer va Longint tipidagi ifodalarni bildiradi. x - bu turlarning har qandayining ifodasi; vb, vs, vw, vi, vl, vx harflari tegishli turdagi o'zgaruvchilarni bildiradi. Ixtiyoriy parametr kvadrat qavs ichida ko'rsatilgan. 1.2-jadval - Butun turlarga qo'llaniladigan standart protseduralar va funktsiyalar
Butun sonlar bilan ishlaganda, natija turi operandlar turiga mos keladi, agar operandlar turli xil butun sonli bo'lsa, ikkala operandni o'z ichiga olgan umumiy tipga mos keladi. Masalan, shortint va so'z bilan ishlashda umumiy tip butun son bo'ladi. Standart sozlamada Delphi kompilyatori qiymat diapazondan tashqarida ekanligini tekshirish uchun kod ishlab chiqarmaydi, bu esa tushunmovchiliklarga olib kelishi mumkin. Mantiqiy turlar. Mantiqiy turlarga Boolean, ByteBool, Bool, wordBool va LongBool kiradi. Standart Paskalda faqat mantiqiy tip aniqlanadi, qolgan mantiqiy tiplar Object Pascalda Windows bilan mosligi uchun kiritilgan: Boolean va ByteBool turlari har biri bir baytni, Bool va WordBool - 2 bayt, LongBool - 4 baytni egallaydi. Mantiqiy qiymatlar oldindan e'lon qilingan False yoki True konstantalaridan biri bo'lishi mumkin. Mantiqiy tip tartibli tip boʻlgani uchun u sanaladigan tipdagi sikl operatorida ishlatilishi mumkin. Mantiqiy qiymat uchun Delphi 32 da Ord(True) = +1, boshqa turlar uchun esa (Bool, WordBool va boshqalar) Ord(True) = -1, shuning uchun bunday operatorlardan ehtiyotkorlik bilan foydalanish kerak! Masalan, Delphi 6 uchun quyidagi for tsiklidagi bajariladigan showMessage (" --- ") operatori bir marta ham bajarilmaydi: L:= False to True uchun ShowMessage("--); Agar oldingi misoldagi halqa parametri L turini mantiqiyga o‘zgartirsangiz, sikl ishga tushadi va ekranda ikki marta xabar paydo bo‘ladi. [Delphining 1 va 2 versiyalari uchun ord (True) =+1 har qanday mantiqiy tur uchun.] Belgi turi. Belgilar turining qiymati kompyuterning barcha belgilar to'plamidir. Har bir belgiga 0...255 oralig'ida butun son beriladi. Bu raqam belgining ichki ko'rinishi uchun kod bo'lib xizmat qiladi, u ord funktsiyasi tomonidan qaytariladi. Windows-da kodlash uchun ANSI kodi ishlatiladi (Amerika Milliy Standartlar Instituti nomi bilan atalgan, Amerika standartlashtirish instituti ushbu kodni taklif qilgan). 0... 127 kodli kompyuter belgilarining birinchi yarmi 1.3-jadvalga mos keladi. 128...255 kodli belgilarning ikkinchi yarmi turli shriftlar uchun farq qiladi. Arial Cyr, Courier New Cyr va Times New Roman standart Windows shriftlari kirill alifbosidagi belgilarni (“yo” va “Yo” harflarisiz) ifodalash uchun oxirgi 64 ta koddan (192 dan 256 gacha) foydalanadi: “A”... “Z” kodlangan qiymatlar 192..223, “a”... “i” - 224...255. “Yo” va “e” belgilari mos ravishda 168 va 184 kodlariga ega. 1.3-jadval - ANSI standartiga muvofiq belgilarni kodlash 0...31 kodli belgilar xizmat kodlariga tegishli. Agar ushbu kodlar dasturning belgilar matnida ishlatilsa, ular bo'sh joy hisoblanadi. Char tipi relyatsion operatsiyalarni, shuningdek o'rnatilgan funktsiyalarni qo'llaydi: Shar (v) - char tipidagi funksiya; Bayt tipidagi ifodani belgiga aylantiradi va uni qiymati bilan qaytaradi; UpCase(CH) - char tipidagi funksiya; agar sn kichik lotin harfi bo'lsa, bosh harfni qaytaradi, aks holda sn belgisini o'zini qaytaradi (kirill uchun asl belgini qaytaradi). Ro'yxatga olingan tur. Sanab o'tilgan tur qabul qilishi mumkin bo'lgan qiymatlar ro'yxati bilan belgilanadi. Har bir qiymat ba'zi identifikator tomonidan nomlanadi va qavslar bilan o'ralgan ro'yxatda joylashgan, masalan: ranglar = (qizil, oq, ko'k); Sanab o'tilgan turlardan foydalanish dasturlarni ingl. Sanab o'tilgan turdagi qiymatlar va bu qiymatlarning tartib raqamlari o'rtasidagi muvofiqlik sanab o'tish tartibi bilan belgilanadi: ro'yxatdagi birinchi qiymat 0 tartib raqamini oladi, ikkinchisi - 1 va hokazo. Maksimal kardinallik. sanab o'tilgan tur 65536 qiymatdir, shuning uchun aslida sanab o'tilgan tur butun turdagi so'zning ba'zi bir kichik to'plamini belgilaydi va 0, 1 va hokazo qiymatlarga ega bo'lgan butun son doimiylari guruhining ixcham deklaratsiyasi sifatida ko'rib chiqilishi mumkin. Ro'yxatga olingan turlardan foydalanish mos keladigan o'zgaruvchilar qabul qiladigan qiymatlarni boshqarishga imkon berish orqali dasturlarning ishonchliligini oshiradi. Object Pascal teskari konvertatsiya qilishga imkon beradi: Word tipidagi har qanday ifodani enum tipidagi qiymatga aylantirish mumkin, agar butun son ifodasining qiymati ushbu turdagi kardinallikdan oshmasa. Ushbu konvertatsiya sanab o'tilgan tur nomi bilan avtomatik e'lon qilingan funksiyadan foydalanish orqali erishiladi. Tur oralig'i. Diapazon turi uning asosiy turining kichik to‘plami bo‘lib, diapazon turidan tashqari har qanday tartibli tur bo‘lishi mumkin. Diapazon turi uning asosiy turdagi qiymatlari chegaralari bilan belgilanadi: <мин.знач.>..<макс.знач.> Bu yerga<мин. знач. >- turdagi diapazonning minimal qiymati;<макс. знач. >- uning maksimal qiymati. Diapazon turini turlar bo'limida tavsiflash shart emas, lekin o'zgaruvchini e'lon qilishda bevosita ko'rsatilishi mumkin. Diapazon turini aniqlashda siz quyidagi qoidalarga amal qilishingiz kerak: ikkita ".." belgisi bitta belgi sifatida ko'rib chiqiladi, shuning uchun ular orasidagi bo'shliqqa ruxsat berilmaydi; diapazonning chap chegarasi uning o'ng chegarasidan oshmasligi kerak. Diapazon turi o'zining asosiy turining barcha xususiyatlarini meros qilib oladi, lekin uning pastki quvvati cheklovlari bilan. Xususan, agar o'zgaruvchi aniqlangan bo'lsa. Object Pascal standart kutubxonasi diapazon turlari bilan ishlashni qo'llab-quvvatlaydigan ikkita funktsiyani o'z ichiga oladi: High(x) - x o'zgaruvchisi tegishli bo'lgan diapazon tipining maksimal qiymatini qaytaradi; Past (x) - diapazon turining minimal qiymatini qaytaradi. Haqiqiy turlari Qiymatlari har doim bir qator butun sonlar bilan taqqoslanadigan va shuning uchun shaxsiy kompyuterda mutlaqo aniq ifodalanadigan tartibli turlardan farqli o'laroq, haqiqiy turlarning qiymatlari ixtiyoriy sonni faqat haqiqiy sonning ichki formatiga qarab cheklangan aniqlik bilan belgilaydi. . 1.4-jadval - Haqiqiy turlari Delphi 1...3 ning oldingi versiyalarida Real turi 6 baytni egallagan va 2,9*10-39 dan 1,7*1038 gacha bo'lgan qiymatlar oralig'iga ega edi. 4 va 5 versiyalarda bu tur Double turiga teng. Agar siz (moslik sabablarga ko'ra) 6 baytli Reallardan foydalanishni istasangiz, kompilyator direktivasini (SREALCOMPATIBILITY ON) belgilashingiz kerak. Jadvaldan ko'rinib turibdiki. 1.4, Object Pascal tilidagi haqiqiy son 4 dan 10 tagacha yonma-yon baytni egallaydi va ShK xotirasida quyidagi tuzilishga ega. Bu yerda s sonning ishora raqami; e - eksponensial qism; ikkilik tartibni o'z ichiga oladi; m - raqamning mantisasi. Mantissa m uzunligi 23 (bitta uchun) dan 63 (kengaytirilgan uchun) ikkilik raqamlarga ega, bu birlik uchun 7...8 va Kengaytirilgan o'nlik raqamlar uchun 19...20 aniqligini ta'minlaydi. Kasr nuqtasi (vergul) mantisaning chap (eng muhim) raqamidan oldin nazarda tutilgan, ammo raqam bilan ishlaganda, uning pozitsiyasi eksponensial qismda saqlangan sonning ikkilik tartibiga muvofiq chap yoki o'ngga siljiydi. , shuning uchun haqiqiy sonlar ustida amallar deyiladi suzuvchi nuqta (vergul) arifmetik . E'tibor bering, arifmetik protsessor har doim raqamlarni Kengaytirilgan formatda qayta ishlaydi va bu holda boshqa uchta haqiqiy tur natijalarni kerakli o'lchamga qisqartirish orqali olinadi va asosan xotirani tejash uchun ishlatiladi. Object Pascal-da alohida o'rinni comp va Currency turlari egallaydi, ular qat'iy uzunlikdagi kasr qismlariga ega haqiqiy sonlar sifatida qaraladi: kompda kasr qismi 0 ta raqamga ega, ya'ni valyutada u shunchaki yo'q. kasr qismi uzunligi -4 kasr. Aslida, ikkala tur ham 19...20 muhim o'nlik raqamlarni saqlaydigan katta belgili butun sonni belgilaydi (ichki ular 8 ta qo'shni baytni egallaydi). Shu bilan birga, komp va valyuta ifodalari boshqa har qanday real turlarga to'liq mos keladi: ular bo'yicha barcha real operatsiyalar aniqlangan, ular matematik funktsiyalarga argument sifatida ishlatilishi mumkin va hokazo. Ushbu turlar uchun eng mos dastur sohasi. buxgalteriya hisob-kitoblari. |
Mashhur:
Yangi
- Ramka kiritish. Ramkalar yaratish. noframes zaxirasini ta'minlash
- Windows tizimini qayta tiklash Hech qachon tugamaydigan avtomatik tiklashga tayyorgarlik
- Dasturlar yordamida flesh-diskni ta'mirlash Noutbukdagi USB portni qanday tuzatish kerak
- Disk tuzilishi buzilgan, o'qish mumkin emas, nima qilishim kerak?
- Qattiq disk kesh xotirasi nima va u nima uchun kerak?Kesh hajmi nima uchun javob beradi?
- Kompyuter nimadan iborat?
- Tizim blokining tuzilishi - qaysi komponentlar kompyuterning ishlashi uchun javobgardir Tizim blokining ichki qurilmalari xususiyatlari
- Qattiq diskni SSD ga qanday o'zgartirish mumkin
- Kirish qurilmalari kiradi
- Yozilgan dasturlash tili Ushbu o'zgaruvchilar turlari bilan nima qilish kerak