iPhone kullanıcıları, PC World Türkiye iPhone uygulaması yayında... Detaylar için tıklayın.
Üye Olun / Giriş Yapın:  Kullanıcı:   Parola:   Beni hatırla:   
bul.pcworld.com.tr/
POPÜLER FORUMLAR
İNCELEMELER
Ürün inceleme kategorileri:
Ücretsiz Haber Postası
Haftalık ve aylık bültenlerimize üye olun, bilişim dünyasındaki tüm yenilikleri ilk siz öğrenin.
PCW FORUM GÜNDEMİ
PC World Türkiye
30 Mayıs 2009 / 22:28
Diziler
Çook eskiden, Trt 2 ilk yayına başladığı sıralarda “Yalan Rüzgarı” diye bir dizi vardı. O kadar  uzun sürdü ki oradaki insanlar eş zamanlı olarak bizlerle beraber büyüdü. Bebekliklerini gördüğümüz karakterlerin torunlarını bile seyrettik. Halen sürüyor mu, bilmiyorum.

Yanlış Dergi Okuduğunu Sanan Okuyucu Tepkisi: Hşşşt! Abi hayırdır? Nereden çıktı bu dizi muhabbetleri?
Şaşkınlık: Ne bileyim, bu ay dizilerden bahsetmeyecek miydik? Geçen ay öyle yazmadık mı?
Hiper Şaşkınlık: Ya tamam da her halde pembe dizilerden de bahsetmeyecektik? Değil mi?
Açıklama : Eheh… Biliyoruz tabi ki. Yine konuya etkileyici bir giriş yapayım dedim. Nasıl güzel oldu di mi?
Ultra Hiper Şaşkınlık: Sorma, çok etkilendim. Eee… Daha daha…

Konuya Giriş: Evet, diziler! Sıra halindeki nesneler! Belli bir düzende ilerleyen elemanlar! Aslında geçen ay sayıları “sıralayalım” derken bu konuya birazcık girer gibi olmuştuk. Sonra bir de baktık aslında ilk önce en büyüğü (veya en küçüğü) bulmak ve sonra hangi sayının hangisinden büyük (veya küçük) olduğunu tespit etmek  daha verimli. Nitekim öyle de yaptık. Biz artık, verilen herhangi adetteki sayının hangisinin en büyük hangisinin en küçük olacağını bulmayı biliyoruz!
Konuya Girişe Katkı: Ayıpsın. Biliyoruz tabi ki. Şimdi ne yapacağız?
Ani Cevap: Sıralayacağız.
Ani Cevaba Garip Soru: Neyi?
Garip Soruya İkinci Ani Cevap: Sayıları.
Ani Cevaba İkinci Garip Soru: Hangi sayıları?
Kutlama ve Konuya Devam: Bravo! Tabi ki işe ilk önce sayıları öğrenerek başlamak lazım. Böyle bir meselede sayıları tek tek öğrenip her öğrendiğimiz sayıyı anında kıyaslama yaparak “sırasına” koyabileceğimiz gibi sayıları hiçbir sıralama yapmadan hepsini öğrendikten sonra “sırasına” koyabiliriz. Ama ne yaparsak yapalım bir şekilde “sırasını” belli etmemiz gerekiyor.
Anlamama Belirtisi İçeren Ünlem: Hmm… Anlamadım!
Detaylı Açıklama: Aslında bunu geçen sayımızda da belirtmiştik. Değişkenleri sayı1, sayı2, sayı3  olan 3 sayıyı büyükten küçüğe sıralamak istemiştik.
Hatırlama ve Konuya Devam Etme: Evet, hatta ilk satırda ne yapacağımı şaşırmıştım:
Sayı1Teşekkür Etme Ve Konuya Ele Alma: Konuya olan ilgini, çalışmanı takdir ediyorum. Evet, doğru söylüyorsun! “Kelimelerin” birbirine göre önce veya sonra yazılma kriteri olur mu? Bunu bilgisayar nasıl anlasın? Her ne kadar biz “Sayı1” diyerek ilk sayıyı kasıt etsek de onun yerine “SayıA” da diyebilirdik. Bilgisayar için ikisi de aynı, ikisi de karakterlerden oluşan değişken isimleri ve bu isimlerin “sıralaması” diye bir şey yok. O halde biz ne yapmalıyız da bu değişkenlerin birbirine göre önceliğini bilgisayara anlatabilmeliyiz?
Başlıkla Bağlantı Kuran Okuyucu Tepkisi: Diziler bizim için bir çare olmalı!

Hak Verme ve Konuya Devam: Tam üstüne bastın! (Acımadı ki acımadı ki :P ) Bu noktada diziler devreye giriyor. “Dizi” programcıların çok sık kullandığı ve anlaşılması oldukça kolay olan bir değişken tipidir.

Örneğin program esnasında kullanacağımız 5 sayı için şimdiye kadar tanımladığımız değişken tipinde göstermek istesek, değişken isimlerimiz muhtemelen Sayı1, Sayı2, Sayı3, Sayı4, Sayı5 gibi olurdu. Bunların mesela A, B, C, D, E biçiminde bir isimlendirmeden yada FB, GS, BJK, TS, DS gibi bir isimlendirmeden farkı yok bilgisayar için.  (Biz kendimizin programlama esnasında ilgili değişkenin değerini daha iyi kavramak adına aklımızın daha çabuk hatırlayacağı şekilde isimlendiriyorduk)

