Merhaba ve hoş geldiniz.
Bu konuşmada şunları anlatmak istiyorum çok boyutlu diziler hakkında.
Bu noktaya kadar, eğer bir dizi düşündüm, az önce bir dizinin bir değişken
olduğunu söylediniz birçok veri türünü depolayabilir.
İşler bundan daha karmaşık hale gelebilir.
Temel olarak birçok bir dizinin boyutları.
Yani sadece doğrusal bir diziniz varsa Şimdiye kadar tartıştığımız şey, buna
tek boyut denir.
Ve biliyoruz ki bu tek bir boyutuna sahiptir, çünkü
sadece tek boyutlu bir parantez vardır.
C dili dizilere izin verir para cezasına çarptırılacak herhangi bir boyutta.
Yani bu bir çeşit iç içe dizi, bir dizinin dizisi.
Yani iki boyutlu diziler en yaygın olanlarıdır.
Ama aslında yapabilirsin üç boyutlu diziler,
dört boyutlu diziler, beş boyutlu diziler, ancak 3-4 ve 5
için çok fazla kullanım durumu yoktur.
Gerçekten, ya gideceksin programınızda kullandığınız tek
boyutlu bir diziniz varsa veya iki boyutlu dizi.
iki boyutlu diziler yaygındır Çünkü bunlar esasen bir elektronik
tablodaki satır ve sütunları temsil eder, Bu şekilde görselleştirebilir,
bir matris ya da tablo oluşturabilirsiniz.
Bu iki boyutlu bir dizi, Satırlarınız ve sütunlarınız var.
Böylece daha fazla veri depolayabilirsiniz boyutlarını belirterek
tek boyutlu bir diziden daha iyi bir dizi elde edebilirsiniz.
Ama çok uygulanabilir çünkü bir matrise benziyor.
Ve öyle uygulamalar var ki Bu matris kavramına sahip bir matris yazmak isteyebilirsiniz,
özellikle matematiksel bir uygulama burada en uygun
olanı olacaktır.
Ama iki boyutlu yapmak için kullanabilirsiniz birçok farklı şey için diziler.
Bir örnek bir matristir.
Ama yine de bunu bir tablo olarak hayal edin.
İki boyutlu diziler şunlardır tek boyutlu bir dizi ile
aynı şekilde bildirilir.
Tek fark sen artık başka bir parantez seti var.
Yani bu örnekte, şunu bildiriyoruz int türünde, 4 satır ve
5 sütundan oluşan matris adlı bir dizi.
Bu, 20 öğe depolayabileceğiniz anlamına gelir bu iki boyutlu dizinin içinde.
Bu yüzden her birinin nasıl boyutu kendi köşeli parantez
çifti ile belirtilir.
bu şekilde kolayca tespit edebilirsiniz bir dizinin kaç boyutu olduğunu belirtir.
Eğer orada 3 paranteziniz varsa, bu üç boyutlu bir dizi olacaktır.
Eğer 4 tane varsa, 4 tane olur.
Bunda iki tane var, yani iki.
Ve erken dönemlere kadar derslerinde sadece bir tane vardı, bu yüzden bunun tek bir
boyut olduğunu biliyorduk.
Parantezlere bakın, buna dikkat et.
Yine 4 satır, 5 sütun, toplam 20 eleman.
İki boyutlu bir diziyi başlatmak için, aynı şekilde tek boyutlu olarak başlatılacaktır.
dizisi, aynı tür sözdizimi, sadece daha fazlasını ekleyeceksiniz.
Yani öğeleri listelediğinizde başlatma için, değerler satıra
göre listelenecektir.
Ve buradaki fark şudur Her satır için ilk değerleri
koyduğunuzda, şunları yapacaksınız parantezler, küme parantezleri arasına alacaksınız
ve sonra parantezler arasındaki tüm satırlar.
Bu yüzden görünecek Bunun gibi bir şey.
Eğer bir sayı dizisi oluşturursak, 2 boyutlu, 3 satır
ve 4 sütundan oluşan ve başlatmak için tek yapmanız gereken
küme parantezleri içine tüm diziyi ve ardından her satır için iç içe küme parantezleri
ekleyin.
Yani burada değerleri başlatıyoruz 0 alt-0 ila 10, 0 alt-1 ila 20, 0 alt-2
ila 30 ve 0 alt-3 ila 40.
Ve işte bu şekilde Çok boyutlu diziler de.
Bunlara şununla erişirsiniz sütundaki satır.
Sadece hatırlamak zorundasın 0 tabanlı olduğunu.
Yani sol üst taraftaki satır 1 sütun 1 00 olur ve bu da 10'a
eşit olur.
Satır 1 sütun 2 şöyle olacaktır 20'ye eşittir, ancak
buna 0 alt-1 sayıları olarak erişirsiniz.
İlk dizi 3 tane içerdiğinden eriştiğiniz satırlar, satır numarası için belirttiğiniz sayıdır ve sonra
sütun numarası diziye erişim için bir sonraki
belirtimdir.
Ama bireyselleştirme oldukça basit, sadece parantezlerle
yorumlarla şeyleri ayırın.
Ve onlara eriştiğinizde normal bir diziye erişir gibi erişirsiniz,
ancak şimdi bir sütunda bir satır kavramı.
Yani iç çiftlerin kullanımı parantezler aslında isteğe bağlıdır, ancak okunabilirlik
için kullanmalısınız.
Eğer o telleri sağlamadıysan, aslında sadece
10 20 30 40 15 25 35 sağlayabilirsiniz, hepsi sadece ancak neyi başlattığınızı görselleştirmek
çok zordur.
Bir programcı olarak, okunabilirlik çok çok önemli çünkü kodun kalitesini
artırıyor kodun bakımını yapmak daha kolaydır.
Şuraya baktığımda, Özellikle yorumlarla, ne olduğumu kolayca
tanımlayabiliyorum. başlatılacağı, hangi değerlerin ve hangi satırların
başlatılacağı.
Eğer bunu tek bir satır olarak yazsaydım sadece ardışık sayılar, gerçekten
çabuk kaybolurdum.
Yani iç parantezlere rağmen gerekli değildir, bunları kullanın.
Tek boyutlu bir dizide olduğu gibi, tüm dizinin başlatılması
gerekli değildir.
Sadece belirli alanları başlatabilirsiniz.
Yani bu örnekte, biz 4 satır ve 5 sütundan oluşan iki
boyutlu bir dizi oluşturur.
Biz sadece her satırın ilk 3 öğesi.
Yani satır 1 sütun 1 10, satır 1. satır 2. sütun 5 ve 1. satır 3. sütun negatif 3'tür ve ikinci
sütun için de aynıdır ve bu şekilde
devam eder 900 32 31 008.
Ayarlamadıklarımız için her satırın 4. ve 5. değerleri,
bunlar aslında otomatik olarak 0'a ayarlanacaktır çünkü onları dışarıda
bıraktık.
Ve bu durumda, aslında içteki küme parantezlerini
sağlamanız gerekir.
Çünkü burada eğer başlatma işlemi
berbat olurdu.
Çünkü sende olmasaydı küme parantezleri, sadece ardışık
olarak yapacaktır.
Yani şöyle olacaktı aslında
ilk 12 öğeyi başlatacaktır.
Bu yüzden bütün ilk satırdaki öğeleri, ikinci satırdaki tüm öğeleri
ve ardından üçüncü satırdaki ilk 2 öğeyi ve ardından
geri kalan öğeleri üçüncü satırda, 4. satırdaki geri kalan
elemanlar 0 olacaktır.
Yine, bu iki boyutlu bir 4 satır ve 5 sütundan oluşan bir dizi.
Sadece arka arkaya yapardı.
Bu yüzden parantezleri unutmayın yalnızca belirli başlatma
öğelerini belirtmek istiyorsanız.
Ayrıca şunları da yapabilirsiniz belirlenmiş başlatıcılar.
Unutmayın, bu C99 konsepti.
C11'de bu isteğe bağlıdır. başlatılacak belirli
indeksleri belirtebilirsiniz.
Böylece, alt simgeleri başlatma listesi, tıpkı tek boyutlu bir
dizide olduğu gibi atanmış bir başlatıcı yapmak için, sadece şöyle
bir şey yaparsınız.
İşte burada matrisimizi beyan ediyoruz dizisinin 4 satır ve 3 sütundan oluştuğunu
belirtiyoruz, ancak aslında 0 0'ın 1'e, 1 1'in 5'e ve 2 2'nin 9'a
eşit olduğunu.
Peki tekrar 2 2 dediğimizde, ne satır 2 diyoruz ama aslında satır
3 çünkü 0'dan başlıyoruz, 2. sütun aslında 3. sütundur.
Bunu tekrar şu şekilde görselleştirin bir tablo veya elektronik tablo.
Ve öğelere erişim başlar sol üst köşede.
Ama eğer anlıyorsanız ki 4 satırları ve 3 sütunları temsil
eder, bu ondan sonra oldukça sezgisel.
Yani bunun yaptığı şey Matrisin belirtilen 3 elemanını belirtilen
değerlere başlatır.
Ama ne yapmalısınız sözdizimine dikkat edin.
Belirtilmemiş tüm değerler burada varsayılan olarak 0 olacaktır.
Yani bu sadece 3 değeri başlatmak için.
Sizin belirlediğiniz her bir değer kümesi başlatma işlemi, parantezler
arasında bir satırdaki öğeler olacaktır.
Ve sonra tüm başlatma başka bir çift parantezin arasına girer.
Yani görüyorsunuz ki normal başlatma gibi dıştaki parantezler üzerinde
küme parantezleri ve sonra içindeki diziye erişmek için
parantezlerimiz var.
Ve sonra virgüllerimiz var her satırı ayırır ve her satır değeri kümesi
ayrılır bir sonraki kümeden virgülle ayrılır.
Böylece değerler ayrılır ve ayrıca satır indeksleri.
Şimdi sırf bunu söylediğimiz için 2 boyutumuz var ve bunun hakkında konuşuyorduk;
şunları yapabilirsiniz aslında birçok başka boyutu vardır.
Konuştuğum her şey 2 boyut aynı zamanda 3 boyut 4 boyut
5 boyut için de geçerlidir.
Yani eğer bir 3 boyutlu bir dizide,
3 köşeli parantez ile yaparsınız.
İşte kutu adında bir dizi int türünde 10, 20 ve 30.
Kullanmak isteyebilirsiniz üç boyutlu
dizi belki bir tür xyz değerlerini depoluyor olsaydınız, muhtemelen bunu yapmanıza gerek kalmayacaktır.
Üç boyutlu diziler ve gerçekten yaygın değildir.
Özet olarak, görselleştirebilirsiniz bir veri satırı
olarak tek boyutlu dizi, tek satır, iki boyutlu üç boyutlu bir tablo, matris
veya elektronik tablo olarak dizi dizisini, bir veri tabloları yığını, yani bir tablolar yığını
olarak görselleştirebilirsiniz.
Eğer o kadar veriye ihtiyacınız varsa, erişmek gerçekten zor olacak
ve muhtemelen kafa karıştırıcı olacaktır.
Ve bunu sürdüren herkes üç boyutlu bir dizi veya daha fazlası
için program, muhtemelen Neler olup bittiğini anlamaya
çalışırken kaybolmak istemezsiniz ama bunu yapabilirsiniz. ve eğer bunlardan herhangi
birini yinelemeniz gerekirse bir, iki, üç boyutlu diziler, muhtemelen bir döngü kullanacaksınız.
Ve ne kadar çok boyuta sahip olursanız döngüde, daha fazla iç içe döngüye
sahip olacaksınız.
Yani eğer bir üç boyutlu dizi, iç içe geçmiş 3 döngüye
sahip olacaksınız.
Ve eğer bir işlem yapmak istiyorsanız dört boyutlu dizi, iç içe geçmiş
4 döngüye sahip olacaksınız.
Yani bir diziyi başlatmak için 2 boyuttan daha büyük bir boyutta ise,
yine aynı türden bir şey, sadece biraz
uzatacaksınız.
Yani üç boyutlu bir dizi iç seviye ile birlikte
3 seviyeli iç içe parantezlere sahip olacaktır her satır için bir dizi başlatma
değeri içerir, bu nedenle şöyle bir şeye benziyor.
Burada üç boyutlu bir dizisi, 2-3 ve 4, esasen bir veri tablosu
yığını.
Ve 3 sıralı ilk blok, başlatacağız
ve 3 satırdan oluşan ikinci blok başlatacağız.
Yani bu yine şunu söylüyor ilk bloğu ve ikinci bloğu başlatmadığımız için
üçüncü ve dördüncü blok, sadece birinci
ve ikinci.
Yani 4 bloğumuz var ve sen her bir bloğu veri tablolarından oluşan bir
yığın olarak düşünebiliriz. satır ve sütunlara sahip blok.
Yani ilk blok şu şekilde olacak sadece ilk 3 satırı başlatıyoruz, ki elimizdeki
tek şey 3 satır.
Ve sonra ikinci blok gidiyor sonraki 3 satırı başlatmak için, ancak üçüncü ve dördüncü
bloklar başlatılmayacaktır.
Eğer başlatmak istiyorsanız üçüncü ve dördüncü
bloklarda daha fazla iç paranteziniz olur, küme parantezleri ve benzeri.
Yine de aynı şey aşağıdakiler için de geçerlidir ilklendirmedikleriniz
ise 0 olarak ilklendirilecektir.
Ama yine de, nasıl olduğunu görebilirsiniz çok sıkıcı
ve takip etmesi çok zor oluyor.
Öğeleri işlemek istediğinizde Boyutlu bir dizide, bahsettiğim gibi,
iç içe döngüler kullanacaksınız.
Tekrar söylüyorum. doğrudan boyut sayısına bağlıdır.
Ve her döngü bir dizi boyutu üzerinde yineleme yapar.
Bu yüzden görünecek Bunun gibi bir şey.
Bu bir örnektir üç boyutlu dizi.
Bir dış döngünüz var ve o zaman 2 iç döngüye sahip olursunuz.
Dış döngü şu şekilde olacak ilk dış dizi, bu nedenle dış döngü esasen satırlardan, ikincisi
sütunlardan ve üçüncüsü biri bloklardan
geçecek.
Yine, fark etmeniz gerekenler Vay canına, bu iş
çok hızlı ve sıkıcı bir hal alıyor.
Bu yüzden üç boyuttan kaçınmaya çalışın dört boyutlu diziler ve ben
bile çok fazla kullanım görmüyorum bir ve iki gerçekten kullanacağınız
tek şey.
Ancak çok boyutluluğu anlayın dizileri c'de bir olasılıktır, daha fazla veri depolamanın ve verilere
erişmenin bir yoludur birçok veri öğesi ile aynı adı taşır. Teşekkür ederim.