USLANMAM
USLANMAM öğesini iGoogle sayfanıza ekleyin.
UslanmaM En Kaliteli Bilgi Adresiniz
Geri git   USLANMAM > PROGRAM > PROGRAMLAMA DİLLERİ
Google
 
UslanmaM Resim AlbümleriSosyal Gruplar
Kayıt ol Sosyal Gruplar Ajanda Konuları Okundu Kabul Et

PROGRAMLAMA DİLLERİ Webmasterlar için faydalı bir bölüm. Konu Açmak Moderator Onaylı

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 01-22-2008, 08:51 PM   #1 (permalink)
Mareşal
 
AsSeMbLy - ait Kullanıcı Resmi (Avatar)
Standart "DiziLer" Programlamanın en can alıcı ve en karmaşık konusu..Güzel anlatım..

Her zaman söylediğim bir laf vardır.Bir programcı 4 konuya hakim olması lazımdır..Bunu daha önceki makalelerimde de belirttim…Bunlar: Veri TipleriDöngülerDiziler ve Class.Bu dört yapıyı bildikten sonra her programlama dilini çok kolay bir şekilde algılayabilirsiniz…Yeni çıkan versiyonlar ile yazılım çok kolaylaştırılmıştır.

İlk iki yapıyı daha önce inceledik ve gördük.Şimdiki konularımız ise Diziler..Bu programlamada en önemli konulardan biricisidir..Bundan bu konuya çok dikkat edin ve yazmış olduğum tüm örnekleri uygulayarak yapın ki daha rahat öğrenin..

Dizi Tanımlama [ARRAY]

Diziler tüm programlama dilleri gibi Visual Basic 6 .NET ve diğer sürümler içinde en önemli konularından birisidir…Dizi değeri 0 dan başlar ve bu değerler MEMORY(BELLEK)’de tutulur.Yani program çalıştığı sürece değerleri koruyabiliriz..Tek boyutlu diziler tanımlayabileceğimiz gibi iki ve üç boyutlu diziler de tanımlayabiliriz.

Bunları tanımalarını aşağıdaki gibi gösterebiliriz..

Tek boyutlu dizi
Dim a(5) As Integer
İki boyutlu dizi
Dim b(5 3) As Integer
Üç boyutlu dizi
Dim c(5 3 4) As Integer

Dim a(5) As Integer türü tanımlamada 4 elemanlı tek boyutlu bir dizi tanımlamış oluyoruz…Değer atanırken 0’dan başlayarak 3’e kadar gidiyoruz…

a(0)a(1)a(2)a(3)…

Örnek:

Dim a As Integer
Dim b(3) As Integer

b(0) = 1
b(1) = 2
b(2) = 3
b(3) = 4

a = b(0) + b(1) + b(2) + b(3)

MsgBox(a)


Yukarda yapmış olduğumuz örnekte 4 elemanlı bir dizi tanımadık ve teker teker değer vererek a integer veri tipine tümünün toplamını yükledik.Bunu daha kolay ve kısa bir şekilde yapmanın yolu yokmu diceksiniz tapiki var..

Dim a As Integer

Dim b() As Integer = {1 2 3 4}

a = b(0) + b(1) + b(2) + b(3)

MsgBox(a)

Örnek:

Dizimizi ilk etapda boyutlandırmayıp daha sonra elemen sayısını belirtebiliriz..

Dim d() As Integer

d = New Integer(9) {}

d(9) = 100

MsgBox(d(9))



DİZİLERİN YENİDEN BOYUTLANDIRILMASI

Visual Basic 6’da ancak boyutlandırılmamış bir dizi ancak yeniden boyutlandırılabilirdi.Fakat yeni Visual Basic sürümlerinden diziler yeniden tekrar tekrar boyutlandırılabilir ve diğer bilgiler hafıza tutulur yani bilgilerimiz gitmez…

'Visual Basic 6.0 'da

Dim x() As String
redim x(5) as String 'Doğru bir boyutlandırma...


Dim x(2) As String
Redim x(5) as String 'Hata verir.Çünkü daha önce dizimizi boyutlandırmıştık.

