Microsoft QuickBasic provided an introduction to programming for a generation of tinkerers. In this blog post, we look back at a 90s classic.
Yayınlama: Ekim 2019 Güncelleme: 14 Ağustos 2021 COLOR Grafik işlemleri yaparken yazı ve zemin rengi belirlemek için kullanılan COLOR komutu, ekran moduna göre farklı şekillerde kullanılır. SCREEN 0 : COLOR [renk][,[zeminrengi][,çerçeve]] SCREEN 1 : COLOR [zeminrengi][,palet] SCREEN 7-10 : COLOR [renk][,zeminrengi] SCREEN 10-13 : COLOR [renk] renk: Yazı rengi zeminrengi: Arkaplan rengi çerçeve: Monitörün kullanılan alanının dışında kalan alanın rengi. LCD ve LED monitörlerde görülmez. Tüplü manitörler içindir. Her ekran modunun renk sayısı farklıdır. Örnekler: SCREEN 12: 256K renkten aynı anda en fazla 16 renk kullanılabilir. SCREEN 13: 256K renkten aynı anda en fazla 256 renk kullanılabilir. SCREEN 0: 0-31 renk. 16-31 arası yanıp sönen renkler. PALETTE komutu ile renkler değiştirilebilir. RENK KODLARI: Renk kodları aşağıdaki tabloda olduğu gibidir. Sayının; 0. biti mavi, 1. biti yeşil, 2. biti kırmızı renk içindir. 3. bit aktifse aynı renk parlak(açık renk) olacaktır. Ekran modu uygunsa 4. bit aktif edilerek aynı rengin yanıp sönmesi sağlanır. SCREEN 0: CLS COLOR 2 'yeşil PRINT "Merhaba" COLOR 2 + 8 '=10, açık yeşil PRINT "Merhaba" COLOR 2 + 8 + 8 '=20, yanıp sönen yeşil PRINT "Merhaba" COLOR 2 + 8 + 8 + 8 '=26, yanıp sönen açık yeşil PRINT "Merhaba" PRINT COLOR 5 'mor PRINT "Merhaba" COLOR 5 OR &H8 '=13, açık mor(pembe) PRINT "Merhaba" COLOR 5 OR &H10 '=21, yanıp sönen mor PRINT "Merhaba" COLOR 5 OR &H18 '=29, yanıp sönen açık mor(pembe) PRINT "Merhaba" Daha detaylı bilgi için QuickBasic Yardımda COLOR komutuna bakınız. CLS Zemin rengi ile ekranı temizler. Kullanımı: CLS [{0 | 1 | 2}] Parametre girilmezse VIEW komutu ile belirtilen grafik ya da metin alanını siler. 0 : Ekranın metin ve grafiklerini siler 1 : VIEW ile tanımlanan grafik alanı siler. 2 : VIEW ile tanımlanan metin alanı siler. VIEW komutu için sonraki sayfaya bakınız. Örnek 1: COLOR 14,4 CLS PRINT "Merhaba!" Örnek 2: SCREEN 0 CLS COLOR 14, 1 FOR n = 1 TO 80 * 24 PRINT "A"; NEXT VIEW PRINT 10 TO 20 COLOR 14, 4 SLEEP CLS SLEEP FOR n = 1 TO 80 * 8 PRINT "B"; NEXT SLEEP CLS 2 SLEEP COLOR 7, 0 CLS 0 PRINT "Bitti !" SCREEN ile ekran değiştirildiğinde ekran silinmiş olarak gelir. PALETTE Renk paletindeki bir rengi başka bir renk ile değiştirir. Bu komut yalnız EGA, VGA ve MCGA ekranlarda kullanılabilir. Kullanımı: PALETTE değişecek_renk, renkkodu Renk kodu: Renk kodu aşağıdaki formül ile hesaplanır. renkkodu = kırmızı + (256 * yeşil) + (65536 * mavi) mavi, yeşil ve kırmızı için 0-63 arası değer verilir. Rengin en koyu tonu : 0 Rengin en açık tonu: 63 Parametre girilmezse varsayılan palet renkleri ayarlanır. Örnek 1: SCREEN 0 CLS COLOR 14 ' Sarı renk PRINT "Merhaba!" SLEEP PALETTE 14, 4 'Sarı renk Kırmızı ile değişti SLEEP PALETTE 0, 2 'Siyah renk Yeşil ile değişti Örnek 2: SCREEN 12 COLOR 7 PRINT STRING$(50, 219) COLOR 12 ' açık kırmızı PRINT STRING$(50, 219) COLOR 7 PRINT STRING$(50, 219) SLEEP FOR n = 63 TO 0 STEP -3 LOCATE 2, 1: PRINT n 'PALETTE 12, 65536 * 0 + 256 * n + 0 PALETTE 12, 256 * n SLEEP 1 NEXT Örnek 3: DEFINT A-Z SCREEN 12 kat = 22 FOR renk = 0 TO 15 y = renk * kat + kat LINE (0, y)-(639, y + kat), renk, BF NEXT SLEEP FOR n = 1 TO 8 FOR renk = 15 TO 0 STEP -1 rk = renk * (63 / 15) SELECT CASE n CASE 1: mavi = rk CASE 2: yesil = rk CASE 3: kirmizi = rk CASE 4: mavi = rk: yesil = rk CASE 5: mavi = rk: kirmizi = rk CASE 6: yesil = rk: kirmizi = rk CASE 7: mavi = rk: yesil = rk: kirmizi = rk CASE 8: yesil = rk / 2: kirmizi = rk END SELECT PALETTE renk, 65536 * mavi + 256 * yesil + kirmizi LOCATE 1, 1: PRINT "Mavi", "Yeşil", "Kırmızı" LOCATE 2, 1: PRINT mavi, yesil, kirmizi FOR i = 1 TO 10000: NEXT NEXT SLEEP NEXT PALETTE USING Dizi değişkenindeki değerler ile palet renklerini değiştirir. Kullanımı: PALETTE USING dizi_değişkeni [(dizi_indeks)] dizi_indeks: Belirtilirse; belirtilen indeks numarasından itibaren değerler alınır. Örnek: DEFINT A-Z SCREEN 1 FOR i = 0 TO 3 a(i) = i NEXT LINE (130, 30)-(280, 160), 1, BF LINE (20, 10)-(160, 100), 2, BF CIRCLE (160, 110), 50, 3 PAINT STEP(0, 0), 3, 3 DO FOR i = 0 TO 3 a(i) = (a(i) + 1) MOD 16 NEXT PALETTE USING a SLEEP 1 LOOP WHILE INKEY$ = "" SCREEN Kullanım 1: Fonksiyon olarak x = SCREEN(satır, sütun [, renkbayrağı]) Ekranın satır ve sütunundaki karakterin ASCII kodunu veya rengini verir. renkbayrağı : Kullanılmaması veya 0 olması durumunda ASCII kodunu verir. 0 haricinde verilen bir sayı ise satır ve sütundaki karakterin yazı ve zemin rengini içeren bir sayı değeri verir. yazı rengi için: x AND 15 zemin rengi için: x \ 16 formülü kullanılır. Örnek 1: CLS PRINT "Mesut" FOR n = 1 TO 5 x = SCREEN(1, n) PRINT x; NEXT Çıktı: Mesut 77 101 115 117 116 Örnek 2: COLOR 14, 4 CLS PRINT "M" ascii = SCREEN(1, 1) 'karakter kodu r = SCREEN(1, 1, 1) 'renk kodu yazirengi = r AND 15 zeminrengi = r \ 16 PRINT "Karakter kodu:"; ascii '77 PRINT "Karakter : "; CHR$(ascii) 'M PRINT "Yazı rengi :"; yazirengi '14 PRINT "Zemin rengi :"; zeminrengi '4 Kullanım 2: Ekran modu değiştirme SCREEN [mod] [,[renkanahtari]][,[calismasayfasi]][,[gosterilensayfa]] SCREEN komutu, ekran görüntüleme modunu ve program penceresinin çalışma alanının boyutunu ayarlar. QuickBasic hem metin hem de grafikleri ekranda görüntüleyebilir. Grafik komutlarını kullanmak için önce ekran modunu belirlemek gerekir. QuickBasic ekrandaki piksellerin rengini kontrol ederek grafikler oluşturur, ancak ekran çözünürlüğünü de kontrol edebilir. Yüksek çözünürlüklü(daha çok pikselli) grafikler daha düzgün grafikler oluştururken, daha düşük çözünürlüklü grafikler (daha az pikselli) daha hızlı yazılabilir / güncellenebilir. Ne yazık ki QuickBasic'teki maksimum çözünürlük modu sadece 640x480 ve sadece 16 rengi destekliyor. En fazla renk 320x200 çözünürlüklü ekran modunda 256'dır. Bu modlar, özellikle günümüzün yüksek çözünürlüklü 24 bit renkli grafik modlarıyla karşılaştırıldığında, kısıtlı, ancak bazen şaşırtıcı derecede iyi grafikler oluşturmak için kullanışlıdır. calismasayfasi ve gosterilensayfa sayfalama özelliği olan ekran modlarında kullanılır. Örnek: SCREEN 7 PRINT "Görüntü oluşturulacak" SLEEP FOR n = 7 TO 0 STEP -1 SCREEN 7, , n, 0 'n : çalışma sayfası c = n + 1 CIRCLE (c * 25, 100), c * 20, n + 5 PRINT "Sayfa : "; n NEXT PRINT "Görüntüler hazır. Sırasıyla gösterilecek" SLEEP FOR n = 7 TO 0 STEP -1 SCREEN 7, , , n 'n : gösterme sayfası SLEEP NEXT Ekran Modları QuickBasic, her ekran modunun çözünürlük, renkler, ekran sayfaları, metin boyutu ve daha fazlası gibi özelliklerin bir kombinasyonunu tanımladığı çeşitli grafik ekran modlarını destekler. QuickBasic, 0 ile 13 arası sayı ile temsil edilen 14 toplam modu destekler. SCREEN 0 varsayılan moddur ve yalnızca metnin görüntülenmesine izin verir. Grafik komutları çalışmaz. Diğer tüm 1-13 mod metin ekranını desteklemenin yanı sıra piksel olarak grafik oluşturmayı da destekler. Ekran modlarından sadece birkaçı programcılar tarafından yaygın olarak kullanılmaktadır. QuickBasic Yardım'da tüm ekran modları hakkında bilgi bulabilirsiniz. Sık kullanılan ekran modları: Mod Çözünürlük Renk Sayfa Metin 0 80x25 64 renkten 16'sı 4 80x25/43/50 7 320x200 16 0-7 40x25 12 640x480 256K renkten 16'sı 1 80x60/30 13 320x200 256K renkten 256'sı 1 40x25 256K = 64*64*64 = 262144 Düşük çözünürlüğe rağmen geniş renk aralığı sebebiyle mod 13 en çok kullanılan moddur. Mod 7 titreşimsiz grafik animasyonu sağlamak için birden fazla sayfa kullanılabilir. Yüksek çözünürlük gerektiğinde mod 12 kullanılır. SCREEN komutuyla seçilen ekran çözünürlüğüne göre ekran üzerinde fiziksel noktalar(piksel) ayarlanır. Örneğin SCREEN 12 ile oluşturulan ekranda; yatayda 640, dikeyde 480 pikseldir. 0,0 noktası ekranın sol üst köşesidir. 639,479 sağ alt köşededir. SCREEN 12 LINE (0, 0)-(639, 479), 14 SLEEP WINDOW Ekran modunun çözünürlüğüne göre fiziksel koordinatlar belirlenir. Window komutu ile ekranın koordinat sistemini kendi isteğimize göre ayarlayabiliriz. Böylece ekran modu değişiminden kaynaklanan görüntü değişikliği oluşmaz. Kullanımı: WINDOW [SCREEN] (x1,y1)-(x2,y2) SCREEN kullanılmazsa 0,0 koordinatı sol alt köşedir. Kullanılırsa SCREEN komutundaki gibi sol üst köşededir. (x1,y1) : sol alt köşe (x2,y2) : sağ üst köşe x ve y değerleri negatif olabilir. Tam sayı olması şart değildir. WINDOW (0,0)-(100,100) Ekran moduna bakılmaksızın ekran yatayda 100, dikeyde 100 birim olduğu varsayılmıştır. Artık fiziksel ekranın sol alt köşesi 0,0 sağ üst köşesi 100,100 olarak kabul edilir. Böylece ekranı orantılamak ve konumlandırmak daha kolay olur. Örneğin her ekranda 50,50 konumu ekranın tam orta noktası olur. Örnek 1: WINDOW komutuyla ekranın orta noktası 0,0 olarak ayarlanmıştır. SCREEN 12 x = 639 / 2 y = 479 / 2 WINDOW (-1 * x, -1 * y)-(x, y) FOR n = 20 TO 480 STEP 20 r = r + 1 CIRCLE (0, 0), n, r NEXT SLEEP Örnek 2: Aşağıdaki kodları denedikten sonra ekran modunu değiştirin, WINDOW komutunu iptal edip deneyin. SCREEN 12 WINDOW (0, 0)-(100, 100) LINE (0, 0)-(100, 100), 14, B LINE (0, 0)-(100, 100), 3 LINE (0, 100)-(100, 0), 12 CIRCLE (50, 50), 25 LINE (50 - 10, 50 - 10)-(50 + 10, 50 + 10), 2, B SLEEP Örnek 3: Sinüs Grafiği 'SINUS GRAPH 'Mesut Akcan. 2020 CLS CONST pi = 3.14159265359# SCREEN 13 WINDOW (0, -1)-(360, 1) FOR i = 0 TO 360 y = SIN(i * pi / 180) PSET (i, y), 14 NEXT SLEEP Örnek 4: Fraktal 1 (Fractal) 'FRACTAL DEFINT A-Z DIM i AS LONG SCREEN 12 WINDOW SCREEN (0, 0)-(1000, 1000) x = 500 y = 500 RANDOMIZE TIMER FOR i = 1 TO 100000 rs = INT(RND(1) * 3) IF rs = 1 THEN fx = 500 fy = 0 ELSEIF rs = 2 THEN fx = 0 fy = 1000 ELSE fx = 1000 fy = 1000 END IF x = (x + fx) / 2 y = (y + fy) / 2 PSET (x, y), 10 IF INKEY$ <> "" THEN EXIT FOR NEXT PMAP Fonksiyon olarak kullanılır. Fiziksel veya WINDOW ile oluşturulan ekran koordinat karşılık değerini verir. Kullanımı: PMAP (koordinat, fonksiyon) koordinat: Değeri alınacak koordinat noktası. fonksiyon: 0-3 arası bir değer alabilir. 0 : WINDOW ile tanımlanan ekran koordinatının fiziksel ekrandaki X değeri 1 : WINDOW ile tanımlanan ekran koordinatının fiziksel ekrandaki Y değeri 2 : Fiziksel ekran koordinatının WINDOW ile tanımlanan ekran koordinatınındaki X değeri 3 : Fiziksel ekran koordinatının WINDOW ile tanımlanan ekran koordinatınındaki Y değeri Örnek: SCREEN 12 WINDOW SCREEN (0, 0)-(100, 100) x = PMAP(50, 0) '50 : ekranın orta noktası y = PMAP(50, 1) PRINT "Fizisel ekran orta nokta(x,y):"; x; y '319 240 x = PMAP(639, 2) 'ekranın sağ alt köşesi y = PMAP(479, 3) PRINT "Window ile belirlenen ekran sağ alt köşe(x,y):"; x; y '100 100 Önceki Bölüm: 12: Dosya işlemleri-3 Sonraki Bölüm: 14: Grafik işlemleri-2 QuickBasic Ana Sayfa
Yayınlama: 11 Temmuz 2020 LINE Ekranda belirtilen 2 koordinat noktası arasına çizgi, dikdörtgen veya içi dolu dikdörtgen çizer. Kullanımı: LINE [[STEP] (x1,y1)]-[STEP] (x2,y2) [,[renk][,[B[F]][,stil]]] (x1,y1) : Çizginin başlangıç noktası. (x1,y1) belirtilmediğinde bir önceki komutun aktif noktası alınır. Bir öncesinde nokta ile ilgili bir komut yoksa ekranın orta noktası alınır. SCREEN 12 LINE -(0,0) 'ekranın orta noktasından 0,0 noktasına çizgi çizer (x2,y2) : Çizginin bitiş noktası STEP : Bir önceki çizim komutunun noktası 0,0 noktası olarak referans alınır. Göreceli koordinat sistemi içindir. renk: Çizgi ya da dolgu rengi B : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan dikdörtgeni çizer BF : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan içi renk ile dolu dikdörtgeni çizer. stil : Çizgi stili. Düz, noktalı veya kesik çizgi. BF kullanıldığında stil dikkate alınmaz. Örnek 1: SCREEN 7 CLS LINE (0, 10)-(100, 10), 12 '(0,10) ile (100,10) arası türkuaz çizgi LINE -(50, 60), 13 'x1,y1 belirtilmediği için 'önceki çizginin x2,y2 (100,10) değerleri alındı '(100,10) ile (50,60) arasına kırmızı çizgi LINE -(0, 10), 14 '(50,60) ile (0,10) arasına sarı çizgi Örnek 2: SCREEN 13 LINE (0, 0)-(30, 30), 12 'kırmızı düz çizgi LINE -STEP(100, 60), 1, BF 'mavi içi dolu dikdörtgen LINE -STEP(60, -80), 14, B, 255 ' kesik çizgili sarı dikdörtgen LINE -(130, 130), 11 'türkuaz düz çizgi LINE -(0, 130), 10, , 64 'yeşil noktalı çizgi Örnek 3: SCREEN 12 CONST pi = 3.141593# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR x = 0 TO 360 STEP 3 x2 = SIN(x * pi / 180) y2 = COS(x * pi / 180) LINE (0, 0)-(x2, y2), 10 ' üstteki satırı aşağıdaki satırdaki gibi (0, 0) ı silerek deneyin ' LINE -(x2, y2), 10 NEXT SLEEP Örnek 4: Line ile Çokgen Çizimi 'Polygon SCREEN 12 CONST pi = 3.1415926535# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR k = 3 TO 12 'kenar sayısı CLS 0 FOR x = 0 TO 360 STEP 360 / k radyan = x * pi / 180 x2 = SIN(radyan) y2 = COS(radyan) IF x = 0 THEN r = 0 ELSE r = 10 LINE -(x2, y2), r NEXT LOCATE 15, 37 PRINT "ÇOKGEN"; k SLEEP NEXT Örnek 5: SCREEN 13 FOR x = 0 TO 319 STEP 5 r = r + 1 LINE (x, 0)-(x + 5, 199), r, BF NEXT Örnek 6: Sinüs Dalgası 'Sinus Wave 'Mesut Akcan. 2020 SCREEN 12 pik = 3.141593# / 180 WINDOW (0, 0)-(360, 100) g = 30 'genlik FOR p = 1 TO 10 'periyot CLS PRINT "Periyot:"; p LINE (360, 50)-(0, 50), 7, , 63 FOR x = 0 TO 360 y = 50 + SIN(p * x * pik) * g LINE -(x, y), 10 NEXT SLEEP NEXT Örnek 7: SCREEN 12 CONST pi = 3.141593 VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) CIRCLE (0, 0), .9 DO FOR x = 0 TO 360 STEP 6 LOCATE 1, 1: PRINT x / 6 x2 = SIN(x * pi / 180) * .8 y2 = COS(x * pi / 180) * .8 LINE (0, 0)-(x1, y1), 7 LINE (0, 0)-(x2, y2), 10 x1 = x2 y1 = y2 SLEEP 1 IF INKEY$ = CHR$(27) THEN EXIT DO NEXT LOOP CIRCLE Grafik ekranda verilen yarıçap ve koordinata daire, yay veya elips çizer. Kullanımı: CIRCLE [STEP] (x,y),yarıçap[,[renk][,[başlama][,[bitiş][,en-boy]]]] STEP : Bir önceki nokta 0,0 kabul edilir. Bir önceki nokta yoksa ekranın ortası alınır. yarıçap : Çizilecek daire yarıçap ölçüsü. renk : Çizgi rengi başlama , bitiş : 0 - (2 * pi) arası bir değer girilir. Daire ya da elipsin bir parçasını (yay) çizmek için kullanılır. Verilen değer negatif olursa yayın uç noktaları merkez ile birleştirilir (pasta dilimi) en-boy : varsayılan değeri 1 dir. En boy oranı 1 olduğunda daire çizilir. 1 den farklı değerler ile elips çizilir. Örnek 1: SCREEN 12 CONST pi = 3.14159 CIRCLE STEP(0, 0), 240, 11 CIRCLE (0, 0), 100, 12 CIRCLE (100, 100), 100, 14 CIRCLE (320, 160), 100, 13, , , .5 CIRCLE (320, 330), 100, 14, -pi, -pi / 2 CIRCLE (310, 320), 100, 4, -pi / 2, -pi CIRCLE (320, 90), 80, 15, -2 * pi, -pi CIRCLE (440, 250), 80, 11, -3 * pi / 2, -pi / 2 CIRCLE (440, 250), 100, 13, 3 * pi / 2, pi / 2 Örnek 2: SCREEN 12 CONST pi = 3.14159# FOR n = 0 TO 360 STEP 10 rd = n * pi / 180 x = SIN(rd) * 75 + 320 y = COS(rd) * 75 + 240 CIRCLE (x, y), 150, 12 NEXT Önceki Bölüm: 15: Grafik işlemleri-3 Sonraki Bölüm: 17: Grafik işlemleri-5 QuickBasic Ana Sayfa
Rev. 2022-07-26 aggiornamento dei link al sito QB64.com Rev. 2020-05-18 prima pubblicazione Avete mai avuto bisogno di realizzare rapidamente piccole applicazioni, o avete mai avuto la curiosità di…
Yayınlama: 18 Temmuz 2020 PAINT Kullanımı: PAINT [STEP] (x,y)[,[dolgu] [,[çerçeverengi] [,arkaplan]]] Belirtilen dolgu rengi veya deseni ile kapalı şekil içini boyar(doldurur) Doldurma işlemi (x,y) koordinatından başlar. Şekil kapalı değilse taşıp ekranı doldurur. STEP kullanıldığında son çizim konumu 0,0 kabul edilip göreceli koordinat uygulanır. dolgu : Dolgu rengini belirten sayısal değer ya da deseni belirten karakter dizisi olmalıdır. çerçeverengi : Dolgu yapılacak şeklin rengi (sınır çizgi rengi) arkaplan : Sınırın sonlandırılması kontrol edilirken atlanacak "arka plan döşemesi dilimini" veren bir karakter dizisi değeri. Bitişik noktalar boya rengini gösterdiğinde resim sonlandırılır. Arka plan döşemesi dilimi belirtmek, önceden boyanmış bir alanı boyamanıza izin verir. Arka plan belirtilmediğinde varsayılan değer CHR$(0) olur. Desen : 8 bit genişliğinde ve 64 bayta kadar olan bir dolgu deseninin tasarımıdır. Desen dizesinde, her bayt, noktaları koyarken x ekseni boyunca 8 biti maskeler. Bu kutucuk maskesini oluşturmak için sözdizimi şöyledir: PAINT (x,y), CHR$(arg1)+CHR$(arg2)+...+CHR$(argn) CHR$ değişkenleri, desenin x ekseni boyunca ikili biçimde temsil edilen 0 ile 255 arasındaki sayılardır. Bu CHR$ öğelerinden 64'e kadar olabilir; her biri atanan karakterden değil, o karakter için kodun bit düzenlemesinden bir görüntü oluşturur. Örneğin, ondalık sayı 85, ikili sayı olarak 01010101'dir; CHR$(85) tarafından oluşturulan siyah beyaz bir ekrandaki grafik görüntü çizgisi, 1 sayılı noktalar beyaz ve 0 numaralı noktalar siyah olan 8 piksel çizgisidir. Bu durumda ASCII karakteri CHR$(85) in karşılığı olan U gösterilmez. Örnek 1: SCREEN 12 WINDOW (0, 0)-(500, 500) FOR n = 200 TO 5 STEP -5 r = r + 1 IF r = 16 THEN r = 0 CIRCLE (250, 250), n, r PAINT STEP(0, 0), r, r NEXT Örnek 2: 'Code: QB64.org DIM S(1 TO 8) AS STRING SCREEN 12 'kırmızı tuğlalı duvar deseni S(1) = CHR$(0) + CHR$(0) + CHR$(&HFE) + CHR$(&HFE) S(2) = S(1) S(3) = S(1) S(4) = CHR$(0) + CHR$(0) + CHR$(0) + CHR$(0) S(5) = CHR$(0) + CHR$(0) + CHR$(&HEF) + CHR$(&HEF) S(6) = S(5) S(7) = S(5) S(8) = S(4) Desen$ = S(1) + S(2) + S(3) + S(4) + S(5) + S(6) + S(7) + S(8) LINE (60, 120)-(580, 330), 14, B 'sarı çizgi ile dikdörtgen PAINT (320, 240), Desen$, 14 'tuğla deseni ile doldur Örnek 3: '©2020. Mesut Akcan DEFINT A-Z DIM satir AS STRING DIM desen AS STRING 'desen satırları DATA "..1111.." DATA ".111111." DATA ".11..11." DATA ".11..11." DATA "..1111.." DATA "...11..." DATA "111..111" DATA "1..11..1" DATA "1..11..1" DATA ".11..11." DATA "...11..." DATA "........" DATA "---" DO READ satir 'ikili sayı IF satir = "---" THEN EXIT DO s = 0: p = 0 FOR i = 8 TO 1 STEP -1 'ikili sayıyı onlu sayıya dönüştür s = s + VAL(MID$(satir, i, 1)) * 2 ^ p 'onlu sayı p = p + 1 'üssü NEXT desen = desen + CHR$(s) LOOP SCREEN 2 WINDOW (0, 0)-(200, 200) CIRCLE (100, 100), 55, , , , .5 PAINT (100, 100), desen Örnek 4: '©2020 Mesut Akcan DEFINT A-Z DIM desen AS STRING ' desen taslağı (tuğla deseni) ' ...1.... = 16 ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' 11111111 = 255 ' .......1 = 1 ' .......1 ' .......1 ' .......1 ' .......1 ' .......1 ' 11111111 = 255 ' desen taslağı kod karşılığı desen = CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) desen = desen + CHR$(255) desen = desen + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) desen = desen + CHR$(255) SCREEN 11 WINDOW (-100, -100)-(100, 100) DRAW "TA60 bL180" FOR n = 0 TO 300 STEP 60 DRAW "TA" + STR$(n) + "R180" ' Altıgen çiz NEXT PAINT (0, 0), desen WIDTH Kullanımı: WIDTH [sütun][satır] Ekranın yazı alanın sütun ve satır sayısını değiştirir. SCREEN 0 için: sütun; 80 veya 40; satır; 25, 43 veya 50 olabilir. SCREEN 11 ve 12 için: sütun; 80; satır; 30 veya 60 olabilir. Örnek 1: SCREEN 12 WIDTH 80, 60 FOR i = 1 TO 4720 COLOR INT(RND * 15 + 1) 'COLOR i MOD 10 + 5 PRINT LTRIM$(STR$(i MOD 10)); NEXT Örnek 2: DECLARE SUB yaz (sutun%, satir%) yaz 80, 25 yaz 80, 43 yaz 80, 50 yaz 40, 25 yaz 40, 43 yaz 40, 50 SCREEN 12 yaz 80, 30 yaz 80, 60 DEFINT A-Z SUB yaz (sutun, satir) STATIC r WIDTH sutun, satir r = r + 1 COLOR r + 2 FOR n = 1 TO satir PRINT "Satır:"; n; " Merhaba Dünya !" NEXT SLEEP END SUB Önceki Bölüm: 17: Grafik işlemleri-5 Sonraki Bölüm: 19: Grafik işlemleri-7 QuickBasic Ana Sayfa
Yayınlama: 18 Temmuz 2020 PAINT Kullanımı: PAINT [STEP] (x,y)[,[dolgu] [,[çerçeverengi] [,arkaplan]]] Belirtilen dolgu rengi veya deseni ile kapalı şekil içini boyar(doldurur) Doldurma işlemi (x,y) koordinatından başlar. Şekil kapalı değilse taşıp ekranı doldurur. STEP kullanıldığında son çizim konumu 0,0 kabul edilip göreceli koordinat uygulanır. dolgu : Dolgu rengini belirten sayısal değer ya da deseni belirten karakter dizisi olmalıdır. çerçeverengi : Dolgu yapılacak şeklin rengi (sınır çizgi rengi) arkaplan : Sınırın sonlandırılması kontrol edilirken atlanacak "arka plan döşemesi dilimini" veren bir karakter dizisi değeri. Bitişik noktalar boya rengini gösterdiğinde resim sonlandırılır. Arka plan döşemesi dilimi belirtmek, önceden boyanmış bir alanı boyamanıza izin verir. Arka plan belirtilmediğinde varsayılan değer CHR$(0) olur. Desen : 8 bit genişliğinde ve 64 bayta kadar olan bir dolgu deseninin tasarımıdır. Desen dizesinde, her bayt, noktaları koyarken x ekseni boyunca 8 biti maskeler. Bu kutucuk maskesini oluşturmak için sözdizimi şöyledir: PAINT (x,y), CHR$(arg1)+CHR$(arg2)+...+CHR$(argn) CHR$ değişkenleri, desenin x ekseni boyunca ikili biçimde temsil edilen 0 ile 255 arasındaki sayılardır. Bu CHR$ öğelerinden 64'e kadar olabilir; her biri atanan karakterden değil, o karakter için kodun bit düzenlemesinden bir görüntü oluşturur. Örneğin, ondalık sayı 85, ikili sayı olarak 01010101'dir; CHR$(85) tarafından oluşturulan siyah beyaz bir ekrandaki grafik görüntü çizgisi, 1 sayılı noktalar beyaz ve 0 numaralı noktalar siyah olan 8 piksel çizgisidir. Bu durumda ASCII karakteri CHR$(85) in karşılığı olan U gösterilmez. Örnek 1: SCREEN 12 WINDOW (0, 0)-(500, 500) FOR n = 200 TO 5 STEP -5 r = r + 1 IF r = 16 THEN r = 0 CIRCLE (250, 250), n, r PAINT STEP(0, 0), r, r NEXT Örnek 2: 'Code: QB64.org DIM S(1 TO 8) AS STRING SCREEN 12 'kırmızı tuğlalı duvar deseni S(1) = CHR$(0) + CHR$(0) + CHR$(&HFE) + CHR$(&HFE) S(2) = S(1) S(3) = S(1) S(4) = CHR$(0) + CHR$(0) + CHR$(0) + CHR$(0) S(5) = CHR$(0) + CHR$(0) + CHR$(&HEF) + CHR$(&HEF) S(6) = S(5) S(7) = S(5) S(8) = S(4) Desen$ = S(1) + S(2) + S(3) + S(4) + S(5) + S(6) + S(7) + S(8) LINE (60, 120)-(580, 330), 14, B 'sarı çizgi ile dikdörtgen PAINT (320, 240), Desen$, 14 'tuğla deseni ile doldur Örnek 3: '©2020. Mesut Akcan DEFINT A-Z DIM satir AS STRING DIM desen AS STRING 'desen satırları DATA "..1111.." DATA ".111111." DATA ".11..11." DATA ".11..11." DATA "..1111.." DATA "...11..." DATA "111..111" DATA "1..11..1" DATA "1..11..1" DATA ".11..11." DATA "...11..." DATA "........" DATA "---" DO READ satir 'ikili sayı IF satir = "---" THEN EXIT DO s = 0: p = 0 FOR i = 8 TO 1 STEP -1 'ikili sayıyı onlu sayıya dönüştür s = s + VAL(MID$(satir, i, 1)) * 2 ^ p 'onlu sayı p = p + 1 'üssü NEXT desen = desen + CHR$(s) LOOP SCREEN 2 WINDOW (0, 0)-(200, 200) CIRCLE (100, 100), 55, , , , .5 PAINT (100, 100), desen Örnek 4: '©2020 Mesut Akcan DEFINT A-Z DIM desen AS STRING ' desen taslağı (tuğla deseni) ' ...1.... = 16 ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' 11111111 = 255 ' .......1 = 1 ' .......1 ' .......1 ' .......1 ' .......1 ' .......1 ' 11111111 = 255 ' desen taslağı kod karşılığı desen = CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) desen = desen + CHR$(255) desen = desen + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) desen = desen + CHR$(255) SCREEN 11 WINDOW (-100, -100)-(100, 100) DRAW "TA60 bL180" FOR n = 0 TO 300 STEP 60 DRAW "TA" + STR$(n) + "R180" ' Altıgen çiz NEXT PAINT (0, 0), desen WIDTH Kullanımı: WIDTH [sütun][satır] Ekranın yazı alanın sütun ve satır sayısını değiştirir. SCREEN 0 için: sütun; 80 veya 40; satır; 25, 43 veya 50 olabilir. SCREEN 11 ve 12 için: sütun; 80; satır; 30 veya 60 olabilir. Örnek 1: SCREEN 12 WIDTH 80, 60 FOR i = 1 TO 4720 COLOR INT(RND * 15 + 1) 'COLOR i MOD 10 + 5 PRINT LTRIM$(STR$(i MOD 10)); NEXT Örnek 2: DECLARE SUB yaz (sutun%, satir%) yaz 80, 25 yaz 80, 43 yaz 80, 50 yaz 40, 25 yaz 40, 43 yaz 40, 50 SCREEN 12 yaz 80, 30 yaz 80, 60 DEFINT A-Z SUB yaz (sutun, satir) STATIC r WIDTH sutun, satir r = r + 1 COLOR r + 2 FOR n = 1 TO satir PRINT "Satır:"; n; " Merhaba Dünya !" NEXT SLEEP END SUB Önceki Bölüm: 17: Grafik işlemleri-5 Sonraki Bölüm: 19: Grafik işlemleri-7 QuickBasic Ana Sayfa
Yayınlama: 18 Temmuz 2020 PAINT Kullanımı: PAINT [STEP] (x,y)[,[dolgu] [,[çerçeverengi] [,arkaplan]]] Belirtilen dolgu rengi veya deseni ile kapalı şekil içini boyar(doldurur) Doldurma işlemi (x,y) koordinatından başlar. Şekil kapalı değilse taşıp ekranı doldurur. STEP kullanıldığında son çizim konumu 0,0 kabul edilip göreceli koordinat uygulanır. dolgu : Dolgu rengini belirten sayısal değer ya da deseni belirten karakter dizisi olmalıdır. çerçeverengi : Dolgu yapılacak şeklin rengi (sınır çizgi rengi) arkaplan : Sınırın sonlandırılması kontrol edilirken atlanacak "arka plan döşemesi dilimini" veren bir karakter dizisi değeri. Bitişik noktalar boya rengini gösterdiğinde resim sonlandırılır. Arka plan döşemesi dilimi belirtmek, önceden boyanmış bir alanı boyamanıza izin verir. Arka plan belirtilmediğinde varsayılan değer CHR$(0) olur. Desen : 8 bit genişliğinde ve 64 bayta kadar olan bir dolgu deseninin tasarımıdır. Desen dizesinde, her bayt, noktaları koyarken x ekseni boyunca 8 biti maskeler. Bu kutucuk maskesini oluşturmak için sözdizimi şöyledir: PAINT (x,y), CHR$(arg1)+CHR$(arg2)+...+CHR$(argn) CHR$ değişkenleri, desenin x ekseni boyunca ikili biçimde temsil edilen 0 ile 255 arasındaki sayılardır. Bu CHR$ öğelerinden 64'e kadar olabilir; her biri atanan karakterden değil, o karakter için kodun bit düzenlemesinden bir görüntü oluşturur. Örneğin, ondalık sayı 85, ikili sayı olarak 01010101'dir; CHR$(85) tarafından oluşturulan siyah beyaz bir ekrandaki grafik görüntü çizgisi, 1 sayılı noktalar beyaz ve 0 numaralı noktalar siyah olan 8 piksel çizgisidir. Bu durumda ASCII karakteri CHR$(85) in karşılığı olan U gösterilmez. Örnek 1: SCREEN 12 WINDOW (0, 0)-(500, 500) FOR n = 200 TO 5 STEP -5 r = r + 1 IF r = 16 THEN r = 0 CIRCLE (250, 250), n, r PAINT STEP(0, 0), r, r NEXT Örnek 2: 'Code: QB64.org DIM S(1 TO 8) AS STRING SCREEN 12 'kırmızı tuğlalı duvar deseni S(1) = CHR$(0) + CHR$(0) + CHR$(&HFE) + CHR$(&HFE) S(2) = S(1) S(3) = S(1) S(4) = CHR$(0) + CHR$(0) + CHR$(0) + CHR$(0) S(5) = CHR$(0) + CHR$(0) + CHR$(&HEF) + CHR$(&HEF) S(6) = S(5) S(7) = S(5) S(8) = S(4) Desen$ = S(1) + S(2) + S(3) + S(4) + S(5) + S(6) + S(7) + S(8) LINE (60, 120)-(580, 330), 14, B 'sarı çizgi ile dikdörtgen PAINT (320, 240), Desen$, 14 'tuğla deseni ile doldur Örnek 3: '©2020. Mesut Akcan DEFINT A-Z DIM satir AS STRING DIM desen AS STRING 'desen satırları DATA "..1111.." DATA ".111111." DATA ".11..11." DATA ".11..11." DATA "..1111.." DATA "...11..." DATA "111..111" DATA "1..11..1" DATA "1..11..1" DATA ".11..11." DATA "...11..." DATA "........" DATA "---" DO READ satir 'ikili sayı IF satir = "---" THEN EXIT DO s = 0: p = 0 FOR i = 8 TO 1 STEP -1 'ikili sayıyı onlu sayıya dönüştür s = s + VAL(MID$(satir, i, 1)) * 2 ^ p 'onlu sayı p = p + 1 'üssü NEXT desen = desen + CHR$(s) LOOP SCREEN 2 WINDOW (0, 0)-(200, 200) CIRCLE (100, 100), 55, , , , .5 PAINT (100, 100), desen Örnek 4: '©2020 Mesut Akcan DEFINT A-Z DIM desen AS STRING ' desen taslağı (tuğla deseni) ' ...1.... = 16 ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' 11111111 = 255 ' .......1 = 1 ' .......1 ' .......1 ' .......1 ' .......1 ' .......1 ' 11111111 = 255 ' desen taslağı kod karşılığı desen = CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) desen = desen + CHR$(255) desen = desen + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) desen = desen + CHR$(255) SCREEN 11 WINDOW (-100, -100)-(100, 100) DRAW "TA60 bL180" FOR n = 0 TO 300 STEP 60 DRAW "TA" + STR$(n) + "R180" ' Altıgen çiz NEXT PAINT (0, 0), desen WIDTH Kullanımı: WIDTH [sütun][satır] Ekranın yazı alanın sütun ve satır sayısını değiştirir. SCREEN 0 için: sütun; 80 veya 40; satır; 25, 43 veya 50 olabilir. SCREEN 11 ve 12 için: sütun; 80; satır; 30 veya 60 olabilir. Örnek 1: SCREEN 12 WIDTH 80, 60 FOR i = 1 TO 4720 COLOR INT(RND * 15 + 1) 'COLOR i MOD 10 + 5 PRINT LTRIM$(STR$(i MOD 10)); NEXT Örnek 2: DECLARE SUB yaz (sutun%, satir%) yaz 80, 25 yaz 80, 43 yaz 80, 50 yaz 40, 25 yaz 40, 43 yaz 40, 50 SCREEN 12 yaz 80, 30 yaz 80, 60 DEFINT A-Z SUB yaz (sutun, satir) STATIC r WIDTH sutun, satir r = r + 1 COLOR r + 2 FOR n = 1 TO satir PRINT "Satır:"; n; " Merhaba Dünya !" NEXT SLEEP END SUB Önceki Bölüm: 17: Grafik işlemleri-5 Sonraki Bölüm: 19: Grafik işlemleri-7 QuickBasic Ana Sayfa
Yayınlama: 16 Temmuz 2020 DRAW Karakter kodlarıyla grafik ekranda çizim yapar. Kullanımı: DRAW "çizimkodları" DRAW komutu çizim kodları: Çizgi çizme kodları: U : Yukarı (Up) D : Aşağı (Down) L : Sola (Left) R : Sağa (Right) E : Yukarı sağa çapraz F : Aşağı sağa çapraz H : Yukarı sola çapraz G : Aşağı sola çapraz Bu kodlar uygulandığında çizim konumu değişir. Örneğin U10 ile çizim konumu çizgi çizerek 10 piksel yukarı gider. Verilen komutlar son nokta konumunu esas alarak çizim yapar. Daha önceden konum belirten ya da değiştiren bir kodlama yoksa konum ekranın ortası alınır. B : Çizgi çizmeden konum değiştirir(Blind). BL5 : Konum, çizgi çizmeden 5 piksel sola. N : Çizgi çizer ancak konum değişmez. NR15 : Sağa 15 piksel çizgi ancak konum değişmez. Örnek 1: SCREEN 13 DRAW "c9 NG15 c10 NE15 c12 NH15 c14 NF15" Mx,y : Konumu x,y koordinatına çizgi çizerek taşır. (Move) x değeri önünde + veya - sembolü olması durumunda göreceli(relative) koordinat sistemi uygulanır. + veya - işareti olmaması durumunda mutlak koordinat sistemi(absolute, fiziksel ekran koordinatları) kullanılır. Örnek 2: SCREEN 13 DRAW "c10 L60 c14 M+30,-30 c12 d60" DRAW "c13 bM0,0 f50 r50 M0,0" Renk kodları: C : Çizgi rengi belirler(Color). C14 : Sarı renk. C10 D50 : Yeşil renkte aşağı 50 piksel çizgi Pp,b : b rengi ile çizilmiş kapalı şekil içini p rengi ile boyar(doldurur)(Paint). Şekil kapalı değilse boyama taşar. Boyama yapmadan önce konum kapalı şekil içinde olmalıdır. Örnek 3: SCREEN 13 DRAW "c12 r100 h50 g50" DRAW "bM+30,-10 p14,12" Ölçek ve döndürme kodları: Sn : Konum değişim ölçeği(Scale). Varsayılan değeri 4'dür. 4'den küçük sayılar orantılı olarak değişimi azaltır, 4'den büyük sayılar orantılı olarak arttırır. Örneğin; S2 : Konum değişimi oranı varsayılanın yarısı kadar olur. S8 : Varsayılanın 2 katı olur. n için 1 - 255 arası bir değer verilebilir. An : (n * 90º) döndürme açısı(Angle). n için 0, 1, 2 veya 3 değerleri verilebilir. Çizim verilen açı kadar döndürülerek çizilir. 0 = 0º 1 = 90º 2 = 180º 3 = 270º Örnek 4: SCREEN 13 DRAW "s5" FOR n = 0 TO 3 DRAW "A" + STR$(n) DRAW "C" + STR$(n + 10) DRAW "F60 L120 E60" SLEEP NEXT TAn : Döndürme açısı. n için -360 ile 360 arası döndürme açısı değeri verilebilir. Çizim verilen açı kadar döndürülerek çizilir. Negatif sayılar ters yönde döndürmek içindir. TA60 R100 : Sağ yönde 60º açıyla 100 piksel çizgi. Örnek 5: SCREEN 12 DRAW "c13" FOR n = 0 TO 360 STEP 60 DRAW "TA" + STR$(n) DRAW "R100 U100 L100 D100" NEXT Örnek 6: SCREEN 12 DRAW "c11" FOR D = 0 TO 360 STEP 3 DRAW "TA=" + VARPTR$(D) + "NU220" NEXT X + VARPTR$(değişkenadı) : Çizim kodları bir değişkene atanıp bu değişken DRAW komutu içinde kullanılabilir. Özellikle tekrar eden çizim kodlarını tekrar yazmak yerine bu şekilde çağırmak kodlamayı kolaylaştırır. Örnek 7: DEFINT A-Z SCREEN 12 dd$ = "bU4 L4 D8 R8 U8 L4 bD4" DRAW "c13" 'renk 13 FOR s = 3 TO 255 STEP 3 a = a + 4 IF a >= 360 THEN a = 1 DRAW "TA=" + VARPTR$(a) + "s" + STR$(s) + "X" + VARPTR$(dd$) NEXT Önceki Bölüm: 16: Grafik işlemleri-4 Sonraki bölüm: 18: Grafik işlemleri-6 QuickBasic Ana Sayfa
Yayınlama: 18 Temmuz 2020 PAINT Kullanımı: PAINT [STEP] (x,y)[,[dolgu] [,[çerçeverengi] [,arkaplan]]] Belirtilen dolgu rengi veya deseni ile kapalı şekil içini boyar(doldurur) Doldurma işlemi (x,y) koordinatından başlar. Şekil kapalı değilse taşıp ekranı doldurur. STEP kullanıldığında son çizim konumu 0,0 kabul edilip göreceli koordinat uygulanır. dolgu : Dolgu rengini belirten sayısal değer ya da deseni belirten karakter dizisi olmalıdır. çerçeverengi : Dolgu yapılacak şeklin rengi (sınır çizgi rengi) arkaplan : Sınırın sonlandırılması kontrol edilirken atlanacak "arka plan döşemesi dilimini" veren bir karakter dizisi değeri. Bitişik noktalar boya rengini gösterdiğinde resim sonlandırılır. Arka plan döşemesi dilimi belirtmek, önceden boyanmış bir alanı boyamanıza izin verir. Arka plan belirtilmediğinde varsayılan değer CHR$(0) olur. Desen : 8 bit genişliğinde ve 64 bayta kadar olan bir dolgu deseninin tasarımıdır. Desen dizesinde, her bayt, noktaları koyarken x ekseni boyunca 8 biti maskeler. Bu kutucuk maskesini oluşturmak için sözdizimi şöyledir: PAINT (x,y), CHR$(arg1)+CHR$(arg2)+...+CHR$(argn) CHR$ değişkenleri, desenin x ekseni boyunca ikili biçimde temsil edilen 0 ile 255 arasındaki sayılardır. Bu CHR$ öğelerinden 64'e kadar olabilir; her biri atanan karakterden değil, o karakter için kodun bit düzenlemesinden bir görüntü oluşturur. Örneğin, ondalık sayı 85, ikili sayı olarak 01010101'dir; CHR$(85) tarafından oluşturulan siyah beyaz bir ekrandaki grafik görüntü çizgisi, 1 sayılı noktalar beyaz ve 0 numaralı noktalar siyah olan 8 piksel çizgisidir. Bu durumda ASCII karakteri CHR$(85) in karşılığı olan U gösterilmez. Örnek 1: SCREEN 12 WINDOW (0, 0)-(500, 500) FOR n = 200 TO 5 STEP -5 r = r + 1 IF r = 16 THEN r = 0 CIRCLE (250, 250), n, r PAINT STEP(0, 0), r, r NEXT Örnek 2: 'Code: QB64.org DIM S(1 TO 8) AS STRING SCREEN 12 'kırmızı tuğlalı duvar deseni S(1) = CHR$(0) + CHR$(0) + CHR$(&HFE) + CHR$(&HFE) S(2) = S(1) S(3) = S(1) S(4) = CHR$(0) + CHR$(0) + CHR$(0) + CHR$(0) S(5) = CHR$(0) + CHR$(0) + CHR$(&HEF) + CHR$(&HEF) S(6) = S(5) S(7) = S(5) S(8) = S(4) Desen$ = S(1) + S(2) + S(3) + S(4) + S(5) + S(6) + S(7) + S(8) LINE (60, 120)-(580, 330), 14, B 'sarı çizgi ile dikdörtgen PAINT (320, 240), Desen$, 14 'tuğla deseni ile doldur Örnek 3: '©2020. Mesut Akcan DEFINT A-Z DIM satir AS STRING DIM desen AS STRING 'desen satırları DATA "..1111.." DATA ".111111." DATA ".11..11." DATA ".11..11." DATA "..1111.." DATA "...11..." DATA "111..111" DATA "1..11..1" DATA "1..11..1" DATA ".11..11." DATA "...11..." DATA "........" DATA "---" DO READ satir 'ikili sayı IF satir = "---" THEN EXIT DO s = 0: p = 0 FOR i = 8 TO 1 STEP -1 'ikili sayıyı onlu sayıya dönüştür s = s + VAL(MID$(satir, i, 1)) * 2 ^ p 'onlu sayı p = p + 1 'üssü NEXT desen = desen + CHR$(s) LOOP SCREEN 2 WINDOW (0, 0)-(200, 200) CIRCLE (100, 100), 55, , , , .5 PAINT (100, 100), desen Örnek 4: '©2020 Mesut Akcan DEFINT A-Z DIM desen AS STRING ' desen taslağı (tuğla deseni) ' ...1.... = 16 ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' 11111111 = 255 ' .......1 = 1 ' .......1 ' .......1 ' .......1 ' .......1 ' .......1 ' 11111111 = 255 ' desen taslağı kod karşılığı desen = CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) desen = desen + CHR$(255) desen = desen + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) desen = desen + CHR$(255) SCREEN 11 WINDOW (-100, -100)-(100, 100) DRAW "TA60 bL180" FOR n = 0 TO 300 STEP 60 DRAW "TA" + STR$(n) + "R180" ' Altıgen çiz NEXT PAINT (0, 0), desen WIDTH Kullanımı: WIDTH [sütun][satır] Ekranın yazı alanın sütun ve satır sayısını değiştirir. SCREEN 0 için: sütun; 80 veya 40; satır; 25, 43 veya 50 olabilir. SCREEN 11 ve 12 için: sütun; 80; satır; 30 veya 60 olabilir. Örnek 1: SCREEN 12 WIDTH 80, 60 FOR i = 1 TO 4720 COLOR INT(RND * 15 + 1) 'COLOR i MOD 10 + 5 PRINT LTRIM$(STR$(i MOD 10)); NEXT Örnek 2: DECLARE SUB yaz (sutun%, satir%) yaz 80, 25 yaz 80, 43 yaz 80, 50 yaz 40, 25 yaz 40, 43 yaz 40, 50 SCREEN 12 yaz 80, 30 yaz 80, 60 DEFINT A-Z SUB yaz (sutun, satir) STATIC r WIDTH sutun, satir r = r + 1 COLOR r + 2 FOR n = 1 TO satir PRINT "Satır:"; n; " Merhaba Dünya !" NEXT SLEEP END SUB Önceki Bölüm: 17: Grafik işlemleri-5 Sonraki Bölüm: 19: Grafik işlemleri-7 QuickBasic Ana Sayfa
Bu videoda AutoCAD ile Y şeklinde birleşmiş çapları aynı olan boruların açınım çizimleri açıklandı.
Bu videoda AutoCAD ile Y şeklinde birleşmiş çapları aynı olan boruların açınım çizimleri açıklandı.
Yayınlama: 16 Temmuz 2020 DRAW Karakter kodlarıyla grafik ekranda çizim yapar. Kullanımı: DRAW "çizimkodları" DRAW komutu çizim kodları: Çizgi çizme kodları: U : Yukarı (Up) D : Aşağı (Down) L : Sola (Left) R : Sağa (Right) E : Yukarı sağa çapraz F : Aşağı sağa çapraz H : Yukarı sola çapraz G : Aşağı sola çapraz Bu kodlar uygulandığında çizim konumu değişir. Örneğin U10 ile çizim konumu çizgi çizerek 10 piksel yukarı gider. Verilen komutlar son nokta konumunu esas alarak çizim yapar. Daha önceden konum belirten ya da değiştiren bir kodlama yoksa konum ekranın ortası alınır. B : Çizgi çizmeden konum değiştirir(Blind). BL5 : Konum, çizgi çizmeden 5 piksel sola. N : Çizgi çizer ancak konum değişmez. NR15 : Sağa 15 piksel çizgi ancak konum değişmez. Örnek 1: SCREEN 13 DRAW "c9 NG15 c10 NE15 c12 NH15 c14 NF15" Mx,y : Konumu x,y koordinatına çizgi çizerek taşır. (Move) x değeri önünde + veya - sembolü olması durumunda göreceli(relative) koordinat sistemi uygulanır. + veya - işareti olmaması durumunda mutlak koordinat sistemi(absolute, fiziksel ekran koordinatları) kullanılır. Örnek 2: SCREEN 13 DRAW "c10 L60 c14 M+30,-30 c12 d60" DRAW "c13 bM0,0 f50 r50 M0,0" Renk kodları: C : Çizgi rengi belirler(Color). C14 : Sarı renk. C10 D50 : Yeşil renkte aşağı 50 piksel çizgi Pp,b : b rengi ile çizilmiş kapalı şekil içini p rengi ile boyar(doldurur)(Paint). Şekil kapalı değilse boyama taşar. Boyama yapmadan önce konum kapalı şekil içinde olmalıdır. Örnek 3: SCREEN 13 DRAW "c12 r100 h50 g50" DRAW "bM+30,-10 p14,12" Ölçek ve döndürme kodları: Sn : Konum değişim ölçeği(Scale). Varsayılan değeri 4'dür. 4'den küçük sayılar orantılı olarak değişimi azaltır, 4'den büyük sayılar orantılı olarak arttırır. Örneğin; S2 : Konum değişimi oranı varsayılanın yarısı kadar olur. S8 : Varsayılanın 2 katı olur. n için 1 - 255 arası bir değer verilebilir. An : (n * 90º) döndürme açısı(Angle). n için 0, 1, 2 veya 3 değerleri verilebilir. Çizim verilen açı kadar döndürülerek çizilir. 0 = 0º 1 = 90º 2 = 180º 3 = 270º Örnek 4: SCREEN 13 DRAW "s5" FOR n = 0 TO 3 DRAW "A" + STR$(n) DRAW "C" + STR$(n + 10) DRAW "F60 L120 E60" SLEEP NEXT TAn : Döndürme açısı. n için -360 ile 360 arası döndürme açısı değeri verilebilir. Çizim verilen açı kadar döndürülerek çizilir. Negatif sayılar ters yönde döndürmek içindir. TA60 R100 : Sağ yönde 60º açıyla 100 piksel çizgi. Örnek 5: SCREEN 12 DRAW "c13" FOR n = 0 TO 360 STEP 60 DRAW "TA" + STR$(n) DRAW "R100 U100 L100 D100" NEXT Örnek 6: SCREEN 12 DRAW "c11" FOR D = 0 TO 360 STEP 3 DRAW "TA=" + VARPTR$(D) + "NU220" NEXT X + VARPTR$(değişkenadı) : Çizim kodları bir değişkene atanıp bu değişken DRAW komutu içinde kullanılabilir. Özellikle tekrar eden çizim kodlarını tekrar yazmak yerine bu şekilde çağırmak kodlamayı kolaylaştırır. Örnek 7: DEFINT A-Z SCREEN 12 dd$ = "bU4 L4 D8 R8 U8 L4 bD4" DRAW "c13" 'renk 13 FOR s = 3 TO 255 STEP 3 a = a + 4 IF a >= 360 THEN a = 1 DRAW "TA=" + VARPTR$(a) + "s" + STR$(s) + "X" + VARPTR$(dd$) NEXT Önceki Bölüm: 16: Grafik işlemleri-4 Sonraki bölüm: 18: Grafik işlemleri-6 QuickBasic Ana Sayfa
Yayınlama: 11 Temmuz 2020 LINE Ekranda belirtilen 2 koordinat noktası arasına çizgi, dikdörtgen veya içi dolu dikdörtgen çizer. Kullanımı: LINE [[STEP] (x1,y1)]-[STEP] (x2,y2) [,[renk][,[B[F]][,stil]]] (x1,y1) : Çizginin başlangıç noktası. (x1,y1) belirtilmediğinde bir önceki komutun aktif noktası alınır. Bir öncesinde nokta ile ilgili bir komut yoksa ekranın orta noktası alınır. SCREEN 12 LINE -(0,0) 'ekranın orta noktasından 0,0 noktasına çizgi çizer (x2,y2) : Çizginin bitiş noktası STEP : Bir önceki çizim komutunun noktası 0,0 noktası olarak referans alınır. Göreceli koordinat sistemi içindir. renk: Çizgi ya da dolgu rengi B : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan dikdörtgeni çizer BF : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan içi renk ile dolu dikdörtgeni çizer. stil : Çizgi stili. Düz, noktalı veya kesik çizgi. BF kullanıldığında stil dikkate alınmaz. Örnek 1: SCREEN 7 CLS LINE (0, 10)-(100, 10), 12 '(0,10) ile (100,10) arası türkuaz çizgi LINE -(50, 60), 13 'x1,y1 belirtilmediği için 'önceki çizginin x2,y2 (100,10) değerleri alındı '(100,10) ile (50,60) arasına kırmızı çizgi LINE -(0, 10), 14 '(50,60) ile (0,10) arasına sarı çizgi Örnek 2: SCREEN 13 LINE (0, 0)-(30, 30), 12 'kırmızı düz çizgi LINE -STEP(100, 60), 1, BF 'mavi içi dolu dikdörtgen LINE -STEP(60, -80), 14, B, 255 ' kesik çizgili sarı dikdörtgen LINE -(130, 130), 11 'türkuaz düz çizgi LINE -(0, 130), 10, , 64 'yeşil noktalı çizgi Örnek 3: SCREEN 12 CONST pi = 3.141593# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR x = 0 TO 360 STEP 3 x2 = SIN(x * pi / 180) y2 = COS(x * pi / 180) LINE (0, 0)-(x2, y2), 10 ' üstteki satırı aşağıdaki satırdaki gibi (0, 0) ı silerek deneyin ' LINE -(x2, y2), 10 NEXT SLEEP Örnek 4: Line ile Çokgen Çizimi 'Polygon SCREEN 12 CONST pi = 3.1415926535# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR k = 3 TO 12 'kenar sayısı CLS 0 FOR x = 0 TO 360 STEP 360 / k radyan = x * pi / 180 x2 = SIN(radyan) y2 = COS(radyan) IF x = 0 THEN r = 0 ELSE r = 10 LINE -(x2, y2), r NEXT LOCATE 15, 37 PRINT "ÇOKGEN"; k SLEEP NEXT Örnek 5: SCREEN 13 FOR x = 0 TO 319 STEP 5 r = r + 1 LINE (x, 0)-(x + 5, 199), r, BF NEXT Örnek 6: Sinüs Dalgası 'Sinus Wave 'Mesut Akcan. 2020 SCREEN 12 pik = 3.141593# / 180 WINDOW (0, 0)-(360, 100) g = 30 'genlik FOR p = 1 TO 10 'periyot CLS PRINT "Periyot:"; p LINE (360, 50)-(0, 50), 7, , 63 FOR x = 0 TO 360 y = 50 + SIN(p * x * pik) * g LINE -(x, y), 10 NEXT SLEEP NEXT Örnek 7: SCREEN 12 CONST pi = 3.141593 VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) CIRCLE (0, 0), .9 DO FOR x = 0 TO 360 STEP 6 LOCATE 1, 1: PRINT x / 6 x2 = SIN(x * pi / 180) * .8 y2 = COS(x * pi / 180) * .8 LINE (0, 0)-(x1, y1), 7 LINE (0, 0)-(x2, y2), 10 x1 = x2 y1 = y2 SLEEP 1 IF INKEY$ = CHR$(27) THEN EXIT DO NEXT LOOP CIRCLE Grafik ekranda verilen yarıçap ve koordinata daire, yay veya elips çizer. Kullanımı: CIRCLE [STEP] (x,y),yarıçap[,[renk][,[başlama][,[bitiş][,en-boy]]]] STEP : Bir önceki nokta 0,0 kabul edilir. Bir önceki nokta yoksa ekranın ortası alınır. yarıçap : Çizilecek daire yarıçap ölçüsü. renk : Çizgi rengi başlama , bitiş : 0 - (2 * pi) arası bir değer girilir. Daire ya da elipsin bir parçasını (yay) çizmek için kullanılır. Verilen değer negatif olursa yayın uç noktaları merkez ile birleştirilir (pasta dilimi) en-boy : varsayılan değeri 1 dir. En boy oranı 1 olduğunda daire çizilir. 1 den farklı değerler ile elips çizilir. Örnek 1: SCREEN 12 CONST pi = 3.14159 CIRCLE STEP(0, 0), 240, 11 CIRCLE (0, 0), 100, 12 CIRCLE (100, 100), 100, 14 CIRCLE (320, 160), 100, 13, , , .5 CIRCLE (320, 330), 100, 14, -pi, -pi / 2 CIRCLE (310, 320), 100, 4, -pi / 2, -pi CIRCLE (320, 90), 80, 15, -2 * pi, -pi CIRCLE (440, 250), 80, 11, -3 * pi / 2, -pi / 2 CIRCLE (440, 250), 100, 13, 3 * pi / 2, pi / 2 Örnek 2: SCREEN 12 CONST pi = 3.14159# FOR n = 0 TO 360 STEP 10 rd = n * pi / 180 x = SIN(rd) * 75 + 320 y = COS(rd) * 75 + 240 CIRCLE (x, y), 150, 12 NEXT Önceki Bölüm: 15: Grafik işlemleri-3 Sonraki Bölüm: 17: Grafik işlemleri-5 QuickBasic Ana Sayfa
Yayınlama: 11 Temmuz 2020 LINE Ekranda belirtilen 2 koordinat noktası arasına çizgi, dikdörtgen veya içi dolu dikdörtgen çizer. Kullanımı: LINE [[STEP] (x1,y1)]-[STEP] (x2,y2) [,[renk][,[B[F]][,stil]]] (x1,y1) : Çizginin başlangıç noktası. (x1,y1) belirtilmediğinde bir önceki komutun aktif noktası alınır. Bir öncesinde nokta ile ilgili bir komut yoksa ekranın orta noktası alınır. SCREEN 12 LINE -(0,0) 'ekranın orta noktasından 0,0 noktasına çizgi çizer (x2,y2) : Çizginin bitiş noktası STEP : Bir önceki çizim komutunun noktası 0,0 noktası olarak referans alınır. Göreceli koordinat sistemi içindir. renk: Çizgi ya da dolgu rengi B : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan dikdörtgeni çizer BF : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan içi renk ile dolu dikdörtgeni çizer. stil : Çizgi stili. Düz, noktalı veya kesik çizgi. BF kullanıldığında stil dikkate alınmaz. Örnek 1: SCREEN 7 CLS LINE (0, 10)-(100, 10), 12 '(0,10) ile (100,10) arası türkuaz çizgi LINE -(50, 60), 13 'x1,y1 belirtilmediği için 'önceki çizginin x2,y2 (100,10) değerleri alındı '(100,10) ile (50,60) arasına kırmızı çizgi LINE -(0, 10), 14 '(50,60) ile (0,10) arasına sarı çizgi Örnek 2: SCREEN 13 LINE (0, 0)-(30, 30), 12 'kırmızı düz çizgi LINE -STEP(100, 60), 1, BF 'mavi içi dolu dikdörtgen LINE -STEP(60, -80), 14, B, 255 ' kesik çizgili sarı dikdörtgen LINE -(130, 130), 11 'türkuaz düz çizgi LINE -(0, 130), 10, , 64 'yeşil noktalı çizgi Örnek 3: SCREEN 12 CONST pi = 3.141593# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR x = 0 TO 360 STEP 3 x2 = SIN(x * pi / 180) y2 = COS(x * pi / 180) LINE (0, 0)-(x2, y2), 10 ' üstteki satırı aşağıdaki satırdaki gibi (0, 0) ı silerek deneyin ' LINE -(x2, y2), 10 NEXT SLEEP Örnek 4: Line ile Çokgen Çizimi 'Polygon SCREEN 12 CONST pi = 3.1415926535# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR k = 3 TO 12 'kenar sayısı CLS 0 FOR x = 0 TO 360 STEP 360 / k radyan = x * pi / 180 x2 = SIN(radyan) y2 = COS(radyan) IF x = 0 THEN r = 0 ELSE r = 10 LINE -(x2, y2), r NEXT LOCATE 15, 37 PRINT "ÇOKGEN"; k SLEEP NEXT Örnek 5: SCREEN 13 FOR x = 0 TO 319 STEP 5 r = r + 1 LINE (x, 0)-(x + 5, 199), r, BF NEXT Örnek 6: Sinüs Dalgası 'Sinus Wave 'Mesut Akcan. 2020 SCREEN 12 pik = 3.141593# / 180 WINDOW (0, 0)-(360, 100) g = 30 'genlik FOR p = 1 TO 10 'periyot CLS PRINT "Periyot:"; p LINE (360, 50)-(0, 50), 7, , 63 FOR x = 0 TO 360 y = 50 + SIN(p * x * pik) * g LINE -(x, y), 10 NEXT SLEEP NEXT Örnek 7: SCREEN 12 CONST pi = 3.141593 VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) CIRCLE (0, 0), .9 DO FOR x = 0 TO 360 STEP 6 LOCATE 1, 1: PRINT x / 6 x2 = SIN(x * pi / 180) * .8 y2 = COS(x * pi / 180) * .8 LINE (0, 0)-(x1, y1), 7 LINE (0, 0)-(x2, y2), 10 x1 = x2 y1 = y2 SLEEP 1 IF INKEY$ = CHR$(27) THEN EXIT DO NEXT LOOP CIRCLE Grafik ekranda verilen yarıçap ve koordinata daire, yay veya elips çizer. Kullanımı: CIRCLE [STEP] (x,y),yarıçap[,[renk][,[başlama][,[bitiş][,en-boy]]]] STEP : Bir önceki nokta 0,0 kabul edilir. Bir önceki nokta yoksa ekranın ortası alınır. yarıçap : Çizilecek daire yarıçap ölçüsü. renk : Çizgi rengi başlama , bitiş : 0 - (2 * pi) arası bir değer girilir. Daire ya da elipsin bir parçasını (yay) çizmek için kullanılır. Verilen değer negatif olursa yayın uç noktaları merkez ile birleştirilir (pasta dilimi) en-boy : varsayılan değeri 1 dir. En boy oranı 1 olduğunda daire çizilir. 1 den farklı değerler ile elips çizilir. Örnek 1: SCREEN 12 CONST pi = 3.14159 CIRCLE STEP(0, 0), 240, 11 CIRCLE (0, 0), 100, 12 CIRCLE (100, 100), 100, 14 CIRCLE (320, 160), 100, 13, , , .5 CIRCLE (320, 330), 100, 14, -pi, -pi / 2 CIRCLE (310, 320), 100, 4, -pi / 2, -pi CIRCLE (320, 90), 80, 15, -2 * pi, -pi CIRCLE (440, 250), 80, 11, -3 * pi / 2, -pi / 2 CIRCLE (440, 250), 100, 13, 3 * pi / 2, pi / 2 Örnek 2: SCREEN 12 CONST pi = 3.14159# FOR n = 0 TO 360 STEP 10 rd = n * pi / 180 x = SIN(rd) * 75 + 320 y = COS(rd) * 75 + 240 CIRCLE (x, y), 150, 12 NEXT Önceki Bölüm: 15: Grafik işlemleri-3 Sonraki Bölüm: 17: Grafik işlemleri-5 QuickBasic Ana Sayfa
Yayınlama: 2000 Güncelleme: 14 Eylül 2021 Bu yazıdaki açıklamalar ve kodlar QuickBasic v4.5 'a göredir. Ekran görüntüleri Microsoft QuickBasic 4.5 programından alınmıştır. Verilen örnek kodlar tarafımdan QuickBasic v4.5 üzerinde yazılıp, çalıştırılıp, denenmiştir. Kodlar büyük oranda QB64'te de çalışmaktadır. QuickBasic Kursu içeriğini 2000 yılında hazırlayıp kişisel web sayfamda yayınladım. 2003 yılında PDF formatına dönüştürdüm. Sonraki tarihlerde sayfalarda güncelleme ve eklemeler yaptım ve yapmaya devam ediyorum. Umarım programlama öğrenmek isteyenlere faydalı olur. Bilgisayar programlama Belirli bir bilgi işlem görevini gerçekleştirmek için bir bilgisayarı tasarlama, oluşturma ve komuta etme sürecidir. Bilgisayarımıza belirli bir görevi yapması için talimat(komut) vermek için belirli bir programlama dilinde bazı kodlar yazmamız gerekir. Günümüzde kullanabileceğimiz çok sayıda programlama dili vardır ancak burada yeni başlayanlar için öğrenmesi kolay dillerden biri olan QuickBASIC programlama dilini kullanacağız. BASIC nedir? BASIC, İngilizce Beginners All-Purpose Symbolic Instruction Code kelimelerinin baş harflerinden oluşmuş bir kelimedir. Genel amaçlı yeni başlayanlar için, öğrenmesi kolay, yüksek seviyeli bir dildir. Yüksek seviyeli dil: Konuşma diline yakın. PYTHON, PASCAL, BASIC, FORTRAN vb. diller. Düşük seviyeli dil: Makine diline yakın. Makine Dili, ASSEMBLY dili. Tarihçe İlk BASIC programlama dilini 1964'te Thomas E. Kurtz ve John G. Kemeny adlı iki matematik ve bilgisayar bilim adamı tasarladı. 1970 ve 1980'lerde BASIC mikrobilgisayarlarda yaygınlaştı. Mikrobilgisayarlar genellikle BASIC ile birlikte, genellikle makinenin ürün yazılımında bulunuyordu. IBM BASIC, Microsoft BASIC, Commodore BASIC, AmigaBASIC, Atari BASIC, Sinclair BASIC vb. İlk kişisel bilgisayarlarda öğrenmesi kolay bir dile sahip olmak, küçük işletme sahiplerinin, profesyonellerin, programlama hobisi olanların ve danışmanların bilgisayarlarında özel yazılımlar geliştirmelerine olanak tanıdı. Qbasic QBasic, GW-BASIC'in yerini almak üzere tasarlandı . Önceki QuickBASIC 4.5 derleyicisine dayanıyordu, ancak QBasic'in derleyici(compiler) ve bağlayıcı(linker) özelliği yoktu. Sürüm 1.0, MS-DOS 5.0 ve sonraki sürümlerin yanı sıra Windows 95 , Windows NT 3.x ve Windows NT 4.0 içinde vardı. IBM, QBasic'i yeniden derledi ve PC DOS 5.x ve OS / 2 2.0'a dahil etti. QuickBasic ile karşılaştırıldığında, QBASIC sınırlı boyuttaki programları çalıştırabilir. QBASIC, QuickLibrary modüllerinin desteğine sahip değildir, yalnızca standart QB.QLB'ye sahiptir. QBasic yalnızca bir program yorumlayıcısı (interpreter) editörüdür. Dosyalar .BAS uzantısında kaydedilir. Yalnızca kaynak kodu çalıştırır, doğrudan çalıştırılabilir dosyalar(.exe) oluşturamaz(compiler). Neden QuickBasic? QuickBasic yerine yeni teknolojileri kullanabilen çok sayıda programlama dili çıkmış ve çıkmaya devam etmektedir. Günümüz bilgisayar teknolojilerinden çok uzak kalmış QuickBasic programlama dili hâlâ neden kullanılır? Çünkü; öğrenmesi kolay ve yeni başlayanlar için tavsiye edilebilir bir dildir. Programlama dili öğretimi için üniversitelerin bazı bölümlerinde başlangıç dili olarak QuickBasic kullanılmaktadır. Programlama yapısı ve mantığı öğrendikten sonra diğer dillere kolaylıkla geçiş yapılabilir. Benim ilk bilgisayarım Commodore 64'tü. Bilgisayar açıldığında BASIC dili editörü ile açılıyordu. O yüzden ilk öğrendiğim programlama dili Commodore BASIC olmuştur. Sonraki kullandığım AMIGA ve PC bilgisayarlarda da BASIC dilini kullanmaya devam ettim. O yüzden benim gibi kişiler için QuickBasic dilinin nostaljik bir yanı var. QuickBasic günümüzde geliştirilmemektedir ancak BASIC dil yapısı kullanılmaya devam etmektedir. Günümüzde MS Visual Studio içinde MS Visual Basic olarak, MS Office programlarının tümünde MS Visual Basic for Application(VBA) olarak, yine AutoCAD ve SolidWorks gibi programlarda da MS Visual Basic for Application olarak bulunmaktadır. Ayrıca, Visual Basic kod temelli VBscript (VBS = Visual Basic Scripting Edition) Windows sisteminde derleyiciye gerek duymadan çalışan script dili olarak, Web tasarımda ise javascripte alternatif olarak kullanılmaktadır. QuickBasic indir Quick Basic 4.5 sürümü veya diğer BASIC sürümleri indirmek için; https://winworldpc.com/product/quickbasic/45 https://www.qbasic.net/en/qbasic-downloads/compiler/qbasic-compiler.htm adreslerine bakınız. Windows 10 üzerinde QuickBasic nasıl çalıştırılır? QuickBasic v4.5 ve onunla üretilen EXE programlar Windows 7, 8 ve 10 altında çalışmamaktadır. Çalıştırabilmek için iki farklı yöntem kullanılabilir: Sanal sistem( VirtualBox veya vmware workstation) kurup onun üzerine DOS, Win 95, Win 98 veya XP kurmak ve kurulu sanal sisteme QuickBasic kurmak, DOSBOX kurup DOS emülatörü üzerine QuickBasic kurmak Alternatif BASIC Editörleri ve Derleyicileri 1) QB64 : Açık kaynak kodlu, ücretsiz, QuickBasic v4.5 uyumlu, yeni ve gelişmiş komutları var. Editör ve derleyicidir. Yorumlayıcı değil. Windows 10 x64 ve x86 üzerinde de çalışıyor. Windows için x64 ve x86 sürümleri var. Ayrıca Windows'dan başka macOS ve Linux işletim sistemleri için de sürümleri var. Web sayfası - QB64 Kaynak kodu 2) FreeBasic : Açık kaynak kodlu, ücretsiz, QuickBasic 4.5 uyumlu ve gelişmiş özelliklere sahip. DOS, Windows ve Linux sürümleri var. Kaynak kodu 3) Borland Turbo Basic 1.x DOS altında çalışıyor. QuickBasic editörünün kullanımı QuickBasic paketini bilgisayarınıza kurduğunuzda; CD komutu ile QuickBasic kurulu klasöre geçin. Örnek: CD C:\QB45 sonra DOS komut satırında QB yazıp ENTER'e bastığınızda karşınıza QuickBASIC kodlarınızı yazmanız için bir editör programı açılır. DOS'un EDIT programına benzer özelliklere sahiptir. Bu programın editör özelliğinin yanında yorumlayıcı(interpreter), derleyici(compiler), bağlayıcı(linker), hata ayıklayıcı(debugger) özellikleri de vardır. Basic kodlarını yazdıktan sonra F5 tuşu ile kodları çalıştırabilirsiniz(Run). Kodların çalışması bitince herhangi bir tuşa basarak, Program hâlâ çalışıyorsa CTRL + PAUSE tuşlarına basarak programın çalışmasını durdurup editöre dönebilirsiniz. (DosBox'da CTRL + SCROLL LOCK) Not: Qbasic kullananlar komut satırında QBASIC yazarak çalıştıracaklar. UYGULAMA: DOS komut satırında QB yazıp enter tuşuna basarak QuickBasic editörünü çalıştırın. Aşağıdaki kodları editöre yazın. CLS 'ekranı siler PRINT "Merhaba Dünya !" Klavyeden F5 tuşuna basarak yazdığımız Basic kodunun çalışmasını sağlayın. Eğer bir sorunla karşılaşmazsanız DOS ekranına geçilecek ve ekranındaki yazılar temizlenecek ve ekranın ilk satırında Merhaba Dünya ! yazacak. En altta ise Press any key to continue (Devam etmek için herhangi bir tuşa basın) yazacak. Editör ekranına dönmek için herhangi bir tuşa basın. Not: ' (ayırma) işaretinden sonra yazılanlar açıklama içindir, yazılmasa da olur. Derleme ve çalıştırma işlemi esnasında kod olarak değerlendirilmez. ' karakteri yerine önceki BASIC sürümlerine uyumluluk için REM komutu da kullanılabilir. QuickBasic'de satır numaraları QuickBasicde satır numaraları şart değildir önceki BASIC sürümlerine uyum olsun diye vardır. Satır numaralarını kullanırsanız; numaraların birbirini takip etmesi ve her satırda olması da şart değildir. QuickBasicde satır numaraları yerine okunurluğu kolaylaştırması için ETİKET kullanılır. Etiketi de sadece hedef olarak gösterilecek satırlara koymak yeterlidir. 10 A = A + 1 20 IF A > 20 THEN GOTO 50 30 PRINT A 40 GOTO 10 50 END Yukarıdaki program kodları yerine; aynı işi yapan, satır numarası vermeden, etiket kullanarak yazılmış hali aşağıda. basla: A = A + 1 IF A > 20 THEN GOTO bitis PRINT A GOTO basla bitis: END Bir satırda birden fazla komut da kullanılabilir. İki komutu ayırmak için : (2 nokta üst üste) kullanılır CLS PRINT "QuickBASIC" PRINT "MERHABA DÜNYA !" Üstteki ile alttaki kodlar aynı işi yapar. Farkı yoktur. CLS : PRINT "QuickBASIC" : PRINT "MERHABA DÜNYA !" PRINT yerine ? (soru işareti) ? "Merhaba Dünya !" PRINT "Merhaba Dünya !" Yukarıdaki iki satır aynı işi yapar. Yazarken ? işareti PRINT komutuna dönüşür. Bundan sonra eminim ki ? işaretini PRINT e tercih edeceksiniz. QuickBasic'de yardım almak QuickBasic in menülerinde HELP bulunur. Menüyü açtığınızda bir yardım ekranı karşınıza gelecek. Ayrıca komutları yazdığımız bölümdeki kelimelerden faydalanarak da yardım alabiliriz. Örneğin kod editörüne OPEN yazın. İmleç(yanıp sönen gösterge) kelime üzerindeyken klavyeden F1 tuşuna bastığınızda karşınıza OPEN komutu hakkında bilgiler içeren yardım ekranı gelir. Burada; Kısa açıklama(QuickSCREEN), Detaylı açıklama(Details), Örnek kodları (Example) görebilirsiniz. Yardım bilgileri İngilizcedir. Pencereler arasında geçiş yapmak için F6 tuşuna basınız. Yeşil renkli oklarla belirtilen bağlantılara(hyperlink) ulaşmak için TAB ve SHIFT + TAB tuşları, Önceki yardım sayfasını açmak için CTRL + F1 Sonraki yardım sayfasını açmak için ALT + F1 Yardım ekranından çıkmak için ESC tuşuna basın. QuickBasic Ana Sayfa Sonraki bölüm: 2: Veri Tipleri
Yayınlama: 2000 Güncelleme: 14 Eylül 2021 Bu yazıdaki açıklamalar ve kodlar QuickBasic v4.5 'a göredir. Ekran görüntüleri Microsoft QuickBasic 4.5 programından alınmıştır. Verilen örnek kodlar tarafımdan QuickBasic v4.5 üzerinde yazılıp, çalıştırılıp, denenmiştir. Kodlar büyük oranda QB64'te de çalışmaktadır. QuickBasic Kursu içeriğini 2000 yılında hazırlayıp kişisel web sayfamda yayınladım. 2003 yılında PDF formatına dönüştürdüm. Sonraki tarihlerde sayfalarda güncelleme ve eklemeler yaptım ve yapmaya devam ediyorum. Umarım programlama öğrenmek isteyenlere faydalı olur. Bilgisayar programlama Belirli bir bilgi işlem görevini gerçekleştirmek için bir bilgisayarı tasarlama, oluşturma ve komuta etme sürecidir. Bilgisayarımıza belirli bir görevi yapması için talimat(komut) vermek için belirli bir programlama dilinde bazı kodlar yazmamız gerekir. Günümüzde kullanabileceğimiz çok sayıda programlama dili vardır ancak burada yeni başlayanlar için öğrenmesi kolay dillerden biri olan QuickBASIC programlama dilini kullanacağız. BASIC nedir? BASIC, İngilizce Beginners All-Purpose Symbolic Instruction Code kelimelerinin baş harflerinden oluşmuş bir kelimedir. Genel amaçlı yeni başlayanlar için, öğrenmesi kolay, yüksek seviyeli bir dildir. Yüksek seviyeli dil: Konuşma diline yakın. PYTHON, PASCAL, BASIC, FORTRAN vb. diller. Düşük seviyeli dil: Makine diline yakın. Makine Dili, ASSEMBLY dili. Tarihçe İlk BASIC programlama dilini 1964'te Thomas E. Kurtz ve John G. Kemeny adlı iki matematik ve bilgisayar bilim adamı tasarladı. 1970 ve 1980'lerde BASIC mikrobilgisayarlarda yaygınlaştı. Mikrobilgisayarlar genellikle BASIC ile birlikte, genellikle makinenin ürün yazılımında bulunuyordu. IBM BASIC, Microsoft BASIC, Commodore BASIC, AmigaBASIC, Atari BASIC, Sinclair BASIC vb. İlk kişisel bilgisayarlarda öğrenmesi kolay bir dile sahip olmak, küçük işletme sahiplerinin, profesyonellerin, programlama hobisi olanların ve danışmanların bilgisayarlarında özel yazılımlar geliştirmelerine olanak tanıdı. Qbasic QBasic, GW-BASIC'in yerini almak üzere tasarlandı . Önceki QuickBASIC 4.5 derleyicisine dayanıyordu, ancak QBasic'in derleyici(compiler) ve bağlayıcı(linker) özelliği yoktu. Sürüm 1.0, MS-DOS 5.0 ve sonraki sürümlerin yanı sıra Windows 95 , Windows NT 3.x ve Windows NT 4.0 içinde vardı. IBM, QBasic'i yeniden derledi ve PC DOS 5.x ve OS / 2 2.0'a dahil etti. QuickBasic ile karşılaştırıldığında, QBASIC sınırlı boyuttaki programları çalıştırabilir. QBASIC, QuickLibrary modüllerinin desteğine sahip değildir, yalnızca standart QB.QLB'ye sahiptir. QBasic yalnızca bir program yorumlayıcısı (interpreter) editörüdür. Dosyalar .BAS uzantısında kaydedilir. Yalnızca kaynak kodu çalıştırır, doğrudan çalıştırılabilir dosyalar(.exe) oluşturamaz(compiler). Neden QuickBasic? QuickBasic yerine yeni teknolojileri kullanabilen çok sayıda programlama dili çıkmış ve çıkmaya devam etmektedir. Günümüz bilgisayar teknolojilerinden çok uzak kalmış QuickBasic programlama dili hâlâ neden kullanılır? Çünkü; öğrenmesi kolay ve yeni başlayanlar için tavsiye edilebilir bir dildir. Programlama dili öğretimi için üniversitelerin bazı bölümlerinde başlangıç dili olarak QuickBasic kullanılmaktadır. Programlama yapısı ve mantığı öğrendikten sonra diğer dillere kolaylıkla geçiş yapılabilir. Benim ilk bilgisayarım Commodore 64'tü. Bilgisayar açıldığında BASIC dili editörü ile açılıyordu. O yüzden ilk öğrendiğim programlama dili Commodore BASIC olmuştur. Sonraki kullandığım AMIGA ve PC bilgisayarlarda da BASIC dilini kullanmaya devam ettim. O yüzden benim gibi kişiler için QuickBasic dilinin nostaljik bir yanı var. QuickBasic günümüzde geliştirilmemektedir ancak BASIC dil yapısı kullanılmaya devam etmektedir. Günümüzde MS Visual Studio içinde MS Visual Basic olarak, MS Office programlarının tümünde MS Visual Basic for Application(VBA) olarak, yine AutoCAD ve SolidWorks gibi programlarda da MS Visual Basic for Application olarak bulunmaktadır. Ayrıca, Visual Basic kod temelli VBscript (VBS = Visual Basic Scripting Edition) Windows sisteminde derleyiciye gerek duymadan çalışan script dili olarak, Web tasarımda ise javascripte alternatif olarak kullanılmaktadır. QuickBasic indir Quick Basic 4.5 sürümü veya diğer BASIC sürümleri indirmek için; https://winworldpc.com/product/quickbasic/45 https://www.qbasic.net/en/qbasic-downloads/compiler/qbasic-compiler.htm adreslerine bakınız. Windows 10 üzerinde QuickBasic nasıl çalıştırılır? QuickBasic v4.5 ve onunla üretilen EXE programlar Windows 7, 8 ve 10 altında çalışmamaktadır. Çalıştırabilmek için iki farklı yöntem kullanılabilir: Sanal sistem( VirtualBox veya vmware workstation) kurup onun üzerine DOS, Win 95, Win 98 veya XP kurmak ve kurulu sanal sisteme QuickBasic kurmak, DOSBOX kurup DOS emülatörü üzerine QuickBasic kurmak Alternatif BASIC Editörleri ve Derleyicileri 1) QB64 : Açık kaynak kodlu, ücretsiz, QuickBasic v4.5 uyumlu, yeni ve gelişmiş komutları var. Editör ve derleyicidir. Yorumlayıcı değil. Windows 10 x64 ve x86 üzerinde de çalışıyor. Windows için x64 ve x86 sürümleri var. Ayrıca Windows'dan başka macOS ve Linux işletim sistemleri için de sürümleri var. Web sayfası - QB64 Kaynak kodu 2) FreeBasic : Açık kaynak kodlu, ücretsiz, QuickBasic 4.5 uyumlu ve gelişmiş özelliklere sahip. DOS, Windows ve Linux sürümleri var. Kaynak kodu 3) Borland Turbo Basic 1.x DOS altında çalışıyor. QuickBasic editörünün kullanımı QuickBasic paketini bilgisayarınıza kurduğunuzda; CD komutu ile QuickBasic kurulu klasöre geçin. Örnek: CD C:\QB45 sonra DOS komut satırında QB yazıp ENTER'e bastığınızda karşınıza QuickBASIC kodlarınızı yazmanız için bir editör programı açılır. DOS'un EDIT programına benzer özelliklere sahiptir. Bu programın editör özelliğinin yanında yorumlayıcı(interpreter), derleyici(compiler), bağlayıcı(linker), hata ayıklayıcı(debugger) özellikleri de vardır. Basic kodlarını yazdıktan sonra F5 tuşu ile kodları çalıştırabilirsiniz(Run). Kodların çalışması bitince herhangi bir tuşa basarak, Program hâlâ çalışıyorsa CTRL + PAUSE tuşlarına basarak programın çalışmasını durdurup editöre dönebilirsiniz. (DosBox'da CTRL + SCROLL LOCK) Not: Qbasic kullananlar komut satırında QBASIC yazarak çalıştıracaklar. UYGULAMA: DOS komut satırında QB yazıp enter tuşuna basarak QuickBasic editörünü çalıştırın. Aşağıdaki kodları editöre yazın. CLS 'ekranı siler PRINT "Merhaba Dünya !" Klavyeden F5 tuşuna basarak yazdığımız Basic kodunun çalışmasını sağlayın. Eğer bir sorunla karşılaşmazsanız DOS ekranına geçilecek ve ekranındaki yazılar temizlenecek ve ekranın ilk satırında Merhaba Dünya ! yazacak. En altta ise Press any key to continue (Devam etmek için herhangi bir tuşa basın) yazacak. Editör ekranına dönmek için herhangi bir tuşa basın. Not: ' (ayırma) işaretinden sonra yazılanlar açıklama içindir, yazılmasa da olur. Derleme ve çalıştırma işlemi esnasında kod olarak değerlendirilmez. ' karakteri yerine önceki BASIC sürümlerine uyumluluk için REM komutu da kullanılabilir. QuickBasic'de satır numaraları QuickBasicde satır numaraları şart değildir önceki BASIC sürümlerine uyum olsun diye vardır. Satır numaralarını kullanırsanız; numaraların birbirini takip etmesi ve her satırda olması da şart değildir. QuickBasicde satır numaraları yerine okunurluğu kolaylaştırması için ETİKET kullanılır. Etiketi de sadece hedef olarak gösterilecek satırlara koymak yeterlidir. 10 A = A + 1 20 IF A > 20 THEN GOTO 50 30 PRINT A 40 GOTO 10 50 END Yukarıdaki program kodları yerine; aynı işi yapan, satır numarası vermeden, etiket kullanarak yazılmış hali aşağıda. basla: A = A + 1 IF A > 20 THEN GOTO bitis PRINT A GOTO basla bitis: END Bir satırda birden fazla komut da kullanılabilir. İki komutu ayırmak için : (2 nokta üst üste) kullanılır CLS PRINT "QuickBASIC" PRINT "MERHABA DÜNYA !" Üstteki ile alttaki kodlar aynı işi yapar. Farkı yoktur. CLS : PRINT "QuickBASIC" : PRINT "MERHABA DÜNYA !" PRINT yerine ? (soru işareti) ? "Merhaba Dünya !" PRINT "Merhaba Dünya !" Yukarıdaki iki satır aynı işi yapar. Yazarken ? işareti PRINT komutuna dönüşür. Bundan sonra eminim ki ? işaretini PRINT e tercih edeceksiniz. QuickBasic'de yardım almak QuickBasic in menülerinde HELP bulunur. Menüyü açtığınızda bir yardım ekranı karşınıza gelecek. Ayrıca komutları yazdığımız bölümdeki kelimelerden faydalanarak da yardım alabiliriz. Örneğin kod editörüne OPEN yazın. İmleç(yanıp sönen gösterge) kelime üzerindeyken klavyeden F1 tuşuna bastığınızda karşınıza OPEN komutu hakkında bilgiler içeren yardım ekranı gelir. Burada; Kısa açıklama(QuickSCREEN), Detaylı açıklama(Details), Örnek kodları (Example) görebilirsiniz. Yardım bilgileri İngilizcedir. Pencereler arasında geçiş yapmak için F6 tuşuna basınız. Yeşil renkli oklarla belirtilen bağlantılara(hyperlink) ulaşmak için TAB ve SHIFT + TAB tuşları, Önceki yardım sayfasını açmak için CTRL + F1 Sonraki yardım sayfasını açmak için ALT + F1 Yardım ekranından çıkmak için ESC tuşuna basın. QuickBasic Ana Sayfa Sonraki bölüm: 2: Veri Tipleri
Yayınlama: 18 Temmuz 2020 PAINT Kullanımı: PAINT [STEP] (x,y)[,[dolgu] [,[çerçeverengi] [,arkaplan]]] Belirtilen dolgu rengi veya deseni ile kapalı şekil içini boyar(doldurur) Doldurma işlemi (x,y) koordinatından başlar. Şekil kapalı değilse taşıp ekranı doldurur. STEP kullanıldığında son çizim konumu 0,0 kabul edilip göreceli koordinat uygulanır. dolgu : Dolgu rengini belirten sayısal değer ya da deseni belirten karakter dizisi olmalıdır. çerçeverengi : Dolgu yapılacak şeklin rengi (sınır çizgi rengi) arkaplan : Sınırın sonlandırılması kontrol edilirken atlanacak "arka plan döşemesi dilimini" veren bir karakter dizisi değeri. Bitişik noktalar boya rengini gösterdiğinde resim sonlandırılır. Arka plan döşemesi dilimi belirtmek, önceden boyanmış bir alanı boyamanıza izin verir. Arka plan belirtilmediğinde varsayılan değer CHR$(0) olur. Desen : 8 bit genişliğinde ve 64 bayta kadar olan bir dolgu deseninin tasarımıdır. Desen dizesinde, her bayt, noktaları koyarken x ekseni boyunca 8 biti maskeler. Bu kutucuk maskesini oluşturmak için sözdizimi şöyledir: PAINT (x,y), CHR$(arg1)+CHR$(arg2)+...+CHR$(argn) CHR$ değişkenleri, desenin x ekseni boyunca ikili biçimde temsil edilen 0 ile 255 arasındaki sayılardır. Bu CHR$ öğelerinden 64'e kadar olabilir; her biri atanan karakterden değil, o karakter için kodun bit düzenlemesinden bir görüntü oluşturur. Örneğin, ondalık sayı 85, ikili sayı olarak 01010101'dir; CHR$(85) tarafından oluşturulan siyah beyaz bir ekrandaki grafik görüntü çizgisi, 1 sayılı noktalar beyaz ve 0 numaralı noktalar siyah olan 8 piksel çizgisidir. Bu durumda ASCII karakteri CHR$(85) in karşılığı olan U gösterilmez. Örnek 1: SCREEN 12 WINDOW (0, 0)-(500, 500) FOR n = 200 TO 5 STEP -5 r = r + 1 IF r = 16 THEN r = 0 CIRCLE (250, 250), n, r PAINT STEP(0, 0), r, r NEXT Örnek 2: 'Code: QB64.org DIM S(1 TO 8) AS STRING SCREEN 12 'kırmızı tuğlalı duvar deseni S(1) = CHR$(0) + CHR$(0) + CHR$(&HFE) + CHR$(&HFE) S(2) = S(1) S(3) = S(1) S(4) = CHR$(0) + CHR$(0) + CHR$(0) + CHR$(0) S(5) = CHR$(0) + CHR$(0) + CHR$(&HEF) + CHR$(&HEF) S(6) = S(5) S(7) = S(5) S(8) = S(4) Desen$ = S(1) + S(2) + S(3) + S(4) + S(5) + S(6) + S(7) + S(8) LINE (60, 120)-(580, 330), 14, B 'sarı çizgi ile dikdörtgen PAINT (320, 240), Desen$, 14 'tuğla deseni ile doldur Örnek 3: '©2020. Mesut Akcan DEFINT A-Z DIM satir AS STRING DIM desen AS STRING 'desen satırları DATA "..1111.." DATA ".111111." DATA ".11..11." DATA ".11..11." DATA "..1111.." DATA "...11..." DATA "111..111" DATA "1..11..1" DATA "1..11..1" DATA ".11..11." DATA "...11..." DATA "........" DATA "---" DO READ satir 'ikili sayı IF satir = "---" THEN EXIT DO s = 0: p = 0 FOR i = 8 TO 1 STEP -1 'ikili sayıyı onlu sayıya dönüştür s = s + VAL(MID$(satir, i, 1)) * 2 ^ p 'onlu sayı p = p + 1 'üssü NEXT desen = desen + CHR$(s) LOOP SCREEN 2 WINDOW (0, 0)-(200, 200) CIRCLE (100, 100), 55, , , , .5 PAINT (100, 100), desen Örnek 4: '©2020 Mesut Akcan DEFINT A-Z DIM desen AS STRING ' desen taslağı (tuğla deseni) ' ...1.... = 16 ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' ...1.... ' 11111111 = 255 ' .......1 = 1 ' .......1 ' .......1 ' .......1 ' .......1 ' .......1 ' 11111111 = 255 ' desen taslağı kod karşılığı desen = CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) desen = desen + CHR$(255) desen = desen + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) desen = desen + CHR$(255) SCREEN 11 WINDOW (-100, -100)-(100, 100) DRAW "TA60 bL180" FOR n = 0 TO 300 STEP 60 DRAW "TA" + STR$(n) + "R180" ' Altıgen çiz NEXT PAINT (0, 0), desen WIDTH Kullanımı: WIDTH [sütun][satır] Ekranın yazı alanın sütun ve satır sayısını değiştirir. SCREEN 0 için: sütun; 80 veya 40; satır; 25, 43 veya 50 olabilir. SCREEN 11 ve 12 için: sütun; 80; satır; 30 veya 60 olabilir. Örnek 1: SCREEN 12 WIDTH 80, 60 FOR i = 1 TO 4720 COLOR INT(RND * 15 + 1) 'COLOR i MOD 10 + 5 PRINT LTRIM$(STR$(i MOD 10)); NEXT Örnek 2: DECLARE SUB yaz (sutun%, satir%) yaz 80, 25 yaz 80, 43 yaz 80, 50 yaz 40, 25 yaz 40, 43 yaz 40, 50 SCREEN 12 yaz 80, 30 yaz 80, 60 DEFINT A-Z SUB yaz (sutun, satir) STATIC r WIDTH sutun, satir r = r + 1 COLOR r + 2 FOR n = 1 TO satir PRINT "Satır:"; n; " Merhaba Dünya !" NEXT SLEEP END SUB Önceki Bölüm: 17: Grafik işlemleri-5 Sonraki Bölüm: 19: Grafik işlemleri-7 QuickBasic Ana Sayfa
Yayınlama: 11 Temmuz 2020 LINE Ekranda belirtilen 2 koordinat noktası arasına çizgi, dikdörtgen veya içi dolu dikdörtgen çizer. Kullanımı: LINE [[STEP] (x1,y1)]-[STEP] (x2,y2) [,[renk][,[B[F]][,stil]]] (x1,y1) : Çizginin başlangıç noktası. (x1,y1) belirtilmediğinde bir önceki komutun aktif noktası alınır. Bir öncesinde nokta ile ilgili bir komut yoksa ekranın orta noktası alınır. SCREEN 12 LINE -(0,0) 'ekranın orta noktasından 0,0 noktasına çizgi çizer (x2,y2) : Çizginin bitiş noktası STEP : Bir önceki çizim komutunun noktası 0,0 noktası olarak referans alınır. Göreceli koordinat sistemi içindir. renk: Çizgi ya da dolgu rengi B : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan dikdörtgeni çizer BF : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan içi renk ile dolu dikdörtgeni çizer. stil : Çizgi stili. Düz, noktalı veya kesik çizgi. BF kullanıldığında stil dikkate alınmaz. Örnek 1: SCREEN 7 CLS LINE (0, 10)-(100, 10), 12 '(0,10) ile (100,10) arası türkuaz çizgi LINE -(50, 60), 13 'x1,y1 belirtilmediği için 'önceki çizginin x2,y2 (100,10) değerleri alındı '(100,10) ile (50,60) arasına kırmızı çizgi LINE -(0, 10), 14 '(50,60) ile (0,10) arasına sarı çizgi Örnek 2: SCREEN 13 LINE (0, 0)-(30, 30), 12 'kırmızı düz çizgi LINE -STEP(100, 60), 1, BF 'mavi içi dolu dikdörtgen LINE -STEP(60, -80), 14, B, 255 ' kesik çizgili sarı dikdörtgen LINE -(130, 130), 11 'türkuaz düz çizgi LINE -(0, 130), 10, , 64 'yeşil noktalı çizgi Örnek 3: SCREEN 12 CONST pi = 3.141593# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR x = 0 TO 360 STEP 3 x2 = SIN(x * pi / 180) y2 = COS(x * pi / 180) LINE (0, 0)-(x2, y2), 10 ' üstteki satırı aşağıdaki satırdaki gibi (0, 0) ı silerek deneyin ' LINE -(x2, y2), 10 NEXT SLEEP Örnek 4: Line ile Çokgen Çizimi 'Polygon SCREEN 12 CONST pi = 3.1415926535# VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR k = 3 TO 12 'kenar sayısı CLS 0 FOR x = 0 TO 360 STEP 360 / k radyan = x * pi / 180 x2 = SIN(radyan) y2 = COS(radyan) IF x = 0 THEN r = 0 ELSE r = 10 LINE -(x2, y2), r NEXT LOCATE 15, 37 PRINT "ÇOKGEN"; k SLEEP NEXT Örnek 5: SCREEN 13 FOR x = 0 TO 319 STEP 5 r = r + 1 LINE (x, 0)-(x + 5, 199), r, BF NEXT Örnek 6: Sinüs Dalgası 'Sinus Wave 'Mesut Akcan. 2020 SCREEN 12 pik = 3.141593# / 180 WINDOW (0, 0)-(360, 100) g = 30 'genlik FOR p = 1 TO 10 'periyot CLS PRINT "Periyot:"; p LINE (360, 50)-(0, 50), 7, , 63 FOR x = 0 TO 360 y = 50 + SIN(p * x * pik) * g LINE -(x, y), 10 NEXT SLEEP NEXT Örnek 7: SCREEN 12 CONST pi = 3.141593 VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) CIRCLE (0, 0), .9 DO FOR x = 0 TO 360 STEP 6 LOCATE 1, 1: PRINT x / 6 x2 = SIN(x * pi / 180) * .8 y2 = COS(x * pi / 180) * .8 LINE (0, 0)-(x1, y1), 7 LINE (0, 0)-(x2, y2), 10 x1 = x2 y1 = y2 SLEEP 1 IF INKEY$ = CHR$(27) THEN EXIT DO NEXT LOOP CIRCLE Grafik ekranda verilen yarıçap ve koordinata daire, yay veya elips çizer. Kullanımı: CIRCLE [STEP] (x,y),yarıçap[,[renk][,[başlama][,[bitiş][,en-boy]]]] STEP : Bir önceki nokta 0,0 kabul edilir. Bir önceki nokta yoksa ekranın ortası alınır. yarıçap : Çizilecek daire yarıçap ölçüsü. renk : Çizgi rengi başlama , bitiş : 0 - (2 * pi) arası bir değer girilir. Daire ya da elipsin bir parçasını (yay) çizmek için kullanılır. Verilen değer negatif olursa yayın uç noktaları merkez ile birleştirilir (pasta dilimi) en-boy : varsayılan değeri 1 dir. En boy oranı 1 olduğunda daire çizilir. 1 den farklı değerler ile elips çizilir. Örnek 1: SCREEN 12 CONST pi = 3.14159 CIRCLE STEP(0, 0), 240, 11 CIRCLE (0, 0), 100, 12 CIRCLE (100, 100), 100, 14 CIRCLE (320, 160), 100, 13, , , .5 CIRCLE (320, 330), 100, 14, -pi, -pi / 2 CIRCLE (310, 320), 100, 4, -pi / 2, -pi CIRCLE (320, 90), 80, 15, -2 * pi, -pi CIRCLE (440, 250), 80, 11, -3 * pi / 2, -pi / 2 CIRCLE (440, 250), 100, 13, 3 * pi / 2, pi / 2 Örnek 2: SCREEN 12 CONST pi = 3.14159# FOR n = 0 TO 360 STEP 10 rd = n * pi / 180 x = SIN(rd) * 75 + 320 y = COS(rd) * 75 + 240 CIRCLE (x, y), 150, 12 NEXT Önceki Bölüm: 15: Grafik işlemleri-3 Sonraki Bölüm: 17: Grafik işlemleri-5 QuickBasic Ana Sayfa
Yayınlama: 25.02.2021 Güncelleme: 03.03.2021 Soru 2: Seviye 1: Satranç tahtası oluşturan kodları yazın. Siyah Kare için X Beyaz kare için _ kullanın. Çıktı _X_X_X_X X_X_X_X_ _X_X_X_X X_X_X_X_ _X_X_X_X X_X_X_X_ _X_X_X_X X_X_X_X_ Seviye 2: SCREEN 13'te Beyaz kareler için CHR$(219), Siyah kareler için " " (boşluk) kullanarak satranç tahtası oluşturun. Çıktı: Seviye 3: SCREEN 13'te karakter yerine çizim komutlarını kullanarak satranç tahtasını oluşturun. Kodlar QuickBasic v4.5 uyumlu olacak. Hedefler: En kısa kodlama, En az değişken ve fonksiyon kullanma En hızlı çalışan kodu yazma. Program Çalışma Süresini Hesaplama Maalesef yarışmanın bir ödülü yok. Kodlarınızı veya kodlarınızın olduğu sayfa linkini yorum kısmına ekleyiniz. Hedefe ulaşan en iyi kod ve kod yazarı bu sayfada yayınlanacak. Online Qbasic IDE Repl.It Qbasic IDE https://repl.it/languages/qbasic JDoodle Online FREE BASIC Compiler IDE CodingGround https://www.tutorialspoint.com/execute_basic_online.php http://www.quitebasic.com Kod paylaşma siteleri QuickBasic Ana Sayfa
If you've always wanted to learn basic programming skills on your personal computer, but weren't sure where to start, here's the book you need. You can satisfy your curiousity about programming and establish excellent programming fundamentals for your future ventures into QuickBASIC or Turbo BASIC.
Yayınlama: 18 Ağustos 2022 Güncelleme: 24 Mart 2023 Hata ayıklama (Dubugging) Programlamada hata nedir? Programlama sürecinde, yazılan kodların beklenen şekilde çalışmamasına hata denir. Bu hatalar, programın istenmeyen şekilde sonlanması, duraklaması, sonsuz döngüye girmesi, yanlış bir işlem yapması veya yanlış sonuçlar üretmesi gibi istenmeyen durumlarla kendini gösterebilir. Bu hatalar genellikle programlama dilinin doğru bir şekilde kullanılmamasından kaynaklanır ve programcıların kodlarını test etmeleri ve hataları düzeltmeleri gereklidir. Yazılım geliştirme sürecinde, programcılar tarafından yapılan hatalara genellikle bug(böcek) denir ve bu hatalar, programın beklenen şekilde çalışmamasına neden olabilir. Bu nedenle, programcıların hataları tespit edip düzeltmeleri önemlidir. Bu sürece genellikle hata ayıklama(debugging) adı verilir. Hata ayıklama, programcıların kodlarını inceleyerek hataları tespit etmelerini ve düzeltmelerini sağlar. Bu süreç, yazılımın daha sağlam ve güvenilir hale gelmesine yardımcı olur. Yazılım hatalarına bug(böcek) denmesinin ilginç bir hikayesi var. İlk bilgisayarlar çok büyük ve karmaşıktı. İçlerinde insanların dahi gezinebileceği kadar genişti ve devre elemanları birbirine kablolarla bağlıydı. Bu nedenle, bir hata oluştuğunda, mühendisler tüm kablo bağlantılarını kontrol etmek için bilgisayarın içine girerek hatayı tespit etmeye çalışıyorlardı. Bir seferinde, bir hata nedeniyle bilgisayar çalışmadığında, mühendisler bağlantıları kontrol ederken bir böcek fark ettiler. Böceğin, bilgisayarın içinde oluşturduğu bir kısa devre, hatalı çalışmaya neden oluyordu. Mühendisler böceği temizledi ve hatayı giderdi. O günden beri, yazılım hatalarına bug denmesi yaygınlaştı. Programcılar, kasıtlı olarak kodlama hataları veya yanlış işlem yapacak kodlama yapmazlar. Ancak, kodlama sürecinde yapılan hatalar, ne kadar uzman olunursa olunsun, farkına varılmadan gerçekleşebilir. Bazen bu hataların sonuçları çok korkunç olabilir. Örneğin, bir banka sistemi kodunda yapılan bir hata, büyük miktarda paranın kaybedilmesine veya müşterilerin hassas bilgilerinin ifşa edilmesine neden olabilir. Bir araba kontrol yazılımındaki bir hata ise, hayatı tehdit eden bir trafik kazasına neden olabilir. Bu nedenle, programcıların, kodlama sürecindeki hataları en aza indirmek için titizlikle çalışmaları gerekmektedir. Hata ayıklama ve test etme işlemleri, yazılımın hatasız çalışmasını sağlamak için önemlidir. Yazılım hataları 5 gruba ayrılır. Sözdizimi Hatası (Syntax Error) Çalışma Zamanı Hatası (Run-time Error) Mantıksal Hata (Logical Error) Derleme Hatası (Compile Error) Bağlama Hatası. (Link Error) 1. Sözdizimi Hataları (Syntax Error) QuickBasic konuşma diline yakın bir dil olduğu için yüksek seviyeli dil grubundadır. QuickBasic dili her ne kadar konuşma diline yakın olsa da komutları konuştuğumuz gibi kullanamıyoruz. Her programlama dilinde olduğu gibi QuickBasic dilinde de komutların ve fonksiyonların kullanımında belli bir yapı ve sözdizimi(syntax) vardır. Kod yazım sırasında oluşan sözdizimi hataları editör tarafından uyarıldığı için fark edilmesi ve düzeltilmesi kolaydır. Bu özelliği kullanmak için menüdeki Options / Syntax Checking seçeneği seçili olmalıdır. Satır içinde yapılan sözdizimi hatası satırdan başka bir satıra geçildiğinde belirtilecektir. Örneğin LOCATE 14,4,0,5 yazdığımızda Expected: end-of-statement (Beklenen: ifadenin sonu) uyarısı gelecek. LOCATE komutu kullanılırken sözdizimi hatası yapıldı. Çünkü en fazla 3 parametre girilmesi gerekiyordu ama 4 parametre girildi. İmleç ile işaretlenen konumda komut tamamlanmalıydı. OK seçildiğinde editöre geçilir. Help ile hata hakkında açıklama gelir. 1. satırdaki hatayı düzelttikten sonra bir hata görmeyeceğiz. Ancak yeni başlayanlar dahi fark edecek ki resimdeki kodlarda FOR komutu NEXT ile tamamlanmamış. Bu hatayı yazım sırasında görmeyeceğiz ancak kodları çalıştırdığımızda FOR without NEXT (NEXTsiz FOR) hatasıyla karşılaşacağız. Bir başka örnek. SCREEN 12 COLOR 4, 14 PRINT "Merhaba" COLOR 4, 14 satırı Illegal function call(geçersiz fonksiyon çağrısı) hatasını oluşturdu. Bu hata yazım sırasında değil çalıştırma sırasında görünür. Bu satırda yazım hatası yok ancak COLOR fonksiyonunun kullanımında hata var. Screen 12'de arkaplan rengi değiştirilemediğinden COLOR komutu 2 parametreli olarak kullanılamaz. Çözüm olarak; COLOR tek parametreli girilebilir ya da SCREEN numarası arkaplan rengini değiştirmeye uygun bir numarayla değiştirilebilir. Örneğin: SCREEN 1 Önceki Bölüm: 27: Program Çalışma Süresini Hesaplama Sonraki Bölüm: 29: Hata ayıklama-2 QuickBasic Ana Sayfa
Yayınlama: 18 Ağustos 2022 Güncelleme: 24 Mart 2023 Hata ayıklama (Dubugging) Programlamada hata nedir? Programlama sürecinde, yazılan kodların beklenen şekilde çalışmamasına hata denir. Bu hatalar, programın istenmeyen şekilde sonlanması, duraklaması, sonsuz döngüye girmesi, yanlış bir işlem yapması veya yanlış sonuçlar üretmesi gibi istenmeyen durumlarla kendini gösterebilir. Bu hatalar genellikle programlama dilinin doğru bir şekilde kullanılmamasından kaynaklanır ve programcıların kodlarını test etmeleri ve hataları düzeltmeleri gereklidir. Yazılım geliştirme sürecinde, programcılar tarafından yapılan hatalara genellikle bug(böcek) denir ve bu hatalar, programın beklenen şekilde çalışmamasına neden olabilir. Bu nedenle, programcıların hataları tespit edip düzeltmeleri önemlidir. Bu sürece genellikle hata ayıklama(debugging) adı verilir. Hata ayıklama, programcıların kodlarını inceleyerek hataları tespit etmelerini ve düzeltmelerini sağlar. Bu süreç, yazılımın daha sağlam ve güvenilir hale gelmesine yardımcı olur. Yazılım hatalarına bug(böcek) denmesinin ilginç bir hikayesi var. İlk bilgisayarlar çok büyük ve karmaşıktı. İçlerinde insanların dahi gezinebileceği kadar genişti ve devre elemanları birbirine kablolarla bağlıydı. Bu nedenle, bir hata oluştuğunda, mühendisler tüm kablo bağlantılarını kontrol etmek için bilgisayarın içine girerek hatayı tespit etmeye çalışıyorlardı. Bir seferinde, bir hata nedeniyle bilgisayar çalışmadığında, mühendisler bağlantıları kontrol ederken bir böcek fark ettiler. Böceğin, bilgisayarın içinde oluşturduğu bir kısa devre, hatalı çalışmaya neden oluyordu. Mühendisler böceği temizledi ve hatayı giderdi. O günden beri, yazılım hatalarına bug denmesi yaygınlaştı. Programcılar, kasıtlı olarak kodlama hataları veya yanlış işlem yapacak kodlama yapmazlar. Ancak, kodlama sürecinde yapılan hatalar, ne kadar uzman olunursa olunsun, farkına varılmadan gerçekleşebilir. Bazen bu hataların sonuçları çok korkunç olabilir. Örneğin, bir banka sistemi kodunda yapılan bir hata, büyük miktarda paranın kaybedilmesine veya müşterilerin hassas bilgilerinin ifşa edilmesine neden olabilir. Bir araba kontrol yazılımındaki bir hata ise, hayatı tehdit eden bir trafik kazasına neden olabilir. Bu nedenle, programcıların, kodlama sürecindeki hataları en aza indirmek için titizlikle çalışmaları gerekmektedir. Hata ayıklama ve test etme işlemleri, yazılımın hatasız çalışmasını sağlamak için önemlidir. Yazılım hataları 5 gruba ayrılır. Sözdizimi Hatası (Syntax Error) Çalışma Zamanı Hatası (Run-time Error) Mantıksal Hata (Logical Error) Derleme Hatası (Compile Error) Bağlama Hatası. (Link Error) 1. Sözdizimi Hataları (Syntax Error) QuickBasic konuşma diline yakın bir dil olduğu için yüksek seviyeli dil grubundadır. QuickBasic dili her ne kadar konuşma diline yakın olsa da komutları konuştuğumuz gibi kullanamıyoruz. Her programlama dilinde olduğu gibi QuickBasic dilinde de komutların ve fonksiyonların kullanımında belli bir yapı ve sözdizimi(syntax) vardır. Kod yazım sırasında oluşan sözdizimi hataları editör tarafından uyarıldığı için fark edilmesi ve düzeltilmesi kolaydır. Bu özelliği kullanmak için menüdeki Options / Syntax Checking seçeneği seçili olmalıdır. Satır içinde yapılan sözdizimi hatası satırdan başka bir satıra geçildiğinde belirtilecektir. Örneğin LOCATE 14,4,0,5 yazdığımızda Expected: end-of-statement (Beklenen: ifadenin sonu) uyarısı gelecek. LOCATE komutu kullanılırken sözdizimi hatası yapıldı. Çünkü en fazla 3 parametre girilmesi gerekiyordu ama 4 parametre girildi. İmleç ile işaretlenen konumda komut tamamlanmalıydı. OK seçildiğinde editöre geçilir. Help ile hata hakkında açıklama gelir. 1. satırdaki hatayı düzelttikten sonra bir hata görmeyeceğiz. Ancak yeni başlayanlar dahi fark edecek ki resimdeki kodlarda FOR komutu NEXT ile tamamlanmamış. Bu hatayı yazım sırasında görmeyeceğiz ancak kodları çalıştırdığımızda FOR without NEXT (NEXTsiz FOR) hatasıyla karşılaşacağız. Bir başka örnek. SCREEN 12 COLOR 4, 14 PRINT "Merhaba" COLOR 4, 14 satırı Illegal function call(geçersiz fonksiyon çağrısı) hatasını oluşturdu. Bu hata yazım sırasında değil çalıştırma sırasında görünür. Bu satırda yazım hatası yok ancak COLOR fonksiyonunun kullanımında hata var. Screen 12'de arkaplan rengi değiştirilemediğinden COLOR komutu 2 parametreli olarak kullanılamaz. Çözüm olarak; COLOR tek parametreli girilebilir ya da SCREEN numarası arkaplan rengini değiştirmeye uygun bir numarayla değiştirilebilir. Örneğin: SCREEN 1 Önceki Bölüm: 27: Program Çalışma Süresini Hesaplama Sonraki Bölüm: 29: Hata ayıklama-2 QuickBasic Ana Sayfa
Yayınlama: 18 Ağustos 2022 Güncelleme: 24 Mart 2023 Hata ayıklama (Dubugging) Programlamada hata nedir? Programlama sürecinde, yazılan kodların beklenen şekilde çalışmamasına hata denir. Bu hatalar, programın istenmeyen şekilde sonlanması, duraklaması, sonsuz döngüye girmesi, yanlış bir işlem yapması veya yanlış sonuçlar üretmesi gibi istenmeyen durumlarla kendini gösterebilir. Bu hatalar genellikle programlama dilinin doğru bir şekilde kullanılmamasından kaynaklanır ve programcıların kodlarını test etmeleri ve hataları düzeltmeleri gereklidir. Yazılım geliştirme sürecinde, programcılar tarafından yapılan hatalara genellikle bug(böcek) denir ve bu hatalar, programın beklenen şekilde çalışmamasına neden olabilir. Bu nedenle, programcıların hataları tespit edip düzeltmeleri önemlidir. Bu sürece genellikle hata ayıklama(debugging) adı verilir. Hata ayıklama, programcıların kodlarını inceleyerek hataları tespit etmelerini ve düzeltmelerini sağlar. Bu süreç, yazılımın daha sağlam ve güvenilir hale gelmesine yardımcı olur. Yazılım hatalarına bug(böcek) denmesinin ilginç bir hikayesi var. İlk bilgisayarlar çok büyük ve karmaşıktı. İçlerinde insanların dahi gezinebileceği kadar genişti ve devre elemanları birbirine kablolarla bağlıydı. Bu nedenle, bir hata oluştuğunda, mühendisler tüm kablo bağlantılarını kontrol etmek için bilgisayarın içine girerek hatayı tespit etmeye çalışıyorlardı. Bir seferinde, bir hata nedeniyle bilgisayar çalışmadığında, mühendisler bağlantıları kontrol ederken bir böcek fark ettiler. Böceğin, bilgisayarın içinde oluşturduğu bir kısa devre, hatalı çalışmaya neden oluyordu. Mühendisler böceği temizledi ve hatayı giderdi. O günden beri, yazılım hatalarına bug denmesi yaygınlaştı. Programcılar, kasıtlı olarak kodlama hataları veya yanlış işlem yapacak kodlama yapmazlar. Ancak, kodlama sürecinde yapılan hatalar, ne kadar uzman olunursa olunsun, farkına varılmadan gerçekleşebilir. Bazen bu hataların sonuçları çok korkunç olabilir. Örneğin, bir banka sistemi kodunda yapılan bir hata, büyük miktarda paranın kaybedilmesine veya müşterilerin hassas bilgilerinin ifşa edilmesine neden olabilir. Bir araba kontrol yazılımındaki bir hata ise, hayatı tehdit eden bir trafik kazasına neden olabilir. Bu nedenle, programcıların, kodlama sürecindeki hataları en aza indirmek için titizlikle çalışmaları gerekmektedir. Hata ayıklama ve test etme işlemleri, yazılımın hatasız çalışmasını sağlamak için önemlidir. Yazılım hataları 5 gruba ayrılır. Sözdizimi Hatası (Syntax Error) Çalışma Zamanı Hatası (Run-time Error) Mantıksal Hata (Logical Error) Derleme Hatası (Compile Error) Bağlama Hatası. (Link Error) 1. Sözdizimi Hataları (Syntax Error) QuickBasic konuşma diline yakın bir dil olduğu için yüksek seviyeli dil grubundadır. QuickBasic dili her ne kadar konuşma diline yakın olsa da komutları konuştuğumuz gibi kullanamıyoruz. Her programlama dilinde olduğu gibi QuickBasic dilinde de komutların ve fonksiyonların kullanımında belli bir yapı ve sözdizimi(syntax) vardır. Kod yazım sırasında oluşan sözdizimi hataları editör tarafından uyarıldığı için fark edilmesi ve düzeltilmesi kolaydır. Bu özelliği kullanmak için menüdeki Options / Syntax Checking seçeneği seçili olmalıdır. Satır içinde yapılan sözdizimi hatası satırdan başka bir satıra geçildiğinde belirtilecektir. Örneğin LOCATE 14,4,0,5 yazdığımızda Expected: end-of-statement (Beklenen: ifadenin sonu) uyarısı gelecek. LOCATE komutu kullanılırken sözdizimi hatası yapıldı. Çünkü en fazla 3 parametre girilmesi gerekiyordu ama 4 parametre girildi. İmleç ile işaretlenen konumda komut tamamlanmalıydı. OK seçildiğinde editöre geçilir. Help ile hata hakkında açıklama gelir. 1. satırdaki hatayı düzelttikten sonra bir hata görmeyeceğiz. Ancak yeni başlayanlar dahi fark edecek ki resimdeki kodlarda FOR komutu NEXT ile tamamlanmamış. Bu hatayı yazım sırasında görmeyeceğiz ancak kodları çalıştırdığımızda FOR without NEXT (NEXTsiz FOR) hatasıyla karşılaşacağız. Bir başka örnek. SCREEN 12 COLOR 4, 14 PRINT "Merhaba" COLOR 4, 14 satırı Illegal function call(geçersiz fonksiyon çağrısı) hatasını oluşturdu. Bu hata yazım sırasında değil çalıştırma sırasında görünür. Bu satırda yazım hatası yok ancak COLOR fonksiyonunun kullanımında hata var. Screen 12'de arkaplan rengi değiştirilemediğinden COLOR komutu 2 parametreli olarak kullanılamaz. Çözüm olarak; COLOR tek parametreli girilebilir ya da SCREEN numarası arkaplan rengini değiştirmeye uygun bir numarayla değiştirilebilir. Örneğin: SCREEN 1 Önceki Bölüm: 27: Program Çalışma Süresini Hesaplama Sonraki Bölüm: 29: Hata ayıklama-2 QuickBasic Ana Sayfa
Yayınlama: 25 Mart 2023 2. Çalışma Zamanı Hataları (Run-time Error) Program kodlarının doğru göründüğü ancak çalıştırılması sırasında karşılaşılan hatalardır. Programcının ele almadığı bir takım aykırı durumlar ortaya çıktığında programın işletim sistemi tarafından kesilmesi ile ortaya çıkar. Bu tip hatalarda hata mesajı çoğunlukla çalışan işletim sisteminin dili ile verilir. Eğer bu tip hataları kullanıcı ele almışsa, program programcının vereceği mesajlarla ve uygun şekilde sonlandırılabilir. Bu tip hataların nerelerde ve hangi şartlarda ortaya çıkabileceğini bazen kestirmek zor olabilir. Bazı yaygın çalışma zamanı hataları şunlardır: a) Bellek Hataları: Bellek hataları, programın belleğe yanlış bir şekilde erişmesi veya belleği yanlış kullanması sonucu oluşur. Bu hatalar, bellek sınırlarının aşılması, bellek sızıntıları veya bellek yönetimi hataları gibi nedenlerden kaynaklanabilir. Örnek: DEFINT A-Z DIM personel(40200) Bu kodlar çalıştırıldığında Overflow (taşma) hatası oluşturacaktır. Çünkü QuickBasic dilinde bir dizi değişkenin eleman sayısı, dizi değişken boyutuna bağlı olarak belirlenen sınırların üzerinde olamaz. Bir dizi değişken elaman sayısı da dikkate alınarak bellekte en fazla 64K (65535 bayt) yer kaplayabilir. INTEGER değişkenin her bir elemanı bellekte 2 bayt yer kapladığı için azami eleman sayısı 65535/2 = 32767 LONG ve SINGLE değişkenin her bir elemanı bellekte 4 bayt yer kapladığı için azami eleman sayısı 65535/4 = 16383 DOUBLE değişkenin her bir elemanı bellekte 8 bayt yer kapladığı için azami eleman sayısı 65535/4 = 8191 Not: Sayıların 1 eksik olmasının sebebi 0 ile başlamasından dolayıdır. Önceki örnekte INTEGER değişkene 32767'den daha büyük bir değer girildiği için hata oluştu. Detay için QuickBasic programında Yardım / Contents / Data types ve Yardım / Contents / Limits to QuickBasic / Arrays sayfalarına bakınız. b) Bölme Hatası: Bir sayıyı sıfıra bölmeye çalıştığınızda ortaya çıkar. Bu hata, bir programın çalışmasını durdurur ve Division by zero(Sıfıra bölünme) hata mesajı verir. Örnek: DEFINT A-Z a = 3 * 2 - 6PRINT 5 / a Kodlar çalıştırıldığında 3. satırda 5 rakamı sıfıra bölündüğü için Division by zero hatası oluşacaktır. Hataları kontrol altına almak için ON ERROR kullanılabilir. Aşağıdaki gibi. DEFINT A-Z ON ERROR GOTO hata 'Herhangi bir hata olursa hata satırına git a = 3 * 2 - 6 ' a=0 PRINT 5 / a ' 5/0 a = 32768 PRINT "-Program sonu-" END hata: IF ERR = 11 THEN PRINT "Sayı sıfıra bölünemez" ELSEIF ERR = 6 THEN PRINT "Taşma hatası" ELSE PRINT "Bilinmeyen hata!" END IF RESUME NEXT 'Sonraki satırdan devam et c) Dosya İşleme Hataları: Dosya işleme hataları, dosyaları açarken, okurken veya yazarken ortaya çıkan hatalardır. Bu hatalar, dosyanın bulunamaması, dosyanın okunamaması veya dosyaya yazma izni olmaması gibi nedenlerden kaynaklanabilir. d) Veri Tipi Hataları: Veri tipi hataları, bir değişkenin beklenen veri tipine sahip olmadığı durumlarda ortaya çıkar. Örneğin, bir sayı değişkenine bir dize atamaya çalışmak gibi. Örnek: DIM a AS INTEGER, b AS STRING a = "Merhaba" b = 2023 2. ve 3 satırlar Type Mismatch (Tür uyuşmazlığı) hatası verecektir. e) Fonksiyon Hataları: Bir fonksiyonun beklenen sonucu üretememesi veya fonksiyonun yanlış kullanılması sonucu oluşur. Örnek: Aşağıdaki programda hata kontrolü yapılmadığı için sayı girişinde negatif bir sayı veya 12'den büyük bir sayı girildiğinde hata oluşturacak ve fonksiyon sonuç üretmeyecektir. DEFLNG A-Z CLS : PRINT "Faktoriyel Hesaplama" INPUT "Bir sayı girin: "; num sonuc = Factorial(num) PRINT num; "! = "; sonuc FUNCTION Factorial (n) IF n = 0 THEN Factorial = 1 ELSE Factorial = n * Factorial(n - 1) END IF END FUNCTION Önceki Bölüm: 28: Hata ayıklama-1 ...: QuickBasic Ana Sayfa
Yayınlama: 2000 Güncelleme: 14 Eylül 2021 Bu yazıdaki açıklamalar ve kodlar QuickBasic v4.5 'a göredir. Ekran görüntüleri Microsoft QuickBasic 4.5 programından alınmıştır. Verilen örnek kodlar tarafımdan QuickBasic v4.5 üzerinde yazılıp, çalıştırılıp, denenmiştir. Kodlar büyük oranda QB64'te de çalışmaktadır. QuickBasic Kursu içeriğini 2000 yılında hazırlayıp kişisel web sayfamda yayınladım. 2003 yılında PDF formatına dönüştürdüm. Sonraki tarihlerde sayfalarda güncelleme ve eklemeler yaptım ve yapmaya devam ediyorum. Umarım programlama öğrenmek isteyenlere faydalı olur. Bilgisayar programlama Belirli bir bilgi işlem görevini gerçekleştirmek için bir bilgisayarı tasarlama, oluşturma ve komuta etme sürecidir. Bilgisayarımıza belirli bir görevi yapması için talimat(komut) vermek için belirli bir programlama dilinde bazı kodlar yazmamız gerekir. Günümüzde kullanabileceğimiz çok sayıda programlama dili vardır ancak burada yeni başlayanlar için öğrenmesi kolay dillerden biri olan QuickBASIC programlama dilini kullanacağız. BASIC nedir? BASIC, İngilizce Beginners All-Purpose Symbolic Instruction Code kelimelerinin baş harflerinden oluşmuş bir kelimedir. Genel amaçlı yeni başlayanlar için, öğrenmesi kolay, yüksek seviyeli bir dildir. Yüksek seviyeli dil: Konuşma diline yakın. PYTHON, PASCAL, BASIC, FORTRAN vb. diller. Düşük seviyeli dil: Makine diline yakın. Makine Dili, ASSEMBLY dili. Tarihçe İlk BASIC programlama dilini 1964'te Thomas E. Kurtz ve John G. Kemeny adlı iki matematik ve bilgisayar bilim adamı tasarladı. 1970 ve 1980'lerde BASIC mikrobilgisayarlarda yaygınlaştı. Mikrobilgisayarlar genellikle BASIC ile birlikte, genellikle makinenin ürün yazılımında bulunuyordu. IBM BASIC, Microsoft BASIC, Commodore BASIC, AmigaBASIC, Atari BASIC, Sinclair BASIC vb. İlk kişisel bilgisayarlarda öğrenmesi kolay bir dile sahip olmak, küçük işletme sahiplerinin, profesyonellerin, programlama hobisi olanların ve danışmanların bilgisayarlarında özel yazılımlar geliştirmelerine olanak tanıdı. Qbasic QBasic, GW-BASIC'in yerini almak üzere tasarlandı . Önceki QuickBASIC 4.5 derleyicisine dayanıyordu, ancak QBasic'in derleyici(compiler) ve bağlayıcı(linker) özelliği yoktu. Sürüm 1.0, MS-DOS 5.0 ve sonraki sürümlerin yanı sıra Windows 95 , Windows NT 3.x ve Windows NT 4.0 içinde vardı. IBM, QBasic'i yeniden derledi ve PC DOS 5.x ve OS / 2 2.0'a dahil etti. QuickBasic ile karşılaştırıldığında, QBASIC sınırlı boyuttaki programları çalıştırabilir. QBASIC, QuickLibrary modüllerinin desteğine sahip değildir, yalnızca standart QB.QLB'ye sahiptir. QBasic yalnızca bir program yorumlayıcısı (interpreter) editörüdür. Dosyalar .BAS uzantısında kaydedilir. Yalnızca kaynak kodu çalıştırır, doğrudan çalıştırılabilir dosyalar(.exe) oluşturamaz(compiler). Neden QuickBasic? QuickBasic yerine yeni teknolojileri kullanabilen çok sayıda programlama dili çıkmış ve çıkmaya devam etmektedir. Günümüz bilgisayar teknolojilerinden çok uzak kalmış QuickBasic programlama dili hâlâ neden kullanılır? Çünkü; öğrenmesi kolay ve yeni başlayanlar için tavsiye edilebilir bir dildir. Programlama dili öğretimi için üniversitelerin bazı bölümlerinde başlangıç dili olarak QuickBasic kullanılmaktadır. Programlama yapısı ve mantığı öğrendikten sonra diğer dillere kolaylıkla geçiş yapılabilir. Benim ilk bilgisayarım Commodore 64'tü. Bilgisayar açıldığında BASIC dili editörü ile açılıyordu. O yüzden ilk öğrendiğim programlama dili Commodore BASIC olmuştur. Sonraki kullandığım AMIGA ve PC bilgisayarlarda da BASIC dilini kullanmaya devam ettim. O yüzden benim gibi kişiler için QuickBasic dilinin nostaljik bir yanı var. QuickBasic günümüzde geliştirilmemektedir ancak BASIC dil yapısı kullanılmaya devam etmektedir. Günümüzde MS Visual Studio içinde MS Visual Basic olarak, MS Office programlarının tümünde MS Visual Basic for Application(VBA) olarak, yine AutoCAD ve SolidWorks gibi programlarda da MS Visual Basic for Application olarak bulunmaktadır. Ayrıca, Visual Basic kod temelli VBscript (VBS = Visual Basic Scripting Edition) Windows sisteminde derleyiciye gerek duymadan çalışan script dili olarak, Web tasarımda ise javascripte alternatif olarak kullanılmaktadır. QuickBasic indir Quick Basic 4.5 sürümü veya diğer BASIC sürümleri indirmek için; https://winworldpc.com/product/quickbasic/45 https://www.qbasic.net/en/qbasic-downloads/compiler/qbasic-compiler.htm adreslerine bakınız. Windows 10 üzerinde QuickBasic nasıl çalıştırılır? QuickBasic v4.5 ve onunla üretilen EXE programlar Windows 7, 8 ve 10 altında çalışmamaktadır. Çalıştırabilmek için iki farklı yöntem kullanılabilir: Sanal sistem( VirtualBox veya vmware workstation) kurup onun üzerine DOS, Win 95, Win 98 veya XP kurmak ve kurulu sanal sisteme QuickBasic kurmak, DOSBOX kurup DOS emülatörü üzerine QuickBasic kurmak Alternatif BASIC Editörleri ve Derleyicileri 1) QB64 : Açık kaynak kodlu, ücretsiz, QuickBasic v4.5 uyumlu, yeni ve gelişmiş komutları var. Editör ve derleyicidir. Yorumlayıcı değil. Windows 10 x64 ve x86 üzerinde de çalışıyor. Windows için x64 ve x86 sürümleri var. Ayrıca Windows'dan başka macOS ve Linux işletim sistemleri için de sürümleri var. Web sayfası - QB64 Kaynak kodu 2) FreeBasic : Açık kaynak kodlu, ücretsiz, QuickBasic 4.5 uyumlu ve gelişmiş özelliklere sahip. DOS, Windows ve Linux sürümleri var. Kaynak kodu 3) Borland Turbo Basic 1.x DOS altında çalışıyor. QuickBasic editörünün kullanımı QuickBasic paketini bilgisayarınıza kurduğunuzda; CD komutu ile QuickBasic kurulu klasöre geçin. Örnek: CD C:\QB45 sonra DOS komut satırında QB yazıp ENTER'e bastığınızda karşınıza QuickBASIC kodlarınızı yazmanız için bir editör programı açılır. DOS'un EDIT programına benzer özelliklere sahiptir. Bu programın editör özelliğinin yanında yorumlayıcı(interpreter), derleyici(compiler), bağlayıcı(linker), hata ayıklayıcı(debugger) özellikleri de vardır. Basic kodlarını yazdıktan sonra F5 tuşu ile kodları çalıştırabilirsiniz(Run). Kodların çalışması bitince herhangi bir tuşa basarak, Program hâlâ çalışıyorsa CTRL + PAUSE tuşlarına basarak programın çalışmasını durdurup editöre dönebilirsiniz. (DosBox'da CTRL + SCROLL LOCK) Not: Qbasic kullananlar komut satırında QBASIC yazarak çalıştıracaklar. UYGULAMA: DOS komut satırında QB yazıp enter tuşuna basarak QuickBasic editörünü çalıştırın. Aşağıdaki kodları editöre yazın. CLS 'ekranı siler PRINT "Merhaba Dünya !" Klavyeden F5 tuşuna basarak yazdığımız Basic kodunun çalışmasını sağlayın. Eğer bir sorunla karşılaşmazsanız DOS ekranına geçilecek ve ekranındaki yazılar temizlenecek ve ekranın ilk satırında Merhaba Dünya ! yazacak. En altta ise Press any key to continue (Devam etmek için herhangi bir tuşa basın) yazacak. Editör ekranına dönmek için herhangi bir tuşa basın. Not: ' (ayırma) işaretinden sonra yazılanlar açıklama içindir, yazılmasa da olur. Derleme ve çalıştırma işlemi esnasında kod olarak değerlendirilmez. ' karakteri yerine önceki BASIC sürümlerine uyumluluk için REM komutu da kullanılabilir. QuickBasic'de satır numaraları QuickBasicde satır numaraları şart değildir önceki BASIC sürümlerine uyum olsun diye vardır. Satır numaralarını kullanırsanız; numaraların birbirini takip etmesi ve her satırda olması da şart değildir. QuickBasicde satır numaraları yerine okunurluğu kolaylaştırması için ETİKET kullanılır. Etiketi de sadece hedef olarak gösterilecek satırlara koymak yeterlidir. 10 A = A + 1 20 IF A > 20 THEN GOTO 50 30 PRINT A 40 GOTO 10 50 END Yukarıdaki program kodları yerine; aynı işi yapan, satır numarası vermeden, etiket kullanarak yazılmış hali aşağıda. basla: A = A + 1 IF A > 20 THEN GOTO bitis PRINT A GOTO basla bitis: END Bir satırda birden fazla komut da kullanılabilir. İki komutu ayırmak için : (2 nokta üst üste) kullanılır CLS PRINT "QuickBASIC" PRINT "MERHABA DÜNYA !" Üstteki ile alttaki kodlar aynı işi yapar. Farkı yoktur. CLS : PRINT "QuickBASIC" : PRINT "MERHABA DÜNYA !" PRINT yerine ? (soru işareti) ? "Merhaba Dünya !" PRINT "Merhaba Dünya !" Yukarıdaki iki satır aynı işi yapar. Yazarken ? işareti PRINT komutuna dönüşür. Bundan sonra eminim ki ? işaretini PRINT e tercih edeceksiniz. QuickBasic'de yardım almak QuickBasic in menülerinde HELP bulunur. Menüyü açtığınızda bir yardım ekranı karşınıza gelecek. Ayrıca komutları yazdığımız bölümdeki kelimelerden faydalanarak da yardım alabiliriz. Örneğin kod editörüne OPEN yazın. İmleç(yanıp sönen gösterge) kelime üzerindeyken klavyeden F1 tuşuna bastığınızda karşınıza OPEN komutu hakkında bilgiler içeren yardım ekranı gelir. Burada; Kısa açıklama(QuickSCREEN), Detaylı açıklama(Details), Örnek kodları (Example) görebilirsiniz. Yardım bilgileri İngilizcedir. Pencereler arasında geçiş yapmak için F6 tuşuna basınız. Yeşil renkli oklarla belirtilen bağlantılara(hyperlink) ulaşmak için TAB ve SHIFT + TAB tuşları, Önceki yardım sayfasını açmak için CTRL + F1 Sonraki yardım sayfasını açmak için ALT + F1 Yardım ekranından çıkmak için ESC tuşuna basın. QuickBasic Ana Sayfa Sonraki bölüm: 2: Veri Tipleri
Yayınlama: 18 Ağustos 2022 Güncelleme: 24 Mart 2023 Hata ayıklama (Dubugging) Programlamada hata nedir? Programlama sürecinde, yazılan kodların beklenen şekilde çalışmamasına hata denir. Bu hatalar, programın istenmeyen şekilde sonlanması, duraklaması, sonsuz döngüye girmesi, yanlış bir işlem yapması veya yanlış sonuçlar üretmesi gibi istenmeyen durumlarla kendini gösterebilir. Bu hatalar genellikle programlama dilinin doğru bir şekilde kullanılmamasından kaynaklanır ve programcıların kodlarını test etmeleri ve hataları düzeltmeleri gereklidir. Yazılım geliştirme sürecinde, programcılar tarafından yapılan hatalara genellikle bug(böcek) denir ve bu hatalar, programın beklenen şekilde çalışmamasına neden olabilir. Bu nedenle, programcıların hataları tespit edip düzeltmeleri önemlidir. Bu sürece genellikle hata ayıklama(debugging) adı verilir. Hata ayıklama, programcıların kodlarını inceleyerek hataları tespit etmelerini ve düzeltmelerini sağlar. Bu süreç, yazılımın daha sağlam ve güvenilir hale gelmesine yardımcı olur. Yazılım hatalarına bug(böcek) denmesinin ilginç bir hikayesi var. İlk bilgisayarlar çok büyük ve karmaşıktı. İçlerinde insanların dahi gezinebileceği kadar genişti ve devre elemanları birbirine kablolarla bağlıydı. Bu nedenle, bir hata oluştuğunda, mühendisler tüm kablo bağlantılarını kontrol etmek için bilgisayarın içine girerek hatayı tespit etmeye çalışıyorlardı. Bir seferinde, bir hata nedeniyle bilgisayar çalışmadığında, mühendisler bağlantıları kontrol ederken bir böcek fark ettiler. Böceğin, bilgisayarın içinde oluşturduğu bir kısa devre, hatalı çalışmaya neden oluyordu. Mühendisler böceği temizledi ve hatayı giderdi. O günden beri, yazılım hatalarına bug denmesi yaygınlaştı. Programcılar, kasıtlı olarak kodlama hataları veya yanlış işlem yapacak kodlama yapmazlar. Ancak, kodlama sürecinde yapılan hatalar, ne kadar uzman olunursa olunsun, farkına varılmadan gerçekleşebilir. Bazen bu hataların sonuçları çok korkunç olabilir. Örneğin, bir banka sistemi kodunda yapılan bir hata, büyük miktarda paranın kaybedilmesine veya müşterilerin hassas bilgilerinin ifşa edilmesine neden olabilir. Bir araba kontrol yazılımındaki bir hata ise, hayatı tehdit eden bir trafik kazasına neden olabilir. Bu nedenle, programcıların, kodlama sürecindeki hataları en aza indirmek için titizlikle çalışmaları gerekmektedir. Hata ayıklama ve test etme işlemleri, yazılımın hatasız çalışmasını sağlamak için önemlidir. Yazılım hataları 5 gruba ayrılır. Sözdizimi Hatası (Syntax Error) Çalışma Zamanı Hatası (Run-time Error) Mantıksal Hata (Logical Error) Derleme Hatası (Compile Error) Bağlama Hatası. (Link Error) 1. Sözdizimi Hataları (Syntax Error) QuickBasic konuşma diline yakın bir dil olduğu için yüksek seviyeli dil grubundadır. QuickBasic dili her ne kadar konuşma diline yakın olsa da komutları konuştuğumuz gibi kullanamıyoruz. Her programlama dilinde olduğu gibi QuickBasic dilinde de komutların ve fonksiyonların kullanımında belli bir yapı ve sözdizimi(syntax) vardır. Kod yazım sırasında oluşan sözdizimi hataları editör tarafından uyarıldığı için fark edilmesi ve düzeltilmesi kolaydır. Bu özelliği kullanmak için menüdeki Options / Syntax Checking seçeneği seçili olmalıdır. Satır içinde yapılan sözdizimi hatası satırdan başka bir satıra geçildiğinde belirtilecektir. Örneğin LOCATE 14,4,0,5 yazdığımızda Expected: end-of-statement (Beklenen: ifadenin sonu) uyarısı gelecek. LOCATE komutu kullanılırken sözdizimi hatası yapıldı. Çünkü en fazla 3 parametre girilmesi gerekiyordu ama 4 parametre girildi. İmleç ile işaretlenen konumda komut tamamlanmalıydı. OK seçildiğinde editöre geçilir. Help ile hata hakkında açıklama gelir. 1. satırdaki hatayı düzelttikten sonra bir hata görmeyeceğiz. Ancak yeni başlayanlar dahi fark edecek ki resimdeki kodlarda FOR komutu NEXT ile tamamlanmamış. Bu hatayı yazım sırasında görmeyeceğiz ancak kodları çalıştırdığımızda FOR without NEXT (NEXTsiz FOR) hatasıyla karşılaşacağız. Bir başka örnek. SCREEN 12 COLOR 4, 14 PRINT "Merhaba" COLOR 4, 14 satırı Illegal function call(geçersiz fonksiyon çağrısı) hatasını oluşturdu. Bu hata yazım sırasında değil çalıştırma sırasında görünür. Bu satırda yazım hatası yok ancak COLOR fonksiyonunun kullanımında hata var. Screen 12'de arkaplan rengi değiştirilemediğinden COLOR komutu 2 parametreli olarak kullanılamaz. Çözüm olarak; COLOR tek parametreli girilebilir ya da SCREEN numarası arkaplan rengini değiştirmeye uygun bir numarayla değiştirilebilir. Örneğin: SCREEN 1 Önceki Bölüm: 27: Program Çalışma Süresini Hesaplama Sonraki Bölüm: 29: Hata ayıklama-2 QuickBasic Ana Sayfa
Yayınlama: 2000 Güncelleme: 14 Eylül 2021 Bu yazıdaki açıklamalar ve kodlar QuickBasic v4.5 'a göredir. Ekran görüntüleri Microsoft QuickBasic 4.5 programından alınmıştır. Verilen örnek kodlar tarafımdan QuickBasic v4.5 üzerinde yazılıp, çalıştırılıp, denenmiştir. Kodlar büyük oranda QB64'te de çalışmaktadır. QuickBasic Kursu içeriğini 2000 yılında hazırlayıp kişisel web sayfamda yayınladım. 2003 yılında PDF formatına dönüştürdüm. Sonraki tarihlerde sayfalarda güncelleme ve eklemeler yaptım ve yapmaya devam ediyorum. Umarım programlama öğrenmek isteyenlere faydalı olur. Bilgisayar programlama Belirli bir bilgi işlem görevini gerçekleştirmek için bir bilgisayarı tasarlama, oluşturma ve komuta etme sürecidir. Bilgisayarımıza belirli bir görevi yapması için talimat(komut) vermek için belirli bir programlama dilinde bazı kodlar yazmamız gerekir. Günümüzde kullanabileceğimiz çok sayıda programlama dili vardır ancak burada yeni başlayanlar için öğrenmesi kolay dillerden biri olan QuickBASIC programlama dilini kullanacağız. BASIC nedir? BASIC, İngilizce Beginners All-Purpose Symbolic Instruction Code kelimelerinin baş harflerinden oluşmuş bir kelimedir. Genel amaçlı yeni başlayanlar için, öğrenmesi kolay, yüksek seviyeli bir dildir. Yüksek seviyeli dil: Konuşma diline yakın. PYTHON, PASCAL, BASIC, FORTRAN vb. diller. Düşük seviyeli dil: Makine diline yakın. Makine Dili, ASSEMBLY dili. Tarihçe İlk BASIC programlama dilini 1964'te Thomas E. Kurtz ve John G. Kemeny adlı iki matematik ve bilgisayar bilim adamı tasarladı. 1970 ve 1980'lerde BASIC mikrobilgisayarlarda yaygınlaştı. Mikrobilgisayarlar genellikle BASIC ile birlikte, genellikle makinenin ürün yazılımında bulunuyordu. IBM BASIC, Microsoft BASIC, Commodore BASIC, AmigaBASIC, Atari BASIC, Sinclair BASIC vb. İlk kişisel bilgisayarlarda öğrenmesi kolay bir dile sahip olmak, küçük işletme sahiplerinin, profesyonellerin, programlama hobisi olanların ve danışmanların bilgisayarlarında özel yazılımlar geliştirmelerine olanak tanıdı. Qbasic QBasic, GW-BASIC'in yerini almak üzere tasarlandı . Önceki QuickBASIC 4.5 derleyicisine dayanıyordu, ancak QBasic'in derleyici(compiler) ve bağlayıcı(linker) özelliği yoktu. Sürüm 1.0, MS-DOS 5.0 ve sonraki sürümlerin yanı sıra Windows 95 , Windows NT 3.x ve Windows NT 4.0 içinde vardı. IBM, QBasic'i yeniden derledi ve PC DOS 5.x ve OS / 2 2.0'a dahil etti. QuickBasic ile karşılaştırıldığında, QBASIC sınırlı boyuttaki programları çalıştırabilir. QBASIC, QuickLibrary modüllerinin desteğine sahip değildir, yalnızca standart QB.QLB'ye sahiptir. QBasic yalnızca bir program yorumlayıcısı (interpreter) editörüdür. Dosyalar .BAS uzantısında kaydedilir. Yalnızca kaynak kodu çalıştırır, doğrudan çalıştırılabilir dosyalar(.exe) oluşturamaz(compiler). Neden QuickBasic? QuickBasic yerine yeni teknolojileri kullanabilen çok sayıda programlama dili çıkmış ve çıkmaya devam etmektedir. Günümüz bilgisayar teknolojilerinden çok uzak kalmış QuickBasic programlama dili hâlâ neden kullanılır? Çünkü; öğrenmesi kolay ve yeni başlayanlar için tavsiye edilebilir bir dildir. Programlama dili öğretimi için üniversitelerin bazı bölümlerinde başlangıç dili olarak QuickBasic kullanılmaktadır. Programlama yapısı ve mantığı öğrendikten sonra diğer dillere kolaylıkla geçiş yapılabilir. Benim ilk bilgisayarım Commodore 64'tü. Bilgisayar açıldığında BASIC dili editörü ile açılıyordu. O yüzden ilk öğrendiğim programlama dili Commodore BASIC olmuştur. Sonraki kullandığım AMIGA ve PC bilgisayarlarda da BASIC dilini kullanmaya devam ettim. O yüzden benim gibi kişiler için QuickBasic dilinin nostaljik bir yanı var. QuickBasic günümüzde geliştirilmemektedir ancak BASIC dil yapısı kullanılmaya devam etmektedir. Günümüzde MS Visual Studio içinde MS Visual Basic olarak, MS Office programlarının tümünde MS Visual Basic for Application(VBA) olarak, yine AutoCAD ve SolidWorks gibi programlarda da MS Visual Basic for Application olarak bulunmaktadır. Ayrıca, Visual Basic kod temelli VBscript (VBS = Visual Basic Scripting Edition) Windows sisteminde derleyiciye gerek duymadan çalışan script dili olarak, Web tasarımda ise javascripte alternatif olarak kullanılmaktadır. QuickBasic indir Quick Basic 4.5 sürümü veya diğer BASIC sürümleri indirmek için; https://winworldpc.com/product/quickbasic/45 https://www.qbasic.net/en/qbasic-downloads/compiler/qbasic-compiler.htm adreslerine bakınız. Windows 10 üzerinde QuickBasic nasıl çalıştırılır? QuickBasic v4.5 ve onunla üretilen EXE programlar Windows 7, 8 ve 10 altında çalışmamaktadır. Çalıştırabilmek için iki farklı yöntem kullanılabilir: Sanal sistem( VirtualBox veya vmware workstation) kurup onun üzerine DOS, Win 95, Win 98 veya XP kurmak ve kurulu sanal sisteme QuickBasic kurmak, DOSBOX kurup DOS emülatörü üzerine QuickBasic kurmak Alternatif BASIC Editörleri ve Derleyicileri 1) QB64 : Açık kaynak kodlu, ücretsiz, QuickBasic v4.5 uyumlu, yeni ve gelişmiş komutları var. Editör ve derleyicidir. Yorumlayıcı değil. Windows 10 x64 ve x86 üzerinde de çalışıyor. Windows için x64 ve x86 sürümleri var. Ayrıca Windows'dan başka macOS ve Linux işletim sistemleri için de sürümleri var. Web sayfası - QB64 Kaynak kodu 2) FreeBasic : Açık kaynak kodlu, ücretsiz, QuickBasic 4.5 uyumlu ve gelişmiş özelliklere sahip. DOS, Windows ve Linux sürümleri var. Kaynak kodu 3) Borland Turbo Basic 1.x DOS altında çalışıyor. QuickBasic editörünün kullanımı QuickBasic paketini bilgisayarınıza kurduğunuzda; CD komutu ile QuickBasic kurulu klasöre geçin. Örnek: CD C:\QB45 sonra DOS komut satırında QB yazıp ENTER'e bastığınızda karşınıza QuickBASIC kodlarınızı yazmanız için bir editör programı açılır. DOS'un EDIT programına benzer özelliklere sahiptir. Bu programın editör özelliğinin yanında yorumlayıcı(interpreter), derleyici(compiler), bağlayıcı(linker), hata ayıklayıcı(debugger) özellikleri de vardır. Basic kodlarını yazdıktan sonra F5 tuşu ile kodları çalıştırabilirsiniz(Run). Kodların çalışması bitince herhangi bir tuşa basarak, Program hâlâ çalışıyorsa CTRL + PAUSE tuşlarına basarak programın çalışmasını durdurup editöre dönebilirsiniz. (DosBox'da CTRL + SCROLL LOCK) Not: Qbasic kullananlar komut satırında QBASIC yazarak çalıştıracaklar. UYGULAMA: DOS komut satırında QB yazıp enter tuşuna basarak QuickBasic editörünü çalıştırın. Aşağıdaki kodları editöre yazın. CLS 'ekranı siler PRINT "Merhaba Dünya !" Klavyeden F5 tuşuna basarak yazdığımız Basic kodunun çalışmasını sağlayın. Eğer bir sorunla karşılaşmazsanız DOS ekranına geçilecek ve ekranındaki yazılar temizlenecek ve ekranın ilk satırında Merhaba Dünya ! yazacak. En altta ise Press any key to continue (Devam etmek için herhangi bir tuşa basın) yazacak. Editör ekranına dönmek için herhangi bir tuşa basın. Not: ' (ayırma) işaretinden sonra yazılanlar açıklama içindir, yazılmasa da olur. Derleme ve çalıştırma işlemi esnasında kod olarak değerlendirilmez. ' karakteri yerine önceki BASIC sürümlerine uyumluluk için REM komutu da kullanılabilir. QuickBasic'de satır numaraları QuickBasicde satır numaraları şart değildir önceki BASIC sürümlerine uyum olsun diye vardır. Satır numaralarını kullanırsanız; numaraların birbirini takip etmesi ve her satırda olması da şart değildir. QuickBasicde satır numaraları yerine okunurluğu kolaylaştırması için ETİKET kullanılır. Etiketi de sadece hedef olarak gösterilecek satırlara koymak yeterlidir. 10 A = A + 1 20 IF A > 20 THEN GOTO 50 30 PRINT A 40 GOTO 10 50 END Yukarıdaki program kodları yerine; aynı işi yapan, satır numarası vermeden, etiket kullanarak yazılmış hali aşağıda. basla: A = A + 1 IF A > 20 THEN GOTO bitis PRINT A GOTO basla bitis: END Bir satırda birden fazla komut da kullanılabilir. İki komutu ayırmak için : (2 nokta üst üste) kullanılır CLS PRINT "QuickBASIC" PRINT "MERHABA DÜNYA !" Üstteki ile alttaki kodlar aynı işi yapar. Farkı yoktur. CLS : PRINT "QuickBASIC" : PRINT "MERHABA DÜNYA !" PRINT yerine ? (soru işareti) ? "Merhaba Dünya !" PRINT "Merhaba Dünya !" Yukarıdaki iki satır aynı işi yapar. Yazarken ? işareti PRINT komutuna dönüşür. Bundan sonra eminim ki ? işaretini PRINT e tercih edeceksiniz. QuickBasic'de yardım almak QuickBasic in menülerinde HELP bulunur. Menüyü açtığınızda bir yardım ekranı karşınıza gelecek. Ayrıca komutları yazdığımız bölümdeki kelimelerden faydalanarak da yardım alabiliriz. Örneğin kod editörüne OPEN yazın. İmleç(yanıp sönen gösterge) kelime üzerindeyken klavyeden F1 tuşuna bastığınızda karşınıza OPEN komutu hakkında bilgiler içeren yardım ekranı gelir. Burada; Kısa açıklama(QuickSCREEN), Detaylı açıklama(Details), Örnek kodları (Example) görebilirsiniz. Yardım bilgileri İngilizcedir. Pencereler arasında geçiş yapmak için F6 tuşuna basınız. Yeşil renkli oklarla belirtilen bağlantılara(hyperlink) ulaşmak için TAB ve SHIFT + TAB tuşları, Önceki yardım sayfasını açmak için CTRL + F1 Sonraki yardım sayfasını açmak için ALT + F1 Yardım ekranından çıkmak için ESC tuşuna basın. QuickBasic Ana Sayfa Sonraki bölüm: 2: Veri Tipleri
Предыстория. Так получилось, что моя юность пришлась на время появления 3д игр. Впервые увидев спектрумовский Total Eclipse я сразу стал считать 3д вершиной техн...
Yayınlama: 11 Haziran 2020 VIEW Sonraki grafik komutlarına çıktı için ekran sınırlarını belirler. Fiziksel ekran üzerinde sanal çizim alanı oluşturur(port). Ekran içinde ekran gibi. Kullanımı: VIEW [SCREEN] (x1,y1)-(x2,y2) [,renk][,çerçeve] Herhangi bir parametre girilmezse varsayılan ekranı tanımlar. SCREEN parametresi kullanıldığında sonraki çizim komutlarında ekranın mutlak koordinat sistemine göre işlem yapılacağını belirtir. Normalde yani SCREEN parametresi kullanılmadığında göreceli koordinat sistemi kullanılır. Oluşturulan ekranın; sol üst köşesi (x1,y1) 0,0 olarak, sağ alt köşesi (x2,y2) VIEW de belirtilen genişlik ve yükseklik olur (x2-x1, y2-y1) renk: Belirtilen renk ile tanımlanan alan doldurulur. Altta kalan alan silinir. Belirtilmezse silme olmaz. çerçeve: Tanımlanan alanın kenarlarına verilen renk kodu ile sınır çizgileri çizilir. Belirtilmezse çizilmez. Örnek: SCREEN 12 VIEW (50, 50)-(300, 300), 2, 14 LOCATE 1, 1: PRINT "VIEW" CIRCLE (0, 0), 250, 15 ' oluşturulan ekranın göreceli koordinatları kullanılır SLEEP VIEW SCREEN (50, 50)-(300, 300), 3, 11 LOCATE 1, 1: PRINT "VIEW SCREEN" CIRCLE (0, 0), 250, 11 ' fiziksel ekranın mutlak koordinatları kullanılır SLEEP VIEW (200, 200)-(400, 400), 4 CIRCLE (100, 100), 50 LOCATE 14, 27: PRINT "Silinecek !" SLEEP CLS 'aktif VIEW siler LINE (0, 0)-(200, 200), 14 LINE (0, 200)-(200, 0), 14 SLEEP VIEW 'Fiziksel ekran LINE (0, 0)-(200, 200), 15 LINE (0, 200)-(200, 0), 15 VIEW PRINT PRINT komutu için ekranda sınırları belirler. Kullanımı: VIEW PRINT [başlamasatırı TO bitişsatırı] PRINT komutu ile yazılacaklar başlamasatırı ile bitişsatırı arasındaki satırlara yazılır. CLS komutu sadece bu bölgeyi siler. Parametre kullanılmazsa varsayılan ekran satırları kullanılır. Örnek: CLS VIEW PRINT 10 TO 20 COLOR 7, 1 CLS FOR n = 1 TO 12 PRINT "Satır : "; n SLEEP 1 NEXT SLEEP COLOR 15, 10 CLS PRINT "Merhaba !" VIEW PRINT SLEEP PRINT "Merhaba !" PSET Grafik ekranda koordinatları belirtilen konuma nokta koyan grafik komutudur. Kullanımı: PSET [STEP] (x,y) [, renk] x ve y ile koordinat noktası belirlenir. Renk belirtilmezse varsayılan renk kullanılır. STEP kullanılırsa bir önceki nokta 0,0 noktası olarak kabul edilerek göreceli koordinat sistemi kullanılır. Örnek 1: SCREEN 13 PSET (100, 100), 10 PSET STEP(-10, 10) '100,100 koordinatı 0,0 kabul edilir. PSET (90 , 110) PSET STEP(10, 10) 'üst satırda belirtilen nokta 0,0 kabul edilir (100 , 120) PSET STEP(10, -10), 12 'üst satırdaki noktaya göre x:10 y:-10 (110 , 110) Örnek 2: PSET komutu ile daire 'Nokta ile daire 'Mesut Akcan. 2020 SCREEN 12 pi = 4 * ATN(1) VIEW (80, 0)-(560, 479) WINDOW (-1, -1)-(1, 1) FOR x = 0 TO 360 STEP .5 nx = SIN(x * pi / 180) ny = COS(x * pi / 180) PSET (nx, ny), 10 NEXT SLEEP Örnek 3: Fraktal 2 'Fractal 2 SCREEN 12 WINDOW (-4, 0)-(6, 10) RANDOMIZE TIMER WHILE INKEY$ = "" r = RND SELECT CASE r CASE IS <= .01 a = 0: b = 0: c = 0: d = .16: e = 0: f = 0 CASE .01 TO .86 a = .85: b = .04: c = -.04: d = .85: e = 0: f = 1.6 CASE .86 TO .93 a = .2: b = -.26: c = .23: d = .23: e = .05: f = 1.6 CASE ELSE a = -.15: b = .28: c = .26: d = .24: e = 0: f = .44 END SELECT nx = (a * x) + (b * y) + e ny = (c * x) + (d * y) + f x = nx y = ny PSET (x, y), 2 WEND PSET komutu ile ilgili diğer örnekler için önceki sayfa ve sonraki sayfaya bakınız. Önceki Bölüm: 13: Grafik işlemleri-1 Sonraki Bölüm: 15: Grafik işlemleri-3 QuickBasic Ana Sayfa
Yayınlama: 2000 Güncelleme: 14 Eylül 2021 Bu yazıdaki açıklamalar ve kodlar QuickBasic v4.5 'a göredir. Ekran görüntüleri Microsoft QuickBasic 4.5 programından alınmıştır. Verilen örnek kodlar tarafımdan QuickBasic v4.5 üzerinde yazılıp, çalıştırılıp, denenmiştir. Kodlar büyük oranda QB64'te de çalışmaktadır. QuickBasic Kursu içeriğini 2000 yılında hazırlayıp kişisel web sayfamda yayınladım. 2003 yılında PDF formatına dönüştürdüm. Sonraki tarihlerde sayfalarda güncelleme ve eklemeler yaptım ve yapmaya devam ediyorum. Umarım programlama öğrenmek isteyenlere faydalı olur. Bilgisayar programlama Belirli bir bilgi işlem görevini gerçekleştirmek için bir bilgisayarı tasarlama, oluşturma ve komuta etme sürecidir. Bilgisayarımıza belirli bir görevi yapması için talimat(komut) vermek için belirli bir programlama dilinde bazı kodlar yazmamız gerekir. Günümüzde kullanabileceğimiz çok sayıda programlama dili vardır ancak burada yeni başlayanlar için öğrenmesi kolay dillerden biri olan QuickBASIC programlama dilini kullanacağız. BASIC nedir? BASIC, İngilizce Beginners All-Purpose Symbolic Instruction Code kelimelerinin baş harflerinden oluşmuş bir kelimedir. Genel amaçlı yeni başlayanlar için, öğrenmesi kolay, yüksek seviyeli bir dildir. Yüksek seviyeli dil: Konuşma diline yakın. PYTHON, PASCAL, BASIC, FORTRAN vb. diller. Düşük seviyeli dil: Makine diline yakın. Makine Dili, ASSEMBLY dili. Tarihçe İlk BASIC programlama dilini 1964'te Thomas E. Kurtz ve John G. Kemeny adlı iki matematik ve bilgisayar bilim adamı tasarladı. 1970 ve 1980'lerde BASIC mikrobilgisayarlarda yaygınlaştı. Mikrobilgisayarlar genellikle BASIC ile birlikte, genellikle makinenin ürün yazılımında bulunuyordu. IBM BASIC, Microsoft BASIC, Commodore BASIC, AmigaBASIC, Atari BASIC, Sinclair BASIC vb. İlk kişisel bilgisayarlarda öğrenmesi kolay bir dile sahip olmak, küçük işletme sahiplerinin, profesyonellerin, programlama hobisi olanların ve danışmanların bilgisayarlarında özel yazılımlar geliştirmelerine olanak tanıdı. Qbasic QBasic, GW-BASIC'in yerini almak üzere tasarlandı . Önceki QuickBASIC 4.5 derleyicisine dayanıyordu, ancak QBasic'in derleyici(compiler) ve bağlayıcı(linker) özelliği yoktu. Sürüm 1.0, MS-DOS 5.0 ve sonraki sürümlerin yanı sıra Windows 95 , Windows NT 3.x ve Windows NT 4.0 içinde vardı. IBM, QBasic'i yeniden derledi ve PC DOS 5.x ve OS / 2 2.0'a dahil etti. QuickBasic ile karşılaştırıldığında, QBASIC sınırlı boyuttaki programları çalıştırabilir. QBASIC, QuickLibrary modüllerinin desteğine sahip değildir, yalnızca standart QB.QLB'ye sahiptir. QBasic yalnızca bir program yorumlayıcısı (interpreter) editörüdür. Dosyalar .BAS uzantısında kaydedilir. Yalnızca kaynak kodu çalıştırır, doğrudan çalıştırılabilir dosyalar(.exe) oluşturamaz(compiler). Neden QuickBasic? QuickBasic yerine yeni teknolojileri kullanabilen çok sayıda programlama dili çıkmış ve çıkmaya devam etmektedir. Günümüz bilgisayar teknolojilerinden çok uzak kalmış QuickBasic programlama dili hâlâ neden kullanılır? Çünkü; öğrenmesi kolay ve yeni başlayanlar için tavsiye edilebilir bir dildir. Programlama dili öğretimi için üniversitelerin bazı bölümlerinde başlangıç dili olarak QuickBasic kullanılmaktadır. Programlama yapısı ve mantığı öğrendikten sonra diğer dillere kolaylıkla geçiş yapılabilir. Benim ilk bilgisayarım Commodore 64'tü. Bilgisayar açıldığında BASIC dili editörü ile açılıyordu. O yüzden ilk öğrendiğim programlama dili Commodore BASIC olmuştur. Sonraki kullandığım AMIGA ve PC bilgisayarlarda da BASIC dilini kullanmaya devam ettim. O yüzden benim gibi kişiler için QuickBasic dilinin nostaljik bir yanı var. QuickBasic günümüzde geliştirilmemektedir ancak BASIC dil yapısı kullanılmaya devam etmektedir. Günümüzde MS Visual Studio içinde MS Visual Basic olarak, MS Office programlarının tümünde MS Visual Basic for Application(VBA) olarak, yine AutoCAD ve SolidWorks gibi programlarda da MS Visual Basic for Application olarak bulunmaktadır. Ayrıca, Visual Basic kod temelli VBscript (VBS = Visual Basic Scripting Edition) Windows sisteminde derleyiciye gerek duymadan çalışan script dili olarak, Web tasarımda ise javascripte alternatif olarak kullanılmaktadır. QuickBasic indir Quick Basic 4.5 sürümü veya diğer BASIC sürümleri indirmek için; https://winworldpc.com/product/quickbasic/45 https://www.qbasic.net/en/qbasic-downloads/compiler/qbasic-compiler.htm adreslerine bakınız. Windows 10 üzerinde QuickBasic nasıl çalıştırılır? QuickBasic v4.5 ve onunla üretilen EXE programlar Windows 7, 8 ve 10 altında çalışmamaktadır. Çalıştırabilmek için iki farklı yöntem kullanılabilir: Sanal sistem( VirtualBox veya vmware workstation) kurup onun üzerine DOS, Win 95, Win 98 veya XP kurmak ve kurulu sanal sisteme QuickBasic kurmak, DOSBOX kurup DOS emülatörü üzerine QuickBasic kurmak Alternatif BASIC Editörleri ve Derleyicileri 1) QB64 : Açık kaynak kodlu, ücretsiz, QuickBasic v4.5 uyumlu, yeni ve gelişmiş komutları var. Editör ve derleyicidir. Yorumlayıcı değil. Windows 10 x64 ve x86 üzerinde de çalışıyor. Windows için x64 ve x86 sürümleri var. Ayrıca Windows'dan başka macOS ve Linux işletim sistemleri için de sürümleri var. Web sayfası - QB64 Kaynak kodu 2) FreeBasic : Açık kaynak kodlu, ücretsiz, QuickBasic 4.5 uyumlu ve gelişmiş özelliklere sahip. DOS, Windows ve Linux sürümleri var. Kaynak kodu 3) Borland Turbo Basic 1.x DOS altında çalışıyor. QuickBasic editörünün kullanımı QuickBasic paketini bilgisayarınıza kurduğunuzda; CD komutu ile QuickBasic kurulu klasöre geçin. Örnek: CD C:\QB45 sonra DOS komut satırında QB yazıp ENTER'e bastığınızda karşınıza QuickBASIC kodlarınızı yazmanız için bir editör programı açılır. DOS'un EDIT programına benzer özelliklere sahiptir. Bu programın editör özelliğinin yanında yorumlayıcı(interpreter), derleyici(compiler), bağlayıcı(linker), hata ayıklayıcı(debugger) özellikleri de vardır. Basic kodlarını yazdıktan sonra F5 tuşu ile kodları çalıştırabilirsiniz(Run). Kodların çalışması bitince herhangi bir tuşa basarak, Program hâlâ çalışıyorsa CTRL + PAUSE tuşlarına basarak programın çalışmasını durdurup editöre dönebilirsiniz. (DosBox'da CTRL + SCROLL LOCK) Not: Qbasic kullananlar komut satırında QBASIC yazarak çalıştıracaklar. UYGULAMA: DOS komut satırında QB yazıp enter tuşuna basarak QuickBasic editörünü çalıştırın. Aşağıdaki kodları editöre yazın. CLS 'ekranı siler PRINT "Merhaba Dünya !" Klavyeden F5 tuşuna basarak yazdığımız Basic kodunun çalışmasını sağlayın. Eğer bir sorunla karşılaşmazsanız DOS ekranına geçilecek ve ekranındaki yazılar temizlenecek ve ekranın ilk satırında Merhaba Dünya ! yazacak. En altta ise Press any key to continue (Devam etmek için herhangi bir tuşa basın) yazacak. Editör ekranına dönmek için herhangi bir tuşa basın. Not: ' (ayırma) işaretinden sonra yazılanlar açıklama içindir, yazılmasa da olur. Derleme ve çalıştırma işlemi esnasında kod olarak değerlendirilmez. ' karakteri yerine önceki BASIC sürümlerine uyumluluk için REM komutu da kullanılabilir. QuickBasic'de satır numaraları QuickBasicde satır numaraları şart değildir önceki BASIC sürümlerine uyum olsun diye vardır. Satır numaralarını kullanırsanız; numaraların birbirini takip etmesi ve her satırda olması da şart değildir. QuickBasicde satır numaraları yerine okunurluğu kolaylaştırması için ETİKET kullanılır. Etiketi de sadece hedef olarak gösterilecek satırlara koymak yeterlidir. 10 A = A + 1 20 IF A > 20 THEN GOTO 50 30 PRINT A 40 GOTO 10 50 END Yukarıdaki program kodları yerine; aynı işi yapan, satır numarası vermeden, etiket kullanarak yazılmış hali aşağıda. basla: A = A + 1 IF A > 20 THEN GOTO bitis PRINT A GOTO basla bitis: END Bir satırda birden fazla komut da kullanılabilir. İki komutu ayırmak için : (2 nokta üst üste) kullanılır CLS PRINT "QuickBASIC" PRINT "MERHABA DÜNYA !" Üstteki ile alttaki kodlar aynı işi yapar. Farkı yoktur. CLS : PRINT "QuickBASIC" : PRINT "MERHABA DÜNYA !" PRINT yerine ? (soru işareti) ? "Merhaba Dünya !" PRINT "Merhaba Dünya !" Yukarıdaki iki satır aynı işi yapar. Yazarken ? işareti PRINT komutuna dönüşür. Bundan sonra eminim ki ? işaretini PRINT e tercih edeceksiniz. QuickBasic'de yardım almak QuickBasic in menülerinde HELP bulunur. Menüyü açtığınızda bir yardım ekranı karşınıza gelecek. Ayrıca komutları yazdığımız bölümdeki kelimelerden faydalanarak da yardım alabiliriz. Örneğin kod editörüne OPEN yazın. İmleç(yanıp sönen gösterge) kelime üzerindeyken klavyeden F1 tuşuna bastığınızda karşınıza OPEN komutu hakkında bilgiler içeren yardım ekranı gelir. Burada; Kısa açıklama(QuickSCREEN), Detaylı açıklama(Details), Örnek kodları (Example) görebilirsiniz. Yardım bilgileri İngilizcedir. Pencereler arasında geçiş yapmak için F6 tuşuna basınız. Yeşil renkli oklarla belirtilen bağlantılara(hyperlink) ulaşmak için TAB ve SHIFT + TAB tuşları, Önceki yardım sayfasını açmak için CTRL + F1 Sonraki yardım sayfasını açmak için ALT + F1 Yardım ekranından çıkmak için ESC tuşuna basın. QuickBasic Ana Sayfa Sonraki bölüm: 2: Veri Tipleri
Virtually every experienced programmer today started out with some version of Basic or QuickBasic and has at some point in their career wondered how it worked. This book will teach language construction and design to .NET programmers, using a fully functioning \"QuickBasic\" compatible compiler as the example.
If you've always wanted to learn basic programming skills on your personal computer, but weren't sure where to start, here's the book you need. You can satisfy your curiousity about programming and establish excellent programming fundamentals for your future ventures into QuickBASIC or Turbo BASIC.
Bu videoda AutoCAD ile Y şeklinde birleşmiş çapları aynı olan boruların açınım çizimleri açıklandı.
Yayınlama: 16 Temmuz 2020 DRAW Karakter kodlarıyla grafik ekranda çizim yapar. Kullanımı: DRAW "çizimkodları" DRAW komutu çizim kodları: Çizgi çizme kodları: U : Yukarı (Up) D : Aşağı (Down) L : Sola (Left) R : Sağa (Right) E : Yukarı sağa çapraz F : Aşağı sağa çapraz H : Yukarı sola çapraz G : Aşağı sola çapraz Bu kodlar uygulandığında çizim konumu değişir. Örneğin U10 ile çizim konumu çizgi çizerek 10 piksel yukarı gider. Verilen komutlar son nokta konumunu esas alarak çizim yapar. Daha önceden konum belirten ya da değiştiren bir kodlama yoksa konum ekranın ortası alınır. B : Çizgi çizmeden konum değiştirir(Blind). BL5 : Konum, çizgi çizmeden 5 piksel sola. N : Çizgi çizer ancak konum değişmez. NR15 : Sağa 15 piksel çizgi ancak konum değişmez. Örnek 1: SCREEN 13 DRAW "c9 NG15 c10 NE15 c12 NH15 c14 NF15" Mx,y : Konumu x,y koordinatına çizgi çizerek taşır. (Move) x değeri önünde + veya - sembolü olması durumunda göreceli(relative) koordinat sistemi uygulanır. + veya - işareti olmaması durumunda mutlak koordinat sistemi(absolute, fiziksel ekran koordinatları) kullanılır. Örnek 2: SCREEN 13 DRAW "c10 L60 c14 M+30,-30 c12 d60" DRAW "c13 bM0,0 f50 r50 M0,0" Renk kodları: C : Çizgi rengi belirler(Color). C14 : Sarı renk. C10 D50 : Yeşil renkte aşağı 50 piksel çizgi Pp,b : b rengi ile çizilmiş kapalı şekil içini p rengi ile boyar(doldurur)(Paint). Şekil kapalı değilse boyama taşar. Boyama yapmadan önce konum kapalı şekil içinde olmalıdır. Örnek 3: SCREEN 13 DRAW "c12 r100 h50 g50" DRAW "bM+30,-10 p14,12" Ölçek ve döndürme kodları: Sn : Konum değişim ölçeği(Scale). Varsayılan değeri 4'dür. 4'den küçük sayılar orantılı olarak değişimi azaltır, 4'den büyük sayılar orantılı olarak arttırır. Örneğin; S2 : Konum değişimi oranı varsayılanın yarısı kadar olur. S8 : Varsayılanın 2 katı olur. n için 1 - 255 arası bir değer verilebilir. An : (n * 90º) döndürme açısı(Angle). n için 0, 1, 2 veya 3 değerleri verilebilir. Çizim verilen açı kadar döndürülerek çizilir. 0 = 0º 1 = 90º 2 = 180º 3 = 270º Örnek 4: SCREEN 13 DRAW "s5" FOR n = 0 TO 3 DRAW "A" + STR$(n) DRAW "C" + STR$(n + 10) DRAW "F60 L120 E60" SLEEP NEXT TAn : Döndürme açısı. n için -360 ile 360 arası döndürme açısı değeri verilebilir. Çizim verilen açı kadar döndürülerek çizilir. Negatif sayılar ters yönde döndürmek içindir. TA60 R100 : Sağ yönde 60º açıyla 100 piksel çizgi. Örnek 5: SCREEN 12 DRAW "c13" FOR n = 0 TO 360 STEP 60 DRAW "TA" + STR$(n) DRAW "R100 U100 L100 D100" NEXT Örnek 6: SCREEN 12 DRAW "c11" FOR D = 0 TO 360 STEP 3 DRAW "TA=" + VARPTR$(D) + "NU220" NEXT X + VARPTR$(değişkenadı) : Çizim kodları bir değişkene atanıp bu değişken DRAW komutu içinde kullanılabilir. Özellikle tekrar eden çizim kodlarını tekrar yazmak yerine bu şekilde çağırmak kodlamayı kolaylaştırır. Örnek 7: DEFINT A-Z SCREEN 12 dd$ = "bU4 L4 D8 R8 U8 L4 bD4" DRAW "c13" 'renk 13 FOR s = 3 TO 255 STEP 3 a = a + 4 IF a >= 360 THEN a = 1 DRAW "TA=" + VARPTR$(a) + "s" + STR$(s) + "X" + VARPTR$(dd$) NEXT Önceki Bölüm: 16: Grafik işlemleri-4 Sonraki bölüm: 18: Grafik işlemleri-6 QuickBasic Ana Sayfa