Mari ketahui lebih lanjut tentang jenis data bahasa Pascal: Integer, Real, Char, String, Boolean. Jenis data Pascal

Jenis data bahasa Pascal: klasifikasi dan penerangan. Jenis data aritmetik dan ordinal, tindakan dengannya. Ungkapan aritmetik: fungsi, operasi dan susunan tindakan. Keserasian dan penukaran jenis data.

Penyusun Pascal memerlukan maklumat tentang jumlah memori yang diperlukan untuk menjalankan program disediakan sebelum ia dijalankan. Untuk melakukan ini, dalam bahagian perihalan pembolehubah ( var) anda perlu menyenaraikan semua pembolehubah yang digunakan dalam atur cara. Di samping itu, anda juga perlu memberitahu pengkompil berapa banyak memori yang akan diduduki oleh setiap pembolehubah ini. Adalah lebih baik untuk bersetuju terlebih dahulu mengenai pelbagai operasi yang digunakan untuk pembolehubah tertentu...

Semua ini boleh disampaikan kepada program dengan hanya menunjukkan jenis pembolehubah masa depan. Mempunyai maklumat tentang jenis pembolehubah, pengkompil "memahami" berapa banyak bait yang perlu diperuntukkan untuknya, tindakan yang boleh dilakukan dengannya, dan dalam pembinaan apa yang boleh disertainya.

Untuk kemudahan pengaturcara, Pascal mempunyai banyak jenis data standard, ditambah dengan keupayaan untuk mencipta jenis baharu.

Apabila membina jenis data baharu berdasarkan yang sedia ada (standard atau sekali lagi ditakrifkan oleh pengaturcara sendiri), kita mesti ingat bahawa mana-mana bangunan mesti dibina di atas asas yang baik. Oleh itu, sekarang kita akan bercakap tentang "asas" ini.

berdasarkan jenis data asas semua jenis lain bahasa Pascal dibina, yang dipanggil: dibina.

Pembahagian kepada jenis data asas dan terbina dalam Pascal ditunjukkan dalam jadual:

Jenis data yang dibina oleh pengaturcara diterangkan dalam bahagian menaip mengikut templat berikut:

menaip<имя_типа> = <описание_типа>;

Sebagai contoh:

taip Lat_Bukvy = "a" .. "z", "A" .. "Z";

Jenis data asas adalah standard, jadi tidak perlu menerangkannya dalam bahagian menaip. Walau bagaimanapun, jika dikehendaki, ini juga boleh dilakukan, sebagai contoh, dengan memberikan definisi yang panjang nama pendek. Katakan dengan memperkenalkan jenis data baharu

jenis Int = Integer;

Anda boleh memendekkan sedikit teks program.

Jenis binaan standard juga tidak perlu diterangkan dalam bahagian menaip. Walau bagaimanapun, dalam beberapa kes ini masih perlu dilakukan kerana keperluan sintaks. Contohnya, dalam senarai parameter prosedur atau fungsi Pembina jenis tidak boleh digunakan (lihat syarahan 8).

Jenis data ordinal

Antara jenis data asas, yang paling ketara ialah jenis ordinal. Nama ini boleh dibenarkan dalam dua cara:

Rutin standard yang proses jenis data ordinal

Hanya untuk kuantiti jenis ordinal Fungsi dan prosedur berikut ditakrifkan:

  1. Fungsi Ord(x) mengembalikan nombor ordinal nilai pembolehubah x (berbanding dengan jenis pembolehubah x milik).
  2. Fungsi Prad(x) mengembalikan nilai sebelum x (tidak berkenaan dengan elemen pertama jenis).
  3. Fungsi Succ(x) mengembalikan nilai berikut x (tidak berkenaan dengan elemen terakhir jenis).
  4. Prosedur Inc(x) mengembalikan nilai berikut x (untuk jenis data aritmetik ini bersamaan dengan pengendali x:= x + 1).
  5. Prosedur Inc(x, k) mengembalikan nilai kth berikutan x (untuk jenis data aritmetik ini bersamaan dengan pengendali x:= x + k).
  6. Prosedur Dis(x) mengembalikan nilai sebelum x (untuk jenis data aritmetik ini bersamaan dengan pengendali x:= x - 1).
  7. Prosedur Dis(x, k) mengembalikan nilai k–e sebelum x (untuk jenis data aritmetik ini bersamaan dengan pengendali x:= x - k).

