Delphi bahasa pemrograman adalah contoh dari bahasa yang sangat diketik. Ini berarti bahwa semua variabel harus bertipe tertentu. Suatu tipe pada dasarnya adalah nama untuk jenis data. Ketika kita mendeklarasikan suatu variabel, kita harus menentukan jenisnya, yang menentukan sekumpulan nilai yang bisa dipegang oleh variabel dan operasi yang dapat dilakukan di dalamnya.
Banyak tipe data bawaan Delphi, seperti Integer atau Tali, dapat disempurnakan atau dikombinasikan untuk membuat tipe data baru. Pada artikel ini, kita akan melihat cara membuat tipe data ordinal khusus Delphi.
Jenis Ordinal
Karakteristik yang menentukan dari tipe data ordinal adalah: mereka harus terdiri dari sejumlah elemen dan mereka harus dipesan dengan cara tertentu.
Contoh paling umum dari tipe data ordinal adalah semua tipe Integer serta Char dan Boolean Tipe. Lebih tepatnya, Object Pascal memiliki 12 tipe ordinal yang telah ditentukan: Integer, Shortint, Smallint, Longint, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool, dan Char. Ada juga dua kelas tipe ordinal yang ditentukan pengguna: tipe enumerasi dan tipe subrange.
Dalam tipe ordinal apa pun, masuk akal untuk bergerak mundur atau maju ke elemen berikutnya. Misalnya, tipe nyata tidak ordinal karena bergerak mundur atau maju tidak masuk akal. Pertanyaan "Apa yang nyata berikutnya setelah 2,5?" tidak ada artinya.
Karena, menurut definisi, setiap nilai kecuali yang pertama memiliki pendahulu yang unik dan setiap nilai kecuali yang terakhir memiliki penerus yang unik, beberapa nilai telah ditentukan sebelumnya. fungsi digunakan ketika bekerja dengan tipe ordinal:
Fungsi | Efek |
Ord (X) | Memberikan indeks elemen |
Pred (X) | Pergi ke elemen yang terdaftar sebelum X dalam tipe |
Succ (X) | Pergi ke elemen yang terdaftar setelah X dalam tipe |
Des (X; n) | Memindahkan n elemen kembali (jika n dihilangkan, memindahkan 1 elemen kembali) |
Inc (X; n) | Memindahkan n elemen ke depan (jika n dihilangkan, bergerak 1 elemen ke depan) |
Rendah (X) | Mengembalikan nilai terendah dalam kisaran tipe data ordinal X |
Tinggi (X) | Mengembalikan nilai tertinggi dalam kisaran tipe data ordinal X |
Misalnya, Tinggi (Byte) mengembalikan 255 karena nilai tertinggi dari tipe Byte adalah 255, dan Succ (2) mengembalikan 3 karena 3 adalah penerus dari 2.
Catatan: Jika kita mencoba menggunakan Succ ketika pada elemen terakhir Delphi akan menghasilkan a run-time exception jika pemeriksaan rentang aktif.
Delphi Enumerated Type
Cara termudah untuk membuat contoh baru dari tipe ordinal adalah dengan mendaftar banyak elemen dalam suatu urutan. Nilai-nilai tidak memiliki makna yang melekat, dan ordinalitas mereka mengikuti urutan di mana pengidentifikasi terdaftar. Dengan kata lain, enumerasi adalah daftar nilai.
Tipe TWeekDays = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu);
Setelah kami mendefinisikan tipe data yang disebutkan, kami dapat mendeklarasikan variabel dari tipe itu:
var SomeDay: TWeekDays;
Tujuan utama dari tipe data yang disebutkan adalah untuk memperjelas data apa yang Anda miliki program akan memanipulasi. Tipe enumerasi sebenarnya hanya cara singkat menetapkan nilai sekuensial ke konstanta. Mengingat deklarasi ini, Selasa adalah tipe konstan TWeekDays.
Delphi memungkinkan kita untuk bekerja dengan elemen-elemen dalam tipe enumerasi menggunakan indeks yang berasal dari urutan mereka terdaftar. Dalam contoh sebelumnya, Senin di TWeekDays ketik deklarasi memiliki indeks 0, Selasa memiliki indeks 1, dan seterusnya. Fungsi-fungsi yang tercantum dalam tabel sebelum memberi kami, misalnya, menggunakan Succ (Jumat) untuk "pergi ke" Sabtu.
Sekarang kita dapat mencoba sesuatu seperti:
untuk SomeDay: = Senin untuk Minggu melakukanjika SomeDay = Selasa kemudian ShowMessage ('Selasa itu!');
Perpustakaan Komponen Visual Delphi menggunakan tipe enumerasi di banyak tempat. Misalnya, posisi formulir didefinisikan sebagai berikut:
TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);
Kami menggunakan Posisi (melalui Object Inspector) untuk mendapatkan atau mengatur ukuran dan penempatan bentuk.
Jenis Subrange
Sederhananya, tipe subrange mewakili subset dari nilai-nilai dalam tipe ordinal lain. Secara umum, kita dapat mendefinisikan subrange dengan memulai dengan tipe ordinal (termasuk tipe enumerasi yang didefinisikan sebelumnya) dan menggunakan titik ganda:
Tipe TWorkDays = Senin.. Jumat;
Di sini, TWorkDays menyertakan nilai Senin, Selasa, Rabu, Kamis, dan Jumat.
Itu saja - sekarang pergi menghitung!