Etiketler

25 Mayıs 2020 Pazartesi

QuickBasic Kursu: Bölüm 7: Goto, Gosub, Sub, Function

Önceki Bölüm: QuickBasic Kursu: Bölüm 6: Diziler
Güncelleme: 25 Mayıs 2020
Programlarımızdaki kodlar arttıkça veya programın işlevleri arttıkça bazı tekrar eden işlemler gerekli olabilir.
Ya da içinde birkaç şey değiştirerek aynı işlemler yapmak gerekir. Bunun için alt programlar kullanılır.
Ayrıca fonksiyonlar ve alt programlar kullanmak programınızın okunurluğunu kolaylaştıracaktır.

GOTO

GOTO komutunu daha önce döngü oluştururken de görmüştük.
Aslında GOTO ve GOSUB komutlarına çok az ihtiyaç duyacaksınız.
Sadece diğer basic dillerine uyumlu olsun diye konulmuş.
Program kodunun herhangi bir yerinde işleyişini bırakıp başka bir noktadan çalışması için kullanılır. GOTO ve ardında bir etiket yada satır numarası yazılmalıdır.
PRINT "MERHABA DÜNYA"
GOTO 10
PRINT "BU SATIRI GÖREBİLECEK MİSİNİZ?"
10 PRINT "PROGRAM SONA ERDİ"
END

GOSUB

GOSUB ile alt programlar oluşturabiliriz.
GOSUB da GOTO gibi programın işleyişi bırakıp başka bir noktadan başlaması sağlanır.
Fakat farklı olarak RETURN komutunu görünce kaldığı yere geri dönerek çalışmasına devam eder.
Alt programa, istediğimiz yerden istediğimiz kadar atlayabiliriz.
GOSUB ve ardından bir etiket ya da satır numarası yazılmalı.
Gosub ile atladığımız yerde RETURN bulunmazsa geri dönüş olmaz.

24 Mayıs 2020 Pazar

QuickBasic Kursu: Bölüm 13: Grafik işlemleri-1

Önceki Bölüm: QuickBasic Kursu: Bölüm 12: Dosya işlemleri-3

COLOR

Yazı ve zemin rengini değiştirir. Ekran moduna göre kullanımı farklıdır.
COLOR [renk][,[zeminrengi][,çerçeve]]  Ekran modu  0
COLOR [zeminrengi][,palet]             Ekran modu  1
COLOR [renk][,zeminrengi]              Ekran modu  7-10
COLOR [renk]                           Ekran modu  10-13
Her ekran modunun renk sayısı farklıdır.
Screen 0: 0-31 renk. 16-31 arası yanıp sönen renkler.

RENK KODLARI:
0: Siyah
1: Mavi
2: Yeşil
3: Turkuaz
4: Kırmızı
5: Mor
6: Kahverengi
7: Beyaz
8: Gri
9: Açık mavi
10: Açık yeşil
11: Açık turkuaz
12: Açık kırmızı
13: Açık mor
14: Sarı
15: Açık beyaz

CLS

Zemin rengi ile ekranı temizler.
SCREEN ile ekran değiştirildiğinde ekran silinmiş olarak gelir.
COLOR 14,4
CLS
PRINT "Merhaba!"

PALETTE

Renk paletindeki bir rengi başkasıyla değiştirir. Bu komut yalnız EGA, VGA ve MCGA ekranlarda kullanılabilir.

Kullanımı:
PALETTE değişecekrenkkodu, renkkodu
Örnek:

20 Mayıs 2020 Çarşamba

QuickBasic Kursu Bölüm 2: Qbasicde Veri Tipleri

Önceki Bölüm: QuickBasic Kursu: Bölüm 1: QuickBasic'e Giriş

Güncelleme: 20 Mayıs 2020
Qbasicde çeşitli veri tipleri vardır.
Verilerin bellekte ne kadar yer kaplayacağını belirtmek için kullanılır. Değişkenin içeriği ancak bu şekilde bellekte düzenli bir şekilde yerleşir.
Örnek:
A% = 126
A değişkenin yanındaki % işareti değişkenin bir INTEGER veri tipine sahip olduğunu gösterir.
A değişkeni için bellekte 2 byte'lık yer açılır. Çünkü INTEGER veri tipi 2 byte'dır

Açılan bellek alanının bir kapasitesi olduğu için değişkene kapasitesinden daha büyük veri aktarmak Owerflow (aşırı yükleme, taşma) hatasına neden olacaktır.
Örnek:
A% = 32768 'Owerflow hatası
PRINT A%
Değişkenlerin veri tipini tanımlamak şart değildir.
Tanımlanmamış değişkenler varsayılan değişken türü olan SINGLE olarak ayarlanır.

Değişkenin bellekte hangi adreste bulunduğunu öğrenmek için VARSEG ve VARPTR kullanılır.
Değişkenin bellekteki konumu yeni başlayanlar için önemsiz bir konudur. İleri seviye programlamada bunlara gerek duyulur.

Bellek adresleri SEGMENT adı verilen bölümlere ayrılmıştır. Her bölümde ise POINTER adı verilen segmentdeki adreslemeler vardır.
VARSEG(degiskenadi) ile değişkenin segment adresi, VARPTR(degiskenadi) ile değişkenin segment içindeki konumu alınır.

Örnek 1:
a = 214
PRINT VARSEG(a)'Segment
PRINT VARPTR(a)'Pointer
Örnek 2:
DEFINT A-Z
a = 120
b = 256
PRINT (VARSEG(a) * 65536) + VARPTR(a)'a değişkeni bellek adresi
PRINT (VARSEG(b) * 65536) + VARPTR(b)'b değişkeni bellek adresi
Örnek 3:
Bu örnekte A değişkeninin değeri A=222 satırıyla değil direkt bellek adresine yazılarak değiştirildiğine dikkat edin. POKE komutu bellek adresine 1 byte veri yazmak için kullanıldı.
DIM A AS INTEGER
CLS
A = 100
PRINT "A DEĞERİ  = "; A

PRINT "A SEGMENT = "; VARSEG(A)'A nın segment adresi
PRINT "A POINTER = "; VARPTR(A)'A nın pointer adresi

DEF SEG = VARSEG(A) 'Varsayılan Segment = A değişkeni segment adresi
POKE VARPTR(A), 222 'A nın pointer adresine 222 yaz

PRINT "A DEĞERİ  = "; A

Qbasicde Veri Tipleri

Qbasic diğer dillerdeki gibi tüm veri tiplerini kullanmanıza imkan vermez, fakat genellikle diğerlerine ihtiyaç duymayacaksınız.

Qbasic ile kullanabileceğiniz veri tipleri:

STRING : 32767 karaktere kadar. Kullanılan karakter kadar byte yer kaplar.
INTEGER : 2 byte. Tam sayı
LONG : 4 byte. Tam sayı
SINGLE : 4 byte. 7 basamaklı sayı. Tam sayı olması şart değil. 7 basamaktan fazla bir sayı olursa bilimsel gösterim kullanılır.
DOUBLE: 8 byte. 15 basamaklı sayı. Tam sayı olması şart değil. 15 basamaktan fazla bir sayı olursa bilimsel gösterim kullanılır.

Veri tipleri hakkında daha detaylı bilgi almak için menüden HELP/Contents 'i ve çıkan ekranda Data Types i tıklayın.

Veri tipi tanımlama yolları

Değişkenlerin veri tiplerini tanımlamak için üç yöntem vardır.

18 Mayıs 2020 Pazartesi

QuickBasic Kursu: Bölüm 5: Döngüler

Önceki Bölüm: QuickBasic Kursu: Bölüm 4: Kontrol blokları
Güncelleme: 24 Mayıs 2020
Tekrar edilen işlemler için döngüler kullanılır.
Böylece bilgisayarın sürekli yapacağı işlemler için aynı komutları bir daha yazmak zorunda kalmayız.

GOTO döngüsü

En basit döngü GOTO ile yapılan döngüdür.
DIM A AS INTEGER
basla:
	A = A + 1
	PRINT A;
	IF A = 32767 THEN A = 0
GOTO basla

Yukarıdaki kodlar çalıştırıldığında sonsuz döngü oluşturur.
Çalışma esnasında döngüyü kırmak(durdurmak) için CTRL + PAUSE tuşlarına basınız.
Böyle yaptığınızda kod ekranı gelir ve hangi satırda kırıldığı satırın yazısı beyaz renkli gösterilerek belirtilir.
F5 ile ya da menüden Run/Continue ile çalışmaya kaldığı yerden devam ettirilir.
Çalışmaya baştan başlatmak için menüden Run/Restart

Aşağıdaki şekilde değişiklik yaparsak döngüyü kontrol altına almış oluruz.
basla:
	A = A + 1
	IF A>20 THEN GOTO bitis ' bitis: satırına git
	' GOTO kullanılmazsa da olur.
	' IF A>20 THEN bitis

	' Alternatif kod satırı
	' IF A>20 THEN END
	PRINT A
GOTO basla 'basla: satırına dön
bitis:
END
PROBLEM 1 : 1 den 30 a kadar olan çift sayıların karelerini ekrana yazan bir program yazınız.

FOR ... NEXT döngüsü

Belirli sayılarda işlemlerin tekrar etmesi için kullanılır.
FOR sayacdegiskeni = baslangicsayisi TO bitissayisi [STEP artismiktari]
..
..
NEXT sayacdegiskeni
Örnek:
FOR N = 1 TO 25
	PRINT N
NEXT N
1 den 25 e kadar olan sayıları yazacaktır. Her döngüde N değişkeninin değeri 1 artacaktır.