iOS 102Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Dizilere İlk Değer Atamak için Alternatif bir Yol:count ve repeatedValue Metotları

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 22.07.2018 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : swift count swift dizi değer atama swift repeated

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....