Neler yeni
MEGAForum - Teknoloji Forumu

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Basic hakkında

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Windows 10 ile birlikte Basic öldü. Artık Basic derleyicilerin çoğu ya hiç, yada düzgün çalışmıyor. Destek te verilmiyor ve bazıları Arşivler üzerinden indirilebiliyor.

Alternatif (eşdeğer) olarak "Uygulama Mağazası"n da (Microsoft Store'da) Small Basic var. Kod yazım şekli Basic'ten fazla C# andırıyor. Editör ve derleyiciden oluşuyor. Form desteği yok. Ücretsiz ve kayıtsız indirilebiliyor. C# programlarında olduğu gibi programlar Netframework 4.0 ve üzeri sürümü ile çalışıyor.

Bir kaç örnek ile nasıl bir şey olduğunu göstermek isterim.

Komut satırı ile çalışan metinsel programlar
Kod:
TextWindow.Write("Merhaba Dünya !")
Bu program tek satırda bir metin çıktısı verir ve bir sonraki işlem de yine aynı satırdan devam eder.

Kod:
TextWindow.WriteLine("Merhaba Dünya !")
Bu program tek bir stırda bir metin çıktısı verir ve bir sonraki işlem bir alt satırdan devam eder.

Kod:
TextWindow.ForegroundColor = "red"
TextWindow.WriteLine("Merhaba Dünya !")
Bu program üstteki metin çıktısının aynısını kırmızı renk'te verir.

Grafikli programlar
Kod:
GraphicsWindow.PenColor = "red"
GraphicsWindow.DrawEllipse(200,100,100,100)
Bu program grafik destekleyen bir pencereye kırmızı bir daire çizer.

Kod:
GraphicsWindow.PenColor = "blue"
GraphicsWindow.DrawRectangle(200,100,100,100)
GraphicsWindow.BrushColor = "red"
GraphicsWindow.FillRectangle(200,100,100,100)
Bu program grafik destekleyen bir pencereye kenarları mavi ile çizilmiş ve içi kırmızıya boyanmış bir kare çizer.

Small Basic eğlence amaçlı kullanılabilir.
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Grafik destekleyen pencere üzerinde ayarlar yapılabiliyor. Grafik pencereye yazılar yazmakta mümkün. Windows'un desteklediği yazı tiplerini de kullanabiliyoruz. Aşağıdaki örnek ile bunu deneyebiliriz.
Kod:
GraphicsWindow.Width = 800
GraphicsWindow.Height = 600
GraphicsWindow.Title = "Garip Bir Uygulama"
GraphicsWindow.Top = 50
GraphicsWindow.Left = 100
GraphicsWindow.BackgroundColor = "lightblue"
GraphicsWindow.PenColor = "red"
GraphicsWindow.PenWidth = 10
GraphicsWindow.DrawRectangle(200,100,400,70)
GraphicsWindow.FontName = "Bauhaus 93 Normal"
GraphicsWindow.FontSize = 40
GraphicsWindow.DrawText(230,110,"Merhaba Dünya !")
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Editörden bir Ekran görüntüsü.
1uHAtl.png
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Üç boyutlu görüntü çizizimi denemesi

5KoLvu.png
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Komutsatırı'nın rengini ve metin rengini değiştiren program. (Program kapandıktan sonra renkler yine eski haline döner.)

i4zu1M.png


NOT : Komutsatırı tüm renkleri desteklemiyor.
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Değişkenler ile denemeler yapalım.
Aşağıdaki örnek üzerinde değişiklikler yaparak, Small Basic'in değişkenlerle nasıl işlem yaptığını anlayabilirsiniz.

fBR8M2.png
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Bir Akvaryum Animasyonu

6Wnt6f.png


Kod'ları

Kod:
'   Aquarium

GraphicsWindow.Title = "Aquarium"
GraphicsWindow.Top = 50
GraphicsWindow.Left = 150
GraphicsWindow.Height = 600
GraphicsWindow.Width = 800
GraphicsWindow.BackgroundColor = "lightblue"

Sub sag
  top = Shapes.AddEllipse(50,20)
  mop = Shapes.AddTriangle(10,10,20,20,10,30)
  Shapes.Move(top,20,200)
  Shapes.Move(mop,0,190)
  Shapes.Animate(top,750,200,6000)
  Shapes.Animate(mop,730,190,6000)
EndSub
  
Sub sol
  top = Shapes.AddEllipse(50,20)
  mop = Shapes.AddTriangle(20,10,20,30,10,20)
  Shapes.Move(top,760,200)
  Shapes.Move(mop,800,190)
  Shapes.Animate(top,0,200,6000)
  Shapes.Animate(mop,40,190,6000)
EndSub

yenile:

sag()
Program.Delay(6000)
Shapes.HideShape(top)
Shapes.HideShape(mop)

sol()
Program.Delay(6000)
Shapes.HideShape(top)
Shapes.HideShape(mop)

Goto yenile
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Görüntü İşleme ve Web'e erişim

Bu programımız ile web sayfasından bir resim indirip, boyutunu ekranııza uydurarak görüntüiüyoruz. Olurda bir gün o resim o sayfadan kalkarsa, programımız başka bir resimin adresi ile düzeltilmedikçe, görüntü vermeyecek.

Ekran görüntüsü:
2jjslO.png


Kaynak Kod:
Kod:
'   Bu bir Small Basic programı.

GraphicsWindow.Title = "Ördek değil örnek bir pıroğram. Sanmayın ki bastığınız yer sade toprak."
GraphicsWindow.Height = 300
GraphicsWindow.Width = 1200
GraphicsWindow.Top = 350
GraphicsWindow.Left = 10
GraphicsWindow.BackgroundColor = "darkred"

Nota =Network.DownloadFile("https://www.jpgcars.com/wp-content/uploads/2019/01/2015-Ferrari-Auto-458-Italia.jpg")
Network.GetWebPageContents(Nota)
GraphicsWindow.DrawResizedImage(Nota,10,10,300,200)
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Müzik

Nota'ları deneyerek, veya QBasic belgelerinden araştırarak öğrenebilirsiniz.

Ekran görüntüsü.

rs3kPS.png


Kod:
'   Müzik çalar programı
'   EMP (engerek music player)


GraphicsWindow.Title = "EMP 'Engerek Media Player'"
GraphicsWindow.Width = 800
GraphicsWindow.Height = 200
GraphicsWindow.Top = 50
GraphicsWindow.Left = 200
GraphicsWindow.BackgroundColor = "Skyblue"

k1 = GraphicsWindow.GetColorFromRGB(64,0,16)
GraphicsWindow.BrushColor = k1
GraphicsWindow.FillRectangle(10,80,80,20)

Sound.PlayMusic("o5 a1 a8 a8 a8 c4 c4 b8 b8 g4 g4 f1 f8 f8 f8 d4 d4 g8 g8 e4 e4")
k2 = GraphicsWindow.GetColorFromRGB(80,0,32)
GraphicsWindow.BrushColor = k2
GraphicsWindow.FillRectangle(100,80,80,20)

Sound.PlayMusic("o5 g1 g1 d8 d8 d8 e4 e4 f8 f8 b4 b4 c1 c8 c8 c8 a4 a4 b8 b8 g4 g4")
k3 = GraphicsWindow.GetColorFromRGB(96,0,48)
GraphicsWindow.BrushColor = k3
GraphicsWindow.FillRectangle(190,80,80,20)


Sound.PlayMusic("o4 a1 a8 a8 a8 c4 c4 b8 b8 g4 g4 f1 f8 f8 f8 d4 d4 g8 g8 e4 e4")
k4 = GraphicsWindow.GetColorFromRGB(112,0,64)
GraphicsWindow.BrushColor = k4
GraphicsWindow.FillRectangle(280,80,80,20)

Sound.PlayMusic("o4 g1 g1 d8 d8 d8 e4 e4 f8 f8 b4 b4 c1 c8 c8 c8 a4 a4 b8 b8 g4 g4")
k5 = GraphicsWindow.GetColorFromRGB(128,0,80)
GraphicsWindow.BrushColor = k5
GraphicsWindow.FillRectangle(370,80,80,20)


Sound.PlayMusic("o3 a1 a8 a8 a8 c4 c4 b8 b8 g4 g4 f1 f8 f8 f8 d4 d4 g8 g8 e4 e4")
k6 = GraphicsWindow.GetColorFromRGB(144,0,96)
GraphicsWindow.BrushColor = k6
GraphicsWindow.FillRectangle(460,80,80,20)

Sound.PlayMusic("o3 g1 g1 d8 d8 d8 e4 e4 f8 f8 b4 b4 c1 c8 c8 c8 a4 a4 b8 b8 g4 g4")
k7 = GraphicsWindow.GetColorFromRGB(160,0,112)
GraphicsWindow.BrushColor = k7
GraphicsWindow.FillRectangle(550,80,80,20)


Sound.PlayMusic("o6 a1 a8 a8 a8 c4 c4 b8 b8 g4 g4 f1 f8 f8 f8 d4 d4 g8 g8 e4 e4")
k8 = GraphicsWindow.GetColorFromRGB(176,0,128)
GraphicsWindow.BrushColor = k8
GraphicsWindow.FillRectangle(640,80,80,20)

Sound.PlayMusic("o6 g1 d8 d8 d8 e4 e4 f8 f8 b4 b4 c1 c8 c8 c8 a4 a4 b8 b8 g4 g4")
k9 = GraphicsWindow.GetColorFromRGB(196,0,144)
GraphicsWindow.BrushColor = k9
GraphicsWindow.FillRectangle(730,80,80,20)
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Kullanıcıdan giriş kabul eden işlemler

Örnek 1: Kullanıcıdan metin girişi
Kod:
TextWindow.WriteLine("Adınız = ")
Adamınteki = TextWindow.Read()
TextWindow.WriteLine("Merhaba"+" "+Adamınteki)

Örnek 2: Kullanıcıdan sayı girişi
Kod:
TextWindow.WriteLine("İki rakamın toplamı")
TextWindow.Write("İlk Rakam = ")
Rakam1 = TextWindow.ReadNumber()
TextWindow.Write("İkinci Rakam = ")
Rakam2 = TextWindow.ReadNumber()
TextWindow.Write("Toplam : ")
TextWindow.WriteLine(Rakam1 + Rakam2)
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Döngüleri inceleyelim

While döngüsü
Kod:
'   ASCII karakterleri Alfabetik sıralaması

x = 64
While x < 122
  x = x + 1
  Harf = Text.GetCharacter(x)
  TextWindow.Write(" " + Harf)
EndWhile

TextWindow.ReadKey()
Program.End()

For döngüsü
Kod:
TextWindow.Title = "Saçmalık no 1"
TextWindow.BackgroundColor = "blue"
TextWindow.ForegroundColor = "red"

Arif = "Arif olana tarif gerekmez"

BuradanBaşlat:

For x = 0 To 20
  TextWindow.Clear()
  TextWindow.CursorLeft = x*2
  TextWindow.CursorTop = x
  TextWindow.Write(Arif)
  Program.Delay(100)
EndFor

For x = 20 To 0 Step -1
  TextWindow.Clear()
  TextWindow.CursorLeft = x*2
  TextWindow.CursorTop = 20
  TextWindow.Write(Arif)
  Program.Delay(100)
EndFor

y = 0
For x = 20 To 0 Step -1
  TextWindow.Clear()
  y = y + 2
  TextWindow.CursorLeft = y
  TextWindow.CursorTop = x
  TextWindow.Write(Arif)
  Program.Delay(100)
EndFor

For x = 20 To 0 Step -1
  TextWindow.Clear()
  TextWindow.CursorLeft = x*2
  TextWindow.CursorTop = 0
  TextWindow.Write(Arif)
  Program.Delay(100)
EndFor

Goto BuradanBaşlat
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Dosya işlemleri

Bu örnekleri çalıştırmadan önce kayıt etmelisiniz. Çünkü kayıtlı oldukları dizin içinde işlem yapıyorlar.

İlk örneğimiz önce "Kılasör" adında bir klasör oluşturuyor. Ardından klasörün içinne "Mosya.zuzu" isimli bir dosya ekliyor ve "adınızı ve soy adınızı" soruyor. Yazdığınız cevabı "Mosya.zuzu" isimli dosya'ya ekliyor.

Sonra aynı dosyada yazılı olan ilk satırı okuyup, ekrana yansıtıyor.

Kod:
TextWindow.WriteLine("Dosya İşlemleri")
File.CreateDirectory(Program.Directory + "\Kılasör")

fifi = File.GetSettingsFilePath()
didi = File.GetTemporaryFilePath()
TextWindow.WriteLine("Program ayarlarının kayıtlı olduğu dosya = " + fifi)
TextWindow.WriteLine("Program geçici dosyalarının bulunduğu yer = " + didi)

TextWindow.Left = 10
TextWindow.Top = 10
TextWindow.Write("Adınız ve soyadınız = ")
sorgu = TextWindow.Read()
File.WriteContents(Program.Directory + "\Kılasör\Mosya.zuzu", sorgu)

oku = File.ReadLine(Program.Directory + "\Kılasör\Mosya.zuzu", 1)
TextWindow.WriteLine(oku)

İkici örnek sadece önceki yazılan dosyadaki ilk satırı okuyup, ekrana yansıtıyor.

Kod:
oku = File.ReadLine(Program.Directory + "\Kılasör\Mosya.zuzu", 1)
TextWindow.WriteLine(oku)
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Button (Düğme) Kullanımı

Kod:
GraphicsWindow.Show()

Düğme = Controls.AddButton("Button1",50,50)
Controls.ButtonClicked = Köprüden_geçene_kadar_dayı

Sub Köprüden_geçene_kadar_dayı
  Tıkla = Controls.LastClickedButton

  If Tıkla = Düğme Then
    GraphicsWindow.ShowMessage("Merhaba bu bir mesaj", "Bir Mesaj var")
  EndIf

EndSub
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Diziler

Diziler kullanılacak veri sayısının artması durumunda işlenmesini kolaylaştırır.

Örnek 1:
Kod:
Renk[1]="Red"
Renk[2]="Blue"
Renk[3]="Green"
Renk[4]= "Yellow"
Renk[5]="Cyan"
For x = 1 To 5
  TextWindow.ForegroundColor = Renk[x]
  TextWindow.WriteLine("Merhaba, benim ile Tavla oynarmısınız ?.")
EndFor

İki boyutlu dizi

Örnek 2:

Kod:
Renk[1]["Ön"] = "Red"
Renk[1]["Arka"] = "Blue"

Renk[2]["Ön"] = "Cyan"
Renk[2]["Arka"] = "Yellow"

Renk[3]["Ön"] = "Yellow"
Renk[3]["Arka"] = "Red"

Renk[4]["Ön"] = "Blue"
Renk[4]["Arka"] = "Cyan"

Renk[5]["Ön"] = "Green"
Renk[5]["Arka"] = "White"

For x = 1 To 5
  TextWindow.ForegroundColor = Renk[x]["Ön"]
  TextWindow.BackgroundColor = Renk[x]["Arka"]
  TextWindow.WriteLine("Engerek zehirli bir Yılan türü")
EndFor
 

engerek

MFC Üyesi
  • Üyelik Tarihi
    3 Mar 2018
  • Mesajlar
    87
  • MFC Puanı
    121
Yığınlar

Yığınlar, dizilerin bir farklı türü.

Kod:
Renk1 = "1=Red;2=Blue;3=Green;4=Yellow;5=Cyan"
Renk2 = "1=Yellow;2=Cyan;3=White;4=Blue;5=Black"

For x = 1 To 5
  TextWindow.ForegroundColor = Renk1[x]
  TextWindow.BackgroundColor = Renk2[x]
  TextWindow.WriteLine("Bu bir yığın örneği")
EndFor
 
Üst Alt