RSS
 

Archive for the ‘Small Basic’ Category

Small Basic V0.8 Çıktı

09 Feb

Merhaba,

2 sene önce sizlerle paylaştığım Small Basic makaleleri ile giriş yapmıştık. Eğer devam edenler varsa Yeni versiyonun çıktığına çok sevinecekler.

Small Basic v0.8

Yeni sürümde eklenen özelliklere kısaca göz atacak olursak;

  • Paylaşılmış programlar ile ilgili ek bilgi özelliği.
  • Paylaşılmış programları oylayabilme özelliği(Online)
  • Yazdığınız küçük programları çıktı şeklinde almak isterseniz zengin bir formatlama özelliği sizi bekliyor olacak.
  • Kod tamamlama özelliğinde artık kod örnekleride mevcut.
  • API kütüphanelerinde performans iyileştirmeleri yapılmış. ( En çok hoşunuza gidecek özellik bu sanırım. :D )

Paylaşılmış program da ne? Yazdığınız programları online olarak paylaşabiliyorsunuz. Örneğin: http://smallbasic.com/program/?CKM626

Türkçe, Rusça,Fransızca,Çince ve japonca gibi yeni dil destekleri gelmiş.

Small Basic Türkçe

(” Büyük halini görmek için üzerine bolca tıklayınız.”) :)

En çarpıcı özellik olarakta Small Basic için Silverlight desteğinin gelmesi olmuş. Bu sayede IDE yüklü olmadan program veya oyunları blogunuzda dahil heryerde yayınlayabileceksiniz.

Hatırlatma: Small Basic kodlarınızı Converter özelliği ile Visual Basic kodlarına otomatik çevirebilirsiniz.

Bir önceki Small Basic makalemde belirttiğim gibi yazacak çok şey var ve eğer Small Basic’e ilgi duyuyorsanız. Yorum olarak belirtirseniz yeni makale yazarken Small Basic’i de öncelikli olarak yazmaya çalışırım.

İyi Çalışmalar.

 
 

Small Basic Ders 2

25 Dec

Merhaba Sevgili Okurlar,

Bu dersimizde kaldığımızdan yerdem son hızla Small Basic’e devam ediyoruz. İlk olarak sizlere değişkenleri ve değer atamalarını göstereceğim. Bir önce ki derste bir takım veri türlerini tanımıştık. Şimdi bunlarıda kullanarak program yazmaya devam edeceğiz. Açın Small Basic’i ve beraber kodlamaya başlayalım. Kodları bilerek buraya eklemiyorum. :) Kopyala,yapıştır yapmayın diye bilerek resim halinde yayınlıyorum. Ne kadar çok yazarsanız o kadar hata yapmadan ve hızlı kodlama yapmayı öğrenirsiniz.

Şimdi ilk olarak değişkenleri anlatayım size ve bununla beraber operatörleride anlatacağım. İlk operatörümüz “=” yani eşittir operatörü. Bu operatör internette dolaşan bir sürü hatalı tanımın aksine yaptığı iş sağ taraftaki bellek bölgesini alıp sol tarafa KOPYALAMAKTIR! Taşımıyoruz burada dikkat edelim. Kopyalıyoruz. Bunu biraz daha açıklayalım. Mesela elimizde Hakan DAMAR ile Web Programlama Eğitimleri,23 ve 45.12 değerleri olsun. Bunları daha önceki bilgilerimizden yola çıkarak değerlendirirsek,

Hakan Damar ile Web Prog..  => String bir veri türüdür.

23 => İnteger(int) bir veri türüne sahiptir.

45.12 => ise Double veri türüdür.