'Visual Basic .NET sürümlerinde

Dim x() As String
ReDim x(5) 'Doğru bir boyutlandırma


Dim z(3) As String
ReDim Preserve z(5) ' Doğru bir boyutlandırma .NET izin verir...

2 olan dizi boyutu Redim Preserve ile 5’ e genişletiliyor ve daha önceki 2 eleman değer almış olsa bile bu değerler korunuyor…


Örnek:

Dim x() As String
ReDim x(1)

x(0) = "Writing by"
x(1) = "߀j0®"

ReDim Preserve x(3)

x(2) = "Mesmerina"
x(3) = "MMB"

MsgBox(x(0) & vbTab & x(1) & vbCrLf & x(2) & vbTab & x(3))

Örneğimizde ilk önce tanımlamamıza boyut vermiyoruz.Daha sonra bunu 2 elemanlı olan x(1) dizisine çeviriyoruz…Ve ardından değerler atıyoruz.Daha sonra Redim Preserve ifadesi ile dizimizi 4 elemanlı bir dizi haline getiriyoruz..4 elemanlı olan dizimizin diğer elemanlarına da değer verdikten sonra MSGBOX objesi ile çalışma sonucumuzu ortaya getiriyoruz.Ve dikkat etmemiz gereken daha öncede anlatmak istediğim diğer 2 elemanın hafızada hala saklandığı…

ÇOK BOYUTLU DİZİLER

Bazı durumlarda çok boyutlu diziler tanımlamak zorunda kalabilirsiniz..Özellikle büyük proje çalışmaları yaparsanız bunlar gerçekten çok ihtiyaç duyduğunuz konular olacaktır…

Çok boyutlu dizi tanımalamak sizi tek boyutlu çok dizi tanımalaktan sizi kurtarır.Bu hem kod karmaşasından hemde hız bakımından çok önemlidir…

B(SatırSütun) = S(32) şeklinde yazılım 4 satır 3 sütünu ifade eder..

S(00)
S(01)
S(02)
S(10)
S(11)
S(12)
S(20)
S(21)
S(22)
S(30)
S(31)
S(33)



Örnek

Dim dizi(2 3) As Integer

dizi(0 2) = 200

MsgBox(dizi(0 2))


JAGGED DİZİLER

Eğer oluşturucağımız dizilerde satırların eleman sayıları(sütün sayıları) birbirinden farklıysa bu durummdadiziyi Jagged yapısında tanımlamamız gerekmektedir…Bu diziyi Jagged olarak tanımlamak ona herhangi başka bir özellik katmaz diğer dizilerdeki gibi kullanabilirsiniz..

jdizi = New Integer(2)() {}

Programcı yukarıda sunu demek istemiştir.ßen 3 satırdan oluşan bir dizi tanımladım fakat her satırının eleman sayısı birbirinden farklı olacaktır…

Dim jdizi()() As Integer

jdizi = New Integer(2)() {}

jdizi(0) = New Integer(3) {} 'İlk satır 4 sütünden oluşuyor
jdizi(1) = New Integer(2) {} 'ikinci satır 2 sütünden oluşuyor
jdizi(2) = New Integer(1) {} '3'üncü satır ise 1 sütündan oluşuyor...

Artık dizi elemanlarına istediğimiz gibi değer verebiliriz bu tamamen bize kalmış bir şeydir…Aşağıdaki gibi

Örnek:

jdizi(0)(3) = 100 'ilk satırın 4. sütünu
jdizi(2)(1) = 500 '3. satırın 2. sütünu

MsgBox(jdizi(0)(3))

AsSeMbLy isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla

Alt 01-27-2008, 08:21 PM   #2 (permalink)
Yeni Üye
Standart

Paylaşımın için teşekkürler...
righthope isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Alt 04-14-2008, 10:07 PM   #3 (permalink)
Yeni Üye
Standart

harika ama ben bu jagged dizileri vb 6.0 da kullanamiyorum
jdizi = New Integer(2)() {}
yapamiyorum ornegin bunu nasil yapicaz?
cueca isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
Eklenti Ekleyemezsiniz
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Gitmek istediğiniz klasörü seçiniz