IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Programlama (https://www.ircforumlari.net/programlama/)
-   -   Quick-Basic Adına Tüm Konular (https://www.ircforumlari.net/programlama/719822-quick-basic-adina-tum-konular.html)

Kaf_Dağı 22 Aralık 2015 12:04

Cevap: Quick-Basic Adına Tüm Konular
 
INPUT Komutu


Değişkenlere A = 45 gibi bir satır yazarak bir değer aktarabiliyoruz. Bazen program çalışırken
değişkenlere programı kullanan kişinin veri aktarması istenebilir. INPUT komutu ile istediğimiz
değişkenlere program çalışırken değer aktarılabilir.
INPUT kullanılırken; INPUT un ardından verilecek mesaj tırnaklar arasında yazılır sonra (,)
veya (;) konulur ve klavyeden yazdıklarımızı aktaracağımız değişken ismi yazılır.


Kod:

CLS
INPUT "ADINIZ " ; AD$
INPUT "YAŞINIZ " , YAS%
PRINT "Sayın " ; AD$ ; YAS% ; " yaşındasınız."

Yaşımızı sorduğunda rakam dışında bir şey yazarsak, bir uyarı ile aynı soruyu tekrar sorulur.

DÜŞÜN: Burada virgül ile noktalı virgülün farkı ne?

Kaf_Dağı 22 Aralık 2015 12:55

Cevap: Quick-Basic Adına Tüm Konular
 
PRINT Komutu

Ekrana bir mesaj veya bir değişkenin değerini yada bir fonksiyon yada işlemin sonucunu
yazdırmak için kullanılır. PRINT yazmak yerine yalnızca ? yazın.

Kod:

CLS
PRINT 3 * 8 + 12 ' Sonuç 36 olarak ekranda görünecek
YASI = 32
PRINT "Yaşı = " ; YASI ; " dir"
A% = 15
B! = 3.14
ADI$ = "Mesut"
PRINT A% , B! , ADI$
SA$ = "Akcan"
PRINT ADI$ ; SA$


DÜŞÜN: PRINT de kullanılan virgül ve noktalı virgülün farkı ne?
PRINT komutunda bir işlemin sonucunu da yazdıracağımızı söylemiştim.

Kod:

PRINT 12+33 ' Ekrana toplamı(45) verir
PRINT 125+48*10 ' 605 yazar. Öncelik sırası: Parantez içi, * / + - dir
PRINT 12-(80/4-23)+54/9 ' sonuç: 21 ??

PRINT 1 + 1 ' Toplam olan 2 çıkar
PRINT "1" + "1"
' 11 çıkar. Çift tırnak içindeki sayılar sayı olarak görülmez.
' Burada sayı olmadığı için toplama işlemi değil
' tırnaklar içindekileri birleştirme işlemi uygulanır
PRINT "QUICK" + "basic" ' QUICKbasic
PRINT 8 + "elma" ' !!! Hata !!!
PRINT "8" + "elma" ' 8elma
PRINT 8 ; "elma" ' 8 elma
PRINT 8/2 ; "elma" ' 4 elma


Uygulama


Kod:

CLS
PRINT "Çıkmak için 0 yaz"
basla:
INPUT "Bir sayı yaz "; SAYI
IF SAYI = 0 THEN END
CLS
PRINT "Verdiğiniz sayı "; SAYI
PRINT SAYI; " 'nın karesı "; SAYI ^ 2; " dır."
PRINT SAYI; " 'nın küpü "; SAYI ^ 3; " dır."
GOTO basla


Kaf_Dağı 22 Aralık 2015 13:01

Cevap: Quick-Basic Adına Tüm Konular
 
Bölüm 4: Kontrol blokları


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. Qbasicde 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 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
MANTIK ile ilgili kısımları bir daha gözden geçirin. :)


Mantıksal karşılaştırma için basit bir örnek:


Kod:

IF A = 40 THEN B = 40
Burada A değişkenin değeri 40 ise B nin 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.


Bir başka kullanımı:

Kod:

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Ş. Doğru olması
durumunda THEN den sonraki işlem yapılır, YANLIŞ olması durumunda ise ELSE den sonraki
işlem. A ya 25 aktardığımız için A>40 mantıksal karşılaştırmanın sonucu YANLIŞ olacaktır.
Çünkü 25, 40dan büyük değil. Bu durumda M$ a "Sayı 40 dan küçük" değeri aktarılır.

DÜŞÜN: Üstteki programı denedikten sonra A = 40 olsaydı sonuç ne olurdu? diye düşünüp
cevabı bulmaya çalışın. Sonra Qbasicde deneyerek düşündüğünüzü kontrol edin.


Kod:

IF A = 40 .... ' A , 40 a eşit mi?
IF A > 40 .... ' A , 40 dan büyük mü?
IF A < 40 .... ' A , 40 dan küçük mü?
IF A <> 40 .... ' A , 40 a eşit değilse
IF A <= 40 .... ' A , 40 a eşit ya da 40 dan küçük mü?
IF A >= 40 .... ' A , 40 a eşit ya da 40 dan büyük mü?
IF A ' A nın değeri 0 dan farklı mı?
IF NOT A ' A nın değili DOĞRU mu?

IF ile karşılaştırma yaptığımızda dönen değerlere göre çok sayıda komut yürüteceksek
aşağıdaki yapıyı kullanırız. Bu şekilde kullanımda karşılaştırma bloğunu bitiren END IF
kullanmak zorundayız.

Kod:

IF A > 40 THEN
'doğruysa yapılacaklar
....
....
ELSE
'Yanlışsa yapılacaklar
....
....
END IF

Örnek :


Kod:

INPUT "ADINIZ " ; AD$
IF AD$ = "MESUT" THEN
PRINT "SİZİN ADINIZ MESUT"
ELSE
PRINT "SİZİN ADINIZ MESUT DEĞİL"
END IF


Kaf_Dağı 22 Aralık 2015 13:04

Cevap: Quick-Basic Adına Tüm Konular
 
İç içe IF



Kod:

INPUT A
IF A > 40 THEN
IF A < 60 THEN
PRINT "SAYI 40 ile 60 arasında"
ELSE
PRINT "SAYI 60 yada 60dan büyük"
END IF
ELSE
IF A = 40 THEN
PRINT "SAYI 40a eşit"
ELSE
PRINT "SAYI 40dan küçük"
END IF
END IF


Kaf_Dağı 22 Aralık 2015 13:12

Cevap: Quick-Basic Adına Tüm Konular
 
Mantıksal karşılaştırmalar

Şimdiye kadar bir satırda bir değişkeni karşılaştırdık. Bazen birkaç değişkenin karşılaştırılıp
sonucunun alınması gerekebilir.

Kod:

INPUT A
IF A>10 AND A<20 THEN PRINT "SAYI 10 ile 20 arasında"
INPUT A
IF A<10 OR A>50 THEN PRINT "SAYI 10 ile 50 arasında değil"
' yani sayı 10 dan küçük ya da 50 den büyük

Mantıksal karşılaştırmalarda kullanılacak terimler: AND , OR , XOR , EQV, IMP, NOT

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

1 -> Mantıksal Doğru
0 -> Mantıksal Yanlış
Bu terimlerden faydalanarak bitsel karşılaştırma da yapılabilir.
PRINT (155 AND 160)
yazdığımızda 128 sonucunu alırız. Çünkü 155 in 2 li sayı düzenindeki karşılığı 10011011, 160
ınki ise 10100000. İkisini alt alta yazıp bitlerini AND ile karşılaştırdığımızda

Kod:

10011011
10100000
--------
10000000

çıkar. O da 128 e eşittir. Desimal sayıları 2 li sayıya çevirmek için Hesap makinasını Bilimsel
görünüme getirerek kullanabilirsiniz.. Dec = Decimal(10 lu sayı), Bin = Binary (2 li sayı), Hex =
Hexadecimal (16 lı sayı)

Kaf_Dağı 22 Aralık 2015 13:13

Cevap: Quick-Basic Adına Tüm Konular
 
ELSEIF, SELECT CASE

IF in bir başka kullanımı


Kod:

INPUT "1 ile 3 arasında sayı girin " ; A
IF A = 1 THEN
PRINT "SAYI = 1"
ELSEIF A = 2 THEN
PRINT "SAYI = 2"
ELSEIF A = 3 THEN
PRINT "SAYI = 3"
ELSE
PRINT "HATALI SAYI"
END IF

Bunun yerine buna benzer yapıya sahip anlaşılırlığı ve kodlaması kolay olan SELECT CASE
yapısı kullanılır.


Kod:

INPUT "1 ile 3 arasında sayı girin " ; A
SELECT CASE A
CASE 1
PRINT "SAYI = 1"
CASE 2
PRINT "SAYI = 2"
CASE 3
PRINT "SAYI = 3"
CASE ELSE
PRINT "HATALI SAYI"
END SELECT


Kaf_Dağı 25 Aralık 2015 14:49

Cevap: Quick-Basic Adına Tüm Konular
 
Bölüm 5: Döngüler

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

Kod:

basla:
A = A + 1
PRINT A
GOTO basla

Yukarıdaki program bir sonsuz döngü oluşturur. Durdurmak için CTRL-PAUSE tuşlarına
basınız. Aşağıdaki şekilde değişiklik yaparsak döngüyü kontrol altına almış oluruz.

Kod:

basla:
A = A + 1
IF A>20 THEN END
PRINT A
GOTO basla


Kaf_Dağı 25 Aralık 2015 14:51

Cevap: Quick-Basic Adına Tüm Konular
 
FOR ... NEXT döngüsü


Belirli sayılarda işlemlerin tekrar etmesi için kullanılır.

Kod:

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ı

Kod:

FOR N = 1 TO 25 STEP 4
yapacak olursak. N nin ilk değeri 1 olacak sonra her seferinde üzerine 4 eklenerek devam
edecektir.


Kod:

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.


Kod:

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


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 15:41.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk