PureBasic 2 - Hadi başlayalım

Merhaba PureBasic

Basit bir konsol uygulaması ile başlayalım. Aşağıdaki kodu editöre kopyalayın, ardından F5 e basın. Siyah pencerede istediğiniz şeyler yazacaktır.
OpenConsole()
PrintN("Merhaba, Dünya!")
Print("merhabalar")
Input()
Burada PrintN, yazdırılan bilgiye satır sonu karakteri ekler. Bir alt satırdan yazmaya devam eder. Ekranın hemen kapanmaması için Input() kullandık. Input() komutu, kullanıcıdan bilgi girişi bekler. Enter tuşuna basınca siyah pencere kapanacaktır. 
Tek bir satırla da kullanıcıya bilgi verilebilir.
MessageRequester("Hoşgeldiniz", "Merhaba Dünya") 


Debugger (Hata ayıklayıcı)

OpenConsole()
Debug "Siyah pencere geliyor.."
a = 5
PrintN("Merhaba!")
Debug "Program 2 saniye bekliyor.. " + a
Delay(2000)
Siyah pencerede Merhaba yazarken Debug penceresinde diğerleri yazacaktır. Debug penceresi sadece yazılımcının hatalarını bulabilmesi içindir. Program, son halini alıp, derlenip exe dosyası elde edilince kullanılmaz. Delay() komutu, 2 saniye gecikme yapar ki siyah pencere gözüksün. 
Programı, satır satır çalıştırmak için, ilk satıra tıklayın. Debugger menüsünü kullanarak veya F9 a basarak breakpoint ekleyin. Debugger menüsünden Variable Viewer (değişken izleyici) seçin. Sonra üstteki menüden step ikonuna tıklayın veya F8 (step) e tekraren basarak satır satır çalıştırın. 

Debug penceresi

Programı, disket (Save) ikonuna basarak diske kaydedin. Compiler menüsünden Create Executable seçeneğine tıklayın. Oluşan exe dosyasını çift tık ile çalıştırın. Debug penceresinin açılmadığını, sadece siyah pencerenin açıldığını göreceksiniz.

Sabitler ve değişken tipleri