Şimdi biz programdaki bu datalara farklı yerlerde ve değiştirerek erişmek isteyebiliriz. Örneğin ileride göreceğiniz karar,kontrol mekanizmalarında bir string’in bizim verdiğimiz değere eşit olup olmadığını kontrol etmek isteyeceğiz. Bu durumda elimizdeki ilk string değerin hepsini yazıp bu eşit midir? sorusunu sormak daha kolay yoksa onu temsil edecek “hkn” isminde bir değişken oluşturup onu mu? yazmak daha kolay? Tabiki hkn olarak ifade etmek daha kolaydır. Bunun yanında ileride programımız büyüdüğünde artık değişkenlerin taşıdığı değerleri bilsek bile veri türlerinden emin olamayız. Yani Sayi3 isminde ve “Atilla Efe” değerine sahip bir değişken olabilir. Bu string’dir ama Sayi3 ismi verilirse biz bunu ileride bir sayi olarak değerlendirmeye çalışacağız ve programımız çökecektir. Bu sebeble değişkenleri adlandırırken taşıyacağı veri türüne ve veriye uygun bir isim yazmamız gerekmektedir. Örneğin;

Yas = 7

Adi = “Hakan”

Soyadi = “DAMAR”

Meslek = “Yazılım Uzmanı”

Maas = 5.650 gibi değişken tanımlamaları yaparsak ileride Maas değişkenini gördüğümüzde bunun int veya double olabileceğini tahmin etmemiz daha kolay olacaktır. Şimdi bu tablodanda anlaşılacağı gibi değişkenler şu şekilde tanımlanmaktadır.

<DegiskenAdi> = <DegiskenDegeri> şeklinde tanımlanmaktadır. Daha önceden de bahsettiğim gibi = operatörü bu durumda sol taraftaki veriyi alıp sağ taraftaki bellek bölgesine kopyalayacak ve artık sağ taraftaki bellek bölgesi sol tarafı ifade edebilir şekilde olacaktır. Hemen SB üzerinde birkaç değişken tanımlayıp. Ekran çıktısına beraberce bakalım.

Microsoft SB İle Değişkenler

Gördüğünüz gibi değişkenlerimizi eşittir operatöründen yararlanarak tanımladık ve doğru tanımladığımız değişkenler hemen SB Editörümüzün kod tamamlama özelliğine dahil edildi. Böylece ileri bir değişkene ihtiyacımız olduğunda editörümüz bize hatırlatmaktadır. Buda hatalı kod yazma oranımızı ciddi şekilde düşürmektedir. Programımızı çalıştırdığımızda Ekrana 405870138 yazacaktır.

Biliyorum siyah ekran üzerinde çalışmaktan pek hoşlanmıyorsunuz ama kodlara yoğunlaşabilmeniz adına şimdilik bu gereklidir ama kodlarımıza biraz renk katabiliriz. :D Şimdi programı aşağıdaki şekilde yazarak tekrar çalıştırınız.

Renkli Programlama

Burada ilk defa karşılaştığınız iki tane nokta var birincisi TextWindow.ForegroundColor diğeride “+” artı operatörü. Operatörler farklı yerlerde kullanıldığında farklı davranırlar. Şimdiye kadar bir tane operatör öğrendiğimizden eşittir üzerinden örnek verelim. Eşittir normalde yukarıda da dediğimiz gibi sol taraftaki data’yı alıp sağ tarafa atamamıza yarıyordu ama ileride göreceğimiz karar kontrol mekanizmalarından IF…Then..EndIF yapılarında karşılaştırma işleminde de kullanılmaktadır.Dikkat edelim burada karşılaştırma yapmıyor sadece kullanılıyor. Karşılaştırma işlemini IF ifadesi yapmaktadır. Bunu ileride anlatacağımdan şuan girmiyorum. Bunun gibi “+” artı operatörü’de string değerler ile beraber kullanılırsa birleştirme operatörü işlevini görür. Sayılsa ifadeler arasında kullanılırsada toplama işlevini sağlamaktadır. ForegroundColor ise ekrana bastırılacak datanın hangi renkte olacağını belirlemektedir. Alabildiği renk türleri bu versiyonda aşağıdaki gibidir.

  • Black
  • Blue
  • Cyan
  • Gray
  • Green
  • Magenta
  • Red
  • White
  • Yellow
  • DarkBlue
  • DarkCyan
  • DarkGray
  • DarkGreen
  • DarkMagenta
  • DarkRed
  • DarkYellow

İleride tabiki bu renkler dahada çoğalacaktır. Eğer bu renk paletleri dışında bir renk yazarsanız SB otomatik olarak değeri White’a yani Beyaz’a çekmektedir. Bu yüzden hatalı bir renk verdiğinizden dolayı programınız çökmez ama verdiğiniz renk palette yoksa beyaz renkte gösterir. Bu yüzden eğer verdiğiniz renk çıkmıyorsa bu paleti kontrol ediniz.

Programımızı çalıştırdığımızda karşımızı şu şekilde birazda olsa renkli bir ekran çıkmaktadır.

Renkli Programımızın Çalışır Hali

Gördüğünüz gibi “+” (artı) operatörü ile string’leri birleştirdik ve burada dikkat etmeniz gereken bir nokta tırnak içerisinde verdiğiniz boşluklarda sayılmaktadır. Yani iki string ifade arasında boşluk bırakmak istiyorsanız kapatma tırnak işaretinden hemen önce bir kere space(boşluk) tuşuna basınız.

Şimdiye kadar hep yazdıkta, yazdık peki kullanıcıdan gelen verileri nasıl alacağız? Eğer, hatırlarsanız size TextWindow class’ını anlatırken okuma ve yazma yapar demiştim. Şimdiye kadar verileri yazdırdık. Şimdide sıra verileri okumakta. Ekrandan girilen verileri şu şekilde okuyabiliriz.

Microsoft Small Basic ile ekrandan veri okuma

Şimdi burada açıklamam gereken ilk nokta TextWindow.Write() fonksiyonu ne işe yarıyor. Bu fonksiyonun WriteLine() fonksiyonundan tek farkı verilen datayı ekrana yazdıktan sonra bir satır aşağı geçmemesidir. Genelde ekrandan veri okutmak istediğimiz zamanlarda kullanırız. Bunun dışında Ms SB diğer bir çok programlama dilinde olduğu gibi kodların hepsini okumakta fakat satır,satır yorumlamaktadır. Bunun doğruluğunu bu kodlar üzerinden iki şekilde kontrol edebilirsiniz.

  1. Eğer kodların tümünü okuyup bir kerede hepsini yorumlasaydı. Hangi takımlısınız: yazısıda açık pembe olması gerekiyordu. Ama bizim programımızda 3. satırdan sonraki yazılar açık pembe olmuştur.
  2. Kodumuzun içerisinde Program.End() komutu var. Bildiğiniz üzere bu kod yorumlandığı anda program sonlandırılmaktaydı. Demek ki üst taraftaki satırlardaki kodların yorumlanma işlemlerinin tamamlanmasını beklemektedir. Yoksa çalıştırdıktan 3,5 saniye sonra programın kapanması gerekiyor. Programınızı açarak 5′e kadar sayabilir ve programınızın kapanmayacağını görebilirsiniz.

Bu programda direk TextWindow.WriteLine(Takim) ‘da diyebilirdik. O zaman ekrana sadece yazdığınız takımı açık pembe şeklinde yazacaktı. Fakat hemen bir önceki konuda öğrendiğimiz artı operatörünüde kullanarak bilgilerimizi daha da pekiştirmiş olduk. Böylece ekrandan  okuduğumuz datanın başına,sonuna veya ortasına istediğimiz datayı yazdırabileceğimizi öğrendik.

Burada bir de değişken tanımlama işlemi yaptık fakat değer olarak bir class’ın bir metodunu verdik. Belki, diyebilirsiniz bu ne int nede string :D ama ben size ilk başta bunu sorabileceğinizi düşünerek en temel açıklamalayı yapmıştım. Sağ taraftaki bellek bölgesini artık sol taraftaki data ifade etmektedir. Yani bizim için TextWindow.Read() artık bu program süresince Takim ‘dır. Şimdi bunuda daha iyi anlatmak için değişken kullanmadan programızı düzenleyip tekrar aşağıdaki şekilde yazarak çalıştıralım.

SB ile değişken kullanmadan ekrandan data alma

Programımızı çalıştırdığımızda ekran görüntüsü aşağıdaki şekilde olacaktır.

Değişkensiz data okuma ekran görüntüsü

Gördüğünüz gibi aynı programı yazdık fakat daha uzun ve anlaşılması daha zor bir kod mimarisi ortaya çıktı. Burada Takim yerine direk TextWindow.Read() yazdık ve aynı işlemi yaptırdık. Burada bir bilgi daha vermek istiyorum. Yukarıdaki kod bloglarında bir yazı görmektesiniz bunu normalde programın içine yazarsanız derleme aşamasında hata alacaksınız. Ms Small Basic ile kodlama yaparken eğer bir yerde açıklama satırı yazmak isterseniz Tek tırnak işaretini kullanabilirsiniz. Böylece IDE başında Tırnak ” ‘ ” işareti olan satırı dikkate almadan yoluna devam edecektir.

Birazda sayılarla ve matematiksel işlemlerle uğraşalım değil mi? :) Korkmayın basit işler yapacağız ve bizim yerimize hesaplama işlemlerini SB’e yaptıracağız :D Tembelliğe devam yani…

Daha öncede bahsettiğim gibi artı operatörü ile sayılar arasında toplama işlemi yaptırabiliyorduk. Şimdi değişken kullanalım,kodlarımızı renklendirelim ve kullanıcıdan veri alalım. Bakalım neler yapacağız.

3. Programımız ile Toplama işlemleri

Programımızı çalıştırdığımızda şu şekilde bir ekran çıktısı üretecektir.

Small Basic ile Toplama İşlemleri

Şimdi burada diğer işlemlerin örneklerinide yayınlayarak makalenin boyutunu uzatmak istemiyorum. Bunun yerine Toplama,Çıkartma,Çarpma ve Bölme işlemlerini yaparak size makale bitimindeki kaynak kodları kısmında sunacağım. İndirerek inceleyebilirsiniz.

Bir sonraki dersimizde ekrandan sayı okuma ve işlem önceliği için parantez kullanmak gibi örnekler yaparak yeni metodlar öğreneceğiz. Hemen ardından artık karar kontrol mekanizmalarına geçerek, gelen verilere göre sürekli olarak cevaplar verebilecek daha akıllı programlar yazacağız.

Örnekleri iyice inceleyerek kendinizde örnekler üzerinde değişikler yaparak çalıştırınız. Ardından şimdiye kadar öğrendiğiniz tüm bilgilerinizi kullanarak kendiniz bir program yazmaya çalışınız.

Bundan sonraki derslerde artık daha da eğlenmeye başlayacağız. Güzel konular var sırada.

Buraya tıklayarak tüm kaynak kodları ve yazdığımız örnekleri indirebilirsiniz.

Saygılarımla,

Hakan DAMAR

 
 

Microsoft Small Basic

21 Dec

Merhaba,

Microsoft’un Open Source olarak DevLabs bünyesinde geliştirdiği bu kolay programlama dili ile genç arkadaşlarımız ve programlamaya yeni giriş yapacak kişiler kolayca program geliştirebilir. Bir takım algoritmik mantıklara burada ihtiyaç duyacağından algoritma bilgilerinide geliştirebilirler.

İleride ücretsiz eğitimlere dahil edeceğim Small Basic dilinide blogumda anlatmaya bu yazı ile başlıyorum. İlk olarak şunu söylemek istiyorum ilk olarak bana söylediklerinde small basic’i gerçekten çok basit bir dil olarak algıladım.Ama network işlemlerinin bile yapılabileceğini gördüğümde aslında bir takım alt seviye programlarımıza kadar yazabileceğimizi gördüm. Tabi bu dediğim kurumsal olmayan uygulamalar için bu geçerlidir. Yani Small Basic programcısı aranıyor ilanını göremeyeceğiz :D Gerçi burası Türkiye büyük konuşmamak gerek. Umarım görmeyiz diyelim. :)

İlk olarak editörünü buradan indiriniz.

Şimdi lafı çok uzatmadan sizin için hazırladığım grafikten başlayalım anlatmaya.

Microsoft SB

(Resmin üzerine tıklayarak büyük halini görebilirsiniz.)

Yukarıdaki resmi incelediğinizde de göreceğiniz gibi C++ ile yazılmış güzel bir editörümüz var. Şuanda kullandığımız 0.2 versiyonu ama ben kaliteli buldum. Zaman bulursam ileride bu editörü bende geliştireceğim, yeni versiyonlarını sizlerle paylaşırım.

Şimdi ilk olarak standart Hello World programımızı yazalım. Ama siz biliyorsunuz ki ben hello world yazdırmıyorum. :D

Ms SmallBasic

(Resmin üzerine tıklayarak büyük halini görebilirsiniz.)

Hemen açıklamamızı yapalım. TextWindow class‘ı okuma ve yazma yapabileceğimiz bize özellikleri sunmaktadır. Biz bu sefer WriteLine() metodunu kullandık. Bu metod string parametre almaktadır. Geri dönüşü void‘dir.

Bu kod çalıştığında WriteLine() ‘a elle verdiğimiz Small Basic Öğreniyorum string değerini alıp ekrana yazar ve bir alt satıra geçer. Burada takılabileceğiniz noktalar şunlar olabilir.

  • Class Nedir? Ne işe yarar?
  • Metod Nedir?
  • String veri türü nedir? Diğer veri türleri nelerdir?

Kısa, kısa açıklayayım. Ama size tavsiyem internetten ayrıntılı olarak araştırmanızdır. Class(Sınıf)’lar dediğimiz şey programımızdır aslında. Bu terimleri hemen 2 satırlık bir paragrafta yada bir kitabın bir sayfasında okuyarak öğrenebileceğinizi düşünmeyin. Tanımını ezberlersiniz ama mantığını kavrayarak, algoritma yürütme işlemi ise ne zaman sindirirseniz o zaman yapabilirsiniz. Programımızda oluşturduğumuz nesnelerimizin kalıbıdır sınıflar.

İnsan’nın bir class olduğunu düşünün. Property(Özellik)’leri okuma,konuşma,yazma olarak nitelendirebiliriz. Function(fonksiyon) dediğimiz şey ise bir işlevi programın farklı yerlerinde sürekli olarak yapacaksak bunu bir fonksiyon haline getirip otomotize etme işlemidir. Bu terimleri ileride kullandıkça hep açıklayacağımdan şimdi burada uzun, uzun yazsamda hepsi havada kalacak ve konular ilerledikçede unutulacaktır. Yeri geldiğinde anlatmam ve açıklamam daha doğru olacağını düşünüyorum.

Veri türlerini ise şimdiden öğrenmeniz iyi olacaktır. İleride farklı veri türlerinide açıklayacağım.

  • Int – Integer (Tamsayı) = 36841 (örnek)
  • Double (Çift sayı) = 3,598 (örnek)
  • String (Alfanümerik) = “Hakan DAMAR” (örnek)
  • Boolean – Bool (Mantıksal) = True(1)/False(0) – Doğru / Yanlış (Örnek)
  • Object (Nesne) = Nesnenin  sabit bir veri türü olmayabilir.Herşey olabilir. (Sayı,ağaç,su,dizi gibi)
  • Array (Dizi) = {0,1,2,3,4,5,6} (örnek)

Bildiğiniz üzere bu ilk ders olduğundan bu kadar uzuyor. Bir çok terimi açıklamak zorunda kalıyorum. Biraz temeli olan kişilere geyik olarak gelebilir ama bunları bilmeyen çok fazla kişi var ve biz onlarıda geek yapmamız gerekiyor. :)

Son olarak ekran çıktısına bir bakalım;

Small Basic İlk program ekran çıktısı

Bazı kişilerde Türkçe karakter problemi olabilir. Bu işletim sisteminizden kaynaklanmaktadır. Herşeyi uyararakta sizi sıkmak istemiyorum ama C# ile uğraştığım ilk zamanlardan kalan takıntılar bunlar. :) Elimden geldiğince kısaltmaya çalışacağım.

Bu işlemin arka planınada çok girmek istemiyorum çünkü bu aşamada sizi çok ilgilendirmiyor ama bilmeniz gereken kadarını anlatayım. Siz F5(Run-Çalıştır) dediğinizde compiler(derleyici) gidip editör’in ilk satırındaki class’a bakıyır daha sonra çağırdığınız fonksiyonuna gidiyor. Burada fonksiyonun aldığı değere göre bir değer gelip gelmediğini kontrol ediyor. Eğer değeri vermişseniz alarak içeride işlemleri yapıp bir değer geri döndürüyor. Demek ki buradan anladığımız şey WriteLine() fonksiyonun geri dönüş değeri olduğunun ve string bir değer aldığını çözüyoruz.

Sizde örnek programı indirip çalıştırdığınızda, yazmadığınız ama otomatik karşınıza çıkacak olan bir yazı ile karşılacaksınız. Aşağıdaki gibi bir görüntü siz her programınızı çalıştırdığınızda gözükecektir ve programınızda sizin yazmadığınız şöyle bir yazı yazacaktır. “Press any key to continue” => Devam etmek için bir tuşa basınız.

Small Basic End Program Uyarısı

Bunun sebebi yazdığımız programı sonlandırmağımızdan kaynaklanıyor. Siz “End Program” butonuna tıkladığınızda IDE yani program geliştirirken kullandığımız bize yardımcı olan program arka planda giderek Program.End() komutunu set‘ler.Böylece programınız sonlandırılmış olur. Peki biz programımızı her seferinde buradan mı? sonlandırıcaz. Hayır, bunu bizde aynı kodları yazarak sağlayabiliriz. Fakat o kod okunduğunda hemen program sonlandıracaktır.

Yani siz daha ekrandaki çıktıyı görmede program sonlandırılmış olacak. Ama yinede bunun kullanımını size göstermek adına Program.Delay() metodundan yararlanarak programı 2,5 saniye beklemeye alacağız. Bu süreçte program o satırda durarak verilen sürenin bitmesini bekleyecek. Aslında durmuyorda :) daha sonra açıklayacağım arka planını, şimdilik duruyor diyelim. Ardından hemen altındaki kod satırından başlayarak uygulamaya devam edecektir.

MS SBasic Programı Askıya Alma(Bekletme)

Bu sefer Program class’nın Delay() ve End() metodlarından yararlandık. Kullanan herkese büyük kolaylık sağlayacak kod tamamlama özelliği hakkında bir bilgi vermek istiyorum. Eğer kod tamamlama bölümü açılmıyorsa veya kod yazmadan açmak istiyorsanız CTRL+Space(Boşluk) tuşlarına beraber basmalısınız. Böylece kod tamamlama desteğindeki class’ları ve nokta ilede onun property,event v.s.’ne erişebilirsiniz. İleride değineceğim bu şimdilik aklınızda olsun.

Bu dersimizde hep siyah ekran ile uğraştık. Son olarak sadece örnek olması açısından bir grafik arayüzü ilede uygulama yazarak tüm kodların içerisinde olduğu kaynak kodları veriyorum. Uygulama çalıştığında ekrana bir kaplumbağa çıkıyor ve bize bir kare çizmeye çalışıyor. Siz kordinatları değiştirerek farklı görüntülerde elde edebilirsiniz. İleride GraphicsWindow class’ından yararlanarak çok daha gelişmiş grafikler çizeceğiz.

Kaynak kodları indirmek için tıklayınız.

İyi Çalışmalar,

Hakan DAMAR