Pada pandangan pertama, ia seolah-olah hasil daripada memohon prosedur Inc(x) sepenuhnya bertepatan dengan hasil penggunaan fungsi Succ(x). Walau bagaimanapun, perbezaan antara mereka kelihatan pada sempadan julat yang dibenarkan. Fungsi Succ(x) tidak terpakai kepada elemen maksimum sesuatu jenis, tetapi berikut ialah prosedurnya Inc(x) tidak akan menghasilkan sebarang ralat, tetapi, bertindak mengikut peraturan penambahan mesin, akan menambah unit seterusnya kepada nombor elemen. Nombor itu, sudah tentu, akan melampaui julat dan, disebabkan pemotongan, akan bertukar menjadi nombor nilai minimum julat. Ia ternyata bahawa prosedur Inc() Dan Dis() mereka menganggap mana-mana jenis ordinal seolah-olah "ditutup dalam gelang": sejurus selepas yang terakhir, nilai pertama datang semula.

Mari kita jelaskan semua yang telah dikatakan dengan contoh. Untuk jenis data

jenis Enam Belas = 0 .. 15 ;

cuba menambah 1 kepada nombor 15 akan menghasilkan keputusan berikut:

1 1 1 1 1 1 0 0 0 0

Unit awal akan dipotong, dan oleh itu ternyata begitu Inc(15)=0 .

Situasi yang sama pada had bawah julat yang dibenarkan bagi jenis data ordinal arbitrari diperhatikan untuk prosedur Dis(x) dan fungsi Prad(x):

Jenis data yang berkaitan dengan ordinal

Mari kita huraikan sekarang jenis data ordinal dalam butiran.

  1. Jenis Boolean Boolean mempunyai dua nilai: Salah dan Benar, dan persamaan berikut berlaku untuk mereka:
  2. Kepada jenis watak Char mengandungi 256 aksara jadual ASCII lanjutan(contohnya, "a", "b", "i", "7", "#"). Nombor aksara dikembalikan oleh fungsi Ord() , sepadan dengan nombor simbol ini dalam Jadual ASCII.
  3. Jenis data integer Mari letakkan dalam jadual:
  4. Boleh disenaraikan jenis data dinyatakan dalam bahagian menaip dengan menyenaraikan unsur-unsurnya secara eksplisit. Sebagai contoh:

    jenis Minggu = (matahari, isn, tue, wed, thu, fri, sat); 0 1 2 3 4 5 6

    Ingat bahawa untuk jenis data ini:

  5. Jenis data selang hanya ditentukan oleh sempadan julatnya. Sebagai contoh:

    jenis Bulan = 1 .. 12 ;
    Budni = Isn .. Jum;

  6. Pengaturcara boleh mencipta jenis datanya sendiri, yang merupakan gabungan beberapa jenis standard. Sebagai contoh:

    taip Valid_For_Identifiers = "a" .. "z" , "A" .. "Z" , "_" , "0" .. "9" ;

Jenis ini terdiri daripada menggabungkan beberapa selang, dan dalam kes ini susunan huruf Latin diubah: jika dalam jenis standard

Paling biasa dalam matematik jenis angka- Ini keseluruhan nombor yang mewakili bilangan tak terhingga nilai diskret, dan sah nombor yang mewakili kesinambungan nilai tanpa had.

Perihalan jenis data berangka Pascal (integer)

Dalam bahasa yang sama, subset yang berbeza bagi set integer boleh dilaksanakan. Julat nilai kemungkinan jenis angka integer bergantung pada perwakilan dalaman mereka, yang boleh menjadi satu, dua atau empat bait. Oleh itu, dalam Pascal 7.0 jenis data berangka integer berikut digunakan:

Dengan keseluruhan jenis data berangka Pascal boleh melakukan operasi berikut:

  • Aritmetik:
    penambahan(+);
    penolakan(-);
    pendaraban(*);
    baki bahagian (mod);
    eksponenisasi;
    tambah unari (+);
    unari tolak (-).
  • Operasi perkaitan:
    hubungan kesamarataan (=);
    hubungan ketidaksamaan (<>);
    nisbah kurang (<);
    nisbah lebih besar daripada (>);
    hubungan tidak kurang daripada (>=);
    sikap tidak lagi (<=).

Apabila berlakon dengan jenis data angka integer jenis hasil akan sepadan dengan jenis operan, dan jika operan adalah jenis integer yang berbeza, kepada jenis operan yang mempunyai kuasa maksimum (julat nilai maksimum). Kemungkinan limpahan hasil tidak dikawal dalam apa cara sekalipun (ia penting!) , yang boleh membawa kepada ralat.

Perhatian khusus harus diberikan kepada operasi pembahagian jenis data berangka integer. Pascal membenarkan dua operasi bahagian, yang dilambangkan dengan sewajarnya "/" Dan div. Anda perlu tahu bahawa hasil pembahagian "/" bukan integer, tetapi nombor sebenar(ini adalah benar walaupun anda membahagi 8 dengan 2, iaitu 8/2=4.0). Div bahagian ialah pembahagian integer, iaitu jenis hasil ialah integer.

Perihalan jenis data berangka Pascal (nyata)

Jenis data berangka sebenar merujuk kepada subset nombor nyata yang boleh diwakili dalam apa yang dipanggil format titik terapung dengan bilangan digit tetap. Dengan titik terapung, setiap jenis data berangka diwakili sebagai dua kumpulan digit. Kumpulan nombor pertama dipanggil mantissa, yang kedua ialah eksponen. Secara umum, jenis data berangka dalam bentuk titik terapung boleh diwakili seperti berikut: X= (+|-)MP (+ | -) r, dengan M ialah mantissa nombor; r – susunan nombor (r – integer); P – asas sistem nombor. Sebagai contoh, untuk asas perpuluhan, perwakilan 2E-1 (di sini E ialah asas sistem nombor perpuluhan) akan kelihatan seperti: 2*10 -1 =0.2, dan perwakilan 1.234E5 akan sepadan dengan: 1.234*10 5 =123400.0.

Pascal menggunakan jenis nombor nyata berikut, yang mentakrifkan nombor arbitrari hanya dengan beberapa ketepatan terhingga bergantung pada format dalaman nombor nyata:

Apabila menerangkan pembolehubah sebenar jenis nyata, pembolehubah 4 bait akan dicipta dalam memori komputer. Dalam kes ini, 3 bait akan diberikan untuk mantissa, dan satu bait untuk pesanan.

Operasi berikut boleh dilakukan pada jenis data angka sebenar:

  • Aritmetik:
    penambahan (+);
    penolakan(-);
    pendaraban(*);
    bahagian(/);
    eksponenisasi;
    tambah unari (+);
    unari tolak (-).
  • Operasi perkaitan:
    hubungan ketidaksamaan (<>);
    nisbah kurang (<);
    nisbah lebih besar daripada (>);
    hubungan tidak kurang daripada (>=);
    sikap tidak lagi (<=).

Seperti yang anda lihat, Pascal dicirikan oleh pelbagai jenis sebenar, tetapi akses kepada jenis data berangka bujang, berganda Dan dipanjangkan hanya boleh dilakukan di bawah mod penyusunan khas. Jenis data berangka ini direka bentuk untuk sokongan perkakasan untuk aritmetik titik terapung, dan untuk menggunakannya dengan berkesan, PC anda mesti menyertakan pemproses bersama matematik.

Jenis data berangka menduduki kedudukan istimewa dalam Pascal. kompaun, yang dianggap sebagai nombor nyata tanpa bahagian eksponen dan pecahan. Sebenarnya, kompaun ialah integer bertanda “besar” yang mengekalkan 19..20 digit perpuluhan bererti. Pada masa yang sama, jenis data berangka kompaun dalam ungkapan ia serasi sepenuhnya dengan jenis sebenar yang lain: semua operasi sebenar ditakrifkan padanya, ia boleh digunakan sebagai hujah kepada fungsi matematik, dsb.

Perihal menukar jenis data angka Pascal

Dalam Pascal, penukaran tersirat (automatik) bagi jenis data berangka hampir mustahil. Pengecualian dibuat hanya untuk jenis integer, yang dibenarkan untuk digunakan dalam ungkapan seperti sebenar. Sebagai contoh, jika pembolehubah diisytiharkan seperti ini:

Var X: integer; Y: sebenar;

Itulah operatornya

akan betul dari segi sintaksis, walaupun terdapat ungkapan integer di sebelah kanan tanda tugasan dan pembolehubah sebenar di sebelah kiri, pengkompil akan menukar jenis data berangka secara automatik. Penukaran terbalik ditaip secara automatik sebenar dalam jenis integer mustahil dalam Pascal. Mari kita ingat berapa banyak bait yang diperuntukkan untuk pembolehubah jenis integer Dan sebenar: untuk jenis data integer integer 2 bait memori diperuntukkan, dan untuk sebenar - 6 bait. Untuk menukar sebenar V integer Terdapat dua fungsi terbina dalam: bulat(x) membundarkan x nyata kepada integer terdekat, trunc(x) memotong nombor nyata dengan membuang bahagian pecahan.

Jenis data mentakrifkan satu set nilai yang sah dan satu set operasi yang sah.

Jenis mudah.

Jenis mudah dibahagikan kepada ORDINAL dan REAL.

1. JENIS ORDERAL , pula, terdapat:

a) keseluruhan

Pascal mentakrifkan 5 jenis integer, yang ditakrifkan bergantung pada tanda dan nilai yang akan diambil oleh pembolehubah.

Taip nama

Panjang (dalam bait)

Julat nilai

32 768...+32 767

2 147 483 648...+2 147 483 647

b) logik

Nama jenis ini ialah BOOLEAN. Nilai Boolean boleh menjadi salah satu pemalar Boolean: TRUE (true) atau FALSE (false).

c) simbolik

Nama jenis ini ialah CHAR - menduduki 1 bait. Nilai jenis aksara ialah set semua aksara PC. Setiap aksara diberikan integer dalam julat 0…255. Nombor ini berfungsi sebagai kod untuk perwakilan dalaman simbol.

2. JENIS SEBENAR .

Tidak seperti jenis ordinal, yang nilainya sentiasa dipetakan kepada satu siri integer dan oleh itu diwakili secara mutlak dalam PC, nilai jenis sebenar mentakrifkan nombor arbitrari hanya dengan beberapa ketepatan terhingga bergantung pada format dalaman nombor nyata. .

Panjang jenis data berangka, bait

Nama jenis data angka

Bilangan digit bererti jenis data berangka

Julat susunan perpuluhan bagi jenis data berangka

2*1063 +1..+2*1063 -1

JENIS BERSTRUKTUR

Jenis data berstruktur mentakrifkan koleksi tertib pembolehubah skalar dan dicirikan oleh jenis komponennya.

Jenis data berstruktur, tidak seperti yang mudah, mentakrifkan banyak nilai kompleks dengan satu nama biasa. Kita boleh mengatakan bahawa jenis struktur menentukan cara tertentu untuk membentuk jenis baru daripada yang sedia ada.

Terdapat beberapa kaedah penstrukturan. Mengikut kaedah organisasi dan jenis komponen dalam jenis data yang kompleks, jenis berikut dibezakan: jenis biasa (susunan); jenis gabungan (rekod); jenis fail(fail); berbilang jenis; jenis rentetan(rentetan); dalam bahasa Turbo Pascal versi 6.0 dan lebih lama, jenis objek (objek) telah diperkenalkan.

Tidak seperti jenis data ringkas, data jenis berstruktur dicirikan oleh kepelbagaian elemen yang membentuk jenis ini, i.e. pembolehubah atau pemalar jenis berstruktur sentiasa mempunyai berbilang komponen. Setiap komponen, seterusnya, boleh tergolong dalam jenis berstruktur, i.e. jenis bersarang adalah mungkin.

1. Tatasusunan

Tatasusunan dalam Turbo Pascal dalam banyak cara serupa dengan jenis data yang serupa dalam bahasa pengaturcaraan lain. Ciri tersendiri tatasusunan ialah semua komponennya adalah data dari jenis yang sama (mungkin berstruktur). Komponen ini boleh disusun dengan mudah dan mana-mana satu daripadanya boleh diakses hanya dengan menyatakan nombor siri.

Penerangan tatasusunan ditentukan seperti berikut:

<имя типа>= tatasusunan[<сп.инд.типов>] daripada<тип>

Di sini<имя типа>- pengecam yang betul;

Susunan, daripada – perkataan terpelihara (susun, daripada);

<сп.инд.типов>- senarai satu atau lebih jenis indeks, dipisahkan dengan koma; kurungan persegi yang membingkai senarai adalah keperluan sintaks;

<тип>- sebarang jenis Turbo Pascal.

Sebarang jenis ordinal boleh digunakan sebagai jenis indeks dalam Turbo Pascal, kecuali LongInt dan jenis julat dengan jenis asas LongInt.

