Halo dan selamat datang.
Dalam kuliah ini saya ingin berbicara tentang array multidimensi.
Sampai saat ini, jika Anda sudah memikirkan array, Anda baru saja
mengatakan array adalah variabel yang dapat menyimpan banyak jenis data.
Ini bisa menjadi lebih rumit dari itu.
Anda pada dasarnya dapat memiliki banyak dimensi array.
Jadi jika Anda hanya memiliki array linier yang telah kita bahas sejauh ini, yang
disebut dimensi tunggal.
Dan kami tahu itu single dimensi karena hanya
memiliki satu kurung dengan satu ukuran.
Bahasa c memungkinkan array dimensi apapun untuk didenda.
Jadi ini semacam pemikiran seperti array bersarang, array dari array.
Jadi array dua dimensi adalah yang paling umum.
Tapi Anda benar-benar bisa melakukannya array tiga dimensi,
array empat dimensi, array lima dimensi, tetapi tidak banyak kasus
penggunaan untuk 3 4 dan 5.
Sungguh, Anda juga akan memiliki array satu dimensi yang Anda
gunakan dalam program Anda atau larik dua dimensi.
array dua dimensi adalah umum karena
pada dasarnya mewakili baris dan kolom dalam spreadsheet, itulah
bagaimana Anda dapat memvisualisasikannya atau matriks atau tabel.
Itu adalah array dua dimensi, Anda memiliki baris dan Anda memiliki kolom.
Jadi Anda dapat menyimpan lebih banyak data dari
array dimensi tunggal dengan menentukan ukuran.
Tapi itu sangat aplikatif karena terlihat seperti matriks.
Dan ada aplikasi yang Anda mungkin ingin menulis yang memiliki konsep matriks
ini, khususnya aplikasi matematika akan paling relevan
di sini.
Tetapi Anda dapat menggunakannya untuk melakukan dua dimensi array untuk banyak hal yang berbeda.
Salah satu contohnya adalah matriks.
Tapi sekali lagi, visualisasikan itu sebagai sebuah tabel.
Array dua dimensi adalah dideklarasikan dengan cara yang sama
seperti array satu dimensi.
Satu-satunya perbedaan adalah kamu sekarang memiliki satu set kurung.
Jadi dalam contoh ini, kami mendeklarasikan array bernama matriks tipe int
yang memiliki 4 baris dan 5 kolom.
Itu berarti Anda dapat menyimpan 20 elemen di dalam array dua dimensi itu.
Jadi, Anda harus tahu caranya masing-masing dimensi ditentukan
dengan sepasang kurung perseginya sendiri.
begitulah cara Anda dapat dengan mudah menemukannya berapa banyak dimensi yang dimiliki array.
Jika Anda memiliki 3 tanda kurung di sana, itu akan menjadi array tiga dimensi.
Jika Anda memiliki 4, itu akan menjadi empat.
Yang ini ada 2 jadi 2.
Dan sampai sebelumnya kuliah hanya memiliki satu, jadi kami tahu itu
adalah satu dimensi.
Jadi lihat tanda kurung, memperhatikan itu.
Sekali lagi 4 baris, 5 kolom, berjumlah 20 elemen.
Untuk menginisialisasi array dua dimensi, itu akan diinisialisasi dengan cara yang sama
dari satu dimensi array, jenis sintaks yang sama, Anda hanya akan
menambahkan lebih banyak.
Jadi ketika Anda membuat daftar elemen untuk inisialisasi, nilai-nilai akan
dicantumkan menurut baris.
Dan perbedaannya di sini adalah ketika Anda meletakkan
nilai awal untuk setiap baris, Anda akan melakukannya itu di antara kurung kurawal, kurung kurawal dan
kemudian Anda akan melampirkan semua baris di antara kurung kurawal.
Jadi itu akan terlihat sesuatu seperti ini.
Jika kita membuat array angka, yang 2 dimensi, 3
baris dan 4 kolom dan kami ingin inisialisasi, yang harus Anda
lakukan adalah memasukkan tanda kurung kurawal seluruh array dan kemudian tambahkan kurung kurawal bersarang
dalam untuk setiap baris.
Jadi di sini kita menginisialisasi nilai 0 sub-0 hingga 10, 0 sub-1 hingga 20, 0 sub-2 hingga 30
dan 0 sub-3 hingga 40.
Dan begitulah cara Anda mengakses array multi-dimensi juga.
Anda mengaksesnya dengan baris dalam kolom.
Kamu hanya perlu mengingat bahwa itu berbasis 0.
Jadi tangan kiri atas yang akan menjadi baris 1 kolom 1 akan menjadi 00 dan itu akan
sama dengan 10.
Baris 1 kolom 2 akan menjadi sama dengan 20, tetapi
Anda akan mengaksesnya sebagai angka 0 sub-1.
Karena larik pertama berisi 3 baris yang Anda akses itu nomor yang Anda tentukan untuk nomor baris
dan maka nomor kolom adalah spesifikasi selanjutnya
untuk mengakses array.
Tapi individualisasi itu cantik sederhana, hanya memisahkan
hal-hal dengan komentar dengan tanda kurung.
Dan mengaksesnya, Anda akan mengakses itu seperti Anda mengakses array normal kecuali
Anda sekarang sedang mengakses konsep baris dalam kolom ini.
Jadi penggunaan pasangan dalam dari kawat gigi sebenarnya opsional, tetapi Anda harus
menggunakannya agar mudah dibaca.
Jika Anda tidak memberikan kawat gigi itu, Anda sebenarnya
bisa saja menyediakan 10 20 30 40 15 25 35, semuanya adil berurutan, tetapi sangat sulit untuk memvisualisasikan apa
yang Anda inisialisasi.
Sebagai seorang programmer, keterbacaan adalah sangat, sangat penting karena meningkatkan
kualitas kode lebih mudah untuk mempertahankan kode.
Ketika saya melihat ini di sini, Saya dapat dengan mudah
mengidentifikasi, terutama dengan komentar, siapa saya inisialisasi ke, nilai apa dan baris
apa yang akan diinisialisasi.
Jika saya memilikinya sebagai satu baris hanya nomor berurutan, saya
akan tersesat sangat cepat.
Jadi meskipun tanda kurung dalam tidak perlu, gunakan saja.
Seperti halnya array satu dimensi, tidak perlu
seluruh array diinisialisasi.
Anda bisa menginisialisasi area tertentu.
Jadi dalam contoh ini, kita membuat array dua dimensi dengan
4 baris dan 5 kolom.
Kami hanya menginisialisasi 3 elemen pertama dari setiap baris.
Jadi baris 1 kolom 1 adalah 10, baris 1 kolom 2 adalah 5 dan baris 1 kolom 3 adalah
3 negatif, dan sama untuk
kolom kedua dan seterusnya 900 32 31.0008.
Untuk yang tidak kami atur nilai ke-4 dan kelima
dari setiap baris, itu benar-benar berjalan disetel ke 0 secara otomatis karena
kami mengabaikannya.
Dan dalam hal ini, kamu sebenarnya harus menyediakan kurung
kurawal, yang dalam.
Karena di sini jika kita melakukannya itu,
inisialisasi akan kacau.
Karena jika Anda tidak memiliki kurung kurawal, itu hanya
akan melakukannya secara berurutan.
Jadi apa yang akan terjadi
adalah ini akan benar-benar menginisialisasi 12 elemen pertama.
Jadi itu akan menginisialisasi semua elemen di baris pertama, semua elemen di
baris kedua dan kemudian 2 elemen pertama di baris ketiga
dan kemudian elemen lainnya di baris ketiga, sisa elemen di
baris ke-4 akan menjadi 0.
Sekali lagi, ini adalah dua dimensi susunan 4 baris dan 5 kolom.
Itu hanya akan melakukannya secara berurutan.
Jadi jangan lupa kawat gigi jika Anda jika Anda
hanya ingin menentukan elemen inisialisasi tertentu.
Anda juga bisa melakukannya inisialisasi yang ditunjuk.
Ingat, ini adalah konsep C99.
Itu opsional di C11 di mana Anda
dapat menentukan indeks tertentu untuk diinisialisasi.
Jadi, Anda dapat menggunakan subskrip di daftar inisialisasi, seperti dalam array
dimensi tunggal jika Anda mau untuk melakukan penginisialisasi yang ditunjuk, Anda hanya perlu
melakukan sesuatu seperti ini.
Jadi di sini kita mendeklarasikan matriks kita array 4 baris dan 3 kolom, tetapi sebenarnya kami menentukan
bahwa 0 0 sama dengan 1, 1 1 sama dengan 5 dan 2
2 sama dengan 9.
Jadi ketika kita mengatakan 2 2 lagi, apa? kita katakan adalah baris 2 yang benar-benar
baris 3 karena kita mulai dari 0, kolom 2 yang benar-benar kolom 3.
Sekali lagi, visualisasikan ini sebagai tabel atau lembar kerja.
Dan mengakses elemen dimulai di pojok kiri atas.
Tetapi jika Anda memahami bahwa 4 mewakili baris dan 3
mewakili kolom, itu cukup intuitif setelah itu.
Jadi apa yang dilakukan ini adalah menginisialisasi 3 elemen matriks yang
ditunjukkan ke nilai yang ditentukan.
Tapi apa yang Anda harus? perhatikan di sini adalah sintaksnya.
Semua nilai yang tidak ditentukan di sini akan menjadi 0 secara default.
Jadi ini hanya akan untuk menginisialisasi 3 nilai.
Setiap rangkaian nilai yang Anda lakukan inisialisasi akan menjadi
elemen berturut-turut di antara kurung kurawal.
Dan kemudian seluruh inisialisasi berjalan di antara sepasang kawat gigi lainnya.
Jadi Anda melihat bahwa kami memiliki kurung kurawal di bagian luar
seperti inisialisasi normal dan kemudian kami memiliki tanda kurung
untuk mengakses array di dalamnya.
Dan kemudian kita memiliki koma untuk pisahkan setiap baris dan setiap set
nilai baris dipisahkan dari set berikutnya dengan koma.
Jadi nilainya dipisahkan dan juga indeks baris.
Sekarang hanya karena kami mengatakan itu kami memiliki 2 dimensi
dan kami telah membicarakannya; kamu bisa sebenarnya memiliki banyak dimensi lain.
Semua yang saya bicarakan dengan 2 dimensi juga berlaku untuk
3 dimensi 4 dimensi 5 dimensi.
Jadi jika Anda ingin mendeklarasikan Array
3 dimensi, Anda akan melakukannya dengan 3 tanda kurung siku.
Jadi inilah array bernama box dari tipe int 10 20 dan 30.
Anda mungkin ingin menggunakan
array tiga dimensi mungkin jika Anda menyimpan semacam nilai xyz, Anda mungkin tidak perlu melakukan ini.
Array tiga dimensi dan up benar-benar tidak umum.
Sebagai ringkasan, Anda dapat memvisualisasikan array satu
dimensi sebagai baris data, baris tunggal, dua dimensi array
sebagai tabel matriks atau spreadsheet, dalam tiga dimensi array, Anda dapat memvisualisasikan sebagai
tumpukan tabel data, jadi tumpukan tabel.
Jika Anda membutuhkan data sebanyak itu, akan sangat sulit
untuk mengaksesnya dan mungkin membingungkan.
Dan siapa pun yang memelihara ini program untuk array
tiga dimensi atau lebih, itu mungkin akan tersesat
mencoba mencari tahu apa yang terjadi, tetapi Anda bisa melakukannya lagi dan jika Anda
perlu mengulangi salah satu dari ini satu, dua, array tiga dimensi, Anda mungkin
akan menggunakan loop.
Dan semakin banyak dimensi yang Anda miliki dalam loop, semakin banyak loop bersarang yang
akan Anda miliki.
Jadi jika Anda ingin memproses array tiga dimensi, Anda akan
memiliki 3 loop bersarang.
Dan jika Anda ingin memproses array empat dimensi, Anda
akan memiliki 4 loop bersarang.
Sejauh inisialisasi array itu lebih tinggi dari 2 dimensi, sekali lagi, Anda akan
melamar jenis hal yang sama, Anda hanya
akan memperpanjangnya sedikit.
Jadi array tiga dimensi akan memiliki
3 level kawat gigi bersarang dengan level dalam berisi satu set
nilai inisialisasi untuk setiap baris, sehingga akan terlihat seperti ini.
Di sini kita memiliki tiga dimensi array, 2 3 dan 4, setumpuk tabel
data pada dasarnya.
Dan blok pertama dari 3 baris, kita
akan menginisialisasi dan blok kedua dari 3 baris kita akan menginisialisasi.
Jadi apa yang dikatakan ini lagi blok pertama dan blok kedua karena kami tidak
menginisialisasi blok ketiga dan keempat, hanya blok pertama
dan kedua.
Jadi kami memiliki 4 blok dan Anda dapat dianggap sebagai setiap blok
setumpuk tabel data, masing-masing blok yang memiliki baris dan kolom.
Jadi blok pertama adalah menginisialisasi hanya 3 baris pertama, yang kita
miliki hanyalah 3 baris.
Dan kemudian blok kedua pergi untuk menginisialisasi 3 baris berikutnya, tetapi blok ketiga
dan keempat tidak akan diinisialisasi.
Jika Anda ingin menginisialisasi blok ketiga dan
keempat, Anda akan memiliki lebih banyak penyangga bagian dalam, kurung kurawal dan lain sebagainya.
Hal yang sama berlaku untuk yang tidak Anda inisialisasi,
mereka akan diinisialisasi ke 0.
Tetapi sekali lagi, Anda dapat melihat caranya itu menjadi sangat membosankan
dan juga sangat sulit untuk diikuti.
Saat Anda ingin memproses elemen dalam array dimensi, saya sebutkan,
Anda akan menggunakan loop bersarang.
Sekali lagi, itu akan sesuai langsung ke jumlah dimensi.
Dan setiap putaran akan ulangi lebih dari satu dimensi array.
Jadi itu akan terlihat sesuatu seperti ini.
Ini adalah contoh dari array tiga dimensi.
Anda memiliki lingkaran luar dan maka Anda memiliki 2 loop dalam.
Lingkaran luar akan menjadi array luar pertama, sehingga loop luar pada dasarnya akan melalui baris, yang
kedua akan melalui kolom dan yang
ketiga seseorang akan melewati blok.
Sekali lagi, apa yang harus Anda perhatikan adalah wow, ini menjadi
sangat berbulu dan sangat membosankan, sangat cepat.
Jadi cobalah untuk menghindari tiga dimensi array empat dimensi dan saya bahkan tidak
melihat banyak gunanya kasus untuk itu, satu dan dua benar-benar
semua yang akan Anda gunakan.
Tapi pahami multi-dimensi array adalah kemungkinan dalam c, cara menyimpan lebih banyak data dan
mengakses nama yang sama dengan banyak elemen data. Terima kasih.