Merak İçinde Kıvranan Okuyucu Tepkisi: E peki ya diziyle tanımlarsak?
Sakin Anlatım İsteği ve Konuya Devam: Acele etmeyelim. Paşaya kelle mi yetiştireceğiz? Eğer biz bunları dizi ile tanımlasa idik şöyle tanımlayacaktık: Sayı[1], Sayı[2], Sayı[3], Sayı[4], Sayı[5]
Dağ Fare Doğurdu Tepkisi: Hayda! Ne farkı var bunun az önce yazdığınız Sayı1, Sayı2, Sayı3, Sayı4, Sayı5 biçimindeki tanımlamadan?
Sonuca Götürecek Bir Soru: Demek farkı yok! O halde aynı benzerliği A, B, C, D, E tanımlamasıyla da yapar mısın?
Sonuca Götürecek Soruya Danışıklı Olarak Verilen Cevap: A[1], B[2], C[3], D[4], E[5]
Danışıklı Cevaba Önceden Hazırlanan Açıklama: Tabi ki böyle değil! Dikkat etti isen benim “dizi” tanımlamamda değişkenin “köşeli parantez” öncesindeki kısımları hep aynı! Yani eğer aynı mantık ile tanımlama yapmak istese idin, A[1], A[2], A[3], A[4], A[5] biçiminde yazmalıydın!
Anlama Belirtisi: Hmmm…
Anlamayı Pekiştirme Çabaları ve Akabinde Pekiştirme Sorusu: O halde dizi değişkenin yapısını açıklayalım. Dizi, programcı tarafından, programın başında eleman sayısını belirtilen (Bazı dillerde bu gereksinim olmayabilir) ve elemanlarına “sıra numarası” ile ulaşılabilen bir değişken türüdür. Örneğin Sayı[50] dediğimizde “sayı” dizisinin 50. sıradaki elemanını kasıt ediyoruz demektir. (Bazı dillerde dizi değişken sıralamaları sıfırıncı elemandan başladığından Sayı[50] ifadesi 51. sayıyı da ifade edebilir.) Peki bu durumda, bu değişkenlere değerler nasıl atanacak? Mesela 5 elemanlık bir diziye elemanları atayabilir misin?
Uzun Çözüm: Tabi ki, hemen:
Adım 1: Sayı[1] i öğren.
Adım 2: Sayı[2] yi öğren.
Adım 3: Sayı[3] ü öğren.
Adım 4: Sayı[4] ü öğren.
Adım 5: Sayı[5] i öğren.
Uzun Çözüme Şok Edici Bir Soru: Yanlış değil. Peki 10000 elemanlı bir dizinin elemanlarını öğrenmek istersen?
Şok Olma Durumu : ?!?!?!?!!!... Amanın! O kadar yerin kaldı mı abi?
Şok Edici Soruya 4 Satırlık Şok Cevap: Tabi ki kaldı, hatta 10000 değil 999999999 tane için bile yerim var!
Adım 1: i=1
Adım 2: Sayı[i] ‘yi öğren.
Adım 3: i=i+1
Adım 4: Eğer i<=10000 ise Adım2’e git.
Şok Eden Cevabı Hayranlıkla Karşılama: Heyyt bea! İşte bu. Vallahi çok hoşuma gitti. İlk önce sırayı tutacak bir “i” değişkeni tutuyoruz. İlk değer 1, o halde ilk önce Sayı[1] öğreniliyor. Daha sonra i’yi 1 artırıyoruz ve 4. adım bizi Sayı[2]’ye yönlendiriyor… En sonunda da i=10000 olduğunda öğrenme işi bitiyor 
Şok Cevabı Süsleme İsteği: İstersen bunu daha da süsleyebilirsin, mesela her seferinde kaçıncı sayıyı öğrenmek istediğini programın kullanıcısına  gösterebilirsin, böylece o da hangi sayıyı gireceğini şaşırmaz. Bunu da  sadece tek bir satır ekleyerek yapabilirsin, sence nereye?
Anlamış Okuyucu Tepkisi: Sayıyı öğrenmeden “öğrenme” isteğini belirtmek lazım. Hmm… Tabi ya! “i” değişkeni sayının sırasını tuttuğuna göre, Sayı[i] demeden önce, [i] inci sayıyı öğren demek lazım!
Tebrik ve Basit Bir Uygulama: Tebrik ederim. Sen bu işi kıvırıyorsun. İstersen 10 elemanlı bir “Sayı” dizisine sayı girelim ve sonra istenilen elemanını çağıralım, hem de pascal dilindeki kodlar ile.
Onaylama: Tamam.
Bahsi Geçen Basit Uygulama ve Gelecek Sayıya Yön Verme:
VAR
Sayı : Array[1..10] of integer;
Label A

BEGIN
for i:=1 to 10 do
begin
write(i, “inci sayıyı öğren”);
readln(sayi[i]);
end;

writeln(“Kaçıncı sıradaki sayıyı istiyorsunuz?”);
readln(i);
writeln(i, “inci sıradaki sayı: ”, sayi[i]);
End.

Şimdi sıra geldi bu sayıdaki konumuza: Sayı Sıralama!
Hatırlatma: Abi nereye sığdıracağız ki! .
Hatırlama:  Hay Allah! Ee bizde böyle. Bir konu tek sayıda bitmez 


Yapılan yorumlar: (1)

  PCW Online Ziyaretçisi tarafından 04 Haziran 2009 tarihinde yazıldı:
hocam sana bi tatil şart

PCW Online Ziyaretçisi ismiyle bu yazı hakkında benim de söyleyeceklerim var:

Yorumlarınızın kendi isminiz ve resminizle hemen yayınlanmasını istiyorsanız, siteye üye olabilirsiniz.



PC World Galeriden

Bloglar: Haftanın En Çokları