Kedalaman sarang jenis berstruktur secara umum, dan oleh itu tatasusunan, adalah sewenang-wenangnya, jadi bilangan elemen dalam senarai indeks jenis (saiz tatasusunan) tidak terhad, bagaimanapun, jumlah panjang perwakilan dalaman mana-mana tatasusunan tidak boleh lebih daripada 65520 bait.

2. Rekod

Rekod ialah struktur data yang terdiri daripada bilangan komponen tetap yang dipanggil medan rekod. Tidak seperti tatasusunan, komponen (medan) rekod boleh terdiri daripada jenis yang berbeza. Untuk membolehkan anda merujuk kepada satu atau komponen rekod yang lain, medan tersebut dinamakan.

Struktur pengisytiharan jenis jawatan ialah:

< Namamenaip>=REKOD< usaha sama. padang>TAMAT

Di sini<имя типа>- pengecam yang betul;

REKOD, TAMAT – perkataan terpelihara (rekod, tamat);

<сп.полей>- senarai medan; ialah urutan bahagian rekod yang dipisahkan oleh koma bertitik.

3. Set

Set ialah satu set objek dari jenis yang sama yang secara logik bersambung antara satu sama lain. Sifat sambungan antara objek hanya tersirat oleh pengaturcara dan sama sekali tidak dikawal oleh Turbo Pascal. bilangan elemen yang termasuk dalam set boleh berbeza dari 0 hingga 256 (set yang tidak mengandungi unsur dipanggil kosong). Ia adalah ketidakkonsistenan bilangan elemennya yang set berbeza daripada tatasusunan dan rekod.

Dua set dianggap setara jika dan hanya jika semua elemennya adalah sama, dan susunan unsur-unsur set itu adalah acuh tak acuh. Jika semua elemen satu set turut dimasukkan ke dalam set yang lain, set pertama dikatakan termasuk dalam set kedua.

Penerangan jenis set ialah:

< Namamenaip>=SET DARI< pangkalan. menaip>

Di sini<имя типа>- pengecam yang betul;

SET, OF – perkataan terpelihara (set, dari);

<баз.тип>- jenis asas elemen set, yang boleh menjadi sebarang jenis ordinal kecuali WORD, INTEGER dan LONGINT.

Untuk menentukan set, pembina set yang dipanggil digunakan: senarai spesifikasi elemen set, dipisahkan dengan koma; senarai itu dikelilingi oleh kurungan segi empat sama. Spesifikasi elemen boleh menjadi pemalar atau ungkapan jenis asas, serta jenis julat jenis asas yang sama.

4. Fail

Fail difahami sebagai sama ada kawasan memori luaran PC yang dinamakan, atau peranti logik - sumber berpotensi atau penerima maklumat.

Mana-mana fail mempunyai tiga ciri ciri

    ia mempunyai nama, yang membolehkan program berfungsi dengan beberapa fail secara serentak.

    ia mengandungi komponen daripada jenis yang sama. Jenis komponen boleh menjadi mana-mana jenis Turbo Pascal, kecuali fail. Dengan kata lain, anda tidak boleh membuat "fail fail."

    panjang fail yang baru dibuat tidak dinyatakan dalam apa-apa cara apabila ia diisytiharkan dan hanya dihadkan oleh kapasiti peranti memori luaran.

Jenis fail atau pembolehubah jenis fail boleh ditentukan dalam salah satu daripada tiga cara:

< Nama>= FAIL DARI< menaip>;

< Nama>=TEKS;

<имя>= FAIL;

Di sini<имя>- nama jenis fail (pengecam yang betul);

FILE, OF – perkataan terpelihara (fail, daripada);

TEKS – nama jenis fail teks standard;

<тип>- sebarang jenis Turbo Pascal, kecuali fail.

Bergantung pada kaedah pengisytiharan, tiga jenis fail boleh dibezakan:

· fail ditaip (ditetapkan oleh FAIL OF... klausa);

· fail teks (ditakrifkan sebagai jenis TEKS);

· fail yang tidak ditaip (ditakrifkan oleh jenis FILE).

Perihal menukar jenis data angka Pascal

Dalam Pascal, penukaran tersirat (automatik) bagi jenis data berangka hampir mustahil. Pengecualian dibuat hanya untuk jenis integer, yang dibenarkan untuk digunakan dalam ungkapan jenis sebenar. Sebagai contoh, jika pembolehubah diisytiharkan seperti ini:

Var X: integer; Y: sebenar;

kemudian pengendali

akan betul dari segi sintaksis, walaupun terdapat ungkapan integer di sebelah kanan tanda tugasan dan pembolehubah sebenar di sebelah kiri, pengkompil akan menukar jenis data berangka secara automatik. Penukaran terbalik secara automatik daripada jenis sebenar kepada jenis integer adalah mustahil dalam Pascal. Mari kita ingat berapa banyak bait yang diperuntukkan untuk pembolehubah jenis integer dan nyata: 2 bait memori diperuntukkan untuk integer jenis data integer, dan 6 bait untuk sebenar. Terdapat dua fungsi terbina dalam untuk menukar nyata kepada integer: bulat(x) membundarkan x nyata kepada integer terdekat, trunc(x) memotong nyata dengan membuang bahagian pecahan.

Konsep jenis adalah salah satu konsep asas mana-mana bahasa pengaturcaraan. Objek (pemalar, pembolehubah, fungsi, ungkapan) yang dikendalikan oleh program ini tergolong dalam jenis tertentu.

taip ialah satu set nilai yang boleh diambil oleh objek program, dan satu set operasi yang dibenarkan pada nilai ini.

Sebagai contoh, nilai 1 dan 2 adalah daripada jenis integer dan boleh ditambah, didarab dan operasi aritmetik lain. Maksud "monitor" dan "Pascal" adalah bersifat linguistik; ia mempunyai set operasi sah mereka sendiri. Dalam kebanyakan bahasa yang biasa digunakan, hanya jenis yang ditakrifkan dengan ketat dan telah diketahui boleh digunakan. Pascal, bersama-sama dengan jenis standard yang terdapat dalam bahasa peringkat tinggi yang lain, membenarkan pengaturcara mencipta jenisnya sendiri.

Semua jenis yang dibenarkan dalam bahasa Pascal dibahagikan kepada dua kumpulan besar: mudah dan kompleks (berstruktur).

taip Julat Mantissa, tanda-tanda Memori yang diperlukan (bait)
SEBENAR 2.9*10E-39..1.7*10E38 11-12
BUJANG 1.5*10E-45..3.4*10E38 7-8
BERGANDA 5.0*10E-324..1.7*10E308 15-16
DILANJUTKAN 1.9*10E-4951..1.1*10E4932 19-20
COMP -2E+63+1..2E+63-1 10-20

Penggunaan berkesan jenis SINGLE, DOUBLE, EXTEND, COMP hanya boleh dilakukan apabila arahan ($N+) didayakan. Secara lalai ia dimatikan. Untuk menyelesaikan masalah kejuruteraan dan ekonomi, nilai jenis REAL adalah mencukupi.

Contoh

Var Res, Summa, Itog: real;

Boolean jenis data diterangkan oleh pengecam BOOLEAN. Pembolehubah dan pemalar jenis ini boleh mengambil hanya satu daripada dua nilai: TRUE (benar) atau FALSE (salah).

Contoh

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

Ungkapan Boolean menduduki 1 bait memori dan digunakan dalam ungkapan logik dan hubungan dan untuk mengawal susunan penyataan program dilaksanakan.

Tersurat (watak) jenis diterangkan oleh pengecam CHAR standard. Pemalar dan pembolehubah jenis ini boleh mengambil salah satu daripada nilai jadual kod ASCII. Makna pemalar atau pembolehubah jenis ini disertakan dalam apostrof.

Sebagai contoh, Var Bukva, Znak, Simbol: char;

Bukva:=’A’; Znak:=’+’; Simbol:=’!’

Pembolehubah jenis aksara menduduki 1 bait dalam ingatan. Penggunaan data char dalam ungkapan aritmetik adalah dilarang. Operasi perbandingan boleh digunakan pada nilai literal, hasilnya bergantung pada bilangan pembolehubah literal atau pemalar dalam jadual kod.

Selain jenis data standard, Pascal menyokong jenis skalar, ditentukan pengguna. Ini termasuk terbilang Dan selang waktu jenis . Jenis data ini menduduki 1 bait dalam ingatan, jadi mana-mana jenis tersuai tidak boleh mengandungi lebih daripada 255 elemen. Penggunaannya dengan ketara meningkatkan keterlihatan program, menjadikannya lebih mudah untuk mencari ralat dan menjimatkan memori.

Jenis enum ditentukan secara langsung dengan menyenaraikan semua nilai yang boleh diambil oleh pembolehubah jenis tertentu. Nilai individu dipisahkan dengan koma, dan keseluruhan senarai disertakan dalam kurungan.

