İPUCU

Seçenekler

/ Java Script Diziler /

26-02-2017 18:04
#1
Leopic - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
02/2016
Mesajlar:
9.951
Teşekkür (Etti):
28
Teşekkür (Aldı):
4333
Konular:
2068
Ticaret:
(0) %
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:

Kod:
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.,









Kod:
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++) ********.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:




Kod:
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:






Kod:
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") 
} 
********.write("Rehbere kaydedilmiş isim ve telefon numaraları:<br>") 
for (var j=0; j<=i;j++) 
{ 
********.write(kayit[j][0] + ": " + kayit[j][1] + "<br>") 
} 
} 
</script> 
</head> 
<body>


Kod:
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.





Kod:
Kaynak: Javascript Türkiye
Konu Leopic tarafından (26-02-2017 18:25 Saat 18:25 ) değiştirilmiştir.
RAUN Teşekkür etti.

26-02-2017 18:13
#2
RAUN - ait Kullanıcı Resmi (Avatar)
Administrator
Üyelik tarihi:
05/2014
Nereden:
Reykjavik
Mesajlar:
6.878
Teşekkür (Etti):
1617
Teşekkür (Aldı):
7020
Konular:
1181
Ticaret:
(0) %
Eline sağlık
Kullanıcı İmzası
"Ben her şeyden önce bir Türk milliyetçisiyim. Böyle doğdum. Böyle öleceğim. Türk birliğinin, bir gün hakikat olacağına inancım vardır. Ben görmesem bile, gözlerimi dünyaya onun rüyaları içinde kapayacağım. Türk birliğine inanıyorum, onu görüyorum. Yarının tarihi, yeni fasıllarını Türk birliğiyle açacaktır. Dünya sükununu bu fasıllar içinde bulacaktır. Türk'ün varlığı bu köhne aleme yeni ufuklar açacak, güneş ne demek, ufuk ne demek, o zaman görülecek."



26-02-2017 18:21
#3
``AlsancaK - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
10/2015
Nereden:
*:php?id()&
Mesajlar:
2.697
Teşekkür (Etti):
632
Teşekkür (Aldı):
1521
Konular:
252
Ticaret:
(0) %
Eline sağlık her yerdesin süpersin kardesim
26-02-2017 18:23
#4
mbugra69 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
04/2012
Mesajlar:
137
Teşekkür (Etti):
8
Teşekkür (Aldı):
27
Konular:
49
Ticaret:
(0) %
Hocam eline sağlık, anlatış tarzın çok hoş. Emeğine saygı +

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı