
Diziler programcılığın temel konularından biridir. Bu sayfada öğrenecekleriniz, diğer programlarda da aynen veya benzer şekilde yer almaktadır. Bu sayfayı hemen değişkenlerden sonra anlatmayı düşünüyordum ama daha önce hiçbir yazılım dili bilmeyen arkadaşlara Pencere ve Metin kodları gibi somut derslerin daha öncelikli olduğuna karar verdim. Şimdi diziler konusuna geçebiliriz.
Dizi Tanımlama
Dizileri deÄŸiÅŸkenler kümesi ÅŸeklinde tanımlayabiliriz. Bellekte aynı isim altında saklanan deÄŸerleri ifade eder; deÄŸerler new Array(…) kodu kullanılarak girilir. Dizilerin iki yazım türü vardır:
- var hafta = new Array(“pazartesi”, “salı”, “çarÅŸamba”, “perÅŸembe”, “cuma”, “cumartesi”, “pazar”)
- veya,
- var hafta = new Array(6)
- hafta[0] = “pazartesi”
- hafta[1] = “salı”
- hafta[2] = “çarÅŸamba”
- hafta[3] = “perÅŸembe”
- hafta[4] = “cuma”
- hafta[5] = “cumartesi”
- hafta[6] = “pazar”
Buradaki hafta isimli deÄŸiÅŸken 7 deÄŸerli bir dizidir. İlk deÄŸer 0. sırada sayılmaktadır. hafta[0] deÄŸiÅŸkeninin deÄŸeri “pazartesi”, hafta[3]‘ün deÄŸeri “perÅŸembe”‘dir. DeÄŸiÅŸkenlerden tek farkı, aynı ismi taşımaları. DeÄŸerleri yazılım boyunca deÄŸiÅŸebilir, birbirlerine deÄŸerlerini aktarabilirler.
Aşağıdaki uygulamada kullanıcının girdiği 10 sayı küçükten büyüğe doğru sıralanmaktadır.
Â
<html>
<head>
<title>Sıralama</title>
<script language=”JavaScript”>
function sirala()
{
var kelime = new Array(9)
var i, j, k, m, ara
for (i=0; i <=9; i++)
{
kelime[i] = prompt(“Metinsel bir ifade girin lütfen…”,”Buraya,”)
}
//Sayıları sıralıyoruz.
for (j=0; j <=9; j++)
{
for (k=0; k <=8; k++)
{
if (kelime[k] > kelime[k+1])
{
ara =kelime[k]
kelime[k] = kelime[k+1]
kelime[k+1] = ara
}
}
}
for (m=0; m <= 9; m++) document.write(m + 1 + “. kelime = ” + kelime[m] + “<br>”)
}
</script>
</head>
<body>
<form>
<p>Düğmeye basarak 10 tane yazıyı alfabetik sıraya sokabilirsiniz.</p>
<input type=”button” value=”Sırala” onclick=”sirala()”>
</form>
</body>
</html>Â
Â
Bu uygulama için söylemek istediÄŸim birkaç ÅŸey var. prompt kodunun yazılanları metinsel ifade olarak gördüğünü unutmayalım, bu nedenle bu yazılım alfabetik sıraya sokuyor. Yani “245″ deÄŸerini, “3″ deÄŸerinden küçük sayıyor. Bir diÄŸer nokta, JavaScript İngilizce karakterleri esas aldığı için Türkçe karakterler sonda yer alıyor. Yani “z” deÄŸeri, “ÅŸ” harfinden önce geliyor. Sayısal bir sıralama yapmak isterseniz, metinsel ifadeleri sayısal ifadeye çevirmelisiniz ki, bunu henüz öğrenmediniz; yakında öğreneceksiniz.
Çok Boyutlu Diziler
Diziler tek boyutlu olmak zorunda deÄŸil. Åžu ana kadar tek boyutlu dizileri gördük, oysa çok boyutlu diziler kullanmamız gerekebilir. JavaScript’te çok boyutlu dizi yok aslında ama bu bizim için bir engel deÄŸil: Tek boyutlu bir dizinin her elemanını yeni bir dizi haline getirip, iki boyutlu dizi haline getirebiliriz:
- var hafta = new Array (6,1)
- for(var i=0; i<=6;i++) hafta[i]= new Array()
- hafta[0][0] = “pazartesi sabahı”
- hafta[0][1] = “pazartesi akÅŸamı”
- hafta[1][0] = “salı sabahı”
- hafta[1][1] = “salı akÅŸamı”
- hafta[2][0] = “çarÅŸamba sabahı”
- hafta[2][1] = “çarÅŸamba akÅŸamı”
- hafta[3][0] = “perÅŸembe sabahı”
- hafta[3][1] = “perÅŸembe akÅŸamı”
- hafta[4][0] = “cuma sabahı”
- hafta[4][1] = “cuma akÅŸamı”
- hafta[5][0] = “cumartesi sabahı”
- hafta[5][1] = “cumartesi akÅŸamı”
- hafta[6][0] = “pazar sabahı”
- hafta[6][1] = “pazar akÅŸamı”
Burada 7 x 2 = 14 tane deÄŸer söz konusudur ve iki deÄŸer grubunun (haftanın günleri, gün vakti) aralarında bir iliÅŸki vardır. Bu örneÄŸe 7 x 2′li bir matris de diyebiliriz, zira diziler bir matris ifadesidir. Matris bilgisi olmayan arkadaÅŸlarımız kendi kendilerine yaptıkları denemelerle bazı temel bilgileri edinebilirler. Küçük bir uygulama yapalım:
Â
<html>
<head>
<title>Sıralama</title>
<script language=”JavaScript”>
function rehber()
{
var kayit = new Array()
for (var i=0; i<=100; i++)
{
kayit[i] = new Array()
kayit[i][0]=prompt(“Arkadaşınızın ismini girin lütfen”,”İsim”)
if (kayit[i][0]==null || kayit[i][0]==”") break
kayit[i][1]=prompt(kayit[i][0] + ” isimli arkadaşınızın telefonunu girin lütfen”, “Telefon”)
}
document.write(“Rehbere kaydedilmiÅŸ isim ve telefon numaraları:<br>”)
for (var j=0; j<=i;j++)
{
document.write(kayit[j][0] + “: ” + kayit[j][1] + “<br>”)
}
}
</script>
</head>
<body>
Aşağıdaki düğmeye basarak telefon numaralarını öğrenebilirsiniz.<br><br>
<form>
<input type=”button” value=”Telefon Rehberi” onclick=”rehber()”>
</form>
</body>
</html>Â
Diziler Üzerinde İşlemler
Â
Diziyi yazılım içinde değer vermişsek, o dizinin kaç değeri olduğunu biliriz ve değer sayısını bulmaya çalışmayız. Ama eğer diziye girilecek değer sayısını kullanıcıya bırakmışsak, dizinin taşıdığı değer sayısını yazılım içinde ifade etmek isteriz. Dizilerin taşıdığı değer sayısını ifade etmek için length komutu kullanılır.
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.