28 Aralık 2014 Pazar

Small Basic

Microsoft günlük ihtiyaç programları gibi küçük programlar için Small Basic adında bir dil geliştirmiş. Small Basic'i çalıştırınca şöyle bir ekran çıkıyor.


Bu editörde Small Basic programlarımızı yazacağız.



İlk Program

Bu kadar tanışmak yeter , hadi ilk programı yazalım. Editöre şu satırı yazın:
TextWindow.WriteLine("Merhaba Dünya")
Ekran görüntüsü şöyle birşey olacaktır:


ilk programın yazımı bitti. Çalıştırmak için "Çalıştır" yazan butona tıklayın ya da F5 tuşuna basın. Eğer herşey düzgün giderse ekrana bir konsol çıktısı gelecektir.


Tebrikler ilk Small Basic programınız çalıştı. Küçük bir program ama bu sizi büyük bir programcı yapmanın ilk adımı olabilir. Burada programı yazarken editör size yardımcı olmak için ipuçları içeren pencerecikler açar. Burdan aradığınız kelimeyi seçerek işinizi kolaylaştırabilirsiniz. Bu yardımlara intellisense denir.




Programı Kaydetmek

Programı kaydetmek isterseniz kaydet düğmesine tıklayabilir ya da Ctrl+S tuş kombinasyonu basabilirsiniz. Bir sorgu penceresi açılacak ve programınızı nereye ve hangi isimle kaydetmek istediğinizi soracaktır.


Bir Bilgisayar Programı Aslında Nedir?

Bir program bilgisayara verilen komutların ard arda yazılmasıyla elde edilir. Bu komutlar bilgisayara ne yapması gerektiğini söyler ve bilgisayar da tam olarak komutlarda söyleneni yapar. İnsanlar gibi bilgisayarlarda kendilerine anladıkları dilde verilen komutları anlayabilirler. Bunlara programlama dilleri denir. Small Basic bulunan bir sürü programlama dilinden sadece biri. 


Small Basic Programları

Small Basic programları bir ifadeler topluluğudur. Programın her satırı bir ifadedir ve bilgisayara bir komut verir. Bilgisayar bir Small Basic programını işlemeye başladığında programın satırlarını okur ve ilk satırı bilgisayara işlemesi için gönderir. İlk satırdaki komut ilendikten sonra geri dönülür ve arkasından gelen satır okunarak bilgisayara işlenmesi için gönderilir. Programın son satırı da işlenene kadar bu devam eder.



İl Programa Tekrar Dönelim

Ne yazmıştık ilk programa :
TextWindow.WriteLine("Merhaba Dünya")
Bu çok basit bir program ve tek bir ifadeden oluşuyor. Bu ifade bilgisayara TextWindow'a yani konsola tek satır yazı yazmasını emrediyor. 

Bilgisayar bunu açıkça şöyle anlar:
Çıktı ekranına Merhaba Dünya yaz.
Dikkat ederseniz ifade satırımız 3 parça gibi görünüyor:

  1. TextWindow
  2. WriteLine
  3. "Merhaba Dünya"
Noktalar parantezler tırnaklar program içinde bu bölümleri ayrıştırmak için kullanılır. Programı çalıştırınca siyah bir pencere açıldı. İşte bu pencere TextWindow'dur , genel olarak adı konsol olarak bilinir. Burası programın çıktısının gönderileceği yerdir. Programımızdaki bu TextWindow programcılıkta "nesne" olarak adlandırılır. Programcılıkta nesnelere birçok işlem uygulanır, buradaki WriteLine ise TextWindow nesnesine uygulanan işlemlerden sadece biri. Arkasından tırnak ve parantez iinde bir "Merhaba Dünya" yazısı gelir burada tırnaklar içinde yazı olduğunu bildirir. İşlemden sonra parantez içinde verilen yazı o işlem için bir girdi oluşturur. Parantez içinde işlemlere birden çok girdi verilebilir.

İkinci Programımız

Artık ortamı ısıtmaya başlayabiliriz. Hadi programı biraz renklendirelim:
TextWindow.ForegroundColor = "Yellow"
TextWindow.WriteLine("Merhaba Dünya")


Programı çalıştırınca aynı Merhaba Dünya yazısını bu sefer sarı yazılı olarak göreceksiniz.:


İlk satıra gelen ilavede ForegroundColor özelliği "Yellow" değerine eşitleniyor. Bu yazıların sarı renkte olacağını bilgisayara bildirir. Bu bir işlem değil bir özellik belirleme olduğu için eşitlik ifadesi kullanılmıştır. Buradaki ForegroundColor kelimesine programcılıkta özellik denir. İsterseniz Yellow rengi yerine bunlardan biri ile değişik renkler deneyebilirsiniz:
Black
Blue
Cyan
Gray
Green
Magenta
Red
White 
Yellow
DarkBlue
DarkCyan
DarkGray
DarkGreen
DarkMagenta
DarkRed
DarkYellow


Programlarda Değişkenlerin Kullanımı

Programınız dünyaya merhaba diyeceğine kendisini kullanana merhaba dese daha iyi olmaz mı? Bunu yapmak için önce kullanıcının adını sorup bir depoda saklamalı ve sonra merhaba derken bu adı kullanmalıyız. Hadi bunu nasıl yapacağımızı görelim:
TextWindow.Write("Adınızı Giriniz: ")
name = TextWindow.Read()
TextWindow.WriteLine("Merhaba " + name)
Programı çalıştırınca size adınızı soracaktır:


Adınızı yazıp enter basınca size merhaba diyecektir :


Artık başka başka şeyler sorup başka başka cevaplar verebilirsiniz herhalde..



Programın Analizi

Yazdığınız programda şu satır dikkatinizi çekmiştir :
name = TextWindow.Read()
Read() da WriteLine gibi bir işlemdir (çünkü parantezleri var). Bu işlemin bir girdisi olmadığını parantez içinde verilen bir şey olmamasından anlıyoruz. Bu işlem kullanıcının klavyeden ekrana bir yazı girip sonunda enter tuşuna basmasını bekler. Enter basılmasının ardından kullanıcının girdiği yazıyı programa gönderir. Bu satırda kullanıcının girdiği yazı name adı verilen değişkene atanır. Bu eşitlik ifadesi ile hafızada name adında bir yer açıyoruz ve oraya Read() işleminden dönen değeri yani kullanıcının girdiği yazıyı koyuyoruz.

Sonraki satırda bildiğimiz bir komut enteresan bir biçimde kullanılmış:
TextWindow.WriteLine("Merhaba " + name)
Burada saklamış olduğumuz name değişkeni içeriğini kullanarak bir cümle oluşturuyoruz. "Merhaba " ve name değişkeni içeriği toplanarak WriteLine işlemine girdi olarak veriliyor.

Bir değişkene bir defa değer verdiniz mi onu defa defa kullanabilirsiniz.
TextWindow.Write("Adınızı Giriniz: ")
name = TextWindow.Read()
TextWindow.WriteLine("Merhaba " + name + ".")
TextWindow.WriteLine("Nasılsın " + name + "?")



Değişkenlere İsim Verirken Dikkat Edilecekler

Değişkenlere isim verirken uyulması gereken kurallar vardır:
  1. İsim bir harfle başlamalıdır ve if , for , then gibi komut kelimelerinden biri kullanılamaz.
  2. Bir isim istenilen sayıda harf , sayı veya alt çizgi içerebilir.
  3. Değişkenlere mantığa uygun isimler vermeniz yardımcı olacaktır. Ne kadar uzun olursa olsun değişken isimleri içinde sakladığı bilgiyi anımsatır olsun.



Sayılarla Oynamak

Değişkenleri kullanıcının adını saklamak için nasıl kullanacağımızı gördük. Bundan sonraki birkaç programda değişkenlerde sayıların saklanması ve o sayılarla işlemler yapılmasını göreceğiz. Çok basit bir programla başlayalım:

number1 = 10
number2 = 20
number3 = number1 + number2
TextWindow.WriteLine(number3)
programı çalıştırınca şu çıktıyı alırsınız:


İlk satırda number1 değişkenine 10 sayısını saklıyoruz. İkinci satırda number2 değişkenine 20 değerini saklıyoruz. Üçüncü satırda number1 ve number2 değişkenlerinde saklanan değerleri toplayıp number3 değişkeninde saklıyoruz. Bu durumda number3 değişkeni içerisinde 30 değeri saklanacaktır. Bu değer de son satır ile konsola yazdırılıyor.

Hadi programda küçük bir değişiklik yapalım ve etkisine bakalım:
number1 = 10
number2 = 20
number3 = number1 * number2
TextWindow.WriteLine(number3)
Şimdi program number1 ve number2 değişkenleri içindeki değerleri çarpacaktır.


Benzer şekilde çıkarma yaparsak
number3 = number1 - number2
ya da bölmek istersek , bölmek için "/" kullanılır :
number3 = number1 / number2



Basit Bir Birim Dönüştürücü

bir sonraki programımızda fahrenheit sıcaklığı santgrad dereceye dönüştürmek için C=(F-32)*5/9  formülünü kullanacağız.

İlk önce fahrenheit olarak sıcaklığı kullanıcıdan isteyeceğiz. Ekrandan sayı girişi okumak için özel bir komut vardır, TextWindow.ReadNumber
TextWindow.Write("Fahrenheit sıcaklığı giriniz : ")
fahr = TextWindow.ReadNumber()
Sıcaklık değerini aldıktan sonra onu santigrad yapmak için şu formülü kullanacağız :
celsius = 5 * (fahr - 32) / 9
Burada parantezler bilgisayara ilk önce (fahr - 32) değerinin hesaplanacağını anlatır.
TextWindow.Write("Fahrenheit sıcaklığı giriniz : ")
fahr = TextWindow.ReadNumber()
celsius = 5 * (fahr - 32) / 9
TextWindow.WriteLine("Santigrad olarak sıcaklık " + celsius + " derece")
ve programın çıktısı :



Yeter sıkıldım üç beş bölüm atlayalım ve windows uygulamalarına gelelim..




Grafik Ekranlar

Bu zamana kadar konsol uygulamaları yaptık. Konsol uygulamaları bir programlama dilini anlamak için gerekli, ancak Small Basic kuvvetli bir grafik yapısına da sahip. Şimdi onları görelim.


GraphicsWindow'a Giriş

Yazı yazmak için TextWindow olduğu gibi Grafikleri çizmek için de GraphicsWindow vardır. İlk önce GraphicsWindow'u göstermekle başlayalım.
GraphicsWindow.Show()
Bu programı çalıştırınca önceki siyah yazı penceresi yerine aşağıdaki gibi beyaz zeminli bir pencere açılır. Bu standart bir windows uygulama penceresi :



Grafik Penceresini Ayarlamak

GraphicsWindow kendisinin görünümünü istediğiniz gibi ayarlamanıza izin verir. Etiketini , arkaplanını , boyutunu değiştirebilirsiniz. Hadi biraz özellikleri ile oynayarak onu değiştirelim :
GraphicsWindow.BackgroundColor = "SteelBlue"
GraphicsWindow.Title = "Benim Graphics Window"
GraphicsWindow.Width = 320
GraphicsWindow.Height = 200
GraphicsWindow.Show()
Kullanılabilecek tüm renklerin bir listesi burada mevcut.



Çizgi Çizmek

Pencereyi ekrana koyduk, hadi üstüne şekiller çizelim, yazılar yazalım hatta resim koyalım. Önce basit şekiller çizerek başlayalım. Bu program ekrana çizgiler çiziyor :
GraphicsWindow.Width = 200
GraphicsWindow.Height = 200
GraphicsWindow.DrawLine(10, 10, 100, 100)
GraphicsWindow.DrawLine(10, 100, 100, 10)
GraphicsWindow.Show()

İlk iki satır pencerenin ayarlamasını yapıyor , sonraki iki satır da ekrana bir çarpı çiziyor. DrawLine işleminin ilk iki parametresi çizginin başlangıç x ve y koordinatlarını verir , son iki parametre de çizginin bitiş noktasının x ve y koordinatlarını verir. Bilgisayar koordinat sisteminde sıfır noktası pencerenin sol üst köşesidir. Koordinatlar buradan itibaren pixel olarak hesaplanır.