Sabitler, önlerine # karakteri konularak belirtilir. Kendi sabitlerinizi tanımlayabilirsiniz. Böylece programın ilerleyen yerlerinde sabiti değiştirmek isterseniz, derleyici hata verecektir. PB içinde de önceden tanımlanmış birçok sabit vardır. 
Değiken ismi ardından . karakteri ile değişken tipi belirtilir. Bir değişkenin tipi belirtilmez ise integer (tamsayı) olarak tanımlanır. PB 64-bit indirdiyseniz, integer değişken hafızada 8 byte yer kaplar. PB 32-bit indirdiyseniz, integer değişken hafızada 4 byte yer kaplar. Değişken tiplerini tabloda detaylı olarak görebilirsiniz.
OpenConsole()
Print("Yarıçap giriniz : ")
r.f = Val(Input())
PrintN("Çevre : " + StrF(2 * #PI * r))
; #PI pi sayısını ifade eder
Delay(2000)
Burada r değişkeni float yani tamsayı olmayan noktalı sayıyı ifade eder. Val() kullanıcının girdiği metini tam sayıya çevirir. Str() ise sayıyı metine çevirir. StrF() ise float sayıyı metine çevirir. StrF yerine Str yazasanız, sonucun tamsayı olduğunu görebilirsiniz. ; ile başlayan satırlar yorumdur, derlenmezler. Metin tipinde değişkenler .s (string) ile tanımlanır.
Input() komutu, sayı da yazsanız metin döner. Bu nedenler, yarıçap bilgisini 1 veya 1.5 girmeniz sonucu değiştirmeyecektir. Sonucun değişebilmesi için ValF() komutunu kullanabilirsiniz. Böylece metin, float sayıya çevirilir.

Metin (string) fonksiyonları

Bazı fonksiyonları görmek için aşağıdaki kodu çalıştırın. Daha fazla fonksiyon görmek için editörde bir fonksiyona tıklayın, ardından F1 tuşuna basın. Yardım penceresi açılacaktır. Açılan sayfanın altında bulunan String Index linkine tıklayın.
OpenConsole()
string.s = "Ben bir metinim!"
PrintN(Str(CountString(string, "metin")))
PrintN(LCase(string))
string = InsertString(string, "yeni ", 5)
PrintN(string)
string = RTrim(string, "!")
PrintN(string)
PrintN(Left(string, 3))
Input()

Koşullar

If (eğer) komutuyla koşul ifadeleri oluşturulur. Aşağıdaki kodu çalıştırın. Bir sayı girin ve enter tuşuna basın. If ve ElseIf koşulları uymazsa, program Else e gider. Aşağıdaki program için detay verelim :
If x<3 : eğer x<3 ise
ElseIf x=4 : eğer x<3 değil ama x=4 ise
Else : yukarıdaki if ve elseif koşulları sağlanmıyor ise
OpenConsole()
x = Val(Input())
If x < 3
  PrintN("x sayısı 3 ten küçüktür")
ElseIf x = 4
  PrintN("x = 4")
Else
  PrintN("x sayısı 4 ten büyüktür")
EndIf
Delay(2000)

Select ile koşul tanımlama

OpenConsole()
x = Val(Input())
Select x
  Case 1
    PrintN("x = 1")
  Case 2, 3, 4
    PrintN("x sayısı 2, 3, 4 olabilir")
  Case 5 To 10, 11
    PrintN("x sayısı 5 ile 10 arasında veya 11 olabilir")
  Default
    PrintN("x sayısı 1 den küçük veya 11 den büyüktür")
EndSelect
Delay(2000)
Case lerin birisi uymazsa program Default a gider.

Döngüler

For-Next, Repeat-Until, While-Wend döngüleri kullanılabilir.
OpenConsole()
For x = 1 To 10
  PrintN(Str(x))
Next
Delay(2000)
2 şer sayı atlayarak yazar :
OpenConsole()
For x = 1 To 10 Step 2
  PrintN(Str(x))
Next
Delay(2000)
0 dan 10 a kadar (10 dahil) yazar. x + 1 ifadesi x = x + 1 dir :
OpenConsole()
While x <= 10
  PrintN(Str(x))
  x + 1
Wend
Delay(2000)
0 dan 9 a kadar (9 dahil) yazar. Until, e kadar demektir :
OpenConsole()
Repeat
  PrintN(Str(x))
  x + 1
Until x >= 10
Delay(2000)


Break ve Continue

OpenConsole()
For x = 1 To 10
  If x = 5
    Continue
  ElseIf x = 8
    Break
  EndIf
  PrintN(Str(x))
Next
Delay(2000)
Continue, döngüyü başa döndürür. Break, döngüden çıkarır. Ekrana 1,2,3,4,6,7 basar.

Array (dizi), Linked List (liste), Map (sözlük)

OpenConsole()
Dim Array(2)
For x = 0 To 2
  Array(x) = x * 10
Next
For x = 0 To 2
  PrintN(Str(Array(x)))
Next
Delay(2000) 
Burada 3 elemanlı dizi oluşturuluyor. Ekrana 0,10,20 basar.

OpenConsole()
NewList l()
For x = 1 To 10
  AddElement(l())
  l() = x * 10 
Next
SelectElement(l(), 0)
InsertElement(l())
l() = 5
FirstElement(l())
For x = 1 To 11
  PrintN(Str(l()))
  NextElement(l())
Next
PrintN("Bu liste " + Str(ListSize(l())) + " elemandan oluşuyor")
Delay(4000)
Burada AddElement() ile listeye elemanlar ekleniyor. SelectElement() ve InsertElement() ile listenin başına 5 sayısı ekleniyor. Liste de Array gibi sıralı bir dizi oluşturur. Eleman sayısını önceden bilmiyorsak liste kullanabiliriz. Ekrana 5,10,20,30,40,50,60,70,80,90,100 basar. FirstElement() dizi indeksini ilk elemana alır. NextElement() ile indeks bir sonraki elemanı gösterir.

OpenConsole()
NewMap ulkeler.s()
ulkeler("TR") = "Türkiye"
ulkeler("DE") = "Almanya"
ulkeler("NL") = "Hollanda"
PrintN(ulkeler("DE"))
PrintN(ulkeler("NL"))
PrintN(ulkeler("TR"))
Delay(2000)
Burada ulkeler.s yani metin tipinde bir map oluşuyor. Map lerde sıra olmaz, yani elemanların yeri karışık olabilir. İndeks numarası ile değil anahtar ile eleman çağırılır.

OpenConsole()
NewMap ulkeler.s()
ulkeler("TR") = "Türkiye"
ulkeler("DE") = "Almanya"
ulkeler("NL") = "Hollanda"
ForEach ulkeler()
  PrintN(ulkeler())
Next
Delay(2000)
ForEach döngüsü ile map taranabilir.


Yorumlar

  1. Very interesting site. A good resource for PureBasic beginners.

    Başarılar Erol!


    Syed (TI-994A)

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

VBA - Mscomm (seri port) ile veri loglama

RJ45 2 - Novexx barkod yazıcıya, S7-1200 plc ile etiket yazdırma

Köpüğü alınmış Windows AtlasOS