Java Script Diziler
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.,
Javascript:
<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:
Javascript:
<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.
|