Double türde bir dizinin başlangıçta 10 elemanlı olacağını ve her elemanının da 1.5 olacağını planlamış olalım. Bunu gerçekleştirmenin en pratik yolu, count ve repeatedValue(Tekrarlanan Değer) metotlarını kullanmaktır.
ÖRNEK:
var a = [Double](repeating:1.5, count:10)
print("a...DİZİSİ..\(a)")
print("DİZİDEKİ ELEMAN SAYISI=\(a.count)")
Programın çıktısı ise aşağıdadır:
a...DİZİSİ..[1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5]
DİZİDEKİ ELEMAN SAYISI=10
Yukarıdaki çıktının aynısını aşağıdaki program ile de elde edebilirsiniz:
var a=Array(repeating:1.5, count:10)
print("a...DİZİSİ..\(a)")
print("DİZİDEKİ ELEMAN SAYISI=\(a.count)")
Bu programda dizi oluşturulurken Double bildirisi kullanılmamıştır; ancak derleyici veri tipinden (1.5) dizi türünün double olduğunu anlayacaktır.
İKİ BOYUTLU (TWO DIMENSIONAL) DİZİLER
Uygulamada karşılaşılan pek çok problemde, tablo halindeki verilerin bilgisayarda saklanması ve tablo üzerinde çeşitli işlemlerin gerçekleştirilmesi (tablonun satır toplamları, sütun toplamları gibi hesaplamalar) söz konusudur.
Örneğin aşağıdaki gibi bir veri mevcut olsun:
1998 YILI OTOMOBİL SATIŞLARI (Not: Tablodaki rakamlar hayali rakamlardır)
Marka | Ocak | Şubat | Mart |
---|---|---|---|
Fiat | 700 | 600 | 650 |
Renault | 900 | 800 | 700 |
VW | 300 | 400 | 350 |
Opel | 500 | 450 | 470 |
Ford | 600 | 500 | 480 |
Bu tabloda, 1998 yılında, çeşitli otomobil markaları için gerçekleştirilen ilk üç aylık satışlar belirtiliyor. Bu tür bir bilgiyi bilgisayara yükleyerek şu sorulara cevap olabilecek işlemleri tablo üzerinde gerçekleştirmek isteyebiliriz:
a) Her marka için 3 aylık satışlar toplamı nedir? (Tablodaki satır toplamları)
b) Her ay için tüm markaların satış toplamları nelerdir? (Tabloda sütun toplamlarının hesaplanması)
c) Her marka için en çok satışın gerçekleştirildiği ayın bulunması (Satırlardaki en büyük elemanların tespiti)
d) Her ay için en çok satışın gerçekleştirildiği markanın bulunması (Sütunlardaki en büyük elemanların tespiti)
e)Tüm marka ve tüm aylar için otomobil satışları toplamının hesaplanması (Tablonun genel toplamının bulunması)
Tablo yapısındaki bilgileri Swift’te, bilgisayar belleğinde, iki boyutlu dizi (two dimensional array) yapısı adı verilen yapı içinde saklayabiliriz.
Ayrıca, matematikteki matris yapılarının Swift’teki doğal karşılığı da iki boyutlu dizi yapısıdır.
Yukardaki tablo içinde, sayısal olmayan bilgileri ve başlıkları ihmal ederek sadece satışlardan oluşan sayısal bilgiyi dikkate alırsak ve bu bilgiyi satis adlı bir tabloda saklarsak, aşağıdaki yapıyı elde ederiz:
Satış | 0 | 1 | 2 |
---|---|---|---|
0 | 700 | 600 | 650 |
1 | 900 | 800 | 700 |
2 | 300 | 400 | 350 |
3 | 500 | 450 | 470 |
4 | 600 | 500 | 480 |
Objective C’de, 5 satır ve 3 sütundan oluşan bu tabloyu aşağıdaki şekilde tanımlayabiliriz:
int satis[5][3]
Burada satis adlı iki boyutlu dizinin bir elemanına referans vermek için, program içinde,
Satis | [i] | [j] |
---|---|---|
Dizi Adı | Satır indisi | Sutün indisi |
şeklinde bir ifade kullanılacaktır. Burada satis dizinin adı, i satır indisi ve j de sütun indisidir.
Satis dizisinin satır indisleri 0’dan başlar ve 4’e kadar devam eder; sütun indisleri ise, 0 ile 2 arasında değerler alır. Aşağıda, satis dizisinin bellekte C tarafından saklanan biçimini göreceksiniz:
Satış | 0 | 1 | 2 |
---|---|---|---|
0 | 700 | 600 | 650 |
1 | 900 | 800 | 700 |
2 | 300 | 400 | 350 |
3 | 500 | 450 | 470 |
4 | 600 | 500 | 480 |
Buna göre, satis[0][0] elemanı 700, satis[2][1] elemanı 400 ve satis[4][2] elemanı ise 480’dir.
satis adlı iki boyutlu dizinin eleman sayısı ise 5×3=15’tir.
ÖRNEK :
Aşağıdaki programda 4x3 boyutunda bir tablo oluşturulmakta ve yazdırılmaktadır :
Tablo
3 | 5 | 6 |
7 | 2 | 4 |
11 | 78 | 6 |
23 | 5 | 9 |
var tablo: [[Int]] = [
[3, 5, 6],
[7, 2, 4],
[11, 78, 6],
[23, 5, 9]
]
var (i, j) = (0, 0)
while i <= 3 {
while j <= 2 {
print("\(tablo[i][j])....", terminator: "")
j += 1
}
print("")
j = 0
i += 1
}
PROGRAMIN ÇIKTISI
3....5....6....
7....2....4....
11....78....6....
23....5....9....