Programlamaya her sefer sıfırdan başlamak isteyenler için biraz alıştırma yapalım. Daha önce yarı yıl tatilinde veya Yaz tatilinde çalışmaya başlamış ama her şeyi unuttuğunuzu düşünüyorsanız ve yeniden başlamayı düşünüyorsanız, biraz beyin jimnastiği yapalım. Aşağıya eklediğim kodların ne anlam taşıdıklarını tamamen mantık yürüterek çözmeye çalışın.
Buradan nasıl bir sonuç çıktığını çözebildiyseniz, biraz daha zor bir örneği yine mantık kurarak çözmeyi deneyebilirsiniz. Daha önce hiç bir şey görmemiş olsanız dahi, bu örneği çözebilmiş olmanız gerekir.
Bir sonraki örneğimiz:
Bu örnek muhtemelen sizi biraz daha zorlayacaktır. Ama bir önceki örmek ile kıyaslayarak, yine aklınızda çıkacak sonucu canlandırabiliyor olmanız gerekiyor. Zihninizin açık olması yeterli.
Bir sonraki örnek, ilk kez programlamaya ilgi duyanlar için zorlayıcı olabilir. Çünkü böyle bir dizi işlem için mantıklı bir kullanım alanı düşünemeyebilirler.
Kendi kodlarınız için de mümkün oldukça anlamlı tanımlamalar kullanırsanız, bir gün tekrar kullanmak isteyebileceğiniz ve kendi yazdığınız bir örneğiniz olursa, hangi bölümünün ne anlama geldiğini ve size hangi kısmının yaralı olabileceğini çabucak çözebilirsiniz. Ve aynı kodları her ihtiyaç duyduğunuzda tekrar yazmak zorunda kalmazsınız.
Biraz daha vites yükseltelim.
Bu program bölümlere ayrılmış. Bu şekilde daha öngörülebilir ve gerektiğinde daha kolay yeniden düzenlenebilir. Gerekli değişiklikler için aranan bölümleri bulmak daha kolay olur.
Programlarınızı yazarken başkalarının da kolay anlayabileceği şekilde yazınız ki, neden öyle yazdığınızı siz kendiniz de daha iyi anlamış olun. Kendi kodunuzu kendiniz açıklayamıyorsanız, o halde ne yazdığınızı ve neden öyle yazdığınızı da aslında kendiniz de iyi anlayamamış olursunuz. Bu da kötü bir durum. Kodlarınızı anlamlı yazmaya çalışırken, veya açıklamaya çalışırken, öğrenmenize de katkıda bulunmuş olursunuz.
Bu örnekte hangi bölümün ve hangi kalıbın tam olarak ne iş gördüğünü anlamak oldukça kolay. Programlama bilmeseniz dahi.
Her programcının en sevmediği iş, hata ayıklamak olmalı. Üstelik bu hataları yapan kişi de siz oluyorsunuz. Programlamada en çok yapılan şey de tam olarak hata bulup düzeltmek. Programlama neredeyse tamamen bu işlemden ibaret.
Aşağıdaki örnekte 4 adet hatalı bölüm var. Bunları bulmanın iki yolu var. Birincisi zor olanı. Her satırı tek tek inceleyip ve başka benzer ama düzgün çalışan satırlar ile kıyaslayarak ve mantık yürüterek hatayı bulmak. İkici yöntem biraz daha kolay. Hatalı kodlar derlenmez ve bir hata bildirimi ile sonlanır. O hata bildirimlerinde ilk hatanın hangi satırda olduğunu ve hangi sebepten kaynaklandığını açıklayan bir yazı çıkar. Her zaman ilk hata önemli. Hataları tek tek bulup düzeltebilirsiniz.
Siz birinci ve zor olan yöntemi deneyin.
En zor bölüm bu olsa gerek. Bu bölümü de çözmeyi başardıysanız, aslında sıfır değilsiniz ve daha önce nerede kaldıysanız, oradan öğrenmeye devam edebilirsiniz. Ara sıra yeniden hatırlatmalar her zaman iyidir tabi.
Programlama kafada tasarlanan bir iş, Ve zihninizin her zaman açık olması gerekir. Ve bazen bir şeyleri yeniden hatırlamak iyi gelir. Yaşayacağınız en zorlu işlemler, aynı zamanda en uzun akılda kalan işlemlerdir. Zorlanmadığınız işlemleri daha kolay unutabilirsiniz.
Programlarınızı her zaman anlaşılabilir yazamayabilirsiniz. Böyle durumlarda açıklamalar eklemek her aman yararlı. Açıklamalar kısa ve öz olmalı. Uzun açıklamaları kendiniz dahi okumak istemeyebilirsiniz. Ve gereksiz açıklamalardan da uzak durulmalı. Anlaşılabilir kodlara açıklama gerekmez genelde.
Açıklamaların düzgün kullanıldığı bir örnek:
Açıklamaları düzgün hizada ve gözü yormayacak bir sıklıkta yazmak en uygun olanı. Benim örneğimdekiler biraz kaymış olabilirler.
Kolay gelsin.
Kod:
' Yazar : Permatik
' Sürüm : 1.0
' Lisans : Freeware
' Bilgi : Bir olay açıklar
isim = "Ali"
sayı = 15
olay = "yaşında"
TextWindow.WriteLine(isim + " " + sayı + " " + olay)
Buradan nasıl bir sonuç çıktığını çözebildiyseniz, biraz daha zor bir örneği yine mantık kurarak çözmeyi deneyebilirsiniz. Daha önce hiç bir şey görmemiş olsanız dahi, bu örneği çözebilmiş olmanız gerekir.
Bir sonraki örneğimiz:
Kod:
' Yazar : Permatik
' Sürüm : 1.0
' Lisans : Freeware
' Bilgi : Ekrana kare çizdirme
TextWindow.Write(" ")
TextWindow.Write("____________________")
TextWindow.WriteLine(" ")
For indir = 1 To 10
TextWindow.WriteLine(" | |")
EndFor
TextWindow.Write(" ")
TextWindow.Write("____________________")
TextWindow.PauseWithoutMessage()
Program.End()
Bu örnek muhtemelen sizi biraz daha zorlayacaktır. Ama bir önceki örmek ile kıyaslayarak, yine aklınızda çıkacak sonucu canlandırabiliyor olmanız gerekiyor. Zihninizin açık olması yeterli.
Bir sonraki örnek, ilk kez programlamaya ilgi duyanlar için zorlayıcı olabilir. Çünkü böyle bir dizi işlem için mantıklı bir kullanım alanı düşünemeyebilirler.
Kod:
' Yazar : Permatik
' Sürüm : 1.0
' Lisans : Freeware
' Bilgi : Kelime işleme yöntemleri
isim = "Permatik"
soyad = "Traşbıçağı"
tam_ad = Text.Append(isim, soyad)
TextWindow.WriteLine(tam_ad)
küçült = Text.ConvertToLowerCase(tam_ad)
TextWindow.WriteLine(küçült)
büyüt = Text.ConvertToUpperCase(tam_ad)
TextWindow.WriteLine(büyüt)
sına = Text.EndsWith(küçült, "türk")
TextWindow.WriteLine(sına)
göster = Text.GetCharacter(66)
TextWindow.WriteLine(göster)
unicode = Text.GetCharacterCode("A")
TextWindow.WriteLine(unicode)
konum = Text.GetIndexOf(tam_ad, "mat")
TextWindow.WriteLine(konum)
boy = Text.GetLength(tam_ad)
TextWindow.WriteLine(boy)
türet = Text.GetSubText(tam_ad, 4, 3)
TextWindow.WriteLine(türet)
sonu = Text.GetSubTextToEnd(tam_ad,4)
TextWindow.WriteLine(sonu)
bul = Text.IsSubText(isim, "ma")
TextWindow.WriteLine(bul)
doğrula = Text.StartsWith(tam_ad, "Per")
TextWindow.WriteLine(doğrula)
Kendi kodlarınız için de mümkün oldukça anlamlı tanımlamalar kullanırsanız, bir gün tekrar kullanmak isteyebileceğiniz ve kendi yazdığınız bir örneğiniz olursa, hangi bölümünün ne anlama geldiğini ve size hangi kısmının yaralı olabileceğini çabucak çözebilirsiniz. Ve aynı kodları her ihtiyaç duyduğunuzda tekrar yazmak zorunda kalmazsınız.
Biraz daha vites yükseltelim.
Kod:
' Yazar : Permatik
' Sürüm : 1.0
' Lisans : Frewware
' Bilgi : Kayıt ekranı
' Başlık
TextWindow.WriteLine("")
TextWindow.WriteLine(" Kayıt ol programı")
TextWindow.WriteLine("")
' Kayıt işlemi
TextWindow.WriteLine("Merhaba kullanıcı, üye değilsen önce kayıt ol")
TextWindow.WriteLine("")
TextWindow.Write("Ad ve Soyad : ")
isim = TextWindow.Read()
TextWindow.Write("Kullanacı adı belirle : ")
nick = TextWindow.Read()
TextWindow.Write("Şifre belirle (Rakam olarak) : ")
şifre = TextWindow.ReadNumber()
' Kayıt işlem sonuç bildirimi
TextWindow.WriteLine("")
TextWindow.WriteLine("Kayıt işleminiz başarı ile tamamlandı")
TextWindow.Write("Devam etmek için 'ENTER' tuşlayın")
devam = TextWindow.ReadKey()
' Uygulamaya giriş işlemi
TextWindow.Clear()
TextWindow.WriteLine("")
TextWindow.WriteLine(" Kayıt ol programı")
TextWindow.WriteLine("")
TextWindow.Write("Kullanıcı adı : ")
nick_sınama = TextWindow.Read()
TextWindow.Write("Şifre : ")
şifre_sınama = TextWindow.ReadNumber()
' Giriş işlemi sonuç bildirimi
TextWindow.WriteLine("")
if nick_sınama = nick And şifre_sınama = şifre Then
TextWindow.WriteLine("Sayın " + isim + " başarı ile giriş yaptınız")
Else
TextWindow.WriteLine("Adınız veya şifreniz hatalı. Daha sonra tekrar deneyin.")
EndIf
' Program sonu
' Bir tuşa basılınca program sonlanır ve kapanır
TextWindow.Read()
Program.End()
Bu program bölümlere ayrılmış. Bu şekilde daha öngörülebilir ve gerektiğinde daha kolay yeniden düzenlenebilir. Gerekli değişiklikler için aranan bölümleri bulmak daha kolay olur.
Programlarınızı yazarken başkalarının da kolay anlayabileceği şekilde yazınız ki, neden öyle yazdığınızı siz kendiniz de daha iyi anlamış olun. Kendi kodunuzu kendiniz açıklayamıyorsanız, o halde ne yazdığınızı ve neden öyle yazdığınızı da aslında kendiniz de iyi anlayamamış olursunuz. Bu da kötü bir durum. Kodlarınızı anlamlı yazmaya çalışırken, veya açıklamaya çalışırken, öğrenmenize de katkıda bulunmuş olursunuz.
Kod:
' Yazar : Permatik
' Sürüm : 1.0
' Lisans : Freeware
' Açıklama : Okunaklı Kod Örneği
' Değişkenler
En = GraphicsWindow.Width
Boy = GraphicsWindow.Height
İsim = "Portakal"
Kırmızı = GraphicsWindow.GetColorFromRGB(255,0,0)
Sarı = GraphicsWindow.GetColorFromRGB(255,255,0)
Siyah = GraphicsWindow.GetColorFromRGB(0,0,0)
' İşlemler
Sub Etiket
GraphicsWindow.Title = İsim
EndSub
Sub DuvarBoyası
GraphicsWindow.BackgroundColor = Kırmızı
EndSub
Sub SarıBoya
GraphicsWindow.BrushColor = Sarı
EndSub
Sub SiyahBoya
GraphicsWindow.BrushColor = Siyah
EndSub
Sub Kafa
GraphicsWindow.FillEllipse(150,50,300,300)
EndSub
Sub SolGöz
GraphicsWindow.FillEllipse(200,150,50,50)
EndSub
Sub SağGöz
GraphicsWindow.FillEllipse(350,150,50,50)
EndSub
Sub Ağız
GraphicsWindow.DrawLine(250,300, 350,300)
EndSub
' Program akışı
' Programın nasıl işlediğini bu bölüm belirler.
En = 400
Boy = 400
Etiket()
DuvarBoyası()
SarıBoya()
Kafa()
SiyahBoya()
SolGöz()
SağGöz()
Ağız()
Bu örnekte hangi bölümün ve hangi kalıbın tam olarak ne iş gördüğünü anlamak oldukça kolay. Programlama bilmeseniz dahi.
Her programcının en sevmediği iş, hata ayıklamak olmalı. Üstelik bu hataları yapan kişi de siz oluyorsunuz. Programlamada en çok yapılan şey de tam olarak hata bulup düzeltmek. Programlama neredeyse tamamen bu işlemden ibaret.
Aşağıdaki örnekte 4 adet hatalı bölüm var. Bunları bulmanın iki yolu var. Birincisi zor olanı. Her satırı tek tek inceleyip ve başka benzer ama düzgün çalışan satırlar ile kıyaslayarak ve mantık yürüterek hatayı bulmak. İkici yöntem biraz daha kolay. Hatalı kodlar derlenmez ve bir hata bildirimi ile sonlanır. O hata bildirimlerinde ilk hatanın hangi satırda olduğunu ve hangi sebepten kaynaklandığını açıklayan bir yazı çıkar. Her zaman ilk hata önemli. Hataları tek tek bulup düzeltebilirsiniz.
Siz birinci ve zor olan yöntemi deneyin.
Kod:
' Yazar : Permatik
' Sürüm : 1.0
' Lisans : Freeware
' Açıklamam : Hata ayıklma için bir örnek :)
' Değişkenler
En = GraphicsWindow.Width
Boy = GraphicsWindow.Height
İsim = "Parmak"
Yeşil = GraphicsWindow.GetColorFromRGB(0,200,0)
Sarı = GraphicsWindow.GetColorFromRGB(255,255,0
KoyuSarı = GraphicsWindow.GetColorFromRGB(240,240,0)
Beyaz = GraphicsWindow.GetColorFromRGB(255,255,255)
' İşlemler
Sub DuvarBoyası
GraphicsWindow.BackgroundColor = Yeşil
EndSub
Sub El
GraphicsWindow.FillEllipse(200,200,195,90)
EndSub
Sub ÇilParmak
GraphicsWindow.FillEllipse(195,165,45,90)
EndSub
Sub YüzükParmağı
GraphicsWindow.FillEllipse(240,150,50,100)
EndSub
Sub OrtaPamak
GraphicsWindow.FillEllipse(285,80,55,180)
EndSub
Sub İşaretParmağı
GraphicsWindow.FillEllipse(335,150,50,100)
EndSub
Sub BaşParmak
GraphicsWindow.FillEllipse(370,190,45,60)
EndSub
Sub OrtaTırnak
GraphicsWindow.FillEllipse(295,80,30,50)
EndSub
Sub BaşTırnak
GraphicsWindow.FillEllipse(390,200,15,45)
EndSub
Sub SarıBoya
GraphicsWindow.BrushColor = Sarı
Sub KoyuSarıBoya
GraphicsWindow.BrushColor = KoyuSarı
EndSub
Sub BeyazBoya
GraphicsWindow.BrushColor Beyaz
EndSub
' Program akışı
En = 600
Boy = 400
DuvarBoyası()
KoyuSarıBoya()
Ayak()
SarıBoya()
ÇilParmak()
YüzükParmağı()
OrtaPamak()
İşaretParmağı()
BaşParmak()
BeyazBoya()
OrtaTırnak()
BaşTırnak()
En zor bölüm bu olsa gerek. Bu bölümü de çözmeyi başardıysanız, aslında sıfır değilsiniz ve daha önce nerede kaldıysanız, oradan öğrenmeye devam edebilirsiniz. Ara sıra yeniden hatırlatmalar her zaman iyidir tabi.
Programlama kafada tasarlanan bir iş, Ve zihninizin her zaman açık olması gerekir. Ve bazen bir şeyleri yeniden hatırlamak iyi gelir. Yaşayacağınız en zorlu işlemler, aynı zamanda en uzun akılda kalan işlemlerdir. Zorlanmadığınız işlemleri daha kolay unutabilirsiniz.
Programlarınızı her zaman anlaşılabilir yazamayabilirsiniz. Böyle durumlarda açıklamalar eklemek her aman yararlı. Açıklamalar kısa ve öz olmalı. Uzun açıklamaları kendiniz dahi okumak istemeyebilirsiniz. Ve gereksiz açıklamalardan da uzak durulmalı. Anlaşılabilir kodlara açıklama gerekmez genelde.
Açıklamaların düzgün kullanıldığı bir örnek:
Kod:
' Yazar : Permatik
' Sürüm : 1.0
' Lisans : Freeware
' Olay : Koşullu döngü örneği
TextWindow.Write(" ") ' İlk boşluk (Güzelleştirme)
For Yatay = 0 To 900 Step 100 ' Dış döngü
For Dikey = 10+Yatay To 100+Yatay Step 10 ' İç döngü
If Dikey < 90 Then ' Kaydırma için koşul
Dikey = Dikey+" "
EndIf
TextWindow.Write(Dikey + " ") ' Çıktı, şekilli
EndFor ' İç döngü sonu
TextWindow.WriteLine(" ") ' Yeni satıra inmek
EndFor ' Dış döngü sonu
TextWindow.PauseWithoutMessage() ' Bekletme noktası
Program.End()
Açıklamaları düzgün hizada ve gözü yormayacak bir sıklıkta yazmak en uygun olanı. Benim örneğimdekiler biraz kaymış olabilirler.
Kolay gelsin.
Son düzenleyen: Moderatör: