Visual Basic 6.0: Diziler
Bu ayki Visual Basic köşesinin konusu diziler. Statiği ile dinamiği ile birden fazla boyutlu olanıyla dizileri öğrenmek için, örneklerle zenginleştirilmiş bu makaleyi okumanızı tavsiye ediyoruz.
Dizi, bellekte aynı isim altında toplamış değişkenler kümesine verilen isimdir. Dizinin kullanım alanlarına gelince ise, aynı türe ait bilgileri bellekte tutmak istediğimizde örneğin bir veri gurubunu sıralamak istediğimizde ya da verilere ait bazı istatiksel bilgilerin hesaplanmasında bize yardımcı olur. VB 'de diziler;
DiziAdi(ElemanSayisi)
Şeklinde gösterilir. Bir örnek verecek olursak
Sayilar(20)
Ucgen(2)
Kare(3)
Yukarda ki örneklerde Sayilar isminde 0 dan 20 ye kadar toplam 21 elemanlı bir dizi tanımlanmıştır.
VB 'de iki farklı dizi türü vardır bunlar;
1.) Statik Diziler:
Bu tip dizilerde dizinin eleman sayısı önceden belirlenir ve eleman sayısı sabittir. Örneğin programımızda Dim Sayilar(20) as Integer diye bir kod yazarsanız projenizde toplam 21 elamanlı ve sayısal bir veri türünü tutacak bir dizi tanımlamış olursunuz. Eğer dizimizin 20 elamanlı yani Sayilar(1) 'den başlamasını istiyorsak Form 'un veya Modülün General/Declarations kısmına Option Base 1 deyimini kullanmamız gerekecekti Option Base 0 ise dizinin ilk elemanının 0 'dan başlayacağını bildirir ki zaten bu da standart(default) biçimidir dolaysıyla kullanmaya gerek yoktur. Bu arada küçük birde not vermek gerekirse Option Base deyimi VB 6.0 sonrasında bulunmayacak yani bütün diziler 0 'dan başlayacak onun için bu deyimi kullanıp alışkanlık yaratmaya hiç gerek yok.
2.) Dinamik Diziler:
Bu tip dizilerde ise dizinin eleman sayısını program akışı içerisinde kontrol edebiliyoruz bunu ise diziyi Dim Sayilar() as Integer şeklinde dizinin eleman sayısı hakkında herhangi bir değer vermeden belirttikten sonra ReDim Sayilar(10) as Integer şeklinde dizinin eleman sayısını program akışı esnasında tanımlıyoruz. Ancak diziyi yeniden boyutlandırırken unutulmaması gereken nokta dizinin içindeki verilerin silineceğidir. Eğer verilerin silinmemesini istiyorsak diziyi yeninden boyutlandırırken ReDim Preserve Sayilar(10) As Integer şeklinde belirtmemiz gerekir.Şimdi buraya kadar öğrendiklerimizi bir örnekle pekiştirelim.
Örnek 1: Girilen 10 tane sayının toplamını ve ortalamasını veren örnek program
Yukarda ki örnekte bilmediğimiz hiç bir komut olmadığı için programın satır satır açıklamasını yapmayacağım onun yerine sadece ekran görüntülerini vereceğim
Yukarda ki resimlerden de anlaşılacağı üzere 10 adet sayıyı teker teker girdiğimizde programımız bize bu sayıların toplamını ve ortalamasını verecektir.
Örnek 2 : Şimdi de yukarda ki örneğimizi aktif bir dizi ile daha etkileşimli hale çevirelim
Bu örneğin uygulamasını da sizlere bırakıyorum.
Birden Fazla Boyutlu Diziler :
VB 'de istenirse birden fazla boyutta dizilerde tanımlanabilir. Örneğin;
Dim Tablo(4,3) As Integer
Dim DersSonuçları(3,3,1) As Integer
Yukarda ki tanımlama ile çok boyutlu diziler yaratmış olduk Dikkat ettiyseniz her boyuta ait index numarası birbirinden virgülle ayrılarak diziler boyutlandırılabiliyor. Bu konuyu her zaman yaptığımız gibi bir örnekle açıklayalım
Etiketlerin (Label) ve Düğmelerin başlıklarını VB 'nin sol tarafındaki "Properties" Penceresinde ki "Caption" değerine yeni başlığı yazarak değiştirebiliriz.
Bileşenleri formumuza yukarda ki gibi yerleştirdikten sonra Matematik dersi için koyduğumuz 3 tane "Text Box" 'ın adını VB 'nin sol tarafındaki "Properties" Penceresinde ki "(Name)" değerini değiştirerek sırası ile "Matematik1", "Matematik2" ve "Matematik3" yapalım bu işlemi diğer dersler içinde tekrarlayalım daha sonra "Ortalaması" başlıklı Labellerimizin hepsinede "Ortalama" adını verelim bu sırada VB bize "You have already a control named 'Ortalama'. Do you want to create a control array?" diyerek bir kontrol dizisi oluşmak isteyip istemediğimizi soracak bu soruyu "Evet" diye cevaplandırarak bir kontrol dizisi oluşturalım(*) "Ortalama" başlıklı düğmemize çift tıklayarak aşağıda ki kodları yazalım
Yukarda ki örneğimizde derslere ait notlar dizimize aktarılıyor daha sonra ise dizimizde ki notları "For …Next" döngüsü ile kod tekrarı yapmadan ortalamasını alıp bunu Ortalama isimli kontrol dizimizde ki Etiketlerimiz de (Label) görüntülüyoruz. Bu örneğe ilişkin VB kaynak kodlarını buradan indirebilirsiniz
Dizi İçin Sınırlar :
VB 'de dizi için alt ve üst sınırlar belirleyebiliriz bu sınır 0 ve pozitif sayılar olabileceği gibi negatif sayılarda olabilir. Örneğin
Dim Dizi1(1 To 20) As Integer Dim Dizi2(0 To 5) As String Dim Dizi2(-10 To 10) As Byte |
LBOUND ve UBOUND Fonksiyonları :
İstenilen bir dizinin belirtilen boyutunun alt ve üst sınırlarının ne olduğunu öğrenmemize yarar örneğin;
Private Sub Command1_Click() Dim Dizi(-5 To 15, -10 To 20) AsInteger Print "Dizinin ;" End Sub |
Bu ayki yazımız da VB 'de dizileri inceledik bu ayki makaleyi bitirmeden önce 2003 'ün insanlığa barış getirmesi diliyorum.
Sevgiyle Kalın.
* Kontrol Dizisi : Bu konuyu ileriki derslerim
izde inceleyeceğiz