Format

taip<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Contoh

Jenis Musim =(Musim Bunga, Musim Panas, Musim Gugur, Musim Sejuk);

Var S1, S2: Musim;

Musim luruh: (September, Oktober, Nowember);

Contoh ini menunjukkan jenis data pengguna Musim yang ditakrifkan secara eksplisit. Makna mereka ditentukan - sebutan musim. Pembolehubah S1 dan S2 boleh mengambil hanya satu daripada nilai yang disenaraikan. Percubaan untuk memberikan mereka sebarang nilai lain akan menyebabkan gangguan perisian. Jenis penghitungan ketiga adalah tanpa nama (tidak mempunyai nama) dan ditentukan dengan menghitung nilai dalam bahagian Var. Musim luruh adalah pembolehubah jenis ini dan boleh mengambil nilai September, Oktober, Nowember. Oleh itu, sebarang jenis boleh ditentukan, tetapi ini tidak selalu boleh diterima. Kaedah pertama sudah tentu lebih mudah difahami dan lebih konsisten dengan sifat bahasa Pascal.

Jenis selang membolehkan anda menentukan dua pemalar yang mentakrifkan sempadan julat nilai untuk pembolehubah tertentu. Untuk setiap operasi pada pembolehubah selang, pengkompil menjana rutin semakan untuk menentukan sama ada nilai pembolehubah kekal dalam julat yang ditentukan. Kedua-dua pemalar mesti tergolong dalam salah satu jenis piawai selain daripada sebenar. Nilai pemalar pertama mestilah kurang daripada nilai pemalar kedua.

Format

taip<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Contoh

Jenis Hari = 1.. 31;

Var Work_d, Free_d: Hari;

Dalam contoh ini pembolehubah Work_d, Free_d mempunyai jenis hari-hari dan boleh mengambil sebarang nilai daripada julat 1. . 31.

Keluar daripada julat menyebabkan gangguan perisian.

Anda boleh menentukan jenis selang dengan mentakrifkan sempadan julat bukan dengan nilai pemalar, tetapi dengan nama mereka:

Const Min = 1; Maks = 31;

Jenis Hari = Min .. Maks;

Var Work_d, Free_d: Hari;

Jenis berstruktur jenis data adalah berdasarkan jenis skalar dan boleh mengandungi pelbagai kombinasi daripadanya. Mereka mentakrifkan koleksi tertib elemen skalar dan dicirikan oleh jenis komponennya. Bahasa Pascal menyediakan jenis data berstruktur berikut:

baris - urutan aksara yang disertakan dalam apostrof;

tatasusunan - jenis data berstruktur yang terdiri daripada bilangan tetap elemen daripada jenis yang sama, diakses oleh indeks ;

sekumpulan - satu set objek yang dipilih mengikut beberapa ciri atau kumpulan ciri yang boleh dianggap sebagai keseluruhan;

rekod - satu set bilangan tetap komponen pelbagai jenis;

fail- urutan komponen yang sama jenis dan panjang yang sama.

Dua lagi jenis berstruktur—prosedur dan objek—sukar dipetakan kepada data dalam perwakilan konvensional.

Gambar 1- Satu set jenis asas bahasa Pascal

3.2. Jenis data ringkas dalam Turbo Pascal 7

Jenis mudah mentakrifkan set nilai parameter tersusun. Turbo Pascal mempunyai kumpulan jenis mudah berikut:

  • jenis integer;
  • jenis boolean;
  • jenis watak;
  • jenis terbilang;
  • julat jenis;
  • jenis sebenar.

Semua jenis mudah, kecuali jenis sebenar, dipanggil jenis ordinal. Untuk kuantiti jenis ordinal, prosedur dan fungsi standard ditakrifkan: Dis, Inc, Ord, Pred, Succ (lihat bahagian 13.1).

3.2.1. Jenis integer

Tidak seperti Pascal, yang mentakrifkan jenis integer tunggal, Integer, Turbo Pascal mempunyai lima jenis integer standard: Shortint, Integer, Longint, Byte, Word. Ciri-ciri jenis ini diberikan dalam jadual. 2.

Jadual 2. Jenis data integer

