Apa itu byte dalam Pascal. Tipe data bilangan bulat. Format Deklarasi Variabel Boolean

Data apa pun - konstanta, variabel, nilai fungsi - dikarakterisasi dalam Pascal berdasarkan tipe data.

Mari kita definisikan konsepnya tipe data. Seperti yang telah diketahui, semua objek program (variabel, konstanta, dll) harus dijelaskan.

Deskripsi memberi tahu penerjemah, pertama, tentang keberadaan variabel dan objek lain yang digunakan, dan kedua, menunjukkan properti objek tersebut. Misalnya, deskripsi suatu variabel yang nilainya berupa bilangan menunjukkan sifat-sifat bilangan. Secara formal, bilangan dapat berupa bilangan bulat dan nyata (fraksional). Dalam Pascal, seperti dalam bahasa pemrograman lainnya, bilangan dibagi menjadi dua jenis: utuh(integer kata yang dicadangkan) dan nyata(kata yang dicadangkan nyata).

Pemisahan bilangan bulat menjadi tipe yang terpisah dijelaskan oleh fakta bahwa dalam komputer, bilangan bulat dan bilangan real direpresentasikan secara berbeda: bilangan bulat dapat direpresentasikan secara akurat, tetapi bilangan real pasti memiliki kesalahan yang terbatas, yang ditentukan oleh sifat-sifatnya. dari penerjemah.

Misalnya, variabel x bertipe real dan nilainya sama dengan satu: x=1 . Nilai yang sesuai dalam memori komputer dapat berupa 0,999999999, 1,000000001, atau 1,000000000. Tetapi jika variabel x dideklarasikan sebagai variabel bertipe integer, maka satuan di komputer akan terwakili secara tepat dan variabel x tidak akan dapat mengambil nilai real (fraksional) - lagipula, digambarkan sebagai variabel bertipe integer.

Jadi tipe datanya mendefinisikan:

  • representasi internal data dalam memori komputer;
  • himpunan nilai yang dapat diambil oleh besaran jenis ini;
  • operasi yang dapat dilakukan pada nilai jenis ini.

Pengenalan tipe data merupakan salah satu konsep dasar bahasa Pascal, yaitu ketika melakukan operasi penetapan suatu variabel ke nilai suatu ekspresi, variabel dan ekspresi tersebut harus bertipe sama. Pemeriksaan ini dilakukan oleh kompiler, yang sangat menyederhanakan pencarian kesalahan dan meningkatkan keandalan program.

Banyaknya tipe data bahasa Turbo Pascal dapat dibagi menjadi dua kelompok:

  • tipe standar (yang telah ditentukan sebelumnya). ;
  • tipe yang ditentukan pengguna (tipe yang ditentukan pengguna) .

Tipe Turbo Pascal standar meliputi:

  • tipe bilangan bulat – bilangan bulat;
  • tipe nyata – nyata;
  • tipe karakter – karakter;
  • tipe boolean – boolean;
  • jenis string – string ;
  • jenis penunjuk – penunjuk;
  • jenis teks – teks .

Tipe data khusus adalah berbagai kombinasi tipe standar.

Jenis khusus meliputi:

  • tipe yang disebutkan;
  • tipe interval;
  • tipe penunjuk;
  • tipe terstruktur;
  • tipe prosedural.

Komentar. Klasifikasi tipe data lain dimungkinkan, menurut tipe mana yang dibagi menjadi sederhana dan kompleks.

Tipe sederhana meliputi: tipe integer, tipe real, tipe karakter, tipe logika, tipe enumerasi, dan tipe interval.

Tipe kompleks adalah berbagai kombinasi tipe sederhana (array, record, set, file, dll.)

Tipe standar

Tipe data standar ditentukan oleh bahasa Pascal itu sendiri. Saat menggunakan tipe standar dalam suatu program, cukup dengan menunjukkan subbagian dari tipe yang diperlukan (const, var) dan kemudian menjelaskan konstanta dan variabel yang digunakan dalam program. Tidak perlu menggunakan subbagian Type.

Misalnya, jika program hanya menggunakan variabel:

i,j – bilangan bulat (bilangan bulat);

x,y - nyata (nyata);

t,s - karakter (karakter);

a,b – boolean (logis),

maka hanya diperlukan subbagian variabel - Var. Oleh karena itu, pada bagian deskriptif program, deklarasi variabel ditulis sebagai berikut:

Tipe bilangan bulat

Data jenis ini hanya dapat menerima nilai integer. Di komputer, nilai tipe integer direpresentasikan dengan sangat tepat. Jika variabelnya negatif maka harus didahului dengan tanda “–”, jika variabelnya positif maka tanda “+” dapat dihilangkan. Jenis ini diperlukan jika suatu besaran tidak dapat direpresentasikan secara kasar sebagai bilangan real. Misalnya jumlah manusia, hewan, dan lain-lain.

Contoh penulisan nilai integer : 17, 0, 44789, -4, -127.

Kisaran variasi data bertipe integer ditentukan oleh lima tipe integer standar dan disajikan dalam tabel:

Jenis Jangkauan Ukuran dalam byte
jalan pintas -128...+128 1
Bilangan bulat -32768...32767 2
lama sekali -2147483648...2147483647 4
byte 0...255 1
Kata 0...65535 2

Dua jenis terakhir hanya mewakili bilangan positif, dan tiga jenis pertama mewakili bilangan positif dan negatif.

Dalam teks program atau saat memasukkan data bertipe integer, nilainya ditulis tanpa titik desimal . Nilai variabel sebenarnya tidak boleh melebihi nilai yang diizinkan tipe (Shortint, Integer, Longint, Byte, Word) yang digunakan untuk mendeskripsikan variabel. Kemungkinan kelebihan selama penghitungan tidak dikontrol dengan cara apa pun, yang akan menyebabkan pengoperasian program yang salah.

Contoh penggunaan variabel integer

Var a: bilangan bulat; b:kata; c:bita; Mulai a:=300; (a diberi nilai 300) b:=300; (b disetel ke 300) c:=200; (c diatur ke 200) a:=b+c; (a disetel ke 500) c:=b; (Error! Variabel c hanya dapat mengambil nilai 255. Di sini variabel c disetel ke 500, yang akan menyebabkan hasilnya meluap.) Selesai.

Tipe nyata

Nilai tipe nyata direpresentasikan secara kasar di komputer. Kisaran variasi data tipe nyata ditentukan oleh lima tipe standar: nyata (Real), presisi tunggal (Single), presisi ganda (Double), presisi diperluas (Diperluas), kompleks (Comp) dan disajikan dalam tabel:

Jenis Jangkauan Jumlah angka penting Ukuran dalam byte
Nyata 2.9E-39...1.7E+38 11-12 6
Lajang 1.5E-45...3.4E+38 >7-8 4
Dobel 5E-324...1.7E+308 15-16 8
Diperpanjang 3.4E-4951...1.1E+4932 19-20 10
Komp -2E+63+1...+2E+63-1 19-20 8

Bilangan real dapat direpresentasikan dalam dua format: titik tetap dan titik mengambang.

Format penulisan bilangan titik tetap sama dengan notasi matematika biasa untuk bilangan desimal yang bagian pecahannya. Bagian pecahan dipisahkan dari bagian bilangan bulat dengan menggunakan titik, misalnya

34.5, -4.0, 77.001, 100.56

Format notasi floating point digunakan saat menulis bilangan yang sangat besar atau sangat kecil. Dalam format ini, angka sebelum "E" dikalikan dengan angka 10 pangkat setelah "E".

1E-4 1*10-4
3.4574E+3 3.4574*10+3
4.51E+1 4.51*10+1

Contoh bilangan floating point:

Nomor Perekaman dalam Pascal
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E+4
124 0,124E+3
124 1.24E+2
124 12.4E+1
124 1240E-1
124 12400E-2

Tabel dari 5 sampai 9 baris menunjukkan catatan angka yang sama 124. Dengan mengubah posisi koma desimal di mantissa (titik “mengambang”, maka dinamakan “mencatat angka floating point”) dan pada saat yang sama mengubah nilai pesanan, Anda dapat memilih nomor rekaman yang paling sesuai.

Contoh mendeskripsikan variabel bertipe nyata.

Tipe karakter

Nilai karakter adalah karakter yang dapat diketik pada keyboard komputer. Ini memungkinkan Anda untuk menyajikan teks dalam program dan melakukan berbagai operasi di dalamnya: menyisipkan, menghapus satu huruf dan kata, memformat, dll.

Tipe karakter ditentukan oleh kata khusus Char dan dirancang untuk menyimpan satu karakter. Data karakter memakan satu byte dalam memori.

Format deklarasi variabel simbolik:

<имя переменной>: Char;

Saat menentukan nilai variabel karakter, karakter ditulis dalam tanda kutip. Selain itu, Anda dapat menentukan karakter yang diperlukan dengan langsung menentukan nilai kode ASCII numeriknya. Dalam hal ini, Anda harus mengawali nomor yang menunjukkan kode ASCII dari karakter yang diperlukan dengan tanda #.

Contoh penggunaan variabel tipe karakter:

Var c:arang; (c adalah variabel tipe karakter) Mulai c:=’A’; (variabel c diberi karakter 'A') c:=#65; (variabel c juga diberi karakter A. Kode ASCII-nya adalah 65) c:=’5’; (variabel c diberi simbol 5, Akhir. Di sini 5 bukan lagi angka)

Tipe Boolean

Tipe data logis disebut Boolean setelah ahli matematika Inggris George Boole, pencipta bidang matematika - logika matematika.

Format untuk mendeklarasikan variabel bertipe Boolean:

<имя переменной>: boolean;

Data jenis ini hanya dapat mengambil dua nilai:

  • Betul betul;
  • Salah adalah kebohongan.

Data logika banyak digunakan dalam memeriksa keabsahan kondisi tertentu dan dalam membandingkan besaran. Hasilnya mungkin benar atau salah.

Untuk membandingkan data, operasi relasional berikut disediakan:

Contoh penggunaan operasi relasional:

relasi 5>3, hasil benar;

relasi 5=3, hasilnya salah.

Contoh penggunaan variabel bertipe Boolean.

Var a,b:boolean; (a,b adalah variabel bertipe logis) Begin a:=True; (variabel a disetel ke true) b:=false; (variabel b disetel ke false) Selesai.

Konstanta

Integer, bilangan real, karakter, string karakter, dan konstanta logika dapat digunakan sebagai konstanta.

Sebuah konstanta harus dideklarasikan dalam bagian deskriptifnya menggunakan kata const yang dicadangkan.

Format Deklarasi Konstan

Konstan<имя константы>= <значение>;

Jika suatu program menggunakan beberapa konstanta, hanya satu kata kunci Const yang diperbolehkan, dan deskripsi setiap konstanta diakhiri dengan titik koma. Sebuah blok konstan diakhiri dengan deklarasi bagian lain atau deklarasi blok pernyataan yang dapat dieksekusi.

Const (deklarasi bagian konstan) tahun=2003; (konstanta tipe integer, karena tidak ada koma desimal dalam catatan) time=14.05; (konstanta tipe nyata) N=24; (konstanta tipe integer, karena tidak ada titik desimal dalam notasinya) P=3.14; (konstanta tipe nyata) A=true; (konstanta boolean) str1='7'; (konstanta tipe karakter) str2='A'; (konstanta tipe karakter) str3='Turbo'; (konstanta tipe string) Var (deklarasi bagian variabel) X,y:integer; (variabel tipe integer)

Tipe khusus

Dari kumpulan tipe pengguna, kami hanya akan mempertimbangkannya

  • tipe yang disebutkan;
  • tipe interval.

Kita akan membutuhkan kedua tipe ini ketika mempelajari array.

Tipe enum

Tipe data yang disebutkan menjelaskan tipe data baru yang nilainya ditentukan oleh pemrogram. Tipe enumerasi ditentukan dengan enumerasi nilai yang dapat diterimanya. Setiap nilai diberi nama dengan beberapa pengidentifikasi dan terletak dalam daftar yang diapit tanda kurung. Tipe enumerasi adalah tipe data yang ditentukan pengguna, jadi deklarasi tipenya dimulai dengan kata khusus TYPE.

Format tipe enum:

<имя типа>= (konstan1, konstanta2,..., konstantaN);

