Karakter Fonksiyonlar
(STR$, STRING$, SPACE$, SWAP, SPC$, TAB)

KARAKTER FONKSİYONLAR (DEVAM)

STR$(SAYISAL DEĞİŞKEN)

Str$ fonksiyonu sayısal bilgilerin karakter bilgi olarak algılanmasını sağlar. Daha değişik bir deyişle A, D, YAZ veya SAYI gibi sayısal değişkenlerdeki bilgilerin B$, KDJ$ ya da daha değişik (ismini bizim belirleyeceğimiz) karakter bilgi değişkenlerine aktarılmasını sağlar. Tabi sonu $ işareti ile biten karakter değişkenlerdeki bilgiler de her ne kadar sayı olarak da görünse üzerlerinde matematiksel işlem yapılamaz. Bilgisayar bu bilgileri sayısal olarak değil de karakter bilgi olarak algılar.

Örnek 1:

10 A=23

20 A$=STR$(A)

30 PRINT A$

RUN

23

Ok

Burada A sayısal değişkenindeki 23 değerini A$ karakter değişkenine str$ fonksiyonu ile atadığımızda ekran görüntüsünde herhangi bir değişiklik olmamakta, yani, print a ve print a$ komut satırlarının her ikisinin sonucu da ekranda 23 olarak görüntülenmektedir. Fark bilgisayarın bu değişkenlerdeki bilgileri farklı algılamasındadır. Bilgisayar a değişkenindeki 23 bilgisini sayısal olarak algılamakta ve bu değer üzerinde matematiksel işlemler yapabilmekte iken a$ değişkenindeki bilgiyi sadece karakter bilgi olarak kabul etmekte ve matematiksel işlem yapamamaktadır.

Örnek 2:

10 a=19

20 b=99

30 a$=str$(a)

40 b$=str$(b)

50 print a$+b$

RUN

1999

Ok

Gördüğünüz gibi bu programda a ve b sayısal değişkenlerindeki sayısal değerler a$ ve b$ değişkenlerine karakter bilgi olarak aktarılınca 50 no'lu satırdaki "+" işareti toplama vazifesi değil de yan yana birleştirme vazifesi görerek ekrana 1999 rakamı yazdırıldı. Eğer 50 no'lu satırda print a$+b$ yerine print a+b yazılsaydı sonuç 118 olacaktı.

STRING$(ADET,KARAKTER )

Diyelim ki ekrana 20 karakter uzunluğunda "-" karakterlerinden oluşan bir çizgi çekmek istiyorsunuz. Bunun için 20 kez "-" karakterini yazmak yerine şöyle bir işlem yapabilirsiniz;

PRINT STRING$(20,"-")

Enter'a basıldığında aşağıdaki görüntü oluşur:

--------------------

Ya da aynı işlemi şu şekilde yapabilirsiniz:

PRINT STRING$(20,196)

Burada 196 değeri "-" karakterinin ascii kod karşılığıdır. Hatırlayın CHR$ komutunda öğrenmiştik. PRINT chr$(196) yazdığımızda bu karakter üretilir.

Daha değişik bir deyimle STRING$ fonksiyonunun önüne yazılan parantez içindeki ilk rakam üretilecek karakterin kaç tane olduğunu belirler. Virgül işaretinden sonraki ikinci hanede ise hangi karakterin üretileceği belirtilir. Bu üç şekilde belirtilebilir:

1. Doğrudan tırnak içerisinde karakter yazılır. ("&" gibi, veya "*" gibi)

2. Üretilecek karakterin ASCII karşılığı olan sayısal değer girilir.

3. Herhangi bir değişkende bulunan karakter üretilmek için değişken yazılır.

Üçüncü şıkka Örnek:

10 A$="/"

20 PRINT STRING$(30,A$)

RUN

//////////////////////////////

Ok

Eğer değişkende birden fazla karakter mevcutsa sadece ilk karakterden üretilir. Mesela A$="ahmet" olsaydı 30 tane a karakteri üretilirdi.

Ya da değişken karakter değişken değil de sayısal değişken olsaydı ve değeri de 75 olsaydı (A$=75) bu takdirde 75 sayısının ASCII karşılığı olan K (Büyük harf K) karakterinden 30 adet yazılırdı.

SPACE$(sayı/sayısal değişken)

İstenilen sayıda boşluk karakteri üretir. Parantez içerisine ne kadar boşluk üretilecekse o değere eşit olan sayı ya da bu sayıya eşit değeri içeren sayısal değişken yazılır.

Örnek:

PRINT "ADI";SPACE$(7);"SOYADI";SPACE$(8);"ADRESİ"

Enter'a basıldığında sonuç şu olacaktır:

ADI.......SOYADI........ADRESİ

Tabi kelimeler arasındaki nokta (.) işaretleri olmayacak. Ben onları aralardaki boşluk sayısı belli olsun diye koydum. Bir de komut satırı içerisindeki ; işaretlerinin anlamını hatırladınız mı bilmiyorum ama yine de tekrar edeyim. Bu ; işaretlerinin anlamı Bilgisayarın bu işaretten önceki işlemi yaptıktan sonra bir alt satıra geçmeyip bulunduğu yerden devam etmesini sağlamasıdır. Aslında bu ; işaretleri olmasa da olur. Yani;

PRINT "ADI"SPACE$(7)"SOYADI"SPACE$(8)"ADRESİ" şeklindeki komut satırı da aynı sonucu verir. Çünkü bu işlemlerin hepsi bir tek PRINT komutu altında bir satırda toplanmış.

SWAP DEĞİŞKEN1,DEĞİŞKEN2

İki karakter değişkenin içeriğini değiştirir.

Örnek:

10 A$="ŞİİR":B$="OKUMA"

20 PRINT A$,B$

30 SWAP A$,B$

40 PRINT A$,B$

RUN

ŞİİR OKUMA

OKUMA ŞİİR

Ok

SPC$(BOŞLUK SAYISI)

SPACE$ fonksiyonunda olduğu gibi belirtilen sayıda boşluk bırakır.

Örnek:

10 PRINT="GWBASİC " SPC(10) "PROGRAMLAMA"

RUN

GWBASİC..........PROGRAMLAMA

Ok

Buradaki noktalar da kaç tane boşluk bırakıldığının görülmesi için koyulmuştur. Nokta yerlerinde boşluk vardır.

TAB(SAYI)

Ekrana veya yazıcıya bilgi yazdırılırken istenilen sayıda boşluk bırakılmasını, başka bir deyişle kursörü istenilen sütuna taşımayı sağlar. Bu fonksiyon muhakkak PRINT ya da LPRINT komutları ile birlikte kullanılır.

Örnek:

10 PRINT TAB(20);"SATIR DÜZENLEME"

RUN

....................SATIR DÜZENLEME

Ok

Burada TIRNAK içerisinde belirtilen bilgi yerine tırnak işareti kullanmadan herhangi bir değişkendeki bilgiyi de yazdırabiliriz. PRINT tab(15);a$ gibi.

20. Sayfa           22. Sayfa

INDEX