Bu makalemizde dizileri anlatacağım.
Dizilerin ne olduğunu anlatmak için basit bir program yazarak
anlatmaya başlayalım.
TextWindow.Write("İsminizi
Girin: ")
adı = TextWindow.Read()
TextWindow.WriteLine("Merhaba " + adı) |
Bu programda, kullanıcının ismini adi isimli bir değişkene
aldık ve orada sakladık. Daha sonra kullanıcıya “Merhaba” dedik. Şimdi, diyelim
ki; birden fazla kullanıcı var – mesela 5 kullanıcı. Hepsinin ismini nasıl
saklayabiliriz? Bunu yapmanın bir yolu şudur:
TextWindow.Write("Kullanıcı1,
isminizi girin: ")
adı1 = TextWindow.Read()
TextWindow.Write("Kullanıcı2,
isminizi girin: ")
adı2 = TextWindow.Read()
TextWindow.Write("Kullanıcı3,
isminizi girin: ")
adı3 = TextWindow.Read()
TextWindow.Write("Kullanıcı4,
isminizi girin: ")
adı4 = TextWindow.Read()
TextWindow.Write("Kullanıcı5,
isminizi girin: ")
adı5 = TextWindow.Read()
TextWindow.Write("Merhaba ")
TextWindow.Write(adı1 + ",
")
TextWindow.Write(adı2 + ",
")
TextWindow.Write(adı3 + ",
")
TextWindow.Write(adı4 + ",
")
TextWindow.WriteLine(adı5) |
Fazla yorulmada yazdık. Şimdi 1000 kullanıcı program
yazalım. Yazabilirmiyiz.
Tabiî ki yazabilirsiniz….
Bunun kısa yolu yok mu diyenlere….
aynı değişkeni kullanarak, birden fazla kullanıcının ismini
saklamak ve geri çağırmaktır. Eğer bunu yapabilirsek, bu durumda daha önceki bölümlerde
öğrendiğimiz bir For döngüsü kullanabiliriz. Burada diziler imdadımıza yetişir.
Bir dizi nedir?
Dizi, bir defada birden fazla değeri tutabilen
özel bir değişkendir. Temel olarak anlamı şudur; beş kullanıcı adını saklamak
için adı1, adı2, adı3, adı4 ve adı5 yaratmak yerine, beş kullanıcı
isminin tümünü saklaması için adı’i kullanabiliriz. Birden fazla değeri
saklamanın yolu, “indeks” denilen şeyi kullanmaktır. Örneğin; adı[1], adı[2],
adı[3], adı[4] ve adı[5]’in her biri bir değer
saklayabilir. 1, 2, 3, 4 ve 5 sayıları, dizi için indeks olarak
adlandırılır. adı[1], adı[2], adı[3], adı[4] ve adı[5] farklı değişkenler gibi görünse de, gerçekte bunların hepsi yalnızca
tek bir değişkendir. Bunun avantajı
ne diye sorabilirsiniz. Değerleri bir dizide saklamanın en iyi yanı, bir başka
değişkeni kullanarak indeksi belirtebilmenizdir – bu da, döngülerin
içerisindeki dizilere kolayca erişebilmemizi sağlar. Şimdi, bir önceki
programımızı dizilerle yazarak, yeni öğrendiğimiz bilgiyi nasıl
kullanabileceğimize bir bakalım.
For i = 1 To 5
TextWindow.Write("Kullanıcı"
+ i + ", isminizi girin: ")
adı[i] = TextWindow.Read()
EndFor
TextWindow.Write("Merhaba
")
For i = 1 To 5
TextWindow.Write(adı[i] +
", ")
EndFor
TextWindow.WriteLine("") |
Bu kadar basit
şimdi siz 1000 kullanıcı program yazınız…
şimdi siz 1000 kullanıcı program yazınız…
Bir dizinin indekslenmesi
Bir önceki programımızda, diziye değerleri saklayıp, sonra da geri çağırmak için indeks olarak sayıları kullandık. İndeksler yalnızca sayılarla sınırlı değildir ve uygulamada, metinsel indeksler kullanmak da oldukça avantajlıdır. Örneğin; aşağıdaki programda, bir kullanıcı hakkındaki çeşitli bilgi parçalarını soruyor ve saklıyoruz ve sonra da kullanıcının istediği bilgileri yazdırıyoruz.
TextWindow.Write("İsminizi
girin: ")
Kullanıcı["isim"] =
TextWindow.Read()
TextWindow.Write("Yaşınızı
girin: ")
Kullanıcı["yaş"] =
TextWindow.Read()
TextWindow.Write("Şehrinizi
girin: ")
Kullanıcı["şehir"] =
TextWindow.Read()
TextWindow.Write("Posta
kodunuzu girin: ")
Kullanıcı["posta
kodu"] = TextWindow.Read()
TextWindow.Write("Hangi
bilgiyi istiyorsunuz? ")
index = TextWindow.Read()
TextWindow.WriteLine(index + " = " + Kullanıcı[index])
|
Birden fazla boyut
Yukarıdaki örnek tek kişi
için biz bunu birden fazla kişi için yapmak istersek kullanacağımız yöntem çok
boyutlu dizi kullanmak olacaktır.
Aşağıdaki
örneği inceleyelim
For i=1 To 5
TextWindow.WriteLine(i+".
kullanıcı")
TextWindow.Write("İsminizi
girin: ")
Kullanıcı[i]["isim"] = TextWindow.Read()
TextWindow.Write("Yaşınızı
girin: ")
Kullanıcı[i]["yaş"] = TextWindow.Read()
TextWindow.Write("Şehrinizi
girin: ")
Kullanıcı[i]["Şehir"] = TextWindow.Read()
TextWindow.Write("Posta
kodunuzu girin: ")
Kullanıcı[i]["posta
kodu"] = TextWindow.Read()
EndFor
TextWindow.Write("kaçıncı
kullanıcı")
index1 = TextWindow.Read()
TextWindow.Write("Hangi
bilgiyi istiyorsunuz? ")
index2 = TextWindow.Read()
TextWindow.WriteLine(Kullanıcı[index1][index2])
|
Dizilerle ilgili güzel bir
örnek
satır = 8
sutun = 8
boyut = 40
For i = 1 To satır
For j = 1 To sutun
GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
boxes[i][j] = Shapes.AddRectangle(boyut, boyut)
Shapes.Move(boxes[i][j], j * boyut, i * boyut)
EndFor
EndFor
For i = 1 To satır
For j = 1 To sutun
Shapes.Animate(boxes[i][j], 0, 0, 1000)
Program.Delay(500)
EndFor
EndFor
|
yukarıdaki programın ekrandaki görüntüsü...