Etiketler

Youtube Kanalıma Abone Olunuz

8 Ekim 2019 Salı

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

Önceki Bölüm: QuickBasic Kursu: Bölüm 4: Kontrol blokları
Güncelleme: 8 Ekim 2019
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.
basla:
A = A + 1
PRINT A
GOTO basla
Yukarıdaki program bir sonsuz döngü oluşturur.
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 END
 PRINT A
GOTO basla
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 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.

Eğer ilk satırı
FOR N = 1 TO 25 STEP 4
olarak yazacak olursak.
N nin ilk değeri 1 olacak sonra her seferinde üzerine 4 eklenerek devam edecektir.
FOR N = 25 TO 1 STEP -1
yazılacak olursa 25 den 1 e doğru N nin değeri her seferinde 1 azaltılır.
NEXT in arkasına değişkeni yazmak şart değildir ama okunurluğu kolaylaştırmak için yazmakta fayda vardır.
FOR ları içi içe koyarak da kullanılabilir.
İçerdeki FOR un NEXT i dışarıdakinin NEXT inden sonra gelmemesine dikkat etmelisiniz.
FOR N = 1 TO 10
 FOR M = 1 TO 4
  PRINT N * M ,
 NEXT M
PRINT
NEXT N
FOR döngüsünden çıkma gereği olursa EXIT FOR ile çıkılabilir.

PROBLEM 2 : Problem 1 i FOR..NEXT döngüsüyle yapın

DO ... LOOP döngüsü

DO
 PRINT A
 A = A +1
LOOP
Bu da sonsuz döngü oluşturacaktır. Döngüyü kırmak, kontrol altına almak için çeşitli yollar var

EXIT DO ile döngüden çıkmak:
DO
 IF A > 40 THEN EXIT DO 'A 40 dan büyük olduğunda döngüden çık
 PRINT A
 A = A +1
LOOP
WHILE kullanarak döngüyü kontrol altına almak: 1 . program
CLS
DO WHILE A < 40 ' A, 40 dan küçük İKEN(while) döngüye devam
  PRINT A
  A = A + 1
LOOP
2 . program
CLS
DO
 PRINT A
 A = A + 1
LOOP WHILE A < 40 ' A, 40 dan küçük İKEN(while) döngüye devam
Yukarıdaki iki programı denediğinizde hiçbir fark göremeyeceksiniz.
Şimdi ilk satırlarına A = 45 komutunu ekleyip deneyin ve farkı anlamaya çalışın.
Eğer WHILE ı LOOP un yanına koyarsak döngüde şart aranmaksızın en az 1 kere döner.
DO nun yanına konulursa döngü başlamadan şart kontrol edilir, şart uygun değilse döngü gerçekleşmez.

UNTIL kullanarak döngüyü kontrol altına almak:
CLS
DO UNTIL A > 40 ' şart DOĞRU olanA KADAR dön. A , 40 dan büyük olana kadar devam
 PRINT A
 A = A +1
LOOP
WHILE için verdiğim açıklamalar bunda da geçerli.
UNTIL i DO nun yanına ya da LOOP un yanına koyabiliriz.

Kısaca WHILE, şartın DOĞRU olmasında; UNTIL, şartın YANLIŞ olmasında döngüye devam eder.

PROBLEM 3: Problem 1 i DO..LOOP döngüsüyle yapın

WHILE ... WEND döngüsü

CLS
WHILE A < 40 ' A , dan küçük İKEN devam
 A = A + 2
 PRINT A
WEND
WHILE...WEND, DO...LOOP un bir alternatifidir. Ama DO LOOP kadar kullanışlı değildir. Çünkü DO LOOP da karşılaştırma şartını başta veya sonda verebiliyoruz.
PROBLEM 4: Problem 1 i WHILE..WEND döngüsüyle yapın

Örnek:
' Kabarcık sıralama
CONST FALSE = 0, TRUE = NOT FALSE
DIM A$(4)
A$(1) = "Niğde"
A$(2) = "Bursa"
A$(3) = "Adana"
A$(4) = "Sivas"
Max = UBOUND(A$)
Degisme = TRUE
WHILE Degisme
   Degisme = FALSE
   FOR I = 2 TO Max
      IF A$(I - 1) > A$(I) THEN
         Degisme = TRUE
         SWAP A$(I - 1), A$(I)
      END IF
   NEXT
WEND
CLS
FOR I = 1 TO 4
   PRINT A$(I)
NEXT I
END
Sonraki Bölüm:
QuickBasic Kursu: Bölüm 6: Diziler

Hiç yorum yok:

Yorum Gönder