Quick-Basic Kursu
Bölüm 8: Karakterlerle ilgili işlemler
Kursun bu bölümünde karakterle ilgili komutları inceleyeceğiz.
PRINT
Verileri ekrana yazdırmak için kullanıyoruz.
PRINT ifade yada değişken , ;
ifade olarak bir fonksiyon ya da matematiksel işlem olabilir. Virgül verileri belli atlama noktalarına dizerek yazar, Noktalı virgül ise verileri boşluk bırakmadan yazdırır.
1 2 3 4 5 6 7 |
A$ = "Quick" : B$ = "Basic" : C$ = "v4.5" PRINT A$ , B$ , C$ PRINT A$ ; B$ ; C$ PRINT A$ + B$ + C$ <font color="#008000">' üstteki satırla aynı işi görür</font> PRINT A$ ; " " ; B$ ; " " ; C$ PRINT LEN(A$) PRINT (4545 - 256) * 24 / 2 ^ 3 + 20 |
Matematiksel işlem uygulandığında işlem öncelik sırası: parantez içi , ^ , * ve / , + ve –
PRINT 10 – 3 * 2 işleminin sonucu 14 değil 4 dür. Çünkü * öncelikli olduğundan 3 * 2 işlemi önce yapılır. 10 dan 3 ü çıkarıp 2 ile çarpmak isterseniz
PRINT (10 – 3) * 2 olarak yazmalısınız.
TAB komutu ile sonraki yazacağımız metnin başlangıç kolonunu belirtiriz
PRINT “1 – ” ; TAB(5) ; “Qb 4.5”; TAB(20); “DOS”
PRINT “2 – ” ; TAB(5) ; “Visual basic ” ;TAB(20); “WIN”
SPC komutu ile de arada bırakılacak boşluk belirtilir.
PRINT “1 – ” ; SPC(3) ; “Qbasic”; SPC(4); “DOS”
PRINT “2 – ” ; SPC(5) ; “Visual basic” ; SPC(4) ;”WIN”
PRINT USING
Metin ya da rakamları belirtilen biçimde yazar. Biçimleme için özel karakterler kullanılır.
Sayısal değerler için |
# : sayının konumunu |
. (nokta) : küsuratı |
, (virgül) : binler ayıracı |
+ (artı) : sayının negatif veya pozitif işaretinin konumu |
– (eksi) : negatif sayılarda, sayıdan sonra – konur |
$$ : Dolar işareti ekler. PRINT USING “$$###.##” ; 458.62 |
** : Rakamların başına * koyarak her rakamın aynı genişlikte olmasını sağlar |
**$ : ** ve $ bileşik |
^^^^ : Sayıları üssü olarak gösterir. PRINT USING “##.##^^^^”; 234.56 |
Sözel değerler için |
& : Değişkenlerin yerleştirileceği yeri belirler PRINT USING “Gülen & ile ağlayan &”; “ayva”; “nar” |
! (ünlem) : Metnin ilk karakterini verir PRINT USING “!!”; “Mesut”; “Akcan” |
_ (alt eksi) : Bu tablodaki özel karakterlerden birini yazdırmak istersek önüne _ konur PRINT USING “! 1500_!”; “qbasic” |
Herhangi bir karakter : (Bu tabloda verilen karakterlerin dışında karakter) Olduğu gibi aynı konumda yazılır |
1 2 3 4 5 6 |
DIM AY AS DOUBLE CLS AY(0) = 454121.3654 : AY(1) = -6845.587 : AY(2) = 982.6 FOR N% = 0 TO 2 PRINT USING "###,###.##+"; AY(N%) NEXT |
STR$
Bellekte sayı olarak tutulan bir değeri metne(STRing) dönüştürür.
STR$(sayısal değer ya da değişken)
Örnek:
1 2 3 4 5 6 7 8 |
CLS A% = 1986 : B% = 15 PRINT "Bu yıl "; PRINT A% + B%; PRINT " yılındayız" PRINT "Bu yıl "; PRINT STR$(A%) + STR$(B%); PRINT " yılındayız" |
Yukarıdaki kodları denediğinizde A% ile B% yi toplayabilirken bunu STRing e yani metne dönüştürdüğünde toplamak yerine birleştirdi. Çünkü daha önce PRINT komutunda da görmüştük string verilerde sayısal işlem yapılamaz.
1 2 |
PRINT 1 + 1 <font color="#008000">' sonuç: 2</font> PRINT "1" + "1" <font color="#008000">'sonuç: 11 , ama sayısal 11 değil</font> |
VAL
Bellekte metin olarak tutulan rakamı, sayısal işlemlerde de kullanılabilecek halde sayı değerine(VALue) dönüştürür
VAL(sözel değer ya da değişken)
Örnek:
1 2 |
INPUT "Doğum yılınız"; T$ PRINT "Yaşınız "; 2001 - VAL(T$) |
Örnekte metin olarak girdiğimiz T$ sayısal işleme sokulamaz VAL ile dönüşüm sağlanarak sayısal işlem yapılmıştır.
STRING$
Aynı karakterden çok sayıda kullanmanız gerekiyorsa kullanılır.
STRING$(sayı,karakter)
1 2 |
PRINT STRING$(2000,"*")<font color="#008000"> ' ekranı * ile doldurur</font> PRINT STRING$(80,"=") <font color="#008000">' Bir satırı = ile doldurur</font> |
SPACE$
Değişkene istenilen sayı kadar boşluk karakteri aktarır
1 2 3 4 |
FOR I=1 TO 5 X$=SPACE$(I) PRINT X$;"MESUT" NEXT |
ASC
Bir karakterin ASCII kod karşılığını verir
ASC(karakter)
1 2 |
PRINT ASC("A") PRINT ASC("MESUT") <font color="#008000">'bu satırda sadece ilk harf olan M harfi dikkate alınır</font> |
CHR$
ASCII koduna denk gelen karakteri(CHaRacter) verir.
CHR$(ascii kod)
1 2 3 4 |
PRINT CHR$(65) 'ekrana A çıkar FOR N% = 32 TO 255 <font color="#008000">' 32 den 255 e kadar olan </font> PRINT CHR$(N%) <font color="#008000">'ascii karakterleri yaz</font> NEXT |
HEX$ , OCT$
HEX$: Verilen sayıyı 16’lık sayı sistemine(HEXadecimal) dönüştürür
HEX$(sayı)
OCT$: Verilen sayıyı 8’lik sayı sistemine(OCTal) dönüştürür
OCT$(sayı)
1 2 |
PRINT HEX$(2001) <font color="#008000">' 7D1 </font>PRINT OCT$(2001) <font color="#008000">' 3721</font> |
INKEY$
Klavyeden girilen karakteri okur. ESC tuşunun ASCII kodu 27 dir.
1 2 3 4 |
DO A$ = INKEY$ LOCATE 5, 5: PRINT A$ LOOP UNTIL A$ = CHR$(27) <font color="#008000">'Çıkmak için ESC tuşuna basın</font> |
2. örnek: Çok basit bir editör
1 2 3 4 |
DO A$ = INKEY$ PRINT A$; LOOP UNTIL A$ = CHR$(27) |
LCASE$ , UCASE$
LCASE$: Verilen metni küçük harflere(Lower CASE) dönüştürür.
UCASE$: Verilen metni büyük harflere(Upper CASE) dönüştürür. Her iki komutta da yalnızca İngilizce harfler dikkate alınır.
1 2 |
PRINT LCASE$("MERHABA Dunya") PRINT LCASE$("Merhaba Dunya") |
LEFT$ , RIGHT$ , MID$
LEFT : Metnin belli sayıda sol(LEFT)undaki karakterleri alır
RIGHT: Metnin belli sayıda sağ(RIGHT)ındaki karakterleri alır
MID: Metnin belli sayıda orta(MIDDLE)sındaki karakterleri alır
1 2 3 |
PRINT LEFT$("QuickBasicV4.5",5) PRINT LEFT$("QuickBasicV4.5",4) PRINT MID$("QuickBasicV4.5",6,5) '6. karakterden itibaren 5 karakter |
MID$ ın farklı kullanımı: Burada verilen metin içinde değişiklik yapar
1 2 3 |
A$ = "O adam 25 yaşında" MID$(A$,3)="kadın" PRINT A$ |
LEN
Verilen metnin kaç karakterden oluştuğunu verir
1 2 3 4 5 6 |
A$ = "MESUT AKCAN" G% = LEN(A$) PRINT G% <font color="#008000">'11 , çünkü boşluklar da sayılır</font> FOR N%=1 TO G% PRINT LEFT$(A$,N%) NEXT |
LTRIM$ , RTRIM$
LTRIM$: Metnin solundaki boşlukları siler
RTRIM$: Metnin sağındaki boşlukları siler
1 |
PRINT LTRIM$(RTRIM$(" MESUT AKCAN ")) |