Hadi programa tekrar geri dönelim ve biraz renklerle ve çizgi kalınlıklarıyla oynayalım.
GraphicsWindow.Width = 200
GraphicsWindow.Height = 200
GraphicsWindow.PenColor = "Green"
GraphicsWindow.DrawLine(10, 10, 100, 100)
GraphicsWindow.PenColor = "Gold"
GraphicsWindow.DrawLine(10, 100, 100, 10)
GraphicsWindow.Show()

Biraz da çizgi kalınlığıyla oynayalım :
GraphicsWindow.Width = 200
GraphicsWindow.Height = 200
GraphicsWindow.PenWidth = 10
GraphicsWindow.PenColor = "Green"
GraphicsWindow.DrawLine(10, 10, 100, 100)
GraphicsWindow.PenColor = "Gold"
GraphicsWindow.DrawLine(10, 100, 100, 10)
GraphicsWindow.Show()

PenWidth ve PenColor ile çizgilerin görünümünü değiştirdik.

Biraz daha geliştirelim ve ekrana değişik kalınlıklarda çizgiler çizmek için bir döngü kullanalım :
GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.Width = 200
GraphicsWindow.Height = 160
GraphicsWindow.PenColor = "Blue"

For i = 1 To 10
  GraphicsWindow.PenWidth = i
  GraphicsWindow.DrawLine(20, i * 15, 180, i * 15)
endfor
Buradaki tek yeni şey For döngüsü. Bu döngüde i değişkenine 1 den 10'a kadar değerler veriliyor ve her değer için For ve endfor komutları arasındaki satırlar işlenerek aşağıdaki görüntü elde ediliyor :


Döngü içinde her seferinde çizgi kalınlığı artırılarak yeni bir çizgi çiziliyor. Kafanızda döngüyü çalıştırıp i değerlerinin her birine hangi çizginin karşılık geldiğini tek tek inceleyin.


Şekiller Çizmek ve İçini Boyamak

İş şekil çizmeye gelince iki işlem söz konusudur , şekli çizmek ve içini doldurmak. Çizme işleminde şeklin dış hatları bir çizgiyle çizilir. doldurma işleminde de bir fırça ile şeklin tamamı boyanır. Aşağıdaki programda iki dikdörtgen var, biri çiziliyor, diğeri dolduruluyor. 
GraphicsWindow.Width = 400
GraphicsWindow.Height = 300
GraphicsWindow.PenColor = "Red"
GraphicsWindow.DrawRectangle(20, 20, 300, 60)
GraphicsWindow.BrushColor = "Green"
GraphicsWindow.FillRectangle(60, 100, 300, 60)

DrawRectangle ile bir dikdörtgen çizilirken FillRectangle ile bir dikdörtgen boyanıyor. BrushColor şeklin içini dolduran fırçanın rengini belirliyor. Bir dikdörtgen şekli için dört parametre kullanılır, ilk ikisi dikdörtgenin sol üst köşesinin koordinatları , son ikisi de dikdörtgenin eni ve boyu.

Aynı tekniklerle ekrana elipsler (yuvarlaklar) çizebiliriz :
GraphicsWindow.Width = 400
GraphicsWindow.Height = 300
GraphicsWindow.PenColor = "Red"
GraphicsWindow.DrawEllipse(20, 20, 300, 60)
GraphicsWindow.BrushColor = "Green"
GraphicsWindow.FillEllipse(60, 100, 300, 60)

Tabii eğer daire çizmek istiyorsak elipsin eni ve boyu eşit olmalıdır :
GraphicsWindow.Width = 400
GraphicsWindow.Height = 300
GraphicsWindow.PenColor = "Red"
GraphicsWindow.DrawEllipse(20, 20, 100, 100)
GraphicsWindow.BrushColor = "Green"
GraphicsWindow.FillEllipse(100, 100, 100, 100)





Hiç yorum yok:

Yorum Gönder