Memahami dan Menerapkan Tipe Data Array dalam Delphi

Array memungkinkan kita untuk merujuk ke serangkaian variabel dengan nama yang sama dan menggunakan nomor (indeks) untuk memanggil elemen individual dalam seri itu. Array memiliki batas atas dan bawah dan elemen-elemen array berdekatan di dalam batas-batas tersebut.

Elemen-elemen array adalah nilai-nilai yang semuanya memiliki tipe yang sama (string, integer, record, objek kustom).

Dalam Delphi, ada dua jenis array: array ukuran tetap yang selalu berukuran sama - array statis - dan array dinamis yang ukurannya dapat berubah saat runtime.

Array Statis

Misalkan kita sedang menulis sebuah program yang memungkinkan pengguna memasukkan beberapa nilai (mis. Jumlah janji temu) di awal setiap hari. Kami akan memilih untuk menyimpan informasi dalam daftar. Kita bisa memanggil daftar ini Janji temu, dan setiap nomor dapat disimpan sebagai Janji [1], Janji [2], dan sebagainya.

Untuk menggunakan daftar, pertama-tama kita harus mendeklarasikannya. Sebagai contoh:

 var Appointments: array [0..6] dari Integer; 
instagram viewer

mendeklarasikan variabel yang disebut Janji temu yang menampung array satu dimensi (vektor) dari 7 nilai integer. Dengan pernyataan ini, Janji [3] menunjukkan nilai integer keempat di Janji. Angka dalam kurung disebut indeks.

Jika kita membuat array statis tetapi jangan memberikan nilai ke semua elemennya, elemen yang tidak digunakan berisi data acak; mereka seperti variabel yang tidak diinisialisasi. Kode berikut dapat digunakan untuk mengatur semua elemen dalam array Appointments ke 0.

 untuk k: = 0 hingga 6 lakukan Janji [k]: = 0; 

Terkadang kita perlu melacak informasi terkait dalam array. Misalnya, untuk melacak setiap piksel pada layar komputer Anda, Anda perlu merujuk koordinat X dan Y menggunakan a multidimensi array untuk menyimpan nilai.

Dengan Delphi, kita dapat mendeklarasikan array dari beberapa dimensi. Sebagai contoh, pernyataan berikut mendeklarasikan array dua dimensi 7 dengan 24:

 var DayHour: array [1..7, 1..24] dari Real; 

Untuk menghitung jumlah elemen dalam array multidimensi, kalikan jumlah elemen dalam setiap indeks. Variabel DayHour, dideklarasikan di atas, menyisihkan 168 (7 * 24) elemen, dalam 7 baris dan 24 kolom. Untuk mengambil nilai dari sel di baris ketiga dan kolom ketujuh kita akan menggunakan: DayHour [3,7] atau DayHour [3] [7]. Kode berikut dapat digunakan untuk mengatur semua elemen dalam array DayHour ke 0.

 untuk i: = 1 hingga 7 lakukan
untuk j: = 1 hingga 24 do
DayHour [i, j]: = 0;

Array Dinamis

Anda mungkin tidak tahu persis seberapa besar untuk membuat array. Anda mungkin ingin memiliki kemampuan mengubah ukuran array saat runtime. Array dinamis menyatakan tipenya, tetapi bukan ukurannya. Ukuran aktual array dinamis dapat diubah saat runtime dengan menggunakan SetLength prosedur.

 var Students: berbagai string; 

menciptakan array dinamis satu dimensi dari string. Deklarasi tidak mengalokasikan memori untuk Siswa. Untuk membuat larik di memori, kami memanggil prosedur SetLength. Misalnya, mengingat deklarasi di atas,

 SetLength (Siswa, 14); 

mengalokasikan array 14 string, diindeks 0 hingga 13. Array dinamis selalu diindeks integer, selalu mulai dari 0 hingga kurang dari ukuran elemen.

Untuk membuat array dinamis dua dimensi, gunakan kode berikut:

 var Matrix: array array Ganda;
mulai
SetLength (Matrix, 10, 20)
akhir;

yang mengalokasikan ruang untuk array dua dimensi, nilai 10-kali-dua nilai floating-point.

Untuk menghapus ruang memori array dinamis, tetapkan nil ke variabel array, seperti:

 Matriks: = nil; 

Sangat sering, program Anda tidak tahu pada waktu kompilasi berapa banyak elemen yang akan dibutuhkan; nomor itu tidak akan diketahui sampai runtime. Dengan array dinamis, Anda hanya dapat mengalokasikan penyimpanan sebanyak yang diperlukan pada waktu tertentu. Dengan kata lain, ukuran array dinamis dapat diubah saat runtime, yang merupakan salah satu keunggulan utama array dinamis.

Contoh berikutnya membuat array nilai integer dan kemudian memanggil fungsi Salin untuk mengubah ukuran array.

 var
Vektor: array Integer;
k: integer;
mulai
SetLength (Vektor, 10);
untuk k: = Rendah (Vektor) ke Tinggi (Vektor) lakukan
Vektor [k]: = i * 10;
...
// sekarang kita butuh lebih banyak ruang
SetLength (Vektor, 20);
// di sini, array vektor dapat menyimpan hingga 20 elemen // (sudah memiliki 10 di antaranya) berakhir;

Fungsi SetLength membuat array yang lebih besar (atau lebih kecil) dan menyalin nilai yang ada ke array baru. Fungsi Rendah dan Tinggi memastikan Anda mengakses setiap elemen array tanpa melihat kembali kode Anda untuk nilai indeks yang lebih rendah dan lebih tinggi.

instagram story viewer