Di mana
konstanta1 , konstanta2 ,..., konstantaN – himpunan nilai pengidentifikasi terurut yang diperlakukan sebagai konstanta.

Contoh deskripsi tipe yang disebutkan:

Ketik bola=(satu, dua, tiga, empat, lima); var t:bola;

Di sini bola adalah nama dari jenis yang disebutkan; satu, dua, tiga, empat, lima – konstanta; t adalah variabel yang dapat mengambil nilai konstan apa pun.

Pada tipe enumerasi, konstanta merupakan pengenal, sehingga tidak diberi tanda kutip dan tidak boleh berupa angka. Jadi, dalam tipe enumerasi, konstanta adalah jenis konstanta khusus yang tidak dapat berupa:

  • konstanta bertipe numerik: 1, 2, 3, 4, dst.;
  • konstanta tipe karakter: "a", "s", "1", "3", dll.;
  • konstanta tipe string: "pertama", "kedua", dll.

Selain itu, operasi aritmatika dan prosedur input dan output standar Baca dan Tulis tidak berlaku untuk nilai jenis ini.

Contoh penggunaan variabel enumerasi:

Ketik hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu); Var hari: hari; dimulai jika hari = Minggu maka writeln('Hari ini hari Minggu!'); Akhir.

Unsur-unsur yang termasuk dalam definisi tipe enumerasi dianggap terurut sesuai urutan pencacahannya. Penomoran dimulai dari nol. Oleh karena itu, dalam contoh yang diberikan, hari-hari dalam seminggu memiliki nomor seri berikut

Untuk menentukan nomor urut secara terprogram, fungsi Ord() digunakan.

Dalam contoh kita, nomor urutnya sama:

Pesanan(Senin) = 0;

Pesanan(Sabtu) = 5;

Ord(Minggu) = 6.

Tipe interval

Jika suatu variabel tidak menerima semua nilai dari tipenya, tetapi hanya nilai yang terdapat dalam rentang tertentu, maka tipe data ini disebut tipe interval. Tipe interval sering disebut tipe terbatas dan tipe rentang. Tipe interval ditentukan oleh batas nilainya:

<минимальное значение>..<максимальное значение>

  • dua karakter ".." diperlakukan sebagai satu karakter, jadi spasi di antara keduanya tidak diperbolehkan;
  • batas kiri jangkauan tidak boleh melebihi batas kanannya.

Tipe interval adalah tipe data yang ditentukan pengguna, sehingga deklarasi tipenya dimulai dengan kata fungsi TYPE.

Contoh deskripsi tipe interval:

Ketik angka = 1..10; bulan = 1..31; lat = 'A'..'Z';

Saat mendeskripsikan suatu variabel, Anda harus menunjukkan tipenya. Jenis variabel menjelaskan kumpulan nilai yang dapat diambil dan tindakan yang dapat dilakukan padanya. Deklarasi tipe menentukan pengidentifikasi yang mewakili tipe tersebut.

Tipe sederhana dibagi menjadi standar (ordinal) dan enumerasi (terbatas).

Tipe standar

Turbo Pascal memiliki empat tipe standar bawaan: integer, real, boolean, dan char.

Tipe bilangan bulat (integer)

Turbo Pascal memiliki lima tipe integer bawaan: shortint, integer, longint, byte, dan word. Setiap jenis menunjukkan subset bilangan bulat tertentu, seperti yang ditunjukkan pada Tabel berikut.

Tipe integer bawaan.

Jangkauan

Format

8 bit yang ditandatangani

16 bit yang ditandatangani

2147483648 +2147483647

32 bit ditandatangani

8 bit tidak ditandatangani

16 bit tidak ditandatangani

Operasi aritmatika pada operan bertipe integer dilakukan sesuai dengan aturan berikut:

  1. Tipe konstanta bilangan bulat adalah tipe bilangan bulat bawaan dengan rentang terkecil yang menyertakan nilai konstanta bilangan bulat tersebut.
  2. Dalam kasus operasi biner (operasi yang menggunakan dua operan), kedua operan dikonversi ke tipe umumnya sebelum operasi dilakukan pada operan tersebut. Tipe yang umum adalah tipe integer bawaan, dengan rentang terkecil yang mencakup semua kemungkinan nilai dari kedua tipe. Misalnya, tipe umum untuk bilangan bulat dan bilangan bulat dengan panjang byte adalah bilangan bulat, dan tipe umum untuk bilangan bulat dan bilangan bulat dengan panjang kata adalah bilangan bulat panjang. Tindakan tersebut dilakukan sesuai dengan presisi tipe generik dan tipe hasilnya adalah tipe generik.
  3. Ekspresi di sebelah kanan operator penugasan dievaluasi terlepas dari ukuran variabel di sebelah kiri.

Operasi yang dilakukan pada bilangan bulat:

"+" - tambahan

"-" - pengurangan

"*" - perkalian

SQR - mengkuadratkan

DIV - membuang bagian pecahan setelah pembagian

MOD - mendapatkan sisa bilangan bulat setelah pembagian

ABS - modul angka

RANDOM(X) - mendapatkan nomor acak dari 0 hingga X

J:=100 ; b:=60 ; hasil DIV b - 1 hasil MOD b - 40

Variabel tipe integer dijelaskan sebagai berikut:

daftar variabel var: tipe;

Misalnya: var а,р,n:integer;

Tipe nyata (nyata)

Tipe real adalah himpunan bagian bilangan real yang dapat direpresentasikan dalam format floating point dengan jumlah digit tetap. Menulis nilai dalam format floating point biasanya melibatkan tiga nilai - m, b dan e - sedemikian rupa sehingga m*b e, di mana b selalu 10 dan m dan e adalah nilai integer dalam rentang sebenarnya. Nilai m dan e ini selanjutnya menentukan jangkauan dan presisi tipe sebenarnya.

Ada lima tipe tipe real: real, single, double, exnende, comp. Tipe nyata berbeda dalam jangkauan dan ketepatan nilai yang terkait dengannya

Rentang dan angka desimal untuk tipe nyata

Jangkauan

Angka

2,9x10E-39 hingga 1,7x10E 38

1,5x10E-45 hingga 3,4x10E 38

5.0x10E-324 hingga 1.7x10E 308

