gosub etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
gosub etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Ekim 2020 Pazartesi

QuickBasic - 26: Olay ile Dallanma

Yayınlama: 12 Ekim 2020
Normalde program kodları ilk satırdan başlayarak son satıra kadar adım adım ilerleyerek komutları yürütür ve son satırdan sonra program sonlanır. Ancak bu şekildeki bir yürütme ile işe yarar büyük programlar yapmak çok zordur ve çok sayıda kod yazmak gerekebilir. Ayrıca tekrar eden işlemler için tekrar kod yazmak da programlama mantığına uygun değildir.

Program kodlarında eğer tekrara düşüyorsanız bilin ki bilgisayarın yapması gereken işin bir kısmını siz yapmış oluyorsunuz demektir. Ayrıca kod tekrarı, program kodlarının büyümesine gereksiz bellek kullanımına, program kodlarının yavaş çalışmasına ve program kodlarının okunurluğunun zorlaşmasına neden olur. Kodların okunmasının zorlaşması kodlarda düzenleme ve geliştirmeyi zorlaştırır.

Dallanma diye adlandıracağımız durum program kodlarının yürütülürken gerekli durum ve şartlarda alt programa atlayarak alt programı çalıştırması ve alt programın yürütülmesi tamamlandığında kaldığı kod satırına geri dönmesidir. Dallanma sayesinde kod tekrarını önlemiş oluruz ayrıca kodların modüler bir yapı oluşması sağlanır.

Kodlarda dallanma oluşturmak için birkaç yöntem var. Bunlardan bazılarını 4: Kontrol blokları ve 7: Alt program sayfasında açıklanmıştı. Bu bölümde bunlar tekrar edilmeyecek. Bunların dışında kalan ve ON ile başlayan dallanmalar açıklanacak.

ON ... GOTO

Belirtilen ifadenin değerine göre belirtilen satırlardan birine dallanmayı sağlar.

Kullanımı:
ON n GOTO satır numaraları listesi | satır etiketi listesi
n integer sayısının aldığı değere göre satır numarası listesindeki satıra dallanma(atlama) yapar. Liste elemanları arasında virgül kullanılır. Satır numarası ve satır etiketi karışık liste oluşturabilir. n değeri 1 veya 1 den büyük olmalıdır.

11 Eylül 2020 Cuma

QuickBasic - 7: Alt program ve Fonksiyon

Yayınlama: 2000
Güncelleme: 11 Eylül 2020
Programlarımızdaki kodlar arttıkça veya programın işlevleri arttıkça bazı tekrar eden kod grupları olabilir.

Ya da içinde birkaç değer değiştirerek aynı işlemleri yapmak gerekir. Bunun için alt programlar(alt rutin, subroutine) kullanılır.

Ayrıca fonksiyonlar ve alt programlar kullanmak, program kodlarınızın düzenlenebilirliğini ve okunurluğunu kolaylaştıracaktır.

GOTO

GOTO komutunu daha önce döngü oluştururken de görmüştük. GOTO ile alt program oluşturmak hiç kullanışlı değildir.

Aslında GOTO ve GOSUB komutlarına çok az ihtiyaç duyacaksınız.
Sadece önceki basic dillerine uyumlu olsun diye konulmuş.
GOTO ile program akışı belirtilen satıra atlar ve çalışmaya oradan devam eder.

Örnek:
PRINT "MERHABA DÜNYA"
GOTO 10
PRINT "BU SATIRI GÖREBİLECEK MİSİNİZ?"
10 PRINT "PROGRAM SONA ERDİ"
END

GOSUB ... RETURN

Kullanımı:
GOSUB satır_no | satır_etiketi
GOSUB ve ardından bir satır etiketi ya da satır numarası yazılmalı.

7 Ağustos 2020 Cuma

QuickBasic - 25: Klavye kullanımı

Yayınlama: 7 Ağustos 2020

Bilgisayarda girdi birimi olarak kullanılan donanımlardan en çok kullanılanı klavye ve faredir.
QuickBasic ile kullanıcının klavye girdisi sağlayabileceği gibi klavye tuş vuruşları da takip edilip kontrol edilebilir.

Klavye ile veri girişi

INPUT, LINE INPUT

Klavyeden girilen karakterleri değişken(ler)e aktarır. Ayrıntı için: 3: Değişkenlere veri aktarma

INKEY$

Klavyede basılan bir tuşun bir veya iki baytlık bir dize(string) değerini verir.
Klavyeden tuşlara basıldığında tuş bilgileri klavye ara belleğine(tampon) aktarılır.
PLAY komutunda olduğu gibi tampondaki sıraya göre tuş vuruşları bilgisayara iletilerek değerlendirilir.
Tamponda bekleyen bir karakter yoksa INKEY$ boş olacaktır.
Tek karakterlik bir dize, klavyeden okunan gerçek tuş karakteri içerirken, iki karakterli bir dize, ilk karakteri 0 olan genişletilmiş bir kodu belirtir. F1-F12, imleç yön tuşları, home, end... Nümerik klavye tuşları... vb.
Tek başına basılan CTRL, ALT, SHIFT, CAPS LOCK, NUM LOCK, SCROLL LOCK tuşlarını algılamaz.
Aşağıdaki kodları deneyin.