taip Julat Format Saiz dalam bait
Shortint -128 .. 127 ikonik 1
Integer -32768 .. 32767 ikonik 2
Longint -2147483648 .. 2147483647 ikonik 4
Bait 0 .. 255 Tidak ditandatangani 1
Perkataan 0 .. 65535 Tidak ditandatangani 2

3.2.2. Jenis Boolean

Jenis Boolean standard (saiz - 1 bait) ialah jenis data, mana-mana elemen yang boleh mengambil hanya dua nilai: Benar dan Salah. Dalam kes ini, syarat berikut adalah sah:
Ord Palsu (Salah) = 0
Ord (Benar) = 1
Succ (Salah) = Betul
Pred (Benar) = Salah

Turbo Pascal 7.0 menambah tiga lagi jenis logik ByteBool (saiz - 1 bait), WordBool (saiz - 2 bait) dan LongBool (saiz - 4 bait). Mereka diperkenalkan untuk penyatuan dengan bahasa pengaturcaraan lain dan dengan persekitaran Windows. Perbezaannya daripada jenis Boolean standard ialah nilai sebenar parameter jenis ini, sepadan dengan nilai Benar. Untuk semua jenis logik, nilai False sepadan dengan nombor 0, ditulis dalam bilangan bait yang sepadan. Nilai True untuk jenis Boolean sepadan dengan nombor 1 yang ditulis dalam baitnya, dan untuk jenis lain nilai True sepadan dengan sebarang nombor selain sifar (walaupun fungsi Ord dalam kes ini memberikan nilai 1).

3.2.3. Jenis watak

Jenis aksara standard Char mentakrifkan set penuh aksara ASCII. Fungsi Ord daripada nilai jenis Char memberikan kod aksara yang sepadan. Nilai jenis aksara dibandingkan mengikut kod mereka.

3.2.4. Jenis enum

Jenis terhitung bukan standard dan ditakrifkan oleh set pengecam yang boleh dipadankan oleh nilai parameter. Senarai pengecam ditunjukkan dalam kurungan, pengecam dipisahkan dengan koma:

menaip
= ();)

Adalah penting dalam susunan pengecam disenaraikan semasa mentakrifkan jenis, kerana pengecam pertama diberikan nombor siri 0, kedua - 1, dsb. Pengecam yang sama boleh digunakan dalam takrifan hanya satu jenis terhitung. Fungsi Ord daripada nilai jenis terhitung memberikan nombor ordinal nilainya.

Contoh. Jenis terhitung.

jenis Operat = (Tambah, Tolak, Mult, Bahagi);

Jenis boolean ialah kes khas bagi jenis yang disenaraikan:

taip Boolean = (Salah, Benar);

3.2.5. Julat jenis

Dalam mana-mana jenis ordinal, anda boleh memilih subset nilai, ditakrifkan oleh nilai minimum dan maksimum, yang merangkumi semua nilai jenis asal yang berada dalam sempadan ini, termasuk sempadan itu sendiri. Subset ini mentakrifkan jenis julat. Jenis julat ditentukan dengan menentukan nilai minimum dan maksimum, dipisahkan oleh dua titik:

jenis = . . ;

Nilai minimum semasa mentakrifkan jenis ini tidak boleh lebih besar daripada maksimum.

Contoh. Definisi jenis julat.

menaip
Sedozen = 1..12; (nombor dari 1 hingga 12)
AddSub = Tambah..Tolak; (operasi tambah dan tolak)

3.2.6. Jenis sebenar

Tidak seperti standard bahasa Pascal, di mana hanya satu jenis sebenar Real ditakrifkan, Turbo Pascal mempunyai lima jenis sebenar standard: Real, Single, Double, Extended, Comp. Untuk ciri-ciri jenis ini, lihat jadual. 3. Jadual 3. Jenis data sebenar

taip Julat Bilangan angka bererti Saiz dalam bait
Nyata 2.9*10-39..1.7*1038 11-12 6
Bujang 1.5*10-45..3.4*1038 7-8 4
berganda 5.0*10-324.-1.7*10308 15-16 8
Dipanjangkan 3.4*10-4932..1.1*104932 19-20 10
Komp -263+1..263-1 19-20 8

Jenis Comp sebenarnya ialah jenis integer julat lanjutan, tetapi tidak dianggap sebagai jenis ordinal.

Jenis Single, Double, Extended dan Comp boleh digunakan dalam program hanya jika terdapat coprocessor aritmetik atau jika emulator coprocessor didayakan (lihat perenggan 17.5.8 dan 17.7.1).