3,4x10E-493 hingga 1,1x10E 403

2E 63 hingga 2E 63

Operasi yang dilakukan pada bilangan real:

  • Semua operasi valid untuk bilangan bulat.
  • SQRT(x) adalah akar kuadrat dari x.
  • DOSA(X), KARENA(X), ARCTAN(X).
  • LN(X) adalah logaritma natural.
  • EXP(X) adalah eksponen dari X (e x).
  • EXP(X*LN(A)) - eksponensial (A x).
  • Ketik fungsi konversi:
    • TRUNC(X) - membuang bagian pecahan;
    • PUTARAN(X) - pembulatan.
  • Beberapa aturan operasi aritmatika:
    • Jika suatu operasi aritmatika berisi bilangan bertipe real dan integer, maka hasilnya akan bertipe real.
    • Semua komponen ekspresi ditulis dalam satu baris.
    • Hanya tanda kurung yang digunakan.
    • Anda tidak dapat meletakkan dua tanda aritmatika secara berurutan.

Variabel bertipe real dijelaskan sebagai berikut:

daftar variabel var: tipe;

Misalnya:

var d,g,k:nyata ;

Tipe karakter (karakter)

Tipe char adalah karakter apa pun yang diapit tanda kutip. Untuk merepresentasikan apostrof sebagai variabel karakter, Anda harus mengapitnya dalam apostrof: ''''.

Setiap karakter memiliki kode dan nomornya masing-masing. Nomor urut digit 0,1..9 diurutkan menaik. Nomor urut hurufnya juga diurutkan menaik, namun tidak harus saling mengikuti.

Tanda perbandingan berikut berlaku untuk data karakter:

> , < , >=, <=, <> .

Misalnya: 'A'< ‘W’

Fungsi yang diterapkan pada variabel karakter:

  1. ORD(X) - menentukan nomor seri simbol X. ord ('a') =97 ;
  2. CHR(X) - mengidentifikasi karakter berdasarkan nomor.
  3. chr(97) ='a';
  4. PRED(X) - mengembalikan karakter sebelum karakter X pred ('B') ='A';

SUCC(X) - mengembalikan karakter setelah karakter X. succ ('A') ='B';

Tipe data enumerasi dinamakan demikian karena ditentukan sebagai daftar konstanta dalam urutan yang ditentukan secara ketat dan dalam jumlah yang ditentukan secara ketat. Tipe enumerasi terdiri dari daftar konstanta. Variabel jenis ini dapat mengambil nilai dari salah satu konstanta tersebut. Deskripsi jenis enumerasi terlihat seperti ini:

Jenis<имя типа>=(daftar konstanta) ; Var<имя переменной>:<имя типа>;

Di mana<список констант>- ini adalah jenis konstanta khusus, ditentukan dipisahkan dengan koma dan memiliki nomor seri sendiri, dimulai dari 0.

Misalnya:

ketik arah=(utara, selatan, barat, timur) ; bulan=(Juni, Juli, Agustus, Januari) ; kapasitas=(ember, tong, tabung, tangki) ; rotasi var:arah; keberangkatan:bulan; volume:kapasitas;

var belok:(utara, selatan, barat, timur) ; keberangkatan: (Juni, Juli, Agustus, Januari) ; volume: (ember, tong, tabung, tangki);

Anda dapat melakukan operator penugasan berikut:

Rotasi:=selatan; keberangkatan:=Agustus; volume:=tangki;

tetapi Anda tidak dapat mengerjakan tugas campuran:

Keberangkatan:=selatan; volume:=Agustus;

Fungsi berikut berlaku untuk variabel bertipe enumerasi:

1. ORD - nomor seri

2. PRED - elemen sebelumnya

3. SUCC - elemen berikutnya.

PRED (barel) = ember; SUCC (selatan) = barat; ORD (Juli) =1 ;< юг, июнь < январь имеют значения TRUE, а юг>Variabel bertipe enumerasi dapat dibandingkan karena diurutkan dan diberi nomor. Jadi ungkapannya: utara<бочка значение FАLSE.

barat dan tangki

Tipe terbatas

Jika suatu variabel tidak menerima semua nilai dari tipenya, tetapi hanya dalam rentang tertentu, maka variabel tersebut dapat dianggap sebagai variabel bertipe terbatas. Setiap tipe yang dibatasi didefinisikan dengan menerapkan batasan pada tipe dasar.

Hal ini dijelaskan sebagai berikut:<имя типа>JENIS

=konstan1 ..konstan2

  1. Dalam hal ini, aturan berikut harus dipatuhi:
  2. Kedua konstanta berbatas harus bertipe sama.
  3. Tipe sederhana apa pun kecuali real dapat digunakan sebagai tipe dasar.
Nilai awal saat menentukan tipe terbatas tidak boleh lebih besar dari nilai akhir.

ketik indeks =0 ..63 ; huruf='a'..'z'; var char1,char2:surat; a,g:indeks ;

Anda dapat langsung mendeskripsikannya di bagian deskripsi variabel:

var a,g:0 ..63 ; char1,char2:'a'..'z'.

Tipe data mendefinisikan sekumpulan nilai yang valid dan sekumpulan operasi yang valid.

Tipe sederhana.

Tipe sederhana dibagi menjadi ORDINAL dan REAL. , 1. JENIS PESANAN

pada gilirannya, ada:

a) keseluruhan

Pascal mendefinisikan 5 tipe integer, yang ditentukan tergantung pada tanda dan nilai yang akan diambil variabel.

Ketik nama

Panjangnya (dalam byte)

32 768...+32 767

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

Rentang nilai

b) logis

Nama tipe ini adalah BOOLEAN. Nilai Boolean dapat berupa salah satu konstanta logika: TRUE (benar) atau FALSE (salah).

Nama tipe ini adalah CHAR - menempati 1 byte. Nilai tipe karakter adalah kumpulan semua karakter PC. Setiap karakter diberi bilangan bulat dalam rentang 0…255. Nomor ini berfungsi sebagai kode representasi internal simbol.

2. JENIS NYATA .

Tidak seperti tipe ordinal, yang nilainya selalu dipetakan ke serangkaian bilangan bulat dan oleh karena itu direpresentasikan secara tepat di PC, nilai tipe real menentukan bilangan arbitrer hanya dengan presisi terbatas tergantung pada format internal bilangan real. .

Panjang tipe data numerik, byte

Nama tipe data numerik

Jumlah digit penting dari tipe data numerik

Rentang urutan desimal dari tipe data numerik

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

JENIS TERSTRUKTUR

Tipe data terstruktur menentukan kumpulan variabel skalar yang terurut dan dicirikan oleh tipe komponennya.

Tipe data terstruktur, tidak seperti tipe data sederhana, mendefinisikan banyak nilai kompleks dengan satu nama umum. Dapat dikatakan bahwa tipe struktural menentukan cara tertentu untuk membentuk tipe baru dari tipe yang sudah ada.

Ada beberapa metode penataan. Menurut metode pengorganisasian dan jenis komponen dalam tipe data kompleks, varietas berikut dibedakan: tipe reguler (array); tipe gabungan (catatan); tipe file(file); beberapa jenis; tipe string(string); dalam bahasa Turbo Pascal versi 6.0 dan yang lebih lama, tipe objek (objek) diperkenalkan.

Berbeda dengan tipe data sederhana, tipe data terstruktur dicirikan oleh banyaknya elemen yang membentuk tipe ini, yaitu. variabel atau konstanta bertipe terstruktur selalu memiliki banyak komponen. Setiap komponen, pada gilirannya, dapat termasuk dalam tipe terstruktur, yaitu. jenis bersarang dimungkinkan.

1. Array

Array di Turbo Pascal dalam banyak hal mirip dengan tipe data serupa dalam bahasa pemrograman lain. Ciri khas array adalah semua komponennya merupakan data dengan tipe yang sama (mungkin terstruktur). Komponen-komponen ini dapat dengan mudah diatur dan salah satu darinya dapat diakses hanya dengan menentukan nomor seri.

Deskripsi array ditentukan sebagai berikut:

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

Di Sini<имя типа>- pengidentifikasi yang benar;

Array, of – kata-kata yang dicadangkan (array, dari);

<сп.инд.типов>- daftar satu atau lebih tipe indeks, dipisahkan dengan koma; tanda kurung siku yang membingkai daftar adalah persyaratan sintaksis;

<тип>- semua jenis Turbo Pascal.

Tipe ordinal apa pun dapat digunakan sebagai tipe indeks di Turbo Pascal, kecuali LongInt dan tipe rentang dengan tipe dasar LongInt.

Kedalaman penumpukan tipe terstruktur secara umum, dan oleh karena itu array, bersifat arbitrer, sehingga jumlah elemen dalam daftar indeks tipe (ukuran array) tidak dibatasi, namun panjang total representasi internal array mana pun tidak dapat menjadi lebih dari 65520 byte.

2. Catatan

Catatan adalah struktur data yang terdiri dari sejumlah komponen tetap yang disebut bidang catatan. Berbeda dengan array, komponen (field) dari suatu record dapat mempunyai tipe yang berbeda-beda. Untuk memungkinkan referensi ke satu atau beberapa komponen rekaman, kolom diberi nama.

Struktur deklarasi tipe posting adalah:

< Namajenis>=REKAM< usaha patungan. bidang> SELESAI

Di Sini<имя типа>- pengidentifikasi yang benar;

RECORD, END – kata-kata yang dicadangkan (catatan, akhir);

<сп.полей>- daftar bidang; adalah urutan bagian dari rekaman yang dipisahkan oleh titik koma.

3. Set

Himpunan adalah sekumpulan objek bertipe sama yang terhubung secara logis satu sama lain. Sifat hubungan antar objek hanya tersirat oleh pemrogram dan sama sekali tidak dikendalikan oleh Turbo Pascal. jumlah elemen yang termasuk dalam suatu himpunan dapat bervariasi dari 0 hingga 256 (himpunan yang tidak mengandung elemen disebut kosong). Ini adalah ketidakkonstanan jumlah elemennya yang membuat himpunan berbeda dari array dan rekaman.

Dua himpunan dianggap ekuivalen jika dan hanya jika semua elemennya sama, dan urutan elemen-elemennya tidak berbeda. Jika semua elemen suatu himpunan juga termasuk dalam himpunan lain, dikatakan bahwa himpunan pertama termasuk dalam himpunan kedua.

Deskripsi tipe set adalah:

< Namajenis>=SET< pangkalan. jenis>

Di Sini<имя типа>- pengidentifikasi yang benar;

SET, OF – kata-kata yang dicadangkan (set, dari);

<баз.тип>- tipe dasar elemen himpunan, yang dapat berupa tipe ordinal apa pun kecuali WORD, INTEGER, dan LONGINT.

Untuk mendefinisikan suatu himpunan, digunakan apa yang disebut konstruktor himpunan: daftar spesifikasi elemen-elemen himpunan, dipisahkan dengan koma; daftar ini dikelilingi oleh tanda kurung siku. Spesifikasi elemen dapat berupa konstanta atau ekspresi dari tipe dasar, serta tipe rentang dari tipe dasar yang sama.

4. File

File dipahami sebagai area bernama memori eksternal PC, atau perangkat logis - sumber atau penerima informasi potensial.

File apa pun memiliki tiga ciri khas

    ia memiliki nama yang memungkinkan program bekerja dengan beberapa file secara bersamaan.

    itu berisi komponen dari tipe yang sama. Tipe komponen dapat berupa tipe Turbo Pascal apa saja, kecuali file. Dengan kata lain, Anda tidak dapat membuat “file dari file.”

    panjang file yang baru dibuat tidak ditentukan dengan cara apa pun saat dideklarasikan dan hanya dibatasi oleh kapasitas perangkat memori eksternal.

Tipe file atau variabel tipe file dapat ditentukan dengan salah satu dari tiga cara berikut:

< Nama>= FILE DARI< jenis>;

< Nama>=TEKS;

<имя>= FILE;

Di Sini<имя>- nama jenis file (pengidentifikasi yang benar);

FILE, OF – kata-kata yang dicadangkan (file, dari);

TEKS – nama jenis file teks standar;

<тип>- semua jenis Turbo Pascal, kecuali file.

Tergantung pada metode deklarasinya, tiga jenis file dapat dibedakan:

· file yang diketik (diatur oleh klausa FILE OF...);

· file teks (didefinisikan sebagai tipe TEKS);

· file yang belum diketik (ditentukan oleh jenis FILE).

Tentang mengonversi tipe data numerik Pascal

Konversi implisit (otomatis) dari tipe data numerik hampir tidak mungkin dilakukan di Pascal. Pengecualian dibuat hanya untuk tipe integer, yang diperbolehkan untuk digunakan dalam ekspresi tipe real. Misalnya jika variabel dideklarasikan seperti ini:

Var X: bilangan bulat; Y: nyata;

lalu operatornya

akan benar secara sintaksis, meskipun terdapat ekspresi bilangan bulat di sebelah kanan tanda penugasan dan variabel nyata di sebelah kiri, kompiler akan mengonversi tipe data numerik secara otomatis. Konversi terbalik secara otomatis dari tipe real ke tipe integer tidak mungkin dilakukan di Pascal. Mari kita ingat berapa byte yang dialokasikan untuk variabel bertipe integer dan real: 2 byte memori dialokasikan untuk tipe data integer integer, dan 6 byte untuk real. Ada dua fungsi bawaan untuk mengonversi real ke bilangan bulat: round(x) membulatkan x real ke bilangan bulat terdekat, trunc(x) memotong real dengan membuang bagian pecahannya.

Anda berada di bagian materi pemrograman Pascal. Sebelum kita memulai pemrograman, kita perlu memperjelas beberapa konsep yang kita perlukan di awal. Lagi pula, Anda tidak bisa memprogram seperti itu begitu saja. Kami tidak dapat menulis program dengan kata-kata - komputer tidak memahami apa pun selain nol dan satu. Untuk tujuan ini, simbolisme khusus diciptakan dalam Pascal - bahasa Pascal, seperangkat kata-kata khusus yang tidak dapat digunakan di mana pun dalam program Anda kecuali untuk tujuan yang dimaksudkan. Mari kita daftar konsep dasar yang kita perlukan di awal:

✎ 1) program – dalam bahasa Inggris “program”, ditulis di awal kode, diikuti nama program dalam bahasa Latin dan titik koma. Misalnya: program Ringkasan; − sebuah program bernama Summa. Namun bagian kode ini, yang disebut header program, tidak perlu ditulis - ini hanya ada untuk kejelasan dan menunjukkan masalah apa yang dipecahkan oleh program ini. Di sini kami menggunakan kata "kode" - ini adalah nama entri teks program.

✎ 2) integer – dalam bahasa Inggris berarti “integer” (atau hanya “integer”) dan dalam Pascal digunakan untuk menunjukkan bilangan bulat bertanda 32-bit (8 byte) dari rentang [-2147483648, 2147483647] . Kita akan melihat apa maksud dari angka-angka besar ini nanti.

✎ 3) nyata – dari bahasa Inggris “nyata”, “nyata”, “nyata”, “nyata”. Dalam bahasa Pascal, istilah ini menunjukkan bilangan real dalam rentang [-1.8∙10 308, 1.8∙10 308]. Ini adalah angka yang sangat besar, tetapi 15 - 16 digit penting ditampilkan. Omong-omong, tipe data integer dan real di lingkungan pemrograman PascalABC.Net selalu otomatis disorot dengan warna biru.

✎ 4) const – analog dengan bahasa Inggris. "konstan", artinya "konstan", "konstan". Dalam Pascal, ini adalah besaran yang tidak dapat diubah. Ada tertulis seperti ini:


Entri ini harus diambil seperti yang tertulis: angka N adalah 12, S adalah 5, “pi” adalah 3,14 (seperti dalam matematika, hanya titik yang digunakan sebagai pengganti koma dalam Pascal). Pada baris terakhir kami menggunakan garis miring ganda (dua garis miring), diikuti dengan teks - ini adalah bagaimana komentar ditulis dalam Pascal, dan program tidak melihatnya. Segala sesuatu yang dimulai dengan garis miring ganda dan sampai akhir baris adalah komentar, yang ditulis untuk menjelaskan program dan selalu disorot dengan warna berbeda (di PascalABC.Net berwarna hijau; Turbo Pascal tidak menggunakan jenis ini komentar). Ada jenis komentar lain - ini (teks diapit tanda kurung kurawal, seperti di sini, juga disorot dengan warna hijau). Jenis komentar ini dapat berlaku untuk beberapa baris berturut-turut - dari awal kurung hingga penutupnya, dan kompiler tidak menganggap segala sesuatu yang ada di tengah-tengah konstruksi tersebut sebagai kode dan melewatkannya begitu saja.

Sebenarnya format rekamannya konstanta sedikit lebih rumit. Menurut aturan, kami harus menulis:

1 2 3 4 konstanta N: ketik bilangan bulat;

Keterangan:

")" onmouseout="toolTip()">bilangan bulat
= 12 ; //angka N – tipe bilangan bulat S: ketik bilangan bulat;

Keterangan:
Mewakili bilangan bulat bertanda 32-bit.

Kisaran nilai: -2 147 483 648.. 2 147 483 647")" onmouseout="toolTip()">bilangan bulat
= 5 ; //angka S – tipe bilangan bulat pi: ketik nyata;

Keterangan:
Mewakili angka floating point presisi ganda.

Ukuran: 8 byte
Jumlah angka penting : 15 - 16
Kisaran nilai: -1.8∙10 308 .. 1.8∙10 308
")" onmouseout="toolTip()">nyata
= 3.14 ; //angka "pi" - nyata

Setelah mendeklarasikan setiap nilai, tipenya ditunjukkan, dan kemudian nilai diberikan. Tapi entri sebelumnya juga benar, karena kompiler Pascal dikonfigurasi sehingga secara otomatis menentukan jenis konstanta. Namun hal yang sama tidak dapat dikatakan tentang jenis bilangan berikutnya - variabel.

✎ 5) var – berasal dari bahasa Inggris. “variabel” (“variabel” atau “dapat diubah”), yang dalam Pascal berarti suatu nilai yang dapat berubah nilainya selama program berlangsung. Ada tertulis seperti ini:


Seperti dapat dilihat dari entri, tidak ada tanda “=” di sini - variabel dengan tipe yang sama dihitung ulang (dipisahkan dengan koma) dan hanya tipenya yang ditunjukkan setelah titik dua. Variabel N, m (integer) dan Q, r, t (real) dalam program masing-masing dapat mengubah nilai dalam batas integer dan real. Satu catatan lagi: deskripsi variabel selalu muncul setelah deskripsi konstanta (konstanta) - konstruksi const didahulukan, baru kemudian var.

✎ 6) mulai – diterjemahkan dari bahasa Inggris berarti “memulai” dan Pascal berarti awal dari program utama di mana perintah (operator) ditulis. Setelah kata itu mulai Tidak ada titik koma.

✎ 7) akhir – dalam bahasa Inggris. “end”, dan dalam Pascal artinya sama (akhir program). Setelah kata terakhir akhir selalu ada periodenya. Kami menekankan kata “terakhir” karena penggunaan konstruksinya mulai–akhir mungkin dalam satu kasus lagi: inilah yang disebut tanda kurung operator, yang digunakan untuk menggabungkan beberapa operasi di bawah satu operator. Tapi lebih dari itu nanti. Sehingga program utamanya akan terlihat seperti ini:

1 2 3 4 5 6 mulai < оператор 1 > ; < оператор 2 > ; . . . . . . . < оператор N > ; akhir.

Di sini, operator di badan program adalah perintah yang berbeda dengan kompiler.

✎ 8) write – dalam bahasa Inggris berarti “menulis”. Operator ini menampilkan teks yang ditempatkan di dalamnya, oleh karena itu disebut operator keluaran. Teks yang ditempatkan di dalamnya disorot dengan warna biru dan ditulis seperti ini:

Menulis( "teks ini ditampilkan di layar");

Pesan di dalam tanda kurung dan tanda kutip akan ditampilkan di jendela konsol (Anda tidak bisa memasukkannya begitu saja ke dalam tanda kurung tanpa tanda kutip). Setelah menjalankan pernyataan ini kita akan melihat di layar:

teks ini ditampilkan di layar

Dalam bentuk ini, operator tulis digunakan ketika Anda perlu menampilkan petunjuk, penjelasan, komentar, dll. Dan jika Anda juga perlu menampilkan nilai numerik, katakanlah, S = 50 sq. m, maka format yang digunakan:

Tulis(, S);

Hasilnya, kami mendapatkan hasil di layar:

Luasnya sama dengan: S = 50

Dan jika Anda ingin menampilkan satuan pengukuran, Anda perlu menyisipkan teks dalam tanda kutip lagi setelah S:

Menulis( “Ukuran luasnya adalah: S =”, S, " meter persegi" );

Setelah mengeksekusi pernyataan keluaran terakhir, kita mendapatkan keluaran berikut di layar:

Luas areanya adalah : S = 50 m2

✎ 9) writeln – sama seperti write, namun setelah dieksekusi kursor akan dipindahkan ke baris berikutnya.

✎ 10) membaca – diterjemahkan dari bahasa Inggris berarti “membaca”, jadi membaca disebut dengan operator baca atau input data. Ditulis sebagai read(N), artinya nilai N harus dimasukkan, dimana N adalah angka, atau teks, atau jenis variabel lainnya. Misalnya kita ingin memasukkan umur seseorang yang berumur 32 tahun, maka kita dapat menuliskannya seperti ini:


Di baris pertama kode ini, program menampilkan pertanyaan “ Berapa umurmu?" dan memindahkan kursor ke baris berikutnya (berakhir ln); di baris kedua kita mencetak “Tahun =” (spasi di awal); Selanjutnya kita melihat operator readln(Year) yang artinya harus memasukkan umur Tahun (angka 32); terakhir, kami menampilkan pesan “Umur saya”, “32” dan “tahun. " satu per satu. Anda perlu memperhatikan ruang dengan hati-hati. Sebagai hasil dari mengeksekusi kode ini, kami akan menerima pesan:

Berapa umurmu?
Tahun = 32
Usia saya 32 tahun

✎ 11) readln – sama seperti read, hanya dengan baris baru. Memang pada contoh di atas, setelah memasukkan angka Tahun, kita hanya menulis di baris berikutnya: “ Usia saya 32 tahun».

Itu saja untuk saat ini. Pada halaman berikutnya kita akan menulis program pertama, dan dalam pemrograman Pascal ini akan menjadi program kita

Dalam bahasa Pascal variabel dicirikan olehnya jenis. Tipe adalah properti variabel yang dengannya suatu variabel dapat mengambil banyak nilai yang diizinkan oleh tipe tersebut dan berpartisipasi dalam banyak operasi yang diizinkan pada tipe tersebut.

Tipe mendefinisikan kumpulan nilai valid yang dapat diterima oleh variabel tipe tertentu. Ini juga mendefinisikan serangkaian operasi yang diizinkan pada variabel dengan tipe tertentu dan menentukan representasi data dalam RAM komputer.

Misalnya:

n: bilangan bulat;

Pascal merupakan bahasa statis yang artinya tipe suatu variabel ditentukan ketika dideklarasikan dan tidak dapat diubah. Bahasa Pascal memiliki sistem tipe yang dikembangkan - semua data harus termasuk dalam tipe data yang diketahui sebelumnya (baik tipe standar yang dibuat selama pengembangan bahasa, atau tipe khusus yang ditentukan oleh pemrogram). Pemrogram dapat membuat tipenya sendiri dengan struktur kompleksitas yang berubah-ubah berdasarkan tipe standar atau tipe yang telah ditentukan oleh pengguna. Jumlah tipe yang dibuat tidak terbatas. Tipe khusus dalam suatu program dideklarasikan di bagian TYPE dengan format:

[nama] = [ketik]

Sistem tipe standar memiliki struktur hierarki yang luas.

Yang utama dalam hierarki adalah tipe sederhana. Tipe seperti itu terdapat di sebagian besar bahasa pemrograman dan disebut sederhana, tetapi dalam Pascal mereka memiliki struktur yang lebih kompleks.

Tipe terstruktur dibangun menurut aturan tertentu dari tipe sederhana.

Rambu-rambu dibentuk dari tipe sederhana dan digunakan dalam program untuk menentukan alamat.

Jenis prosedural adalah inovasi dalam bahasa Turbo Pascal, dan memungkinkan subrutin diakses seolah-olah merupakan variabel.

Objek juga merupakan sebuah inovasi, dan dimaksudkan untuk menggunakan bahasa tersebut sebagai bahasa berorientasi objek.

Dalam bahasa Pascal, ada 5 jenis tipe integer. Masing-masing mencirikan rentang nilai yang diterima dan ruang yang ditempatinya dalam memori.

Saat menggunakan bilangan bulat, Anda harus dipandu oleh tipe yang bersarang, mis. tipe dengan rentang yang lebih kecil dapat disarangkan dalam tipe dengan rentang yang lebih besar. Tipe Byte dapat disarangkan dalam semua tipe yang menempati 2 dan 4 byte. Pada saat yang sama, tipe Short Int, yang menempati 1 byte, tidak dapat disarangkan ke tipe Word, karena tidak memiliki nilai negatif.

Ada 5 tipe nyata:

Tipe integer direpresentasikan secara tepat di komputer. Tidak seperti tipe bilangan bulat, nilai tipe real mendefinisikan bilangan arbitrer hanya dengan presisi terbatas, bergantung pada format bilangan tersebut. Bilangan real direpresentasikan dalam komputer sebagai titik tetap atau titik mengambang.

2358.8395

0.23588395*10 4

0,23588395*E 4

Tipe Comp menempati posisi khusus dalam Pascal; faktanya, ini adalah bilangan bulat bertanda besar. Tipe ini kompatibel dengan semua tipe real dan dapat digunakan untuk bilangan bulat besar. Saat merepresentasikan bilangan real dengan floating point, koma desimal selalu dicantumkan sebelum mantissa kiri atau mantissa terdepan, namun saat mengoperasikan suatu bilangan, koma tersebut digeser ke kiri atau kanan.

Tipe biasa

Tipe ordinal menggabungkan beberapa tipe sederhana. Ini termasuk:

  • semua tipe bilangan bulat;
  • tipe karakter;
  • tipe boolean;
  • rentang tipe;
  • tipe yang disebutkan.

Fitur umum untuk tipe ordinal adalah: setiap tipe memiliki sejumlah kemungkinan nilai yang terbatas; nilai dari jenis-jenis tersebut dapat diurutkan dengan cara tertentu dan suatu bilangan tertentu, yaitu suatu nomor urut, dapat dikaitkan dengan setiap nomor; nilai yang berdekatan dari tipe ordinal berbeda satu.

Untuk nilai bertipe ordinal, fungsi ODD(x) dapat diterapkan, yang mengembalikan nomor urut argumen x.

Fungsi PRED(x) - mengembalikan nilai sebelumnya dari tipe ordinal. PRED(A) = 5.

Fungsi SUCC(x) - mengembalikan nilai ordinal berikutnya. SUCC(A) = 5.

Tipe karakter

Nilai tipe karakter adalah 256 karakter dari kumpulan yang diizinkan oleh tabel kode komputer yang digunakan. Area awal himpunan ini, yaitu rentang dari 0 hingga 127, sesuai dengan himpunan kode ASCII, tempat karakter alfabet, angka Arab, dan karakter khusus dimuat. Karakter area awal selalu ada di keyboard PC. Wilayah tinggi disebut wilayah alternatif, berisi karakter-karakter dari alfabet nasional dan berbagai karakter khusus serta karakter pseudografik yang tidak sesuai dengan kode ASCII.

Nilai tipe karakter membutuhkan satu byte dalam RAM. Dalam program tersebut, makna diapit tanda kutip. Nilai juga dapat ditentukan dalam bentuk kode ASCII-nya. Dalam hal ini, Anda perlu memberi tanda # di depan nomor dengan kode simbol.

C:= 'SEBUAH'

Tipe logis (Boolean).

Ada dua nilai Boolean: Benar dan Salah. Variabel jenis ini ditentukan menggunakan kata fungsi BOOLEAN. Nilai Boolean menempati satu byte dalam RAM. Nilai Benar dan Salah sesuai dengan nilai numerik 1 dan 0.

Rentang tipe

Ada subset dari tipe dasarnya, yang bisa berupa tipe ordinal apa pun. Tipe rentang ditentukan oleh batas-batas dalam tipe dasar.

[nilai minimum]…[nilai maksimum]

Tipe rentang dapat ditentukan di bagian Tipe, sebagai tipe tertentu, atau langsung di bagian Var.

Saat menentukan rentang jenis, Anda harus dipandu oleh:

  • batas kiri tidak boleh melebihi batas kanan;
  • tipe rentang mewarisi semua properti tipe dasar, tetapi dengan batasan yang terkait dengan daya yang lebih rendah.

Tipe enum

Tipe ini termasuk tipe ordinal dan ditentukan dengan menghitung nilai-nilai yang dapat dihitungnya. Setiap nilai disebut pengidentifikasi tertentu dan terletak dalam daftar, dibingkai dalam tanda kurung. Tipe yang disebutkan ditentukan dalam Tipe:

Masyarakat = (laki-laki, perempuan);

Nilai pertama adalah 0, nilai kedua adalah 1, dan seterusnya.

Nilai daya maksimum 65535.

Tipe tali

Tipe string termasuk dalam kelompok tipe terstruktur dan terdiri dari tipe dasar Char. Tipe string bukan tipe ordinal. Ini mendefinisikan banyak string karakter dengan panjang sewenang-wenang hingga 255 karakter.

Dalam suatu program, tipe string dideklarasikan dengan kata String. Karena String adalah tipe dasar, maka didefinisikan dalam bahasa dan deklarasi variabel bertipe String dilakukan di Var. Saat mendeklarasikan variabel bertipe string sebagai String, disarankan untuk menunjukkan panjang string dalam tanda kurung siku. Bilangan bulat dari 0 hingga 255 digunakan untuk menunjukkan.

Keluarga: Tali;

Menentukan panjang string memungkinkan kompiler mengalokasikan jumlah byte tertentu dalam RAM untuk variabel ini. Jika panjang string tidak ditentukan, maka kompiler akan mengalokasikan jumlah byte maksimum yang mungkin (255) untuk nilai variabel ini.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat