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

17 Mayıs 2024 Cuma

QuickBasic - 30: Hata ayıklama-3

3. Mantıksal Hatalar

Mantıksal hatalar (Logic Errors) program kodlarının söz dizimi açısından doğru olmasına rağmen beklenen sonuçları vermemesine neden olan hatalardır. Bu tür hatalar, programın mantığında veya algoritmasında yapılan yanlışlıklar nedeniyle ortaya çıkar. Mantıksal hatalar, genellikle programın çalışması sırasında belirli girdilerle test edilerek ortaya çıkarılır ve düzeltilir, çünkü derleme aşamasında tespit edilemezler. Bu yüzden en tehlikeli hatalardandır.

Mantıksal hataların yaygın örnekleri arasında mantıksal karşılaştırma ifadeleri, döngülerin hatalı kullanımı ve değişkenlerin yanlış değerlerle işlenmesi bulunur.

Örneğin, bir döngünün yanlış bir koşulla çalıştırılması, döngünün beklenenden daha fazla veya daha az çalışmasına neden olabilir. Bu tür hatalar, programın belirli durumlarda yanlış sonuçlar üretmesine, hiç çalışmamasına, kilitlenmesine veya sonsuz döngü üretmesine neden olabilir. Ayrıca, değişkenlerin yanlış şekilde güncellenmesi veya kullanılması, hesaplamaların yanlış sonuçlar vermesine yol açar.

20 Haziran 2023 Salı

QuickBasic - 2: Veri Tipleri

Yayınlama: 2000
Güncelleme: 20 Haziran 2023
QuickBasic'te çeşitli veri tipleri vardır.
Belleğe aktarılacak veriler için bellekte gereken boyutta yer açı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. 8 bit (binary digit= ikilik sayı) 1 baytı oluşturur.
1 baytın alacağı değer sayısal olarak 0-255, karakter olarak ise 1 karakter(harf, rakam, simge)dir.

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 (taşma hatası)
PRINT A%
A% değişkeni 2 baytlık(16 bit) INTEGER değişken olduğu için alabileceği değer aralığı -32768 ile +32767 olduğu için örnekte verilen 32768 değeri sınırı aşmaktadır.
Yani bellekte açılan alana bu sayı aktarılamaz. O yüzden hata verir. Değişken türü ya da değeri değiştirilmelidir.

Normalde 2 bayt(16 bit) 256*256 = 0-65536 (2 üzeri 16 = 65536) arası değer alabilir. Ancak INTEGER değişkende negatif sayıları da kullanabilmek için 16 bitin 1 biti sayının + ya da - işareti için kullanılmaktadır.
Böylece sayı için 15 bit, işaret için 1 bit kullanılır.
15 bit (2 üzeri 15) = 32768

25 Mart 2023 Cumartesi

QuickBasic - 29: Hata ayıklama-2

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.

24 Mart 2023 Cuma

QuickBasic - 28: Hata ayıklama-1

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.

Eniac.jpg

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ı.

4 Şubat 2023 Cumartesi

QuickBasic Kod Yarışması. Soru 4

TC kimlik numarasının son 2 basamağı kontrol kodlaması içindir. İlk 10 basamaktaki rakamlar ile yapılan algoritmik işlemlerin sonucu ile son 2 basamak karşılaştırılır. Çıkan sonuç algoritmaya uygunsa TC kimlik no doğru değilse yanlıştır.

Soru 4

Kullanıcının girdiği TC kimlik numarasının doğruluğunu kontrol eden QuickBasic program kodlarını yazınız.

TC Kimlik No Doğrulama Algoritması:

Kurallar:

  1. TC kimlik numaraları 11 basamaklı bir sayıdır.
  2. İlk basamak 0 olamaz.
  3. TC kimlik numarası 1. 3. 5. 7. 9. basamaklarının toplamının 7 katından,
    2. 4. 6. 8. basamaklarının toplamını çıkarttığımızda elde ettiğimiz sonucun 10'a bölümünden kalan sayı 10. basamaktaki sayıyı vermelidir.
  4. İlk 10 basamağın toplamından elde edilen sonucun 10'a bölümünden kalan sayı 11. basamaktaki sayıyı vermelidir.
  5. Bu 4 kuraldan biri tutmuyor ise TC kimlik numarası yanlıştır.

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.
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.


QuickBasic Ana Sayfa

6 Şubat 2022 Pazar

QuickBasic - 6: Diziler

Yayınlama: 2000
Güncelleme: 06 Şubat 2022

Diziler

Dizi(array) bir veri yapısıdır ve bellekte aynı tipte veri saklamayı sağlar.
Bir değişken tanımlandığında, tanımlanan değişken bellekte tek bir değer tutabilir.
Diziler(arrays) ise bir değişken adıyla bellekte birden fazla değer saklayabilir.
Tanımlanan dizi elemanlarına ulaşmak istersek dizi indeksi ile ulaşabiliriz.

Dizilere neden ihtiyaç duyulur?

Çünkü çok sayıda değişkeni tanımlamak uzun sürer ve kullanışlı olmaz.

Örneğin:
12 ay için ayrı ayrı değişken tanımlama
DIM AY1 AS STRING
DIM AY2 AS STRING
DIM AY3 AS STRING
..
..
Gördüğünüz gibi bu uzayıp gidecek.
Bunun yerine bir boyutlu 13 elemanlı bir adet dizi değişken tanımlamak yeterlidir.
DIM AY(12) AS STRING
gibi.
AY(12) dizi değişkeni 13 elemanlıdır çünkü ilk eleman numarası(indeks) 0'dır.

Kullanımı:
DIM DeğişkenAdı(elemansayısı) [AS ...]
Örnek 1:
DIM AYLAR(12) AS STRING
'Tanımlanan dizi değişkeninin kullanımı:
AYLAR(1) = "OCAK" : AYLAR(2) = "ŞUBAT"
AYLAR(3) = "MART" : AYLAR(4) = "NİSAN"
AYLAR(5) = "MAYIS" : AYLAR(6) = "HAZİRAN"
AYLAR(7) = "TEMMUZ" : AYLAR(8) = "AĞUSTOS"
AYLAR(9) = "EYLÜL" : AYLAR(10) = "EKİM"
AYLAR(11) = "KASIM" : AYLAR(12) = "ARALIK"
buay% = VAL(DATE$)
PRINT AYLAR(buay%)
Örnek 2:

8 Ocak 2022 Cumartesi

QuickBasic Kod Yarışması. Soru 3

Soru 3

Optik kodlamada kullanılan kağıtlarda olduğu gibi verilen numarayı kodlama alanına kodlayan QuickBasic program kodlarını yazınız.

Örnek çıktı aşağıdaki gibidir.

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.
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.

QuickBasic Ana Sayfa

29 Aralık 2021 Çarşamba

QuickBasic - 9: Sayılarla ilgili işlemler

Yayınlama: 2000
Güncelleme: 29 Aralık 2021

Matemetiksel İşlem Sembolleri

+ : Toplama. a = 10 + 2
- : Çıkarma. b = a - 5
* : Çarpma. b = a * 10
/ : Bölme. b = a / 3
\ : Kalansız bölme. a = 100 \ 3 : PRINT a ' 33
^ : Üs alma. a = 10 ^ 2 : PRINT a ' 100
- : Negatife dönüştürme. a = 5 : b = - a : PRINT b ' -5

Matematiksel işlemlerde öncelik sırası

Normal bir hesaplama yapıldığında, QuickBasic soldan sağa doğru çalışır, ancak belirli hesaplamaları aşağıdaki sırayla yapar. Kırmızı olan kısım önce işlenir.
  1. Parantez içi. a = (5 + 10) * 3 ' 45
  2. Üs alma işlemi (^). a = 10 + 2 ^ 3 ' 18
  3. Negatife dönüştürme (-) a = 10 - -30 - -5 ' 45
  4. Çarpma ve Bölme(* , /). a = 20 + 30 / 2 ' 35
  5. Kalansız bölme (\) a= 30 - 16 \ 3 ' 25
  6. MOD işlemi. a = 10 + 11 MOD 3 ' 12
  7. Toplama, Çıkarma (+ , -) a = 10 + 5 * 2 - 20 / (2 + 3) ^ 2 ' ' 19.2
Örnekler:
PRINT 5 ^ 2 ' 25 (Karesi)
PRINT 5 ^ -2 '.04
PRINT 1 / 5 ^ 2 '.04
PRINT 25 ^ 1 / 2 '12.5
PRINT (25 ^ 1) / 2 '12.5
PRINT 25 ^ (1 / 2) '5 (Karekök)
PRINT 25 ^ .5  '5 (Karekök)
PRINT 27 ^ (1 / 3) ' 3 (Küpkök)
PRINT 3 + 6 / 12 * 3 - 2' 2.5
PRINT 6 / 12 + 2 ^ 4 ' 0.5
PRINT 5 + .5 * 3' 1.5
PRINT 3 + 9 / 3' 4.5
PRINT 4.5 - 9 / 5 ' 2.5

ABS

Verilen sayının mutlak(ABSolute) değerini verir.

14 Eylül 2021 Salı

QuickBasic - 1: Giriş

Yayınlama: 2000
Güncelleme: 14 Eylül 2021
Bu yazıdaki açıklamalar ve kodlar QuickBasic 4.5 sürümüne göredir. Ekran görüntüleri Microsoft QuickBasic 4.5 programından alınmıştır.
Verilen örnek kodlar tarafımdan QuickBasic 4.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ımladı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 yaptırmak için bir programlama dilinde komutlar 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 dilini kullanacağız.

BASIC nedir?

BASIC, İngilizce Beginners All-Purpose Symbolic Instruction Code kelimelerinin baş harflerinden oluşur. Genel amaçlı, yeni başlayanların öğrenmesi kolay, yüksek seviyeli bir dildir.

Yüksek seviyeli diller: Konuşma diline yakın dillerdir. PYTHON, PASCAL, BASIC, FORTRAN vb. diller.
Düşük seviyeli diller: Makine diline yakın dillerdir. Makine Dili, ASSEMBLY dili.

Tarihçe


İlk BASIC programlama dili 1964 yılında Thomas E. Kurtz ve John G. Kemeny adlı iki matematikçi ve bilgisayar bilimci tarafından tasarlandı.

11 Haziran 2021 Cuma

QuickBasic - 5: Döngüler

Yayınlama: 2000
Güncelleme: 11 Haziran 2021
Bir kod bloğunun belirli sayıda veya şarta bağlı sayıda tekrar edilmesine döngü deniliyor. Döngü sayesinde kod tekrarından kaçınmış oluruz. Döngü sayısı belli değil ve döngüden çıkmak için uygun şart yoksa sonsuz döngü denilen bir durum oluşur.

Program sonsuz döngüye uğradığında ya da döngünün herhangi aşamasında programı duraklatmak için klavyeden CTRL+PAUSE tuşlarına basılır. (DOSBOX kullananlar: CTRL+SCROLL LOCK)
Döngüyü kırdığımızda kod editörü ekranı gelir ve programın kırıldığı satırın yazısı beyaz renkli olarak gösterilir.


F5 ile ya da menüden Run/Continue ile program, çalışmaya kaldığı yerden devam eder.
Çalışmayı baştan başlatmak için menüden Run/Restart. Adım adım ilerletmek için F8

GOTO

Kullanımı:
GOTO {etiket | satır_no}
Program akışını istenilen satıra ya da etikete yönlendirmek için kullanılır. Bir döngü komutu değildir ancak döngü oluşturabilir.

6 Haziran 2021 Pazar

QuickBasic Sıralama Algoritmaları

Sıralama algoritması, liste ya da dizi elemanlarını belirli bir sıraya sokan algoritmadır. Genelde sayı büyüklüğü veya alfabetik düzende sıralama yapılır. Windows işletim sisteminde bilgisayardaki klasörler ve dosyaları listeleyen dosya gezgininde özelliğe göre artan veya azalan sıralama yapmışsınızdır muhakkak.
Sıralama işleminin verimli yapılması, arama ve birleştirme algoritmaları gibi çalışması için sıralanmış dizilere gereksinim duyan algoritmaların başarımının yüksek olması için önemlidir.
Sıralama algoritmaları bilgisayarlarda tutulan verilerin düzenlenmesini ve kullanıcı tarafından daha rahat algılanmasını da sağlar.

Sıralama algoritmaları, tanımı çok basit olmasına karşın çözümü çok karmaşık olan bir işi gerçekleştirdikleri için, üzerinde en fazla araştırma yapılan bilgisayar bilimi konularından biridir.
Çoğu kişi sıralama sorununu çözülmüş bir sorun olarak görse de, yeni sıralama algoritmaları üzerinde araştırmalar sürmektedir.
Örneğin kütüphane sıralaması ilk olarak 2004 yılında ortaya atılmıştır. Sıralama algoritmaları, sayılarının çok olması ve değişik yaklaşımlar sunmaları nedeniyle özellikle giriş düzeyindeki bilgisayar bilimleri derslerinde Büyük O (Big Oh) gösterimi ve veri yapıları gibi temel algoritma kavramlarının açıklanması amacıyla yaygın biçimde kullanılırlar.  Kaynak: Vikipedi

QuickBasic v4.50 programında bazı sıralama algoritma kodlarını yazdım. Basic dili anlaşılması kolay olan bir dil olduğu için aşağıdaki videolarda verdiğim sıralama kodları diğer dillere kolaylıkla uyarlanabilir.

Sıralama Algoritmaları:

15 Nisan 2021 Perşembe

Windows üzerinde DOSBox ile QuickBasic Kurulumu ve Çalıştırma


QuickBasic v4.5 ve onunla üretilen EXE programlar Windows 7, 8 ve 10 üzerinde çalışmamaktadır. Windows XP ve öncesi Windows ve DOS sistemlerde çalışır.
Windows 10, Windows 11 üzerinde QuickBasic çalıştırabilmek için iki farklı yöntem kullanılabilir:

  1. Sanal sistem( VirtualBox veya Vmware Workstation) kurup onun üzerine DOS, Win 95, Win 98 veya XP kurmak ve kurulu sanal sisteme QuickBasic kurmak,
  2. DOSBox kurup üzerine QuickBasic kurmak.
Bu yazıda 2. yöntemi açıklayacağım.

DOSBox indirme, kurma ve çalıştırma

DOSBox bir DOS emülatörüdür. Windows, BeOS, Linux, MacOS X gibi birçok farklı platforma kurmak için sürümleri vardır. https://www.dosbox.com/download.php?main=1 sayfasından sisteminiz için uygun olan sürümü indirebilirsiniz. Tamamen ücretsiz bir yazılımdır.

  • Komut satırından DOS komutlarını girebilirsiniz. Örneğin VER ve MEM komutlarını deneyin.
  • C: sürücüsüne geçmeyi deneyin. C sürücüsü olmadığı için hata verecektir.
  • Başlangıçta emülatörde Z sürücüsünden başka sürücü yoktur.

3 Mart 2021 Çarşamba

QuickBasic Kod Yarışması. Soru 2

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:

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.

QuickBasic Ana Sayfa

25 Şubat 2021 Perşembe

QuickBasic - 27: Program Çalışma Süresini Hesaplama

Yayınlama: 25 Şubat 2021
Program çalışma süresi; programın başlaması ile bitişi arasında geçen süredir.

Program kodlarının hantal kullanımı, değişkenlerin gereksiz veya yanlış kullanımı aynı işi yapan uzun algoritma seçilmesi program çalışma süresinin artmasına neden olur.

Bu durum küçük programlar için önemsenmeyebilir ancak büyük veri işleyen büyük programlar için programın iş yapma süresi önemli konudur. O yüzden programlamaya başladığınızda hızlı çalışan kodlama tekniklerini öğrenmek ve kullanmak ilerisi için iyi bir alışkanlık olacaktır.

QuickBasic program kodlarının çalışma süresini hesaplamak isterseniz aşağıdaki örnekten faydalanabilirsiniz.

Kodlar derlenip exe dosyaya dönüştürüldüğünde daha hızlı çalışacaktır.

24 Şubat 2021 Çarşamba

QuickBasic Kod Yarışması. Soru 1

Soru 1:

1-100 arası sayıları satır satır yazdırırken
3'e bölünenlere Fizz
5'e bölünenlere Buzz
15'e bölünenlere FizzBuzz eklesin.

Kodlar QuickBasic v4.5 uyumlu olacak.

Çıktı

1
2
3 Fizz
4
5 Buzz
6 Fizz
7
8
9 Fizz
10 Buzz
.
.
14
15 FizzBuzz
16
.
.
99 Fizz
100 Buzz

Hedefler:

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.

QuickBasic Ana Sayfa

15 Şubat 2021 Pazartesi

QuickBasic - 4: Kontrol blokları

Yayınlama: 2000
Güncelleme: 15 Şubat 2021
Programlama dillerinde döngüler ve akış kontrol komutları çok sık kullanılır.
Programları program yapan esas kısımlar bu komutlarla sağlanır.
QuickBasic'te diğer programlama dillerindekine benzer yapıda döngüler ve mantıksal karşılaştırmalar yapılabilir.

IF ... THEN ... ELSE

Mantıksal karşılaştırma için kullanılır.
Karşılaştırma işlemin sonucunda bir değer döner bu değer ya mantıksal DOĞRU dur ya da mantıksal YANLIŞ.
Lise 1 deyken matematik dersinde Mantık konusunda 1 ve 0'lar ile, doğru ve yanlışlar ile işlemler yapardık. Birçok kişide ne işe yarıyor bunlar diye söylenip dururlardı.
Demek ki bir gerekliliği varmış.
İşte onlar burada gerekecek, isterseniz matematikteki MANTIK ile ilgili kısımları bir daha gözden geçirin. :)

Örnek 1:
IF A = 40 THEN B = 40
A değişkenin değeri 40 ise B değişkeninin değeri de 40 olacaktır.
Eğer A'nın değeri 40 dan farklı ise bu satırın hiçbir etkisi olmayacaktır. B=40 işletilmeyecektir.

Örnek 2:
A = 25
IF A > 40 THEN M$ ="Sayı 40 dan büyük" ELSE M$= "Sayı 40 dan küçük"
PRINT M$
Üstte A değişkeninin değerinin 40'dan büyük olup olmadığı kontrol ediliyor.
Mantıksal karşılaştırmanın sonucunda ancak iki değer dönebilir. DOĞRU veya YANLIŞ.

QuickBasic - 3: Değişkenlere veri aktarma

Yayınlama: 2000
Güncelleme: 15 Şubat 2021

CLS

Bu komut çalıştırıldığında daha önceden ekrana yazılmış olan yazılar silinir.
Genelde programlar, ilk olarak ekranı temizleyerek, sonraki yazılacaklara temiz bir ekran hazırlar.

Burada dikkat edilecek şey CLS den bir önceki zemin rengi ne ise ekran o renk ile doldurulur.
CLS den önce bir renk ayarı yapılmamışsa ekran siyah renk ile doldurularak temizlenir.

COLOR , 4 'Zemin rengi kırmızı
CLS
PRINT "Merhaba"
COLOR 14 'Yazı rengi sarı
PRINT "Dünya !"

Değişkenlere Veri Aktarmak

Veri tiplerini açıklarken değişkenlerden bahsetmiştik. Değişkenler, bilgisayarın belleğinde veri tutmak için kullanılır.
Değişkenler bir harf ile başlayıp 40 karaktere kadar bir isim alabilir.
Değişken adlarında İngilizce harfler ve rakamlar kullanılır. Bunların dışındaki karakterler kabul edilmez.

Değişken adı bir harf ile başlamalıdır.
Büyük-küçük harf ayırt edilmez. SOYADI, soyadi , Soyadi , SoyAdi , soyAdi , SoyADI  aynı değişken adıdır. soyadı İngilizcede ı harfi olmadığından kabul edilmez.

Hata oluşturan değişken adlarına örnekler:

DIM 4KAT 'Rakam ile başlamış. Bir harf ile başlamalı
DIM MÜŞTERİ 'Türkçe harfler (Ü,Ş,İ) kullanılmış. İngilizce harfler kullanılmalı
DIM PERSONEL NO 'boşluk karakteri kullanılmış. Boşluk karakteri kabul edilmez
DIM Adi.Soyadi ' Adi adlı bir veri tipi tanımlaması yoksa hata verir.
DIM MEDENI_DURUMU '_ karekteri kullanılmış. Kabul edilmez.

LET

Değişkenlere değer aktarmak için kullanılan fonksiyondur. Eski BASIC program kodlarıyla uyum içindir.

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.

3 Ekim 2020 Cumartesi

QuickBasic - 13: Grafik işlemleri-1

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.

2 Ekim 2020 Cuma

QuickBasic - 12: Dosya işlemleri-3

Yayınlama: 2000
Güncelleme: 2 Ekim 2020

Binary(ikili) Dosya Oluşturma ve Yazma

Yalnız metin içermeyen dosyalar vardır. Örneğin; resim(BMP, JPG, GIF ...) ses(WAV, MP3 ...), video(AVI, MOV, MPG ...) gibi dosyalar.

Bu tür dosyalar içinde metin aranmaz ve metinle ilgili işlemler de yapılmaz.

Ama örneğin bir GIF dosya yapısını öğrendiniz ve dosya içindeki resmi ekrana basmak istiyorsunuz.

Bunun için dosyayı binary olarak açıp içindeki kodları resim kodlarına dönüştürmelisiniz.

Binary dosya çalışma sistemi RANDOM dosya gibidir ancak önceden bir kayıt yapısı belirleme gerekliliği yoktur.

GET# ve PUT# komutları ile dosyanın istenilen kısmını okuyabilir, değişiklik yapabilirsiniz.

Binary Dosya Açma

OPEN "c:\ornek\ikili.bin" FOR BINARY AS #1
Random dosyada olduğu gibi dosya yoksa oluşturulur. Varsa sorun çıkmaz. Var olan dosya kullanılır.