ATAMA DEYİM
2.3.3 ATAMA DEYİMLİM!
İleri Basic’t» kullanılan ıtıu ieytalerl BMP ve HIDt dtylalaridir, SMAP Datylmi
İki değişkenin değerlerini birbiri ila daği»tirir.
Dizilia
SWAP daği9ken-l,dcği$k«n-2
değisken-1,-2
Her iki değişkende aynı tipte olaalıdır. tndiali değişken de kullanılabilir.
Dizilia Orneâi
10 ftfs’BIR ‘ *Bt*”IKÎ ’
20 PRIMT At;B*;C»
30 SHAP A*,M 40 PRIHT Af}Bf;C*
RUN
BİR İKt ÜC ÜC İKİ BİR
Lehçeler C-128
Ana bellekteki adresi verilen iki değerin yerleri değiştirilir.
SNAP bayt sayısı, adres-l, adres-2, bank-no Diziliai ile kullanılır. Bayt sayısıı Ana bellekte (RAN aodule) birbiri i! değiştirilecek değerin bayt sayısıdır <0-655351. Adres-l,-2 : Değiştirilec değerlerin başlangıç adresleridir (0-65535). Bank-no : Adres-2 deki değerin aı bellekteki bank nuaarasıdır. Genellikle aakina dilinde prograa yazaak ic kullanılır. (Bkz.Kaynak-5)
Örnek Problea :2.2
100 eleaanlı bir sayı dizisini büyükten küçüğe doğru sıraya dizen bir ALT PRD8R yazınız. Dizinin değerleri ana prograada okutulauştur. Dizi A(100) indlı değişkenidir.
Çözüa Tekniği i
III \ // ‘ Tl I
A(l) A(2)………….A(100)
önce A(l], diğer bütün eleaanlarla karşılaştırılır. Birinci eİMan hangilin) küçükse değerleri değiştirilir. Sonra A(2) kendisinden sonra gelen al Hani aı
!C$a-üC ‘
‘A* ve Ct değişkenlerinin değerleri değiştirilir.
Uhcalar
H8B0, BNBABIC,8A8Î CA,MBBA81C t A-BASIC
SAVE kütük tınıaı <,A>
SftVE kütük tanın <,P>
Dizilişlerinde kullanılır. <,A> seçeneği ile kütük ASCII kodundı taklanır. <,P> seçeneği ile ikili kodlaaa sistesinde korunsuç olarak ukUnırlar. Bu kütükler listeleneaez, saklanaaaz veya düzeltileaezler. Her iki seçenekte kullanılaadığı zaaan sıkıştırılaış ikili kodlaaa sisteainde saklanır.
Kütük kaset teypte saklanacaksa CAS1: aygıt tanıeı kullanılır. HSBO’de kaset teyp için *CSAVE kütük tanıaı* dizilisi kullanılır.
KSX,ATARI-800XL
6enel diziliş aynen kullanılır. Teyp için ’CSAVE kütük tanıaı” dizilisi kullanılır. CPC-444,6128
SAVE kütük tanıaı <,A>
SAVE kütük tanıaı <,P>
SAVE kütük tanıaı <,B> ,(başlangıç adresi,uzunluk,giriş noktası) Dizilişlerinde kullanılır. <,A> kütüğü ASCII kodunda saklar, <,P> prograa korunur yani ikili sisteade saklanır. <,B> belleğin bir bölüşünü ikili kodlu kütük olarak saklar. Saklanacak kütüğün ana bellekteki adresini, uzunluğunu ve saklaaaya başlasa noktasını belirtir. Siris noktası saklaaanm başlayacağı adrestir.
SPECTRUH
SAVE “kütük isai” LINE satır-no Dizilisinde kullanıldığı zaaan belirtilen satırdan itibaren yükleae yapılır.
SAVE ‘kütük issi” CDDE başlangıç adresi, uzunluğu Dizilisinde kullanıldığı zasan belirtilen adresteki kütük saklanır. Hakina dili prograslarında kullanılır. Bu lehçede daha değişik uygulaaalar da vardır.
C-64,C-128
SAVE ‘kütük issi” <,aygıt-noX,EOT tanısı)
Dizilisinde kullanılır. Aygıt-no, disket için 8, teyp için 1 dir. Verilaezse teybe kayıt yapılır. (Bkz. Kaynak-5)
SAVE ST0K$,B ‘STQK$ kütüğünü diskete saklar.
L.OAD Kcarncjı-fc. ca Aaac
yan ünitelerden ana belleğe prograa yükleaek için kullanılır.
Dizilia
LOAD kütük tanımı Açıklaaalar
LOAD koautu ile, prograa yüklenaeden önceki acılaış tüa kütükler kapanır ve tüa değişkenler silinir.
Dizilia Orneâi
LOAD ’AîARAHA.BAS’ ‘ARAMA.BAS prograsını, A disket sürücüsünden ana belleğe yükler
Lahçelar
NSSO^MBABIC^ASICA^SBABIC.A’IMIC
LOAD kütük tanıaı <,K>
Dıziliainde kullanılır. <,R> «»teneği ile prograa ana belleğe yüklendik heaen uygulanır. NS60 d» ‘CLOAD kiıtuk tanıaı* diziliai ile teypten yüklıaa
m
Teypten yükleae yapaak itin “CLOAD kütük tanıaı” diziliai kullanılır. CPC-464,6128
LOAD kütük isai <,adres tanıaı)
Diziliai kullanılır. <,adres tanıaı) kütüğün saklandığı yerin değil y istendiği yerin adresidir. Kütüğün ikili sisteade yüklemesini sağlar. SPECTRUH
SAVE koşutunda anlatılan CODE seçeneği LOAD konutu için de gecerüdir.
LOAD ‘kütük isai* CODE başlangıç adresi, uzunluk Diziliai ile de kullanılır. Kütüğün yükleneceği adresi belirtir. M uygu!asaları da vardır.
C-64.C-128
LOAD ‘kütük isai”<,aygıt-no)<,bel1ek göstergesi)
C-128, Bellek Göstergesi «i olduğu zaaan kütüğün teyp veya diskette olduğu Bellek Böstergesi *0 olduğu zaaan kütüğün Basic prograa alanında olduğu Disket için aygıt nuaarası 8 dir ancak DLOAD koautu da disketten yükleae ya kullanılaakt&dır.
LOAD ARA*,8 * DLOAD ARA*
C-128 de BOOT koautu kütüğün yüklenaesinden sonra islenaesini sağlar. ATARI-800XL
Teypten yükleae yapaak için <CLOAD kütük tanıaı) diziliai kullanılır. <L0AD ‘ diziliai diskten yükleae yapar. <ENTER ’DîDOSYA.LST*) diziliai de aynı < kullanılır.
NAME Komutu
ftaaç
Yan birialerdeki kütüklerin isialerini değiştiraek için kullanılır.
Dizilia
NAME <kütük tanımı> AS <yeni kütük İBin&>
Dizilia Brneâi
NAME *A:DENEHE.BAS’ AS ‘YENİ.BAS’
A sürücüsündeki DENEME.BAS kütüğünün isaini YENİ.BAS olarak değiştirir, sistealerinin de isia değiştirsek için koautları vardır.
Lehçeler
CPC-4M.612B
tşletia sisteai iakanları ile kütük isialeri değiştirilir. (Bkz, CPN Sisteai)
C-128
RENARE <D disk sürücü-no,) ‘eski isai* TO ‘yeni isai* <0N,) U aygıt-no Diziliai ile kullanılır. Diskteki kütüklerin isaini değistiraek için kullanıl
FILES Komutu
Aııç
Yın birialırdaki kütük iıialırinin listelemesi için kullınılır.
Di 2 iliı
FILES <kütük tanımı>
Dizilia Örnekleri
FILES ‘A:DENERE.BAS” ‘ft sürücüsündeki diskette DENENE.BAS kütüğünü arar
FILES ‘Yan birlideki tül kütük isiılerini listeler.
LıhCBİer
C-64,C-12B,CPC-464,6128
Bu lehçelerde bu aaac için işletil sisteıi iakanları kullanılır. (DIR, DIRECTORY gibi)
RESET Komutu flııç
Y»n biriılerdeki acılıı; kütükleri kapataak için kullanılır. Aynı zaıanda ana belleği boıaltır.
Pİ1.İ İli
RESET
Aç ılı İnal ar
Kütük nuaarasız girilen CLOSE deyisinin işlevini yapar.
Dizili!
«
100 RESET ‘Prograa içindeki acılaı» kütükler kapatılır.
110 END lehçeler
C-64,0128,CPC-464,6128,SPECTRUN Yerine CLOSE deyiai kullanılır.
KI i_i_ Komutu
A§*£
Van birialerdeki kütükleri silaek için kullanılır.
Dizilia
KILL kütük tanımı Açı ki atalar
Kapanaaaı; kütükler silineaez. İsletil sistealerinde bu işlevi yapan koautlar vardır. Dizilia ttrneoi •
100 KILL ‘AîDENEHE.BAS’
2.3.3 ATAMA DEYİMLİM!
İleri Basic’t» kullanılan ıtıu ieytalerl BMP ve HIDt dtylalaridir, SMAP Datylmi
İki değişkenin değerlerini birbiri ila daği»tirir.
Dizilia
SWAP daği9ken-l,dcği$k«n-2
değisken-1,-2
Her iki değişkende aynı tipte olaalıdır. tndiali değişken de kullanılabilir.
Dizilia Orneâi
10 ftfs’BIR ‘ *Bt*”IKÎ ’
20 PRIMT At;B*;C»
30 SHAP A*,M 40 PRIHT Af}Bf;C*
RUN
BİR İKt ÜC ÜC İKİ BİR
Lehçeler C-128
Ana bellekteki adresi verilen iki değerin yerleri değiştirilir.
SNAP bayt sayısı, adres-l, adres-2, bank-no Diziliai ile kullanılır. Bayt sayısıı Ana bellekte (RAN aodule) birbiri i! değiştirilecek değerin bayt sayısıdır <0-655351. Adres-l,-2 : Değiştirilec değerlerin başlangıç adresleridir (0-65535). Bank-no : Adres-2 deki değerin aı bellekteki bank nuaarasıdır. Genellikle aakina dilinde prograa yazaak ic kullanılır. (Bkz.Kaynak-5)
Örnek Problea :2.2
100 eleaanlı bir sayı dizisini büyükten küçüğe doğru sıraya dizen bir ALT PRD8R yazınız. Dizinin değerleri ana prograada okutulauştur. Dizi A(100) indlı değişkenidir.
Çözüa Tekniği i
III \ // ‘ Tl I
A(l) A(2)………….A(100)
önce A(l], diğer bütün eleaanlarla karşılaştırılır. Birinci eİMan hangilin) küçükse değerleri değiştirilir. Sonra A(2) kendisinden sonra gelen al Hani aı
!C$a-üC ‘
‘A* ve Ct değişkenlerinin değerleri değiştirilir.
(!) ikinci ııyıç (J) dlr. K»r»ıU*tuı» iılııi 1*1 dtn İ60 • kidir yıpıhr, 1, 9? oluncı iıİM» »on vırilîr,
iri» vc Çıktısı t 10 REM Anı pragrıı 20 OIH A(İOO)
30 FOR I»l ÎO 10 40 PRINT IjVj
50 INPIIT “sayıyı giriniz **}A(1)
60 NEXI I 300 60SU8 İOOO 310 FÖR M TO 10 320 PRINT Ad);
330 NEXT I 340 END
1000 REN Büyükten küçüğe doğru sıraya dizen alt prograndır.
1010 FÖR 1*1 TO 9
1020 FOR 0= I+l TO 10
1030 IF Ad) < A(<!) THEN S«AP Ad),A(J)
1040 NEXT J,î 1050 RETÜRN RUN
1 .»ayıyı giriniz -? 34
2 .sayıyı giriniz -1 56
3 .sayıyı giriniz =? 78
4 .sayıyı giriniz *? 345
5 .sayıyı giriniz *? 65
6 .sayıyı giriniz *? 12
7 .sayıyı giriniz «? 32
8 .sayıyı giriniz =? 863
9 .sayıyı giriniz s? 56
10 .sayıyı giriniz «? 3
863 345 78 65 56 56 34 32 12 3
tının uzataaası için yalnız 10 sayı üzerinde işle* yaptırılıştır. Gerekli isikîiklerı yaparak artırabilirsiniz.
MID^ Deyi mi
t
katar değişkenin içine başka bir katarı yerleştirmek veya atatak için kullanılır. ili»
MID* <X», n<,m>> – Y*
Kırıktır dtğiıkıni vıy» indUH kırıktır di|(ıkmi «İRimı oIı&i|ır ‘wıu gıor, . yıpılıcağı karıktır değişkinidir.
bavlangıc karakter~nö Karıktır değişkenine hangi karıktırdın itibarın ataıanın yapil*C49lnı Mirim t«« lıyt ta» sayı değişken veyı ifadedir. 1-235 ırasında bir değer olabüir‘ ’
karakter uzunluğu <»*
Karakter değişkenine, kaynak katardan kaç karakterin atanacak»1 dürten taa „y, u> sayı değişken veya ifadedir. 0-255 arasında değişir. Verilıedij* îatan kaynak ka*ar,n tö#ö atanır.
.. kaynak katarı (Y*)
Bir boiuitt veya tüıû atanacak olan katardır. Karakter uzunl# kaVnak katardan kl„ U| belirtilen uzunluk kadar ataaa yapılır.
Acı kİaıalar
Başlangıç karakter-no ve karakter uzunluğu gereken sınırlıM» dl»ında i»» hata vırir. Ataıadan sonra karakter değişkeninin boyu hiç bir şekilde desis,ez* HIW deyiij kâraktr fonksiyonu olarakta kullanılır. Bu özelliği karakter fonksiyonları anlatılacaktır.
Dizili» Örnekleri
10 Uf® ‘ANADOLU TARİHÎ*
20 HIDI(HI,9) «”LtSELERt* ’HI değişkeninin ?. noterden sonraki nJr£aBJM
belirtilen katardan a*8*3 yapılır.
30 PRINT Ht RUN
ANADOLU LISELE
Örnekte karakter uzunluğu verilıeıistir. ‘LİSELERİ* katari&ın atanacak^ inc|k yeterli yer alladığı için ancak 6 karakter atanır. Ht karakter değişkeninin bay« Ö8İİI
ıo a** -bir iki dört* *
20 H1D*<A*,9,4) ■ *ûC * ‘M değikenine 9. karakterden itibaren bf]irtjlen
katardan dört karakter atanır*
30 PRINT At RUN
BİR İKİ ÛÇ
örnekte DÖRT üzerine öC atamıştır. RT karakterlerinin ö*BrinB de iki b5| ıraktır atamıştır.
Lehçeler
SPECTRUH … ,
Bu lehçede bu deyiıin yerine DEF FN deyiıi ile tani«lanan öuın,ler kullanılır. (Bkz. KaynaW7.S.W)
irnık PzoUıı *2.3
Elinizde DATA daylaleri ila hazırlanan bir ıdras dizili vırdtr. lu dizide birinci kolonda ad vı loyıdlar, 2. kolonda tokak, saat, İlci vı il kodları bulunmaktadır. 2. kolondaki il kodlan 23. karakterden itibaren yazılaııtır. 2. kolondaki katarın boyu 33 karakterdir. Dizide S adet adres vardır. Bu dizideki il kodlarının yerine
il lalelerini giren ve diziyi yazıcıdan veren prograa yazınız.
lözua Tekniği :
11 kodunu görebilaek için 2. kolon ekranda görüntülendikten sonra il isai ekrandan girilecektir. Sonra adres listesi yazıcıdan alınacaktır. İstenirse SATA deyialeri artırılarak daha geni; bir adres listesi tanzia edilebilir.
.PRINT deyiai Çıkış Deyialeri bölüaünde açıklanacaktır. Çıktıyı yazıcıdan alaak için ullanılır. İsteyenler yerine PRINT deyiai ile çıktıyı ekrandan alabilirler.
‘rograa ve Çıktısı :
10 REH Prograaın isai ADRES.
20 REH Bu prograa DATA deyialeri ile verilen verileri 30 REH okuyarak adres listesi düzenler.
40 LPRINT * ADRES LİSTESİ*
50 FOR 1*1 TO 5 60 FOR Jal TO 2 70 READ AMÜ.J)
90 HEXT J 90 PRINT ADfU,2)
100 INPUT “İL ÎSHİ «*|IL$
110 HIDUAD*Ü,2>,25>*IL*
120 LPRINT AD*<I,l);YjAD*<I,2>
130 NE1T I
140 DATA ’HAEHHET SALHAK*,’SAZAN SOK. 1/3 KEÇİÖREN 06 150 DATA *AL1 KOCANAN’, ‘YALI SOK. 25/6 BAKIRKÖY 34 160 DATA “BİLSE KAYGISIZ*,’OVA SOK. 13/7 BANAZ 64 170 DATA * İZZET HANAY’, ‘SİVAS CAD. DUY6U AP. NO:3 38 ISO DATA “TUR6UT BESEVLİ’,’YAYLA SOK. 6/3 BORNOVA 35 190 END RUN
SAZAN SOK. 1/3 KEÇİÖREN 06
İL 1SH1 =? ANKARA
YALI SOK. 25/6 BAKIRKÖY 34
İL ÎSHİ »? İSTANBUL
OVA SOK. 13/7 BANAZ 64
İL ÎSHİ »? USAK
SİVAS CAD. DUYGU AP. N0ı3 3B
İL tSNi =? KAYSERİ
YAYLA SOK. 6/3 BORNOVA 35
İL ÎSHİ *? 1ZH1R
Ok
irnık PzoUıı *2.3
Elinizde DATA daylaleri ila hazırlanan bir ıdras dizili vırdtr. lu dizide birinci kolonda ad vı loyıdlar, 2. kolonda tokak, saat, İlci vı il kodları bulunmaktadır. 2. kolondaki il kodlan 23. karakterden itibaren yazılaııtır. 2. kolondaki katarın boyu 33 karakterdir. Dizide S adet adres vardır. Bu dizideki il kodlarının yerine
il lalelerini giren ve diziyi yazıcıdan veren prograa yazınız.
lözua Tekniği :
11 kodunu görebilaek için 2. kolon ekranda görüntülendikten sonra il isai ekrandan girilecektir. Sonra adres listesi yazıcıdan alınacaktır. İstenirse SATA deyialeri artırılarak daha geni; bir adres listesi tanzia edilebilir.
.PRINT deyiai Çıkış Deyialeri bölüaünde açıklanacaktır. Çıktıyı yazıcıdan alaak için ullanılır. İsteyenler yerine PRINT deyiai ile çıktıyı ekrandan alabilirler.
‘rograa ve Çıktısı :
10 REH Prograaın isai ADRES.
20 REH Bu prograa DATA deyialeri ile verilen verileri 30 REH okuyarak adres listesi düzenler.
40 LPRINT * ADRES LİSTESİ*
50 FOR 1*1 TO 5 60 FOR Jal TO 2 70 READ AMÜ.J)
90 HEXT J 90 PRINT ADfU,2)
100 INPUT “İL ÎSHİ «*|IL$
110 HIDUAD*Ü,2>,25>*IL*
120 LPRINT AD*<I,l);YjAD*<I,2>
130 NE1T I
140 DATA ’HAEHHET SALHAK*,’SAZAN SOK. 1/3 KEÇİÖREN 06 150 DATA *AL1 KOCANAN’, ‘YALI SOK. 25/6 BAKIRKÖY 34 160 DATA “BİLSE KAYGISIZ*,’OVA SOK. 13/7 BANAZ 64 170 DATA * İZZET HANAY’, ‘SİVAS CAD. DUY6U AP. NO:3 38 ISO DATA “TUR6UT BESEVLİ’,’YAYLA SOK. 6/3 BORNOVA 35 190 END RUN
SAZAN SOK. 1/3 KEÇİÖREN 06
İL 1SH1 =? ANKARA
YALI SOK. 25/6 BAKIRKÖY 34
İL ÎSHİ »? İSTANBUL
OVA SOK. 13/7 BANAZ 64
İL ÎSHİ »? USAK
SİVAS CAD. DUYGU AP. N0ı3 3B
İL tSNi =? KAYSERİ
YAYLA SOK. 6/3 BORNOVA 35
İL ÎSHİ *? 1ZH1R
Ok
Yazıcıdan iıı aşağıdaki çıktı aldı «dilır.
ADRES LİSTESİ HEHHET SALMAN,SAIAN SOK, 1/3 KEÇİÖREN ANKARA ALİ KOCAHAN,YALI SDK. 25/6 BAKIRKÖY İSTANBUL BİLGE KAYGISIZ,OVA SOK. 13/7 BANAZ USAK İZZET HANAY,SİVAS CAD. DUYSU AP. N0ı3 KAYSERİ TURGUT BESEVL1,YAYLA SOK. 6/3 BORNOVA İZMİR
2.3.4 GİRİŞ DEYİMLERİ
İleri Basic bölüıânde kullanılan giriş deyiıi LINE INPUT deyisidir.
I_I NE INR-UT Deyi mi
Aeac
Ekrandan, uzunluğu 254 karakter kadar olabilen bir katarı, her hangi bir karakt değişkenine ataeak için kullanılır. Katar içersindeki ayıraçları < ’ , J dikkate alaaz.
Dizilia
LINE INPUT <;><“acıklaaa”i> karakter değişkeni
<;> ve <“açıklama”;>
INPUT deyieindeki tanıaların aynısıdır.
karakter de£i»keni
Ekrandan girilecek katarın atanacağı karakter değişkenidir. Karakter değişkenli bir di eleeanı da olabilir.
Açıklaaalar
Ekranda “açıklasa” dan sonra ENTER’a kadarki girilen her karakter, karakter değişkeni atanır. Ayıraçlar dikkate alıneaz, onlarda atanır. LINE INPUT deyiaini takip eden ilk < isarteti kullanıldığı zaaan satır sonu karakteri (ENTER veya RETURN) okunaaz yani ial aynı satırda kalır.
Lehçeler
HSX
LINE INPUT deyieini takip eden ilk <;> seçeneği bu lehçede kullanılaaz.
CPC-464,6128
LINE INPUT <iaygıt-nD><;}<“acıklaaa”;> karakter değişkeni Dizilisinde kullanılır. Aygıt-no ile değişik aygıtlardan bilgi girilebilir.
Oreke Problea î2.4
Aşağıda verilen okuea parçasını ekrandan giren ve yazıcıdan çıktı olarak veren b prograa yazınız.
* Vlrıinci yüzyılda toplusu m çok ıtküiyın tıknoloilk geline bilgiııyarlııdı ol suttur. İlk zasanlar çok karmık ııkinılır olın bilgiıayırlır güsüsüzdı yerini dahi büyük kıpııitıU ve düşük eıliyetli sikro bilgisayarları bırıksıttır. ‘
lûe Tıkniji ı
Yukarıdaki okusa parçasının her satın LINE INPUT deyisi ile ekrandan bir dizi elesanına atanır. Daha sonra her elesan yazıcıdan yazdırılır. Okusa parçası 5 satır olduğu için 5 el eşanlı bir indisli değişken issi kullanılır. 0K*(5) gibi.
ogras vı Çıktısı ı
10 REH Bir okusa parçasını ekrandan giren ve yazıcıdan çıktı olarak veren bir 20 REH prograsdır. Prograsın issi OKU.
30 INPUT ‘Satır Sayısını Sır ı’jSS 40 FOR 1=1 TO SS 50 LINE INPUT 0K«(1)
60 LPRINT OKt(I)
70 NEXT 1 80 STOP Ok RUN
Satır Sayısını 6ir 😕 5
Yirsinci yüzyılda toplusu en cok etkileyen teknolojik gelişse bilgisayarlarda olsuştur. İlk zasanlar cok karsasık sakinalar olan bilgisayarlar, günüsûzde yerini daha büyük kapasiteli ve daha düşük saliyetli sikro bilgisayarlara bıraksıstır.
.3.5 ÇIKIŞ DEYİMLERİ
tri Basic bölüşünde kullanılan çıkış deyişleri »RITE, PRINT USINS, LPRINT USİNS pisleridir.
UIRITE Deyimi
ıtıların ekranda görüntûlensesi için kullanılır. PRINT deyisine cok benzer. lilis
WRITE <ifadeler listesi>
ifadeler listesi ‘isal veya karakter ifadeleri kullanılabilir. Virgül ile birbirinden ayrılırlar. Basit fisken issi veya katarlar da kullanılabilir.
Açıklasalar
İfadelerin değeri hesaplandıktan »nnr* »kramU görüntülenir. HR1TE kilimini tıkıp ede herhangi i fide veya dertken mi m» katar yoksa, ekranda boy satır bırakılır. PRİM deyıainden farkı; ekrandaki çıktı değerimi, aralarında virgül ile görüntülenir. Katarla ise cift tırnak arasında gürüntülınir.
Dizilia örneği
10 A*-25.5 :B*»10.6S7E+6 ıC*«”İSTANBUL”
20 «RITE A,Ct,Bt
30 STOP
RUN
-25.5,”İSTANBUL”,10.657E+6
Çıktıdaki değerler birbirinden virgüllerle ayrılır. PRINT deyiıinde olduğu gibi bofl bırakılan.
Lehçeler
CPC-464,6İ28
NRİTE <laygıt-no,Xifadeler listesi)
Dizilisi ile kullanılır. Değerler, nuaarası verilen aygıtlara yazdırılır.
PRINT US X NO Doeyimi
fl«l£
Sayısal değerlerin veya katarların belirli bir foraata göre ekranda görüntülenin] sağlar.
Diziliş
PRINT U5IN0 forıat ; ifadeler listesi <;>
format
özel forsatlasa seıbollerinin bulunduğu, bir katar veya karakter değişkenidir, ö forsatlasa sesbolleri çıktıların ekranda nasıl görüntüleneceğini belirler. Sayısal karakter değişkenlerinin farklı forsatlasa sesbolleri vardır. Forıat bir karak değişkenine atanarak, o isie altında da kullanılabilir.
ifadeler listesi <;>
PRINT deyisindeki tanısın aynısıdır.
Açıklasalar
Forsatlasa sembollerinin kullanışı aşağıda acıklanaıstır. Katar forsatlasa sesbolleri 1 *\n boslut\* ve “6” seıbolleridir.
“!” formatlama sembolü s
Belirtilen katarın yalnız birinci karakterinin görüntülensesini sağlar.
n bo»luk\” formatlama sembolü ı Bu forııt kullanıldığı zııın iki tın bölıı »ııbolli ırıundı kılan n bolluğun iki fazlısı bitirtilin kıtırın kaç karakterinin görüntülınıbıliıceğini bilirler, n bosluk vırıı n+2 kırıktır görüntülenir. Katırın boyu n+2 din büyük im artan kırıktırltr görûntülınııez. KÜcûk ise bosluk görüntülenir.
” formatlama sembolü s Bu forıat kullanıldığı man belirtilen katarın tûıü görüntülenir. Ayrıntılı bilgi için Kaynak-11,4,13 e bakınız.
10 A1$=*ANKARA* :A2*=”BURSA” !A3$=’CEYHAN”
20 PRINT USIN6 ,!,jAl*|A2t|A3»
30 PRINT USIN6 a\ \’;A1*;A2$;A3*
40 PRINT USINS >tt>;All;A2$;A3f
RUN
ABC
ANKBURCEY
ANKARABURSACEYHAN
Sayısal forsatlasa için ■#’, “+”, “AAAA”, ■#«’, ’♦!*, ’«§#•, y, *_* sesbolleri kullanılır.
” formatlama sembolü :
I her sayısal karakterin ondalık noktasına göre pozisyonunu belirler. Boş karakterler yerine sıfır görüntülemesini sağlar. Ondalık bölüş belirtilen forıattan büyükse son rakas üzerinde yuvarlaşa yapılır.
10 PRINT USIN6 “H.İI’jO.21,12.444 RUN
0.2112.45
İki değer arasına bosluk versek için forsatta bosluk verilıesi gerekir.
10 PRINT USINS *»«.«« a;0.21,12.446,5.4 RUN
0.21 12.45 5.40 Sayısal değerlerin forsatın en sağma yaslandığına dikkat ediniz.
” formatlama sembolü :
Sayıların + ve – işaretlerinin de görüntülensesini sağlar. Forsatın önünde kullanılırsa önde, arkasında kullanılırsa arkada görüntülensesini sağlar.
10 PRINT USINS “+«.#*”,-6.7,-17.3,+80.5 RUN
+6.70-17.30+80.50
formatlama sembolü ı
Farııtın sonunda kullanılır. Ytlnu negatif sayılırın i»«retlertnin, »ayının »onunda görüntülenenini »14lir.
10 PRINT USINB *11.11- *)6,7,-17,3,*80.8 RUN
6.70 17.30- 80.30
formatlama sembolü s Forsatın »onunda kullanıldıkları zaaan üslü alarak göruntülenaesini uflarlar. Foraatta + veya – seabolleri kullanıla» ise çıktıda taa sayı bölüaü bir haneye güre ayarlanır. Kullanılsa»; ise tas sayı bölöaü görüntülenaez.
10 PRINT USINS *f.Htf#^AA*5İ2.34 20 PRINT US3MB *M#IHAAAA-“î 12.34 RUN
0.12340E+02
1.23400E+Ü1
”*«” formatlama sembolü s
Foraatın solunda kullanılır. Sayının solundaki boşluklarda t görüntülenenini sağlar. Aynı zaaanda t seabolö ile birlikte de kullanılır.
10 PRINT USIN6 *»#.<« 12.5,1.5,123.6 RUN
»12.50 *»1.50 123.60
“♦*” -For matl ama sembolü t
Foraatın solunda kullanılır. Sayının solunda I seabolûnün göruntülenaesini sağlar. Aynı zaaanda I seabolü ile birlikte de kullanılır.
10 PRINT USIN6 *} 12.5,-1.5,60.62 RUN
$12.5 $-1.5 160.62
“*«$” formatlama sembolü s
Foraatın solunda kullanılır. Sayının solunda * seabolünûn görüntülenaesini ve kalan boşlukların • seabolü ile doldurulanını sağlar. Aynı zaaanda I seabolü ile birlikte de kullanılır.
10 PRINT USINB a»*$l»«.t‘;7.5 RUN
»*»«<7.5
formatlama sembolü s
Foraat içerisinde ondalık noktasının heaen solunda kullanılır. Taa sayı bölüaünüı üçer hane virgülle ayrılaasını sağlar.
– 1*7 –
10 PRINT USINB I«’|1234.3 RUN
1,234,50
Virgül ün bir han» yır kapladığına dikkat «diniz, formatlama »«mbolü 3
Foraatın solunda alfabetik karakterler kullanılabilir. Ancak ! veya I gibi forsatlasa sesbolleri, karakter olarak kullanılsak istenirse solunda _ sesbolü kullanılır. Yalnız bir karakter için geçerlidir,
10 PRINT USINS ‘KAPI NO IH’;25 RUN
KAPI NO «25
Forsatlasa sesbollerinin ayrıntıları için Kaynak-11,4,13 e bakınız.
thcsler
‘C-464,6128
Bu lehçelerde forsatlasa sesbolü I yerine siterlin (M sesbolü kullanılır.
■128
° forsatlasa sesbolü bir katarın belirtilen alan içinde ortalanarak yazılsasını sağlar. > forsatlasa sesbolü, bir katarın belirtilen alan içinde sağa yanaştırılarak yazılsasını sağlar.
I_PRIMT USING Deyimi
!*£
IINT USINS deyisinin bütün işlevlerini aynen yapar ancak çıktıyı yazıcıdan verir.
.3.6 BAĞLANTI DEYÎMLERÎ
i veya daha fazla progrası (kütüğü) birbirine bağlaaak veya birlestirsek için kullanılan yislerdir.
CHAIM Deyimi
ü
a progrsadan yan prograsa gecisi, aynı zaaanda yan prograsa, belirtilen değişkenlerinde tarılsasını sağlar.
»İlla
CHAIN <MERGE> kütük tanısı <,<satır-noX,<ALL>
<,DELETE başlangıç – bitiş 5atır-no»>
kütük tanımı
1.1.1 deki açıklasalar aynen geçeriidir. CHAIN deyisinin bulunduğu progras ana ograsdır. Kütük tanısı verilen progras ise yan prograsdır.
••tır-no
Kütük tanıaı ver i Un yan progrum hangi satırından itim başlanacağını bılirUr Varilaezse o prograaın birinci satırından baylanır. Satır-no bir aritaetik ifada ( olabilir.
CHAIN’in bulunduğu ana prograadan yan prograns bütün değişkenlerin atanacağını belirtil Verilaezif hangi değişkenlerin aktarılacağı COHHON deyiai ile öncedtn balirtilaelidiı COHHON deyiaine bakınız.
HER6E seçeneği, yan prograaın belirtilen satır nuaarasından sonraki bölûaünûn ana prograı taşımasını sağlar. HERSE seçeneği DELETE seçeneği ile birlikte kullanılır. BELE’ seçeneği ile ana prograaa tasman bölia, başlangıç ve bitiş satır nuaaraları var i lar silinir.
Acıklaaalar
CHAIN deyiai kütükleri acık bırakır. 2.S te kütük acaa ve kapaaa deyialeri anlatılacaktır
«ERSE seçeneği kullanıldığı zaaan ana prograada yapılan OPTION BftSE tanıaı yan progr için de geceriidir. Aynı şekilde DEFİNT, DEFSNB, DEFDBL, DEFSTR ve DEF FN gibi tanıt deyialeri için de geceriidir. Ancak HER8E seçeneği kullanılaadığı zaaan bu tanıt deyialeri yeniden balirtilaelidir.
CHIN deyiainin işlevi seaatik olarak aşağıda gösterilaistir. PRD6-A ya gör» PROB-B y prograadır. PROS-C ye göre ise PROB-B ana prograadır.
10 REN PR06-A
ALL
MERGE
20
20 REH PROB-B 40 …
200
400 STOP 410 m
240 cohhoh ı,v,z
240 CHAIN ‘PR06-C
-10 REH PR06-C 20 …
340 ENÖ
100 COHHON T
110 CHAIN “PRÜ6~A*,120
300 END
CHAIN dıyiainln HERSE sıçınığt ila kulUnılısının sıaıttk gtt*t«riU»ı «ttgıd* verilaistir. PRÜ6-I d»ki 300,400,500 nolu satırlar PRÜ6-II yı aktarılır. Daha aonra ıillnir.
10 REH PROB-I 20 …
ı
I
100 CHAIN HER6E “PROS-ÎI*,300,DELETE 300-500
] 150 REH PRÖG-II
, 200 …
I T300 …
I——-J 400 tıı
1500 …
‘Sabit diskteki SftLlS kütüğü ile bağlantı kurulur. ‘Diskteki ÇEVRE kütüğü ile bağlantı kurulur, lsleae 300. satırdan başlanır.
‘A sürücüsündeki diskette bulunan PERSON prograaının 200. satırına dallanılır ve bütün değişkenler de bu yan prograsa aktarılır.
CHAIN HERSE “PROS-B»,300,DELETE 300-500 ‘PR06-B yan prograaının 300. satırından
sonraki bölüşü ana prograaa taşınır. Daha sonra 300-500 satır nuaaralan ve arası silinir.
Lehçeler
CPC-464,6128
Bu lehçelerde <ALL> seçeneği kullanılaaz. CHAIN deyini ile ana prograadaki tüa değişkenler yan prograaa aktarılır.
Örnek Problea :2.5
Bir kare çerçeve içerisinde personel bordrosunu veren ve ekranda görüntüleyen bir prograa yazınız. Bordro döküaünde personel sicil no, raporlu gün sayısı, bürüt aaaş, kesintiler ve net aaaş bulunacaktır. Bordro aşağıdaki foraatta olacaktır. Personel verileri DATA deyiai ile verilecektir. 10 personel vardır.
600 …
ı
•
1000 END
Dizilia Örnekleri CHAIN *Ci6AUS*
CHAIN ‘CsCEVRE’,300
CHAIN 8A:PERS0N*,200,ALL
topla*
18 satır
BORDRO
SC.N0 RP BÜRÜT H. KESİNTİ T. NET HAAS 12212 13 250,000TL 100,000TL 150,000TL
6. satır
Cüzili Tekniği t
P-2,1 deki çerçeve cisim progryan prograa olarak kullanılır, CHAIN prograaa bağlanır. ÇERÇEVE.BAS fcütugu A disket löriicüsündedir. Baslıkları y prograa CHAIN ile ana prograaa bağlanır. İstendiği zaaan baslık değiştirilir aaaçlar için kullanılabilir. Bu yan prograaın isai BASLIK.BAS olabilir. B BORDRO diskte saklanacaktır.
10 personel için çerçevenin boyutları 18 satır ve 42 kolon olabilir. Cercav sol kösesi 2. satır 10. kolondan başlayabilir.
Prograa ve Çıktısı t
10 REH Bu prograa bordro döküaû yapar.
20 INPUT ‘Personel Sayısı *”;PS 30 COHHON S,K,N,H,PS 40 CHAIN ‘AîCERCEVE’,20 50 CHAIN ‘C:BASLIK*
40 FOR 1*1 TO PS 70 READ SN,RP,BH,KT 80 LOCATE S+5+I,K+2 90 PRINT USINS ” «lifiSN;
100 PRINT USIN6 ‘«« ‘;RP;
110 PRINT US1NG ‘**♦«!,TL *jBH,KT,BH-KT 120 NEXT I
130 DATA 2212,0,230000,30000 140 DATA 1325,10,260000,30000 150 DATA 955,3,150000,25000 140 DATA 6340,0,90000,10000 170 DATA 3550,3,110000,55000 180 DATA 2550,1,160000,15000 190 DATA 3333,4,210000,13450 200 DATA 5500,1,300000,35000 210 DATA 2111,2,320000,23000 220 DATA 1505,3,155000,13000 300 END
LÖAD’CsBORDRO.BAS*
10 REN Prograa isai BASLIK 20 READ Bl*,B2t,B3*
30 LOCATE S+2,K+15 ıPRINT Bil 40 LOCATE 8+4,K+2 :PRINT B2*
50 LOCATE S+5.K+2 ıPRINT B3$
60 DATA * BORDRO*
70 DATA ’SC.NO RP BÜRÜT H. KESİNTİ T. NET HAAS*
80 DATA *————————————–*
90 CHAIN *C:BORDRO*,60,ALL 100 END
L0AD*C:BASLIK,BA8*
Cüzili Tekniği t
P-2,1 deki çerçeve cisim progryan prograa olarak kullanılır, CHAIN prograaa bağlanır. ÇERÇEVE.BAS fcütugu A disket löriicüsündedir. Baslıkları y prograa CHAIN ile ana prograaa bağlanır. İstendiği zaaan baslık değiştirilir aaaçlar için kullanılabilir. Bu yan prograaın isai BASLIK.BAS olabilir. B BORDRO diskte saklanacaktır.
10 personel için çerçevenin boyutları 18 satır ve 42 kolon olabilir. Cercav sol kösesi 2. satır 10. kolondan başlayabilir.
Prograa ve Çıktısı t
10 REH Bu prograa bordro döküaû yapar.
20 INPUT ‘Personel Sayısı *”;PS 30 COHHON S,K,N,H,PS 40 CHAIN ‘AîCERCEVE’,20 50 CHAIN ‘C:BASLIK*
40 FOR 1*1 TO PS 70 READ SN,RP,BH,KT 80 LOCATE S+5+I,K+2 90 PRINT USINS ” «lifiSN;
100 PRINT USIN6 ‘«« ‘;RP;
110 PRINT US1NG ‘**♦«!,TL *jBH,KT,BH-KT 120 NEXT I
130 DATA 2212,0,230000,30000 140 DATA 1325,10,260000,30000 150 DATA 955,3,150000,25000 140 DATA 6340,0,90000,10000 170 DATA 3550,3,110000,55000 180 DATA 2550,1,160000,15000 190 DATA 3333,4,210000,13450 200 DATA 5500,1,300000,35000 210 DATA 2111,2,320000,23000 220 DATA 1505,3,155000,13000 300 END
LÖAD’CsBORDRO.BAS*
10 REN Prograa isai BASLIK 20 READ Bl*,B2t,B3*
30 LOCATE S+2,K+15 ıPRINT Bil 40 LOCATE 8+4,K+2 :PRINT B2*
50 LOCATE S+5.K+2 ıPRINT B3$
60 DATA * BORDRO*
70 DATA ’SC.NO RP BÜRÜT H. KESİNTİ T. NET HAAS*
80 DATA *————————————–*
90 CHAIN *C:BORDRO*,60,ALL 100 END
L0AD*C:BASLIK,BA8*
Cüzili Tekniği t
P-2,1 deki çerçeve cisim progryan prograa olarak kullanılır, CHAIN prograaa bağlanır. ÇERÇEVE.BAS fcütugu A disket löriicüsündedir. Baslıkları y prograa CHAIN ile ana prograaa bağlanır. İstendiği zaaan baslık değiştirilir aaaçlar için kullanılabilir. Bu yan prograaın isai BASLIK.BAS olabilir. B BORDRO diskte saklanacaktır.
10 personel için çerçevenin boyutları 18 satır ve 42 kolon olabilir. Cercav sol kösesi 2. satır 10. kolondan başlayabilir.
Prograa ve Çıktısı t
10 REH Bu prograa bordro döküaû yapar.
20 INPUT ‘Personel Sayısı *”;PS 30 COHHON S,K,N,H,PS 40 CHAIN ‘AîCERCEVE’,20 50 CHAIN ‘C:BASLIK*
40 FOR 1*1 TO PS 70 READ SN,RP,BH,KT 80 LOCATE S+5+I,K+2 90 PRINT USINS ” «lifiSN;
100 PRINT USIN6 ‘«« ‘;RP;
110 PRINT US1NG ‘**♦«!,TL *jBH,KT,BH-KT 120 NEXT I
130 DATA 2212,0,230000,30000 140 DATA 1325,10,260000,30000 150 DATA 955,3,150000,25000 140 DATA 6340,0,90000,10000 170 DATA 3550,3,110000,55000 180 DATA 2550,1,160000,15000 190 DATA 3333,4,210000,13450 200 DATA 5500,1,300000,35000 210 DATA 2111,2,320000,23000 220 DATA 1505,3,155000,13000 300 END
LÖAD’CsBORDRO.BAS*
10 REN Prograa isai BASLIK 20 READ Bl*,B2t,B3*
30 LOCATE S+2,K+15 ıPRINT Bil 40 LOCATE 8+4,K+2 :PRINT B2*
50 LOCATE S+5.K+2 ıPRINT B3$
60 DATA * BORDRO*
70 DATA ’SC.NO RP BÜRÜT H. KESİNTİ T. NET HAAS*
80 DATA *————————————–*
90 CHAIN *C:BORDRO*,60,ALL 100 END
L0AD*C:BASLIK,BA8*
Dizilia Omni
Eliıizde POUNDU iilâli 3, ûtı»t» poJinoau çözen bir prograa vardır. Bu progr«» kütüğü A ılıskıt sürücüıöndedlr. X in dığırini ekrandan giren bir prograa parçan yazınız. Bu prograa ili POLINGrt prograaını HERSE koautu ile birleştiriniz. P0L3 yani isai ile A daki disketi saklayınız.
POLINOH prograaı!
100 REH 3. derece polinoa çözen prograa 200 LIT Y*5.4+3*X+1. l*X*2+4.l*XA3 300 PRINT * I»*}*}’ Y«*}Y 400 STOP
SAVE *AıP0LIN0N.8AS’,A ‘ASCII kodunda A disketinde saklanır.
ANA prograa :
10 REH X değerini giren prograa 20 INPUT “X değerini giriniz «*jX
HERSE ’AıPOLINOH* ‘POLINOH prograaı bu prograa parçası ile birleştirilir.
LIST
10 REH X değerini giren prograa 20 INPUT *X değerini giriniz *”}X 100 REH 3. derece polinoa çözen prograa 200 LET Y*5.6+3*X+l.l*XA2+4.1*XA3 300 PRINT * X»,)X5’ Y=’)Y 400 STOP
SAVE1 A-.P0L3.BAS’ ‘İkili kodlaaa sisteainde A disketinde saklanır.
2.3.7 KONTROL DEYİMLERİ
BEEP, ERROR, 0N…ERR0R, RESME, TRON-TROFF ve MHILE/HENO deyialeri ileri Basic bölüşünde kullanılan kontrol deyialeridir.
BEEP Deyimi
Aaaç
Prograacıyı sesle uyarsak için kullanılan bir deyiadir.
Dizilia
BEEP
Dizilia &rneii
IF A»100 THEN BEEP Deyiai ile prograacı A»100 olduğu zaaan BEEP sesi ile uyarılır.
Lıhylır
SPECTRUH
BEEP »ürt, gbrtli nota değeri Dizilisinde kullanılır. <göreli nota değeri) “orta C olarak sislendirilen notanın altında ve üıtündeki değerlerdir. Eksi değerler, altındaki notaları, artı değerler üstündeki notaları teasil eder. <süre) saniye cinsinden sesin süresidir.
ERROR Deyimi
A§!£
Bir Basic hatasının oluştuğunu belirtmek için kullanılır. Aynı zaaanda programcının kendi hata «esajlarını olusturaak için de kullanılabilir.
Dizilia
ERROR n
n
1 ile 2SS arasında bir aritaetik ifade olabilir. Belirtilecek hata mesajının kodunu teasil eder.
Açıklamalar
Basic’in kullandığı hata kodlan ile kullanıcının vereceği hata kodlarının cakısmaması için 200 ün üzerindeki kodların kullanılması önerilmektedir. Her derleyici/yorumlayıcının el kitabında hata mesajları ve kodları verilmiştir. Programcının kendi hata mesajını olusturaası ON ERROR deyimi ile yapılır.
Dizili» flrneâi
10 INPUT ,X»,}X
20 INPUT “Y«*)Y
30 T=XA2+Y*3
40 IF T>40 THEN ERROR 6
50 PRINT *T»’}T
60 S0T0 10
RUN
X»? 2.3 Y«? 1.5 8.665 X=? 5.1 Y=? 3.2
OverfİDN in 40
T=25
C0NT
Hata mesajı verildikten sonra prograa durur, C0NT komutu ile kaldığı yerden devam edebilir. Ancak T ‘ye 40 dan küçük bir değer verilir sonra Ü0NT komutu çalıştırılır. Aksi halde prograa 40 nolu satırın dışına çıkamaz.
Lehçeler
C-128
Bu lehçede aynı işlev ESRKN) fonksiyonu ile gerçekleştirilir.
ON ERROR Deyimi
AOC
Prograaın calısaaıı sıratındı bir hatanın yakalanmasını ve daha sonra belirtilen hata alt prograaının işletilenini sığlar.
Dizilia
ON ERROR GOTO satır-no Acıkla»alar
Bir hatanın yakalanaası duruşunda isiea sırasının belirtilen satır nuaarasına dallınaısın ve oradaki işlemlerin yapılması sağlar. Belirtilen hata alt prograaı islendikten sonr RESUHE deyiai ile programın nereden devaa edeceği bildirilir. RESUHE deyiaine bakınız Satır-no yerine sıfır kullanılırsa dallanaa olmaz. Prograa hata nuaarasını verir ve durur.
Dizili» Örneği
Aşağıdaki prograa bir oyuncunun bilgisayara girdiği bir sayıyı diğer bir oyuncunun bulaat için yazılmıştır. İnceleyiniz ve oynayınız.
10 ON ERROE 60T0 90
20 INPUT *1. oyuncu bir sayı gir»jX
30 CLS
40 INPUT *T»’jT 50 IF X > 1000 THEN ERROR 220 60 IF X X T THEN ERROR 225 70 PRINT ■BİLDİNİZ*
80 END
90 IF (ERR»220I AND <ERL‘50> THEN PRINT *X>1000 ÜLAHAZ* 1RESUHE 20 100 IF (ERR*225} AND (ERL-60) THEN
IF T < X THEN PRINT ‘daha büyük tahain yap*
ELSE PRINT “DAHA KÜÇÜK TAHMİN YAP’
110 RESUHE 40
Örnekte, tahain 1000 den büyük olduğu zaaan ERROR 220 oluşur, doğru tahain yapılaadiı zaaan ERROR 225 oluşur ve islea 90 satır nuaarasına dallanır. ERR hata kodunun değişk isaidir, ERL ise hata satırı nuaarasının değişken isaidir. ERR ve ERL fonksiyonları bakınız. EM değişkeni 220 ise ve hata satırı 50 ise aX>1000 OLMAZ* aesajı verilir islea sırası 20 satır nuaarasına dallanır. ERR değişkeni9 225 ve hata satırı 60 ise T ile karşılaştırılır. T < X ise ‘daha büyük tahain yap* aesajı verilir. T > X ise ‘daha kiç tahain yap* aesajı verilir. Isleae 40. satırdan devaa »dilir.
Lehçeler
C-128,ATARI-800XL
Bu lehçelerde aynı işlev < TRAP satır-no ) diziliai ile yapılır.
ON ERROR Deyimi
AOC
Prograaın calısaaıı sıratındı bir hatanın yakalanmasını ve daha sonra belirtilen hata alt prograaının işletilenini sığlar.
Dizilia
ON ERROR GOTO satır-no Acıkla»alar
Bir hatanın yakalanaası duruşunda isiea sırasının belirtilen satır nuaarasına dallınaısın ve oradaki işlemlerin yapılması sağlar. Belirtilen hata alt prograaı islendikten sonr RESUHE deyiai ile programın nereden devaa edeceği bildirilir. RESUHE deyiaine bakınız Satır-no yerine sıfır kullanılırsa dallanaa olmaz. Prograa hata nuaarasını verir ve durur.
Dizili» Örneği
Aşağıdaki prograa bir oyuncunun bilgisayara girdiği bir sayıyı diğer bir oyuncunun bulaat için yazılmıştır. İnceleyiniz ve oynayınız.
10 ON ERROE 60T0 90
20 INPUT *1. oyuncu bir sayı gir»jX
30 CLS
40 INPUT *T»’jT 50 IF X > 1000 THEN ERROR 220 60 IF X X T THEN ERROR 225 70 PRINT ■BİLDİNİZ*
80 END
90 IF (ERR»220I AND <ERL‘50> THEN PRINT *X>1000 ÜLAHAZ* 1RESUHE 20 100 IF (ERR*225} AND (ERL-60) THEN
IF T < X THEN PRINT ‘daha büyük tahain yap*
ELSE PRINT “DAHA KÜÇÜK TAHMİN YAP’
110 RESUHE 40
Örnekte, tahain 1000 den büyük olduğu zaaan ERROR 220 oluşur, doğru tahain yapılaadiı zaaan ERROR 225 oluşur ve islea 90 satır nuaarasına dallanır. ERR hata kodunun değişk isaidir, ERL ise hata satırı nuaarasının değişken isaidir. ERR ve ERL fonksiyonları bakınız. EM değişkeni 220 ise ve hata satırı 50 ise aX>1000 OLMAZ* aesajı verilir islea sırası 20 satır nuaarasına dallanır. ERR değişkeni9 225 ve hata satırı 60 ise T ile karşılaştırılır. T < X ise ‘daha büyük tahain yap* aesajı verilir. T > X ise ‘daha kiç tahain yap* aesajı verilir. Isleae 40. satırdan devaa »dilir.
Lehçeler
C-128,ATARI-800XL
Bu lehçelerde aynı işlev < TRAP satır-no ) diziliai ile yapılır.
ON ERROR Deyimi
AOC
Prograaın calısaaıı sıratındı bir hatanın yakalanmasını ve daha sonra belirtilen hata alt prograaının işletilenini sığlar.
Dizilia
ON ERROR GOTO satır-no Acıkla»alar
Bir hatanın yakalanaası duruşunda isiea sırasının belirtilen satır nuaarasına dallınaısın ve oradaki işlemlerin yapılması sağlar. Belirtilen hata alt prograaı islendikten sonr RESUHE deyiai ile programın nereden devaa edeceği bildirilir. RESUHE deyiaine bakınız Satır-no yerine sıfır kullanılırsa dallanaa olmaz. Prograa hata nuaarasını verir ve durur.
Dizili» Örneği
Aşağıdaki prograa bir oyuncunun bilgisayara girdiği bir sayıyı diğer bir oyuncunun bulaat için yazılmıştır. İnceleyiniz ve oynayınız.
10 ON ERROE 60T0 90
20 INPUT *1. oyuncu bir sayı gir»jX
30 CLS
40 INPUT *T»’jT 50 IF X > 1000 THEN ERROR 220 60 IF X X T THEN ERROR 225 70 PRINT ■BİLDİNİZ*
80 END
90 IF (ERR»220I AND <ERL‘50> THEN PRINT *X>1000 ÜLAHAZ* 1RESUHE 20 100 IF (ERR*225} AND (ERL-60) THEN
IF T < X THEN PRINT ‘daha büyük tahain yap*
ELSE PRINT “DAHA KÜÇÜK TAHMİN YAP’
110 RESUHE 40
Örnekte, tahain 1000 den büyük olduğu zaaan ERROR 220 oluşur, doğru tahain yapılaadiı zaaan ERROR 225 oluşur ve islea 90 satır nuaarasına dallanır. ERR hata kodunun değişk isaidir, ERL ise hata satırı nuaarasının değişken isaidir. ERR ve ERL fonksiyonları bakınız. EM değişkeni 220 ise ve hata satırı 50 ise aX>1000 OLMAZ* aesajı verilir islea sırası 20 satır nuaarasına dallanır. ERR değişkeni9 225 ve hata satırı 60 ise T ile karşılaştırılır. T < X ise ‘daha büyük tahain yap* aesajı verilir. T > X ise ‘daha kiç tahain yap* aesajı verilir. Isleae 40. satırdan devaa »dilir.
Lehçeler
C-128,ATARI-800XL
Bu lehçelerde aynı işlev < TRAP satır-no ) diziliai ile yapılır.
MHII^E/MKND Oeeyimrl
ft»»c
Belirtilen koşul ifadesi sonucu doğru olduğu sürece, döngü içerisindeki bir dizi deyisiı islenaesini sağlar.
Dizili»
WHILE ifade
Döngü deyimleri t ■
WEND
Açıklasalar
ifadenin sonucu doğru ( O 0 ) ise döngü deyişleri işlenir, NEND deyisine gelinci Bati işles sırasını NHILE deyisine döndürür ve ifadeyi kontrol eder. Sonuç yine doğru yan sıfıra eşit değil ise döngü tekrar edilir. Bu işlea ifadenin sonucu doğru olduğu sürıc devaa eder. Döngü içerisinde ifadenin sonucunu etkileyerek döngüye son verilebilir. 1c ic NH1LE/HEND döngüleri kullanılabilir.
örnek Problea: 2.6
Bir trafik kayıt dosyasında plaka-no ve araç sahibinin adının soyadının bulunduğu bir dizi vardır. Bu diziyi plaka nuaarasına göre küçükten büyüğe doğru sıraya dizin bir prograa yazınız. Veriler DATA deyialeri ile okutulacaktır. Dizinin döküaü yazıcıdan alınacaktır. Dizide 5 eleaan vardır.
Cözüa Tekniği :
Dizi 2 boyutlu ve 5 eleaandan oluşacaktır. Birinci boyutta plaka-no, ikinci boyutta ad soyad bulunacaktır. Plaka nuaaraları karşılaştırılarak sıraya diziiecektir.
Prograa ve Çıktısı ı
10 REH Bir TRAFİK DOSYA dizisini sıralaaa programıdır.
20 INPUT ‘Eleaan Sayısı *’;E 30 DIH TRt(2,E>
40 FOR J=1 TO E 50 READ TR*(1,J),TR*(2,J>
60 NEÜT i 70 KONTROL®1 80 «HİLE KONTROL 90 KONTROLE 100 FOR J=1 T0 E-i
110 IF TR*(1,J) > TR$U,J+I) THEN SNAP TRfü.JI,TR*(i,J+l)
: SNAP TRt(2,J),TR$<2,J+l) i KONTROL8l
120 NEXT J 130 HEND
140 LPRINT ‘PLAKA NO”,’AD SOYAD’ »LPRINT
150 FOR M TO E
160 LPRINT TR«(M>,TR«<2,J>
170 NEXT J
180 MTA “06ABJ41VAHHET ÇALIŞKAN* 190 DATA *06AB150\ÜZ6E KALHAZ*
200 DATA *01AD150*,FAtK TûZûN*
210 DATA *06Al163*,BİLGE KORKMAZ* 220 DATA *05AC315\İZZET HANAY 250 END RUN
Eleaan Sayısı *? 5 PLAKA NO
01AD150 05AC315 06A1163 06AB150 O6A0Î41
2.3.8 TANITIM DEYİMLERİ
COHHON, DEF tip, OPTIflN BASE ve KIDTH deyişleri ileri Basic tanıt» deyişleridir. COMMON Deyimi
Afi£
CHAIN deyiai ile ana programdan yan prograaa geçiş yapılırken bazı değişkenlerin de aktarılaasını sağlayan deyiıdir.
Dizilia
COMMON <değiçken><,değişken> …
değişken
Yan prograaa geçiş yapılırken aktarılaası istenen değişkenlerin isialeridir.
Açıkİatalar
Prograaın her yerinde kullanılabilir, ancak prograaın başında kullanaak bazı hataları önler. CHAIN deyiai ile tüa değişkenler yan prograaa aktarılacak ise ALL sözcüğe kullanılır. Aksi halde COHHON deyiai ile aktarılacak olanlar seçilir. Bu deyiale bir dizinin aktarılaası isteniyorsa dizinin değişken isai kullanılır ve parantez açılıp kapatılarak belirtilir.
AD SOYAD
FASK TûZûN İZZET HANAY BIL6E KORKMAZ ÖZSE KALMAZ AHKET ÇALIŞKAN
DiıiU» Örneği ı ı
300 COHHON At, X, Y, LO ı i
390 CHAIN ‘AıKONTROL*
CHAIN deyiai ile A sürücüsündeki diskette bulunan KONTROL isiali yan prograaa bağlı yapılaaktadır. COHHON deyiai ile Al karakter değişkeni, X, Y sayısal değişkenleri ve dizisi yan prograaa aktanlaaktadır.
DEF -tip Dayi mi
Değişkenlerin tipini (taa sayı, tek incelikli, cift incelikli veya karakter değiık tanıtaak için kullanılır.
Dizilia
DEF tip har f <-har f><, harf <-harf» …
tip
Taa sayı için INT, tek incelikli için SN6, cift incelikli için DBL, karakter dağiı için STR kısaltaalırı kullanılır.
harf
A-Z arasında bir harf kullanılır. Tipinin tanıtılaası istenen değişkenlerin bas harfli belirtir, ’harf-harf* seklinde kullanıldığı zaaan o harfler arası anlaaındadır.
flcıklaaalar
1.1.3 Basic değerleri bölüaünde anlatılan î,!,l veya I seabolleri ile de belirtilebiliyordu. Bu seaboller kullanılaadığı zaaan Basic tüa değerleri tek incel sayı kabul ediyordu. DEF tip deyiai, tip belirtae işlevini kolaylaştırır. Prograaı basında kullanılaalıdır. DEF tip deyiai ile tanıalandığı halde, prograa icerisindı belirten seabollerle tekrar tanıalanıyorsa öncelik tip seabollerinin tamamdadır.
Dizilia Örnekleri
10 DEFİNT I-N ’I,J,K,L,H,N ile başlayan tüa değişken isialeri taa sayı değ isaidir.
20 DEFSN6 A-E ‘A,B,C,D,E ile başlayan tüa değişken isialeri tek incelikli değişken isaidir.
30 DEFDBL F,0-R ’F ve 0,P,R ile başlayan tüa değişken isialeri cift incelikl 40 DEFSTR X,Y,Z *X,Y,Z ile başlayan tüa değişken isialeri karakter değişken isialeridir.
50 K=10/3
60 B-10/Î 70 F-10/3
00 KAMARA’
90 PRINT K,B,F 100 PRINT X RUN
3 3.333333 3.333333333333333 ANKARA
Lehçeler CPC-464,6128
Bu lehçelerde DEFINT taasayı değişkenleri, DEFREAL tek incelikli sayısal değişkenleri, DEFSTR katar değişkenleri tanıtlar. Diğer özellikleri yukarıdaki gibidir.
□PTION BASE Deyim± Aaat
Dizi indislerinin başlangıç değerini tanıalaaak için kullanılır.
Dizili»
OPTION BASE n
n
n sıfır veya bir olabilir, indisin sıfır veya birden başlaaasını sağlar. ftcıklaaalar
Bu bölüae kadarki örneklerde olduğu gibi, bu deyi» kullanılaazsa indis sıfırdın başlar.
1.1.3.2 ye bakınız. DİN deyiainden önce kullanılaalıdır.
8rnek Problea: 2.7
SPOR LOTO oynayan bir prograa yazınız. 36 aactan belirli sayıda (8 den cok ) beraberlik »acı seçildikten sonra bu »adarın adedi ve »aç »»araları ekrandan girilecektir. Prograa bu aaclann içinden her defada rasgele 8 aaç için çekiliş yapacaktır. Banko düşünülüyorsa prograa 8 «açlık çekiliş yerine daha az çekiliş yapacaktır, istenen kolon sayısını verene kadar çekilişe devaa edecektir. Lotoda birbirinin aynı kolon bulunmayacaktır. Aynı kolon çekilişlerinin adedi ekrana yazılacak ve o kolon için yeniden çekiliş yapılacaktır. Aynı kolim sayısı arttıkça seçilen beraberlik saçlarının tüa olasılıklarının sonuna yaklaşıldığı anlaşılacaktır.
Liste yazıcıdan, onbeşerli kolonlar halinde ve her kolondaki aac nuaaraları artan sırada dizili olarak alınacaktır.
Çözü» Tekniği ı
– Beraberlik aac nuaaralarının yerleştirileceği bir dizi oluşturulacaktır. Dizinin eleaan sayısı beraberlik adeditBE) kadar olacaktır.
f
I- 1 2 3 4 5 6 7 8 9 10 …. BE [TJ 7 j t İH 117 120 121
fl(BE) veya Z<BE) dizileri
– AtBE)-dizisinin bir kopyası oluşturulacak, bu da Z(BE) dizisi olacaktır. Bütün işlealer Z(BE) dizisi üzerinde yapılacaktır. Çünkü her çekilişte, Z(BE) dizisi üzerinden rasgele çekilen aac nuaaraları yerine sıfır atanacaktır. BÖylece sıfır atanaıs eleaanlara ikinci defa girae önlenecektir. Her çekilişte eleaanın değerinin sıfır olup olaadığı kontrol edilerek aynı aac nuaarasınm kolon içinde tekrarı önlenecektir.
– Bir kolonun çekilisi bitince yeni çekiliş için A(BE) dizisi Z(BE> ye kopyalanacaktır. Dizi orjinal haline getirilecektir.
– Oynanan her kolon 6(81 geçici loto kolonu dizisine atanacaktır. Bu dizi içindeki aac nuaaraları artan sırada sıralanacaktır.
– Oynanan eski kolonlar R(8,KS) (KS*Kolon Adedi) dizisinde saklanacaktır.
– Her yeni kolon yani 5(8) dizisi, R(8,KS) dizisindeki eski kolonlarla karşılaştırılacaktır. Aynısı var ise 6(8) iptal edilerek bu kolon için yeniden çekiliş yapılacaktır.
– Aynı kolon varsa AYNI sayacı bir artırılacaktır.
– R(8,KS) dizisi liste için yazdırılacaktır. Her gurupta onbeşer kolon olacak şekilde bir liste vercektir.
– Banko aac varsa yani her kolonda 8 den az çekiliş yapılacak ise banko sayısı kadar eksik çekiliş yapılacaktır. Tüa kolonlar 8 den az aac nuaarası bulunduracaktır. Her kolondan sadece banko olaayan nuaaralar listelenecektir.
Prograa ve Çıktısı s
10 REH Prograaın isai LOTO 20 0PTI0N BASE 1
30 DEFINT A,B,6,R,S,T,Y,Z,l,J,K,L,n,N 40 01H A(36),Z<36),6(36),R(8,400)
50 INPUT “Banko Düşünülüyorsa Banko Hac Sayısını 6ir *”}BA 60 BI-6-BA
70 INPUT “36 aac içinden kac aac beraberlik düşünüyorsanız onu giriniz =“)BE 80 FOR IM T0 BE
90 INPUT “Beraberlik aacının nuaarasını gir s”;A(l)
100 NEXT I
110 INPUT “Kolon Adedini 6ir =”jKS 120 XX * VAL(TIHEt)
W\WWJ) \ 30 132 133
130 RANDMIZE XX 140 FOR K« i TO K8 130 FOR I” 1 TO BE 160 Z(D» A(l)
170 NEXT I
180 FOR N-l TO BI
190 Y« INT(RND*<BEM))
195 IF Y-0 THEN 80T0 190 200 IF Z(Y) >0 THEN GOTO 190 210 B(N)-Z(Y)
220 Z(Y)*0 230 NEXT N 240 GOSUB 540
250 IF K * 1 THEN GOTO 340 260 FOR 3* 1 TO K-l 270 FOR N* 1 TO BI
280 IF R<M> <> 6<N> THEN 60T0 330
290 MEXT N
300 AYNI > AYNI+1
310 PRINT ‘Aynı Kolon Sayısı *”5AYNI
320 sora 150
330 NEIT 2 340 FOR N> i TO BI 350 R(N’K) * 6(N)
360 NEXT N,K
370 REH Liste Çıkarsa Bölüşü
380 INPUT “Kaç kopya liste istiyorsunuz **}LS
390 FOR LLS 1 TO LS
400 KK*1
410 FOR 3« 1 TO BI 420 II*J
430 LPRINT USIN6 ‘«.Beraberlik *|II 440 FOR K® KK TO KK+14 450 80 * R(JtK)
460 LPRINT USIN6 al«ta;SO 470 NEXT K 480 LPRINT 490 NEXT J 500 LPRINT
510 IF (KK+15) < KS THEN KK=KK+15 îSÖTO 410 520 NEXT LL 530 STOP
540 REH 8(8) i küçükten büyüğe doğru sıralasa
550 FOR Ls l TO BI-1
560 FOR «» L+l TO BI
570 IF (8(L) <= m THEN 60TG 590
bölüşü
»nnMnaa
500 BMAP S(L),B(H)
590 NEXT H,L 600 RETURN Ok RUN
Banko Düşünülüyorsa Banko Haç Sayısını Bir ■? 0
36 aaç içinden kaç aac beraberlik düşünüyorsanız onu giriniz =? 14
Beraberlik «açının nuaarasını gir »? 5
Beraberlik aacının nuaaraıını gir *? 7
Beraberlik aacının nuaarasını gir s? 10
Beraberlik aacının nuaarasını gir s? 13
Beraberlik aacının nuaarasını gir *? 15
Beraberlik aaçmın nuaarasını gir =? 17
Beraberlik aaçınm nuaarasını gir «? 19
Beraberlik aacının nuaarasını gir =? 22
Beraberlik aacının nuaarasını gir ■? 25
Beraberlik aaçınm nuaarasını gir ■? 27
Beraberlik aaçınm nuaarasını gir =? 29
Beraberlik aacının nuaarasını gir =? 30
Beraberlik aacının nuaarasını gir *? 32
Beraberlik aacının nuaarasını gir *? 33
Kolon Sayısını Sir *? 20 Kaç kopya liste istiyorsunuz ■? 1
1.Beraberlik 5 7 5 7 5 5 5 7 5 7 5 5 5 7 5
2.Beraberlik 7 15 7 10 10 7 7 13 7 10 13 13 13 10 10
3.Beraberlik 10 17 10 17 13 13 17 15 10 17 19 15 17 13 13
4.Beraberlik 13 19 13 19 15 15 19 17 17 22 25 22 27 17 15
5.Beraberlik 25 25 17 25 17 17 22 22 25 27 27 25 29 19 22
6.Beraberlik 29 30 19 27 19 22 25 25 27 29 30 27 30 22 27
7.Beraberlik 32 32 29 32 22 30 27 27 30 32 32 32 32 27 30
B.Beraberlik 33 33 32 33 32 32 29 29 32 33 33 33 33 30 32
1.Beraberlik 5 7 5 5 5 0 0 0 0 0 0 0 0 0 0
2.Beraberlik 10 13 7 7 10 0 0 0 0 0 0 0 0 0 0
3.Beraberlik 13 17 10 10 13 0 0 0 0 0 0 0 0 0 0
4.Beraberlik 15 19 17 13 15 0 0 0 0 0 0 0 0 0 0
5.Beraberlik 22 27 25 19 19 0 0 0 0 0 0 0 0 0 0
6.Beraberlik 27 30 29 27 22 0 0 0 0 0 0 0 0 0 0
7.Beraberlik 32 32 32 32 25 0 0 0 0 0 0 0 0 0 0
B.Beraberlik Ok 33 33 33 33 29 0 0 0 0 0 0 0 0 0 0
2.3.9 BELLEK SÎLME DEYİMLERİ
Bellekte yer kazanaak aaacına yönelik olarak prograaı, dizileri veya değişkenleri silaei için kullanılan deyialerdir. NEN, ERASE, CLEAR deyialeri ileri Basic bellek tilıı deyialeridir.
NEW Komutu
•ktıki prograaı vı tüa değişkenleri silaık için kullanılır.
ili
NEW
tlaaalar
i bir Bııic prograaı girileceği zaaan kullanılır. Acık olan tüa kütükleri de kapatır,
lii (İmiği
NEM ‘Bellekteki prograa, tüa değişkenler ve diziler silinir.
ERASE Deyimi
ç
graaın içindeki işlevi biten dizileri silerek bellekte yer kazanaak için kullanılır.
iHa
ERASE dizi-iemi <fdizi-ismi> … klaaalar
grıa uygulanırken bellek alanında az yer kalacağı anlaşılınca işlevi biten diziler inerek yer kazanılabilir. Silinen diziler DİN deyiai ile yeniden boyutlandırılabilir a sağlanan boşluk başka aaadar için kullanılabilir. FRE fonksiyonu ile birlikte bellek ıluğunu kontrol ederek kullanılabilir (Bkz. FRE fonksiyonu).
ili» Örneği 10 DİN A(3)
20 A(l)«10 30 A(2>=20 40 A(3)«40
50 PRINT AU>jA<2)jA<3)
60 ERASE A
70 PRINT AU);A(2);A(3)
RUN
10 20 40
0 0 0
CL.EAR Komutu
aç
tün sayısal değişkenleri sıfırlar ve karakter değişkenlerinin içini boşaltır. Ayrıca iliğin bir bdlûaûnû çalısı» alanı olarak ayıraak için kullanılır.
‘Dizinin boyutları tanıalanır.
’A dizisinin işlevi bittiği için bellekten silinir.
. uı –
CLEAR <|<n>< »«>>
n
Bellekte ayrılacak çalışa» »lininin progrıı vı verilir dahil aaksiauı boyunu tanıtlar. Bu seçenek takina dili progrtaları için kullanılır.
m
Bellekte Basic için depo alanı ayıreaya yarar. Belirtilmezse 256 bayt veya belleğin tekilde birini ayırır. İc ice birçok 6ÛSUB veya FOR … HEİT döngüsü kullanılacağı zatın tanıalanaalıdır.
Acıklaaalar
Bellekteki prograaa dokunaadan veriler için kullanılan bellek alanı boşaltılır. CLEAR koautundan sonra diziler belirsizleşir, sayısal değişkenler sıfırlanır ve karakter değişkenleri boşaltılır. Değişkenlerle ilgili tüa DEF FN, DEF 8E6, DEF USR, DEFINT, DEFDBL, DEFSN6, OEFSTR deyialeri işlevlerini kaybederler.
Dizilia Orneâi
10 A-1333 20 PRINT A
30 CLEAR ‘Bu koaut ile tüa veriler teaizlenir. Prograa aynen kalır.
40 PRINT A RUN 1333
CLEAR,3276B,1000 ‘Tüa veriler teaizlenir. Basic için aakıiaiua 32 K bayt çalışta alanı ayrılır. 1000 bayt Basic depo alanı ayırır
Lehçeler
BAS!CA,flSBA51C
Bu lehçede a belirtilaezse 512 bayt kabul edilir. Bellek küçük ise sekizde biri ayrılır.
6KBASIC
Bu lehçede t belirtilaez ise 768 bayt veya belleğin sekizde biri kabuledilir.
HSI
CLEAR <katar boyuX,en yüksek bellek adresi)
Dizilisinde kullanılır. Taa sayısal değişkenleri sıfırlar ve katarları boşaltır. <katar boyu) kullanılan karakter değişkenlerinin katarlarının boyunu tamalar, ikinci seçenek ise bellekte MSl-BASIC için ayrılan alanı belirler.
CPC-464,6128
Bu lehçelerde CLEAR’dan sonraki seçenekler kullanılaaz.
C-64,128,A TARI-800XL
Bu lehçelerde yerine CLR deyiai kullanılır.
$.10 FONKSİYONLAR
i Basic fonkıiyonlan uy jul »s» ilanlarına gör» sınıflındırılaıstır. Srıfik, aatris, k v» »ikini dili fonksiyonları ilgili bölüşlerde ınlıtılsııtır.
S.10.1 ARİTMETİK FONKSİYONLAR
a»tik i»1»»lirde kullanılan fonksiyonlardır.
CDBL Fonksiyonu
incelikli sayısal bir değeri cift incelikli değere dönüştürür. lia
d«§i ®ken=CDBL(X)
ırhangi bir aritaetik ifade veya değişken isai olabilir.
lia örneği 10 K°10 20 L-3.3
30 LET Hl> C0BL(K)/CDBL(L) ’K ve L değerleri önce cift inceliğe dönüştürülür sonra
islea sonucu M ye atanır.
40 PRINT M RUN
3.030303074089731
40 PRINT L;CDBL(L) ‘L nin tek ve çift incelikli değerleri görüntülenir.
RUN
3.3 3.299999952316284
CINT Fonksiyonu
isal bir değer yuvarlatılarak ta» sayıya dönüştürülür. İli»
desfiisken-CINT <X)
“it»etik ifade veya değişken isai olabilir.
İli» Orneöi 10 A=25.654
20 PRINT CINT(A);CINT(5.431)
RUN 26 5
C8NO Fcankmlyonu
A|H
Sayısal bir değeri t#k incelikli bir değere dönüştürür.
Dizili»
deği *k«n<«CSNG(X)
X aritmetik ifade veya tay nal devitken iıti olabilir.
Dizili» Prneâi
10 Ris124.634567789
20 LsCSN6(H4) ‘M cift incelikli değişkenin değeri L tek incelikli
değişkene yuvarlatılarak atanır.
30 PRINT Ht;L RUN
124.634567789 124.6346 Lehçeler CPC-464,6128
8u lehçelerde {değişken =CREAL(X)> diziliai kullanılır.
ERR ve» ERL Fonksiyonu
A>ac
Hata ile ilgili satır numarasının ve hata kodunun değişken işialeridir. ERR hata kodunu, ERL hatanın oluştuğu satırın nuaarasını verir. Hata kodları ıcin EK-3’e bakınız.
Dizilia
sayısal de£isken*ERR sayısal değisken=ERL
ftcıklaaalar
Genellikle ON ERROR ve IF … THEN deyialeri ile birlikte hata kontrolü için kullanılır. ON ERROR deyiaindeki örneğe bakınız.
Lehçeler
C-128
Bu lehçede ER ve EL sistea değişkenleri aynı işlevi yapar.
FIX Fonksiyonu
$!£
Sayısal bir değeri, ondalık kısmı atılarak taa sayıya dönüştürmeye yarar.
Dizilia
deeğisken-FIX <X)
X aritmetik ifade veya sayısal değişken ismi olabilir.
ıl İMİ ir
fonksiyonu 1NT fonksiyonundan farklıdır. Negatif sayılırda fil (unkıiyonu ondalık kısıı ııın ıtır, yuvarlaaı yapaız (INT fonksiyonuna bakımı).
Ha Örneği PRINT FIX(57.65)
57
PRINT FIX(-5.63)
5
*
HEX# Fon k»iyonu
•al bir değerin hekzadesiaal (on altılı sayı sisteai) değerini verir.
ÜS ^
d«öi*k»n=HEX*(X>’
ığeri -32768 ile 65535 arasında değişen aritaetik ifade olabilir. X taasayı değil ise ı tıasayıya yuvarlanır, sonra onaltılı sayı sisteaine çevrilir. X negatif ise (65536-X) «eklinde hesaplanır. (Bkz. Kaynak-4)
lia Örneği PRINT HEXt<32)
20
PRINT H£ll11023)
3FF
ti er
464,6128
HEXf (i »ar et siz taasayı ifade <, karakter genişliği»
Taasayı değer onaltılı sayı sisteaine dönüştürülür. Sonuç belirtilen karakter değişkeni genişliğinde elde edilir. Boşluklara sıfır yerleştirilir.
SGN Fonksiyonu
sal bir değerin işaretini belirleaek için kullanılır.
Ul
değ işken=SGN< X) itaetik ifade veya değişken isai olabilir.
lanlar
X in değeri negatif olunca S6N(X)=-1 olur,
X in değeri pozitif olunca S6N(X)s 1 olur,
X in değeri sıfır olunca S6N(X)= 0 olur.
DlılHı fcmhlıri i 1
90 IF 88N(A>”1 THCN 90T0 100 ‘ft nın d»4»ri pozitifse 100 • dallanılır, ı
tfrntfc Problm 2.8
Bir veznedar kamına girtn çıkan parayı bilgisayarla takip etack isteaektıdir. ödediği parayı negatif, kasaya gireni ise pozitif olarak girecektir. Kasadaki nakit para bir aiİyonun altına düşünce ‘KASAYA 25 MİLYON NAKİT BEREK1Y0R’, yüz ailyonun üzerine akınca ’50 BİLYONU ANA KASAYA TESLİM ET* aesajlarını al »ak istiyor. Ayrıca çerçevenin sol üst kösesinde ‘Nakit Toplası ■ xxx,xxx,xxxTL* görüntüsünün her isleaden sonra bulunaasını isteaektedir. Kasaya sıfır girdiği zaaan isleain devaa edip etaeyeceğini sorduktan sonra verilecek cevaba göre duran bir prograa yazınız. P-2.İ deki CERCEVE.BAS prograaı kullanılarak girdi ve çıktılar çerçeve içerisine yerleştirilecektir.
Cözüa Tekniği ı
İlk açılışta kasada bulunan nakit girilecektir. Daha sonra aüfteri islealeri girilecektir. Ana kasaya 50 Nfailyon) teslia edilince, toplat nakitten çıkartılacak, 25 N girince ilave edilecektir. Hesajlar aynı satırlarda görüntülenecekse önce o satırların teaizlenaesi gerekecektir.
CERCEVE.BAS prograeına su satırların ilave edilaesi gerekecektir.
183 COKttON S,KtN,n 185 CHAIN *A:VEZNE.BAS*,,60 Ayrıca kenar çizgilerinde kullanılan *1* ve işaretleri yerine CHRK219) yazdırılabilir. CHRI fonksiyonuna bakınız.
Prograa ve Çıktısı :
10 REH Bu prograa kasaya giren çıkan parayı takip eder
20 REN Prograaın isai VEZNE
30 DEF DBL P,T,A
40 CONHON S,K,N,R
50 CHAIN ‘A:ÇERÇEVE.BAS’,20
60 SI*CINT(S+N/2) ıK0«CINT<K+H/10)
70 LOCATE S+l.K+l :PRINT ‘Nakit Toplaaı*’) :PRINT USIN6 ‘(«<l«M*f,TL’;TN sLOCATE SI,K0 80 INPUT ‘Parasal isleai girin ı”;PI 90 60SUB 300
100 ON S6N(PI)+2 BOTO 110,150,110 110 TN=TN+PI
120 IF TN > 1.0E+8 THEN
LOCATE SI-1,K0
ıPRINT *50 Bilyonu ana kasaya teslia et*
sTN*TN-50*1.0E+6
160SUB 350 :S0T0 70
– İM .
130 IF TN < t.OE+6 THEN
LOCATE BH,KO
!PRINT ‘Kasaya 25 ailyon nakit gerekiyor’
«TN«TN+25»1.0E+6 140 60SUB 330 :60T0 70 150 60SUB 300
160 LOCATE SI-1,K0 t PRINT ‘Nakit Toplaaı =’) ; PRINT USING ‘iH«t»«ti,TL’;TN 170 LOCATE SI,K0 :INPUT ‘Oevaa edecek tisiniz (E/H) ‘;EH«
180 60SUB 300 190 60SUB 350
200 IF EHI*’H* THEN STOP 210 60T0 70
300 REH SI-1 inci satın teaizleyen alt prograt 310 LOCATE SI-l.KO :PRINT *
320 RETURN
350 REH SI ıncı satırı teaizleyen alt prograa 360 LOCATE Sl,KO SPRINT ‘
370 RETURN RUN
Çerçeve başlangıç satın s? 6 Çerçeve başlangıç kolonu »? 15 Çerçevenin satır sayısı «? 13 Çerçevenin kolon sayısı *? 50
INakit Toplan *
1
I
I
I
I
1) I Parasal isleıi girin? I I 1 I I
2) 50 Bilyonu ana kasaya teslia et Parasal işleai girin?
3) Kasaya 25 ailyon nakit gerekiyor Parasal isini girin?
4) Nakit Toplaaı * m,HX,XIXTL
2.3.10.2 KATAR FONKSİYONLAR Karakter değişkenleri üzerindi i»İti yıpın fonksiyonlardır.
A8C4F Fonksiyonu
Aıac
Bir katarın veya karakter değişkeninin ilk karakterinin ASCII kodundaki karşılığını veril
Dizilie
değisken=A5C< X*)
M katar veya karakter değişkeni olabilir.
Açıklasalar
CHR* fonksiyonu ASC fonksiyonunun tersini yapar. Yani ASCII kodu verilen sayısal değerin karakter karşılığını verir.
Dizilie Orneâi
10 At**KASTAHONU*
20 KI»ASC(A$) ’K karakterinin ASCII karşılığını Kl taesayı değişkenine ıtır 30 PRINT KZ RUN 75
PRINT ASCCKASTANONU*) ‘Yukarıdakinin aynı isleei yapar.
75
CHR# Fonkssi yonu Aeac
ASCII kodu verilen sayısal değerin karakter karşılığını verir.
Dizilie
karakter deği çkeni =CHR* <I)
I, 0-255 arasındaki ASCII kodlarıdır.
Açıklasalar
Sadece bir karakter verir. Ekrana veya yazıcıya özel karakterler göndersek için kullanıl ASCII kodları EK-l de verileiştir.
Dizilie Örneği
PRINT CHRM751 K
SPECTRUN
Bu lehçede parantezsiz <CHR$ 1 > diziliainde kullanılır.
DATE* Doıylmi /Fonk»i yonu
ft«»ç
Fonksiyon özelliği, zatını değişken olarak tanıılatak için kullanılır. Deyi* olarak ise zatını belirlemek için kullanılır.
mxy\*
(Fonksiyon)
karakter değişkeni =*DATE$
(Deyie)
DATE$=X*
Açıklasalar
XI karakter değişkeni, ay gün yıl sırasında tarihi belirler, aa-gg-yyyy şeklinde verilir.
yerine “/* seebolü de kullanılabilir. Yıl, iki karakterle de verilebilir. 10 veya 8 karakterden oluşabilir. Fonksiyon olarak kullanıldığı zatan seebolü ile tanıtlanır.
Di;ilie Orneâi
10 DATE$=’3-17-87* ‘Deyit olarak kullanılmıştır.
20 PRINT DATE* ‘Fonksiyon olarak kullanıltıştır.
RUH
03-17-1987
Lehçeler
Ban lehçelerde işletie sisteai iskanları kullanılır.
INKEY# Fon ksiyonu
ûü£
Klavyeden yalnız bir karakter okueak için kullanılır.
Dizilie
karakter değişkenia2NKEY$
Açıklasalar
lşlee sırası INKEYi fonksiyonuna geldiği zaaan prograa bekleaez, klavye ara belleğinden bir karakter okur devaa eder. Bu fonksiyonu etkili kullanabilsek için bir döngü içinde kullantak gerekir. Dizilie örneğini inceleyiniz.
Dizil i a Örneği
100 PRINT ‘Evet için (E) veya hayır için (H) tuşuna basınız” S20 AfsINKEYt sIF A*=” THEN 60T0 120
Sıtır 120 dı, klavyeden herhangi bir iuıı baıılaıdıgı lürıcı somuz bir ddngti uygulan» Herhangi bir tu$a basılınca progrıt devaa »ita.
Lehçeler
C-M,t28
Bu lehçelerde aynı aaıç için BET veyı 8ETKEY dtyiai kullanılır.
I_EM Fonksiyonu
ûüt
Bir katar içerisindeki karakter sayısını verir.
Dizilie
sayısal değişken=LEN<X$)
X*, karakter değişkeni veya karakter ifadesidir.
Açıklasalar
X* katarı içindeki tûa karakterlerin (bosluk dahil) sayısını belirtilen sayısal değiskeı atar.
Dizilia Orneâi
10 At=’Bu bir Basic kitabıdır”
20 B=LEN(A$) î C=LEN < * ANKARA”)
30 PRINT B;C RUN 22 6
X NSTR Fonksiyonu Aeac
Bir katar içerisinde başka bir katarın aranmasına ve bulduğu ilk yerin belirlenaesir yarar.
Dizilie
deisken=INSTR<<n,> X*,Y*>
n
Araaaya kaçıncı karakterden başlanacağını belirten, 1-255 arasında bir değer veya sayı» ifadedir.
X*,Y*
Kİ içinde arata isleainin yapılacağı katardır, Y* ise aranacak katardır.
Acıklaaalar
İlk bulduğu yerin pozisyonunu değişkene atar. Şayet a- n > LEN(XI) b- XI katarının U bos c- Yİ bulunaaaaıs ise INSTR fonksiyonu sıfır verir. Yf bos ise n veya 1 verir.
ATAMA DEYİM
2.3.3 ATAMA DEYİMLİM!
İleri Basic’t» kullanılan ıtıu ieytalerl BMP ve HIDt dtylalaridir, SMAP Datylmi
İki değişkenin değerlerini birbiri ila daği»tirir.
Dizilia
SWAP daği9ken-l,dcği$k«n-2
değisken-1,-2
Her iki değişkende aynı tipte olaalıdır. tndiali değişken de kullanılabilir.
Dizilia Orneâi
10 ftfs’BIR ‘ *Bt*”IKÎ ’
20 PRIMT At;B*;C»
30 SHAP A*,M 40 PRIHT Af}Bf;C*
RUN
BİR İKt ÜC ÜC İKİ BİR
Lehçeler C-128
Ana bellekteki adresi verilen iki değerin yerleri değiştirilir.
SNAP bayt sayısı, adres-l, adres-2, bank-no Diziliai ile kullanılır. Bayt sayısıı Ana bellekte (RAN aodule) birbiri i! değiştirilecek değerin bayt sayısıdır <0-655351. Adres-l,-2 : Değiştirilec değerlerin başlangıç adresleridir (0-65535). Bank-no : Adres-2 deki değerin aı bellekteki bank nuaarasıdır. Genellikle aakina dilinde prograa yazaak ic kullanılır. (Bkz.Kaynak-5)
Örnek Problea :2.2
100 eleaanlı bir sayı dizisini büyükten küçüğe doğru sıraya dizen bir ALT PRD8R yazınız. Dizinin değerleri ana prograada okutulauştur. Dizi A(100) indlı değişkenidir.
Çözüa Tekniği i
III \ // ‘ Tl I
A(l) A(2)………….A(100)
önce A(l], diğer bütün eleaanlarla karşılaştırılır. Birinci eİMan hangilin) küçükse değerleri değiştirilir. Sonra A(2) kendisinden sonra gelen al Hani aı
!C$a-üC ‘
‘A* ve Ct değişkenlerinin değerleri değiştirilir.
Uhcalar
H8B0, BNBABIC,8A8Î CA,MBBA81C t A-BASIC
SAVE kütük tınıaı <,A>
SftVE kütük tanın <,P>
Dizilişlerinde kullanılır. <,A> seçeneği ile kütük ASCII kodundı taklanır. <,P> seçeneği ile ikili kodlaaa sistesinde korunsuç olarak ukUnırlar. Bu kütükler listeleneaez, saklanaaaz veya düzeltileaezler. Her iki seçenekte kullanılaadığı zaaan sıkıştırılaış ikili kodlaaa sisteainde saklanır.
Kütük kaset teypte saklanacaksa CAS1: aygıt tanıeı kullanılır. HSBO’de kaset teyp için *CSAVE kütük tanıaı* dizilisi kullanılır.
KSX,ATARI-800XL
6enel diziliş aynen kullanılır. Teyp için ’CSAVE kütük tanıaı” dizilisi kullanılır. CPC-444,6128
SAVE kütük tanıaı <,A>
SAVE kütük tanıaı <,P>
SAVE kütük tanıaı <,B> ,(başlangıç adresi,uzunluk,giriş noktası) Dizilişlerinde kullanılır. <,A> kütüğü ASCII kodunda saklar, <,P> prograa korunur yani ikili sisteade saklanır. <,B> belleğin bir bölüşünü ikili kodlu kütük olarak saklar. Saklanacak kütüğün ana bellekteki adresini, uzunluğunu ve saklaaaya başlasa noktasını belirtir. Siris noktası saklaaanm başlayacağı adrestir.
SPECTRUH
SAVE “kütük isai” LINE satır-no Dizilisinde kullanıldığı zaaan belirtilen satırdan itibaren yükleae yapılır.
SAVE ‘kütük issi” CDDE başlangıç adresi, uzunluğu Dizilisinde kullanıldığı zasan belirtilen adresteki kütük saklanır. Hakina dili prograslarında kullanılır. Bu lehçede daha değişik uygulaaalar da vardır.
C-64,C-128
SAVE ‘kütük issi” <,aygıt-noX,EOT tanısı)
Dizilisinde kullanılır. Aygıt-no, disket için 8, teyp için 1 dir. Verilaezse teybe kayıt yapılır. (Bkz. Kaynak-5)
SAVE ST0K$,B ‘STQK$ kütüğünü diskete saklar.
L.OAD Kcarncjı-fc. ca Aaac
yan ünitelerden ana belleğe prograa yükleaek için kullanılır.
Dizilia
LOAD kütük tanımı Açıklaaalar
LOAD koautu ile, prograa yüklenaeden önceki acılaış tüa kütükler kapanır ve tüa değişkenler silinir.
Dizilia Orneâi
LOAD ’AîARAHA.BAS’ ‘ARAMA.BAS prograsını, A disket sürücüsünden ana belleğe yükler
Lahçelar
NSSO^MBABIC^ASICA^SBABIC.A’IMIC
LOAD kütük tanıaı <,K>
Dıziliainde kullanılır. <,R> «»teneği ile prograa ana belleğe yüklendik heaen uygulanır. NS60 d» ‘CLOAD kiıtuk tanıaı* diziliai ile teypten yüklıaa
m
Teypten yükleae yapaak itin “CLOAD kütük tanıaı” diziliai kullanılır. CPC-464,6128
LOAD kütük isai <,adres tanıaı)
Diziliai kullanılır. <,adres tanıaı) kütüğün saklandığı yerin değil y istendiği yerin adresidir. Kütüğün ikili sisteade yüklemesini sağlar. SPECTRUH
SAVE koşutunda anlatılan CODE seçeneği LOAD konutu için de gecerüdir.
LOAD ‘kütük isai* CODE başlangıç adresi, uzunluk Diziliai ile de kullanılır. Kütüğün yükleneceği adresi belirtir. M uygu!asaları da vardır.
C-64.C-128
LOAD ‘kütük isai”<,aygıt-no)<,bel1ek göstergesi)
C-128, Bellek Göstergesi «i olduğu zaaan kütüğün teyp veya diskette olduğu Bellek Böstergesi *0 olduğu zaaan kütüğün Basic prograa alanında olduğu Disket için aygıt nuaarası 8 dir ancak DLOAD koautu da disketten yükleae ya kullanılaakt&dır.
LOAD ARA*,8 * DLOAD ARA*
C-128 de BOOT koautu kütüğün yüklenaesinden sonra islenaesini sağlar. ATARI-800XL
Teypten yükleae yapaak için <CLOAD kütük tanıaı) diziliai kullanılır. <L0AD ‘ diziliai diskten yükleae yapar. <ENTER ’DîDOSYA.LST*) diziliai de aynı < kullanılır.
NAME Komutu
ftaaç
Yan birialerdeki kütüklerin isialerini değiştiraek için kullanılır.
Dizilia
NAME <kütük tanımı> AS <yeni kütük İBin&>
Dizilia Brneâi
NAME *A:DENEHE.BAS’ AS ‘YENİ.BAS’
A sürücüsündeki DENEME.BAS kütüğünün isaini YENİ.BAS olarak değiştirir, sistealerinin de isia değiştirsek için koautları vardır.
Lehçeler
CPC-4M.612B
tşletia sisteai iakanları ile kütük isialeri değiştirilir. (Bkz, CPN Sisteai)
C-128
RENARE <D disk sürücü-no,) ‘eski isai* TO ‘yeni isai* <0N,) U aygıt-no Diziliai ile kullanılır. Diskteki kütüklerin isaini değistiraek için kullanıl
FILES Komutu
Aııç
Yın birialırdaki kütük iıialırinin listelemesi için kullınılır.
Di 2 iliı
FILES <kütük tanımı>
Dizilia Örnekleri
FILES ‘A:DENERE.BAS” ‘ft sürücüsündeki diskette DENENE.BAS kütüğünü arar
FILES ‘Yan birlideki tül kütük isiılerini listeler.
LıhCBİer
C-64,C-12B,CPC-464,6128
Bu lehçelerde bu aaac için işletil sisteıi iakanları kullanılır. (DIR, DIRECTORY gibi)
RESET Komutu flııç
Y»n biriılerdeki acılıı; kütükleri kapataak için kullanılır. Aynı zaıanda ana belleği boıaltır.
Pİ1.İ İli
RESET
Aç ılı İnal ar
Kütük nuaarasız girilen CLOSE deyisinin işlevini yapar.
Dizili!
«
100 RESET ‘Prograa içindeki acılaı» kütükler kapatılır.
110 END lehçeler
C-64,0128,CPC-464,6128,SPECTRUN Yerine CLOSE deyiai kullanılır.
KI i_i_ Komutu
A§*£
Van birialerdeki kütükleri silaek için kullanılır.
Dizilia
KILL kütük tanımı Açı ki atalar
Kapanaaaı; kütükler silineaez. İsletil sistealerinde bu işlevi yapan koautlar vardır. Dizilia ttrneoi •
100 KILL ‘AîDENEHE.BAS’
2.3.3 ATAMA DEYİMLİM!
İleri Basic’t» kullanılan ıtıu ieytalerl BMP ve HIDt dtylalaridir, SMAP Datylmi
İki değişkenin değerlerini birbiri ila daği»tirir.
Dizilia
SWAP daği9ken-l,dcği$k«n-2
değisken-1,-2
Her iki değişkende aynı tipte olaalıdır. tndiali değişken de kullanılabilir.
Dizilia Orneâi
10 ftfs’BIR ‘ *Bt*”IKÎ ’
20 PRIMT At;B*;C»
30 SHAP A*,M 40 PRIHT Af}Bf;C*
RUN
BİR İKt ÜC ÜC İKİ BİR
Lehçeler C-128
Ana bellekteki adresi verilen iki değerin yerleri değiştirilir.
SNAP bayt sayısı, adres-l, adres-2, bank-no Diziliai ile kullanılır. Bayt sayısıı Ana bellekte (RAN aodule) birbiri i! değiştirilecek değerin bayt sayısıdır <0-655351. Adres-l,-2 : Değiştirilec değerlerin başlangıç adresleridir (0-65535). Bank-no : Adres-2 deki değerin aı bellekteki bank nuaarasıdır. Genellikle aakina dilinde prograa yazaak ic kullanılır. (Bkz.Kaynak-5)
Örnek Problea :2.2
100 eleaanlı bir sayı dizisini büyükten küçüğe doğru sıraya dizen bir ALT PRD8R yazınız. Dizinin değerleri ana prograada okutulauştur. Dizi A(100) indlı değişkenidir.
Çözüa Tekniği i
III \ // ‘ Tl I
A(l) A(2)………….A(100)
önce A(l], diğer bütün eleaanlarla karşılaştırılır. Birinci eİMan hangilin) küçükse değerleri değiştirilir. Sonra A(2) kendisinden sonra gelen al Hani aı
!C$a-üC ‘
‘A* ve Ct değişkenlerinin değerleri değiştirilir.
(!) ikinci ııyıç (J) dlr. K»r»ıU*tuı» iılııi 1*1 dtn İ60 • kidir yıpıhr, 1, 9? oluncı iıİM» »on vırilîr,
iri» vc Çıktısı t 10 REM Anı pragrıı 20 OIH A(İOO)
30 FOR I»l ÎO 10 40 PRINT IjVj
50 INPIIT “sayıyı giriniz **}A(1)
60 NEXI I 300 60SU8 İOOO 310 FÖR M TO 10 320 PRINT Ad);
330 NEXT I 340 END
1000 REN Büyükten küçüğe doğru sıraya dizen alt prograndır.
1010 FÖR 1*1 TO 9
1020 FOR 0= I+l TO 10
1030 IF Ad) < A(<!) THEN S«AP Ad),A(J)
1040 NEXT J,î 1050 RETÜRN RUN
1 .»ayıyı giriniz -? 34
2 .sayıyı giriniz -1 56
3 .sayıyı giriniz =? 78
4 .sayıyı giriniz *? 345
5 .sayıyı giriniz *? 65
6 .sayıyı giriniz *? 12
7 .sayıyı giriniz «? 32
8 .sayıyı giriniz =? 863
9 .sayıyı giriniz s? 56
10 .sayıyı giriniz «? 3
863 345 78 65 56 56 34 32 12 3
tının uzataaası için yalnız 10 sayı üzerinde işle* yaptırılıştır. Gerekli isikîiklerı yaparak artırabilirsiniz.
MID^ Deyi mi
t
katar değişkenin içine başka bir katarı yerleştirmek veya atatak için kullanılır. ili»
MID* <X», n<,m>> – Y*
Kırıktır dtğiıkıni vıy» indUH kırıktır di|(ıkmi «İRimı oIı&i|ır ‘wıu gıor, . yıpılıcağı karıktır değişkinidir.
bavlangıc karakter~nö Karıktır değişkenine hangi karıktırdın itibarın ataıanın yapil*C49lnı Mirim t«« lıyt ta» sayı değişken veyı ifadedir. 1-235 ırasında bir değer olabüir‘ ’
karakter uzunluğu <»*
Karakter değişkenine, kaynak katardan kaç karakterin atanacak»1 dürten taa „y, u> sayı değişken veya ifadedir. 0-255 arasında değişir. Verilıedij* îatan kaynak ka*ar,n tö#ö atanır.
.. kaynak katarı (Y*)
Bir boiuitt veya tüıû atanacak olan katardır. Karakter uzunl# kaVnak katardan kl„ U| belirtilen uzunluk kadar ataaa yapılır.
Acı kİaıalar
Başlangıç karakter-no ve karakter uzunluğu gereken sınırlıM» dl»ında i»» hata vırir. Ataıadan sonra karakter değişkeninin boyu hiç bir şekilde desis,ez* HIW deyiij kâraktr fonksiyonu olarakta kullanılır. Bu özelliği karakter fonksiyonları anlatılacaktır.
Dizili» Örnekleri
10 Uf® ‘ANADOLU TARİHÎ*
20 HIDI(HI,9) «”LtSELERt* ’HI değişkeninin ?. noterden sonraki nJr£aBJM
belirtilen katardan a*8*3 yapılır.
30 PRINT Ht RUN
ANADOLU LISELE
Örnekte karakter uzunluğu verilıeıistir. ‘LİSELERİ* katari&ın atanacak^ inc|k yeterli yer alladığı için ancak 6 karakter atanır. Ht karakter değişkeninin bay« Ö8İİI
ıo a** -bir iki dört* *
20 H1D*<A*,9,4) ■ *ûC * ‘M değikenine 9. karakterden itibaren bf]irtjlen
katardan dört karakter atanır*
30 PRINT At RUN
BİR İKİ ÛÇ
örnekte DÖRT üzerine öC atamıştır. RT karakterlerinin ö*BrinB de iki b5| ıraktır atamıştır.
Lehçeler
SPECTRUH … ,
Bu lehçede bu deyiıin yerine DEF FN deyiıi ile tani«lanan öuın,ler kullanılır. (Bkz. KaynaW7.S.W)
irnık PzoUıı *2.3
Elinizde DATA daylaleri ila hazırlanan bir ıdras dizili vırdtr. lu dizide birinci kolonda ad vı loyıdlar, 2. kolonda tokak, saat, İlci vı il kodları bulunmaktadır. 2. kolondaki il kodlan 23. karakterden itibaren yazılaııtır. 2. kolondaki katarın boyu 33 karakterdir. Dizide S adet adres vardır. Bu dizideki il kodlarının yerine
il lalelerini giren ve diziyi yazıcıdan veren prograa yazınız.
lözua Tekniği :
11 kodunu görebilaek için 2. kolon ekranda görüntülendikten sonra il isai ekrandan girilecektir. Sonra adres listesi yazıcıdan alınacaktır. İstenirse SATA deyialeri artırılarak daha geni; bir adres listesi tanzia edilebilir.
.PRINT deyiai Çıkış Deyialeri bölüaünde açıklanacaktır. Çıktıyı yazıcıdan alaak için ullanılır. İsteyenler yerine PRINT deyiai ile çıktıyı ekrandan alabilirler.
‘rograa ve Çıktısı :
10 REH Prograaın isai ADRES.
20 REH Bu prograa DATA deyialeri ile verilen verileri 30 REH okuyarak adres listesi düzenler.
40 LPRINT * ADRES LİSTESİ*
50 FOR 1*1 TO 5 60 FOR Jal TO 2 70 READ AMÜ.J)
90 HEXT J 90 PRINT ADfU,2)
100 INPUT “İL ÎSHİ «*|IL$
110 HIDUAD*Ü,2>,25>*IL*
120 LPRINT AD*<I,l);YjAD*<I,2>
130 NE1T I
140 DATA ’HAEHHET SALHAK*,’SAZAN SOK. 1/3 KEÇİÖREN 06 150 DATA *AL1 KOCANAN’, ‘YALI SOK. 25/6 BAKIRKÖY 34 160 DATA “BİLSE KAYGISIZ*,’OVA SOK. 13/7 BANAZ 64 170 DATA * İZZET HANAY’, ‘SİVAS CAD. DUY6U AP. NO:3 38 ISO DATA “TUR6UT BESEVLİ’,’YAYLA SOK. 6/3 BORNOVA 35 190 END RUN
SAZAN SOK. 1/3 KEÇİÖREN 06
İL 1SH1 =? ANKARA
YALI SOK. 25/6 BAKIRKÖY 34
İL ÎSHİ »? İSTANBUL
OVA SOK. 13/7 BANAZ 64
İL ÎSHİ »? USAK
SİVAS CAD. DUYGU AP. N0ı3 3B
İL tSNi =? KAYSERİ
YAYLA SOK. 6/3 BORNOVA 35
İL ÎSHİ *? 1ZH1R
Ok
irnık PzoUıı *2.3
Elinizde DATA daylaleri ila hazırlanan bir ıdras dizili vırdtr. lu dizide birinci kolonda ad vı loyıdlar, 2. kolonda tokak, saat, İlci vı il kodları bulunmaktadır. 2. kolondaki il kodlan 23. karakterden itibaren yazılaııtır. 2. kolondaki katarın boyu 33 karakterdir. Dizide S adet adres vardır. Bu dizideki il kodlarının yerine
il lalelerini giren ve diziyi yazıcıdan veren prograa yazınız.
lözua Tekniği :
11 kodunu görebilaek için 2. kolon ekranda görüntülendikten sonra il isai ekrandan girilecektir. Sonra adres listesi yazıcıdan alınacaktır. İstenirse SATA deyialeri artırılarak daha geni; bir adres listesi tanzia edilebilir.
.PRINT deyiai Çıkış Deyialeri bölüaünde açıklanacaktır. Çıktıyı yazıcıdan alaak için ullanılır. İsteyenler yerine PRINT deyiai ile çıktıyı ekrandan alabilirler.
‘rograa ve Çıktısı :
10 REH Prograaın isai ADRES.
20 REH Bu prograa DATA deyialeri ile verilen verileri 30 REH okuyarak adres listesi düzenler.
40 LPRINT * ADRES LİSTESİ*
50 FOR 1*1 TO 5 60 FOR Jal TO 2 70 READ AMÜ.J)
90 HEXT J 90 PRINT ADfU,2)
100 INPUT “İL ÎSHİ «*|IL$
110 HIDUAD*Ü,2>,25>*IL*
120 LPRINT AD*<I,l);YjAD*<I,2>
130 NE1T I
140 DATA ’HAEHHET SALHAK*,’SAZAN SOK. 1/3 KEÇİÖREN 06 150 DATA *AL1 KOCANAN’, ‘YALI SOK. 25/6 BAKIRKÖY 34 160 DATA “BİLSE KAYGISIZ*,’OVA SOK. 13/7 BANAZ 64 170 DATA * İZZET HANAY’, ‘SİVAS CAD. DUY6U AP. NO:3 38 ISO DATA “TUR6UT BESEVLİ’,’YAYLA SOK. 6/3 BORNOVA 35 190 END RUN
SAZAN SOK. 1/3 KEÇİÖREN 06
İL 1SH1 =? ANKARA
YALI SOK. 25/6 BAKIRKÖY 34
İL ÎSHİ »? İSTANBUL
OVA SOK. 13/7 BANAZ 64
İL ÎSHİ »? USAK
SİVAS CAD. DUYGU AP. N0ı3 3B
İL tSNi =? KAYSERİ
YAYLA SOK. 6/3 BORNOVA 35
İL ÎSHİ *? 1ZH1R
Ok
Yazıcıdan iıı aşağıdaki çıktı aldı «dilır.
ADRES LİSTESİ HEHHET SALMAN,SAIAN SOK, 1/3 KEÇİÖREN ANKARA ALİ KOCAHAN,YALI SDK. 25/6 BAKIRKÖY İSTANBUL BİLGE KAYGISIZ,OVA SOK. 13/7 BANAZ USAK İZZET HANAY,SİVAS CAD. DUYSU AP. N0ı3 KAYSERİ TURGUT BESEVL1,YAYLA SOK. 6/3 BORNOVA İZMİR
2.3.4 GİRİŞ DEYİMLERİ
İleri Basic bölüıânde kullanılan giriş deyiıi LINE INPUT deyisidir.
I_I NE INR-UT Deyi mi
Aeac
Ekrandan, uzunluğu 254 karakter kadar olabilen bir katarı, her hangi bir karakt değişkenine ataeak için kullanılır. Katar içersindeki ayıraçları < ’ , J dikkate alaaz.
Dizilia
LINE INPUT <;><“acıklaaa”i> karakter değişkeni
<;> ve <“açıklama”;>
INPUT deyieindeki tanıaların aynısıdır.
karakter de£i»keni
Ekrandan girilecek katarın atanacağı karakter değişkenidir. Karakter değişkenli bir di eleeanı da olabilir.
Açıklaaalar
Ekranda “açıklasa” dan sonra ENTER’a kadarki girilen her karakter, karakter değişkeni atanır. Ayıraçlar dikkate alıneaz, onlarda atanır. LINE INPUT deyiaini takip eden ilk < isarteti kullanıldığı zaaan satır sonu karakteri (ENTER veya RETURN) okunaaz yani ial aynı satırda kalır.
Lehçeler
HSX
LINE INPUT deyieini takip eden ilk <;> seçeneği bu lehçede kullanılaaz.
CPC-464,6128
LINE INPUT <iaygıt-nD><;}<“acıklaaa”;> karakter değişkeni Dizilisinde kullanılır. Aygıt-no ile değişik aygıtlardan bilgi girilebilir.
Oreke Problea î2.4
Aşağıda verilen okuea parçasını ekrandan giren ve yazıcıdan çıktı olarak veren b prograa yazınız.
* Vlrıinci yüzyılda toplusu m çok ıtküiyın tıknoloilk geline bilgiııyarlııdı ol suttur. İlk zasanlar çok karmık ııkinılır olın bilgiıayırlır güsüsüzdı yerini dahi büyük kıpııitıU ve düşük eıliyetli sikro bilgisayarları bırıksıttır. ‘
lûe Tıkniji ı
Yukarıdaki okusa parçasının her satın LINE INPUT deyisi ile ekrandan bir dizi elesanına atanır. Daha sonra her elesan yazıcıdan yazdırılır. Okusa parçası 5 satır olduğu için 5 el eşanlı bir indisli değişken issi kullanılır. 0K*(5) gibi.
ogras vı Çıktısı ı
10 REH Bir okusa parçasını ekrandan giren ve yazıcıdan çıktı olarak veren bir 20 REH prograsdır. Prograsın issi OKU.
30 INPUT ‘Satır Sayısını Sır ı’jSS 40 FOR 1=1 TO SS 50 LINE INPUT 0K«(1)
60 LPRINT OKt(I)
70 NEXT 1 80 STOP Ok RUN
Satır Sayısını 6ir 😕 5
Yirsinci yüzyılda toplusu en cok etkileyen teknolojik gelişse bilgisayarlarda olsuştur. İlk zasanlar cok karsasık sakinalar olan bilgisayarlar, günüsûzde yerini daha büyük kapasiteli ve daha düşük saliyetli sikro bilgisayarlara bıraksıstır.
.3.5 ÇIKIŞ DEYİMLERİ
tri Basic bölüşünde kullanılan çıkış deyişleri »RITE, PRINT USINS, LPRINT USİNS pisleridir.
UIRITE Deyimi
ıtıların ekranda görüntûlensesi için kullanılır. PRINT deyisine cok benzer. lilis
WRITE <ifadeler listesi>
ifadeler listesi ‘isal veya karakter ifadeleri kullanılabilir. Virgül ile birbirinden ayrılırlar. Basit fisken issi veya katarlar da kullanılabilir.
Açıklasalar
İfadelerin değeri hesaplandıktan »nnr* »kramU görüntülenir. HR1TE kilimini tıkıp ede herhangi i fide veya dertken mi m» katar yoksa, ekranda boy satır bırakılır. PRİM deyıainden farkı; ekrandaki çıktı değerimi, aralarında virgül ile görüntülenir. Katarla ise cift tırnak arasında gürüntülınir.
Dizilia örneği
10 A*-25.5 :B*»10.6S7E+6 ıC*«”İSTANBUL”
20 «RITE A,Ct,Bt
30 STOP
RUN
-25.5,”İSTANBUL”,10.657E+6
Çıktıdaki değerler birbirinden virgüllerle ayrılır. PRINT deyiıinde olduğu gibi bofl bırakılan.
Lehçeler
CPC-464,6İ28
NRİTE <laygıt-no,Xifadeler listesi)
Dizilisi ile kullanılır. Değerler, nuaarası verilen aygıtlara yazdırılır.
PRINT US X NO Doeyimi
fl«l£
Sayısal değerlerin veya katarların belirli bir foraata göre ekranda görüntülenin] sağlar.
Diziliş
PRINT U5IN0 forıat ; ifadeler listesi <;>
format
özel forsatlasa seıbollerinin bulunduğu, bir katar veya karakter değişkenidir, ö forsatlasa sesbolleri çıktıların ekranda nasıl görüntüleneceğini belirler. Sayısal karakter değişkenlerinin farklı forsatlasa sesbolleri vardır. Forıat bir karak değişkenine atanarak, o isie altında da kullanılabilir.
ifadeler listesi <;>
PRINT deyisindeki tanısın aynısıdır.
Açıklasalar
Forsatlasa sembollerinin kullanışı aşağıda acıklanaıstır. Katar forsatlasa sesbolleri 1 *\n boslut\* ve “6” seıbolleridir.
“!” formatlama sembolü s
Belirtilen katarın yalnız birinci karakterinin görüntülensesini sağlar.
n bo»luk\” formatlama sembolü ı Bu forııt kullanıldığı zııın iki tın bölıı »ııbolli ırıundı kılan n bolluğun iki fazlısı bitirtilin kıtırın kaç karakterinin görüntülınıbıliıceğini bilirler, n bosluk vırıı n+2 kırıktır görüntülenir. Katırın boyu n+2 din büyük im artan kırıktırltr görûntülınııez. KÜcûk ise bosluk görüntülenir.
” formatlama sembolü s Bu forıat kullanıldığı man belirtilen katarın tûıü görüntülenir. Ayrıntılı bilgi için Kaynak-11,4,13 e bakınız.
10 A1$=*ANKARA* :A2*=”BURSA” !A3$=’CEYHAN”
20 PRINT USIN6 ,!,jAl*|A2t|A3»
30 PRINT USIN6 a\ \’;A1*;A2$;A3*
40 PRINT USINS >tt>;All;A2$;A3f
RUN
ABC
ANKBURCEY
ANKARABURSACEYHAN
Sayısal forsatlasa için ■#’, “+”, “AAAA”, ■#«’, ’♦!*, ’«§#•, y, *_* sesbolleri kullanılır.
” formatlama sembolü :
I her sayısal karakterin ondalık noktasına göre pozisyonunu belirler. Boş karakterler yerine sıfır görüntülemesini sağlar. Ondalık bölüş belirtilen forıattan büyükse son rakas üzerinde yuvarlaşa yapılır.
10 PRINT USIN6 “H.İI’jO.21,12.444 RUN
0.2112.45
İki değer arasına bosluk versek için forsatta bosluk verilıesi gerekir.
10 PRINT USINS *»«.«« a;0.21,12.446,5.4 RUN
0.21 12.45 5.40 Sayısal değerlerin forsatın en sağma yaslandığına dikkat ediniz.
” formatlama sembolü :
Sayıların + ve – işaretlerinin de görüntülensesini sağlar. Forsatın önünde kullanılırsa önde, arkasında kullanılırsa arkada görüntülensesini sağlar.
10 PRINT USINS “+«.#*”,-6.7,-17.3,+80.5 RUN
+6.70-17.30+80.50
formatlama sembolü ı
Farııtın sonunda kullanılır. Ytlnu negatif sayılırın i»«retlertnin, »ayının »onunda görüntülenenini »14lir.
10 PRINT USINB *11.11- *)6,7,-17,3,*80.8 RUN
6.70 17.30- 80.30
formatlama sembolü s Forsatın »onunda kullanıldıkları zaaan üslü alarak göruntülenaesini uflarlar. Foraatta + veya – seabolleri kullanıla» ise çıktıda taa sayı bölüaü bir haneye güre ayarlanır. Kullanılsa»; ise tas sayı bölöaü görüntülenaez.
10 PRINT USINS *f.Htf#^AA*5İ2.34 20 PRINT US3MB *M#IHAAAA-“î 12.34 RUN
0.12340E+02
1.23400E+Ü1
”*«” formatlama sembolü s
Foraatın solunda kullanılır. Sayının solundaki boşluklarda t görüntülenenini sağlar. Aynı zaaanda t seabolö ile birlikte de kullanılır.
10 PRINT USIN6 *»#.<« 12.5,1.5,123.6 RUN
»12.50 *»1.50 123.60
“♦*” -For matl ama sembolü t
Foraatın solunda kullanılır. Sayının solunda I seabolûnün göruntülenaesini sağlar. Aynı zaaanda I seabolü ile birlikte de kullanılır.
10 PRINT USIN6 *} 12.5,-1.5,60.62 RUN
$12.5 $-1.5 160.62
“*«$” formatlama sembolü s
Foraatın solunda kullanılır. Sayının solunda * seabolünûn görüntülenaesini ve kalan boşlukların • seabolü ile doldurulanını sağlar. Aynı zaaanda I seabolü ile birlikte de kullanılır.
10 PRINT USINB a»*$l»«.t‘;7.5 RUN
»*»«<7.5
formatlama sembolü s
Foraat içerisinde ondalık noktasının heaen solunda kullanılır. Taa sayı bölüaünüı üçer hane virgülle ayrılaasını sağlar.
– 1*7 –
10 PRINT USINB I«’|1234.3 RUN
1,234,50
Virgül ün bir han» yır kapladığına dikkat «diniz, formatlama »«mbolü 3
Foraatın solunda alfabetik karakterler kullanılabilir. Ancak ! veya I gibi forsatlasa sesbolleri, karakter olarak kullanılsak istenirse solunda _ sesbolü kullanılır. Yalnız bir karakter için geçerlidir,
10 PRINT USINS ‘KAPI NO IH’;25 RUN
KAPI NO «25
Forsatlasa sesbollerinin ayrıntıları için Kaynak-11,4,13 e bakınız.
thcsler
‘C-464,6128
Bu lehçelerde forsatlasa sesbolü I yerine siterlin (M sesbolü kullanılır.
■128
° forsatlasa sesbolü bir katarın belirtilen alan içinde ortalanarak yazılsasını sağlar. > forsatlasa sesbolü, bir katarın belirtilen alan içinde sağa yanaştırılarak yazılsasını sağlar.
I_PRIMT USING Deyimi
!*£
IINT USINS deyisinin bütün işlevlerini aynen yapar ancak çıktıyı yazıcıdan verir.
.3.6 BAĞLANTI DEYÎMLERÎ
i veya daha fazla progrası (kütüğü) birbirine bağlaaak veya birlestirsek için kullanılan yislerdir.
CHAIM Deyimi
ü
a progrsadan yan prograsa gecisi, aynı zaaanda yan prograsa, belirtilen değişkenlerinde tarılsasını sağlar.
»İlla
CHAIN <MERGE> kütük tanısı <,<satır-noX,<ALL>
<,DELETE başlangıç – bitiş 5atır-no»>
kütük tanımı
1.1.1 deki açıklasalar aynen geçeriidir. CHAIN deyisinin bulunduğu progras ana ograsdır. Kütük tanısı verilen progras ise yan prograsdır.
••tır-no
Kütük tanıaı ver i Un yan progrum hangi satırından itim başlanacağını bılirUr Varilaezse o prograaın birinci satırından baylanır. Satır-no bir aritaetik ifada ( olabilir.
CHAIN’in bulunduğu ana prograadan yan prograns bütün değişkenlerin atanacağını belirtil Verilaezif hangi değişkenlerin aktarılacağı COHHON deyiai ile öncedtn balirtilaelidiı COHHON deyiaine bakınız.
HER6E seçeneği, yan prograaın belirtilen satır nuaarasından sonraki bölûaünûn ana prograı taşımasını sağlar. HERSE seçeneği DELETE seçeneği ile birlikte kullanılır. BELE’ seçeneği ile ana prograaa tasman bölia, başlangıç ve bitiş satır nuaaraları var i lar silinir.
Acıklaaalar
CHAIN deyiai kütükleri acık bırakır. 2.S te kütük acaa ve kapaaa deyialeri anlatılacaktır
«ERSE seçeneği kullanıldığı zaaan ana prograada yapılan OPTION BftSE tanıaı yan progr için de geceriidir. Aynı şekilde DEFİNT, DEFSNB, DEFDBL, DEFSTR ve DEF FN gibi tanıt deyialeri için de geceriidir. Ancak HER8E seçeneği kullanılaadığı zaaan bu tanıt deyialeri yeniden balirtilaelidir.
CHIN deyiainin işlevi seaatik olarak aşağıda gösterilaistir. PRD6-A ya gör» PROB-B y prograadır. PROS-C ye göre ise PROB-B ana prograadır.
10 REN PR06-A
ALL
MERGE
20
20 REH PROB-B 40 …
200
400 STOP 410 m
240 cohhoh ı,v,z
240 CHAIN ‘PR06-C
-10 REH PR06-C 20 …
340 ENÖ
100 COHHON T
110 CHAIN “PRÜ6~A*,120
300 END
CHAIN dıyiainln HERSE sıçınığt ila kulUnılısının sıaıttk gtt*t«riU»ı «ttgıd* verilaistir. PRÜ6-I d»ki 300,400,500 nolu satırlar PRÜ6-II yı aktarılır. Daha aonra ıillnir.
10 REH PROB-I 20 …
ı
I
100 CHAIN HER6E “PROS-ÎI*,300,DELETE 300-500
] 150 REH PRÖG-II
, 200 …
I T300 …
I——-J 400 tıı
1500 …
‘Sabit diskteki SftLlS kütüğü ile bağlantı kurulur. ‘Diskteki ÇEVRE kütüğü ile bağlantı kurulur, lsleae 300. satırdan başlanır.
‘A sürücüsündeki diskette bulunan PERSON prograaının 200. satırına dallanılır ve bütün değişkenler de bu yan prograsa aktarılır.
CHAIN HERSE “PROS-B»,300,DELETE 300-500 ‘PR06-B yan prograaının 300. satırından
sonraki bölüşü ana prograaa taşınır. Daha sonra 300-500 satır nuaaralan ve arası silinir.
Lehçeler
CPC-464,6128
Bu lehçelerde <ALL> seçeneği kullanılaaz. CHAIN deyini ile ana prograadaki tüa değişkenler yan prograaa aktarılır.
Örnek Problea :2.5
Bir kare çerçeve içerisinde personel bordrosunu veren ve ekranda görüntüleyen bir prograa yazınız. Bordro döküaünde personel sicil no, raporlu gün sayısı, bürüt aaaş, kesintiler ve net aaaş bulunacaktır. Bordro aşağıdaki foraatta olacaktır. Personel verileri DATA deyiai ile verilecektir. 10 personel vardır.
600 …
ı
•
1000 END
Dizilia Örnekleri CHAIN *Ci6AUS*
CHAIN ‘CsCEVRE’,300
CHAIN 8A:PERS0N*,200,ALL
topla*
18 satır
BORDRO
SC.N0 RP BÜRÜT H. KESİNTİ T. NET HAAS 12212 13 250,000TL 100,000TL 150,000TL
6. satır
Cüzili Tekniği t
P-2,1 deki çerçeve cisim progryan prograa olarak kullanılır, CHAIN prograaa bağlanır. ÇERÇEVE.BAS fcütugu A disket löriicüsündedir. Baslıkları y prograa CHAIN ile ana prograaa bağlanır. İstendiği zaaan baslık değiştirilir aaaçlar için kullanılabilir. Bu yan prograaın isai BASLIK.BAS olabilir. B BORDRO diskte saklanacaktır.
10 personel için çerçevenin boyutları 18 satır ve 42 kolon olabilir. Cercav sol kösesi 2. satır 10. kolondan başlayabilir.
Prograa ve Çıktısı t
10 REH Bu prograa bordro döküaû yapar.
20 INPUT ‘Personel Sayısı *”;PS 30 COHHON S,K,N,H,PS 40 CHAIN ‘AîCERCEVE’,20 50 CHAIN ‘C:BASLIK*
40 FOR 1*1 TO PS 70 READ SN,RP,BH,KT 80 LOCATE S+5+I,K+2 90 PRINT USINS ” «lifiSN;
100 PRINT USIN6 ‘«« ‘;RP;
110 PRINT US1NG ‘**♦«!,TL *jBH,KT,BH-KT 120 NEXT I
130 DATA 2212,0,230000,30000 140 DATA 1325,10,260000,30000 150 DATA 955,3,150000,25000 140 DATA 6340,0,90000,10000 170 DATA 3550,3,110000,55000 180 DATA 2550,1,160000,15000 190 DATA 3333,4,210000,13450 200 DATA 5500,1,300000,35000 210 DATA 2111,2,320000,23000 220 DATA 1505,3,155000,13000 300 END
LÖAD’CsBORDRO.BAS*
10 REN Prograa isai BASLIK 20 READ Bl*,B2t,B3*
30 LOCATE S+2,K+15 ıPRINT Bil 40 LOCATE 8+4,K+2 :PRINT B2*
50 LOCATE S+5.K+2 ıPRINT B3$
60 DATA * BORDRO*
70 DATA ’SC.NO RP BÜRÜT H. KESİNTİ T. NET HAAS*
80 DATA *————————————–*
90 CHAIN *C:BORDRO*,60,ALL 100 END
L0AD*C:BASLIK,BA8*
Cüzili Tekniği t
P-2,1 deki çerçeve cisim progryan prograa olarak kullanılır, CHAIN prograaa bağlanır. ÇERÇEVE.BAS fcütugu A disket löriicüsündedir. Baslıkları y prograa CHAIN ile ana prograaa bağlanır. İstendiği zaaan baslık değiştirilir aaaçlar için kullanılabilir. Bu yan prograaın isai BASLIK.BAS olabilir. B BORDRO diskte saklanacaktır.
10 personel için çerçevenin boyutları 18 satır ve 42 kolon olabilir. Cercav sol kösesi 2. satır 10. kolondan başlayabilir.
Prograa ve Çıktısı t
10 REH Bu prograa bordro döküaû yapar.
20 INPUT ‘Personel Sayısı *”;PS 30 COHHON S,K,N,H,PS 40 CHAIN ‘AîCERCEVE’,20 50 CHAIN ‘C:BASLIK*
40 FOR 1*1 TO PS 70 READ SN,RP,BH,KT 80 LOCATE S+5+I,K+2 90 PRINT USINS ” «lifiSN;
100 PRINT USIN6 ‘«« ‘;RP;
110 PRINT US1NG ‘**♦«!,TL *jBH,KT,BH-KT 120 NEXT I
130 DATA 2212,0,230000,30000 140 DATA 1325,10,260000,30000 150 DATA 955,3,150000,25000 140 DATA 6340,0,90000,10000 170 DATA 3550,3,110000,55000 180 DATA 2550,1,160000,15000 190 DATA 3333,4,210000,13450 200 DATA 5500,1,300000,35000 210 DATA 2111,2,320000,23000 220 DATA 1505,3,155000,13000 300 END
LÖAD’CsBORDRO.BAS*
10 REN Prograa isai BASLIK 20 READ Bl*,B2t,B3*
30 LOCATE S+2,K+15 ıPRINT Bil 40 LOCATE 8+4,K+2 :PRINT B2*
50 LOCATE S+5.K+2 ıPRINT B3$
60 DATA * BORDRO*
70 DATA ’SC.NO RP BÜRÜT H. KESİNTİ T. NET HAAS*
80 DATA *————————————–*
90 CHAIN *C:BORDRO*,60,ALL 100 END
L0AD*C:BASLIK,BA8*
Cüzili Tekniği t
P-2,1 deki çerçeve cisim progryan prograa olarak kullanılır, CHAIN prograaa bağlanır. ÇERÇEVE.BAS fcütugu A disket löriicüsündedir. Baslıkları y prograa CHAIN ile ana prograaa bağlanır. İstendiği zaaan baslık değiştirilir aaaçlar için kullanılabilir. Bu yan prograaın isai BASLIK.BAS olabilir. B BORDRO diskte saklanacaktır.
10 personel için çerçevenin boyutları 18 satır ve 42 kolon olabilir. Cercav sol kösesi 2. satır 10. kolondan başlayabilir.
Prograa ve Çıktısı t
10 REH Bu prograa bordro döküaû yapar.
20 INPUT ‘Personel Sayısı *”;PS 30 COHHON S,K,N,H,PS 40 CHAIN ‘AîCERCEVE’,20 50 CHAIN ‘C:BASLIK*
40 FOR 1*1 TO PS 70 READ SN,RP,BH,KT 80 LOCATE S+5+I,K+2 90 PRINT USINS ” «lifiSN;
100 PRINT USIN6 ‘«« ‘;RP;
110 PRINT US1NG ‘**♦«!,TL *jBH,KT,BH-KT 120 NEXT I
130 DATA 2212,0,230000,30000 140 DATA 1325,10,260000,30000 150 DATA 955,3,150000,25000 140 DATA 6340,0,90000,10000 170 DATA 3550,3,110000,55000 180 DATA 2550,1,160000,15000 190 DATA 3333,4,210000,13450 200 DATA 5500,1,300000,35000 210 DATA 2111,2,320000,23000 220 DATA 1505,3,155000,13000 300 END
LÖAD’CsBORDRO.BAS*
10 REN Prograa isai BASLIK 20 READ Bl*,B2t,B3*
30 LOCATE S+2,K+15 ıPRINT Bil 40 LOCATE 8+4,K+2 :PRINT B2*
50 LOCATE S+5.K+2 ıPRINT B3$
60 DATA * BORDRO*
70 DATA ’SC.NO RP BÜRÜT H. KESİNTİ T. NET HAAS*
80 DATA *————————————–*
90 CHAIN *C:BORDRO*,60,ALL 100 END
L0AD*C:BASLIK,BA8*
Dizilia Omni
Eliıizde POUNDU iilâli 3, ûtı»t» poJinoau çözen bir prograa vardır. Bu progr«» kütüğü A ılıskıt sürücüıöndedlr. X in dığırini ekrandan giren bir prograa parçan yazınız. Bu prograa ili POLINGrt prograaını HERSE koautu ile birleştiriniz. P0L3 yani isai ile A daki disketi saklayınız.
POLINOH prograaı!
100 REH 3. derece polinoa çözen prograa 200 LIT Y*5.4+3*X+1. l*X*2+4.l*XA3 300 PRINT * I»*}*}’ Y«*}Y 400 STOP
SAVE *AıP0LIN0N.8AS’,A ‘ASCII kodunda A disketinde saklanır.
ANA prograa :
10 REH X değerini giren prograa 20 INPUT “X değerini giriniz «*jX
HERSE ’AıPOLINOH* ‘POLINOH prograaı bu prograa parçası ile birleştirilir.
LIST
10 REH X değerini giren prograa 20 INPUT *X değerini giriniz *”}X 100 REH 3. derece polinoa çözen prograa 200 LET Y*5.6+3*X+l.l*XA2+4.1*XA3 300 PRINT * X»,)X5’ Y=’)Y 400 STOP
SAVE1 A-.P0L3.BAS’ ‘İkili kodlaaa sisteainde A disketinde saklanır.
2.3.7 KONTROL DEYİMLERİ
BEEP, ERROR, 0N…ERR0R, RESME, TRON-TROFF ve MHILE/HENO deyialeri ileri Basic bölüşünde kullanılan kontrol deyialeridir.
BEEP Deyimi
Aaaç
Prograacıyı sesle uyarsak için kullanılan bir deyiadir.
Dizilia
BEEP
Dizilia &rneii
IF A»100 THEN BEEP Deyiai ile prograacı A»100 olduğu zaaan BEEP sesi ile uyarılır.
Lıhylır
SPECTRUH
BEEP »ürt, gbrtli nota değeri Dizilisinde kullanılır. <göreli nota değeri) “orta C olarak sislendirilen notanın altında ve üıtündeki değerlerdir. Eksi değerler, altındaki notaları, artı değerler üstündeki notaları teasil eder. <süre) saniye cinsinden sesin süresidir.
ERROR Deyimi
A§!£
Bir Basic hatasının oluştuğunu belirtmek için kullanılır. Aynı zaaanda programcının kendi hata «esajlarını olusturaak için de kullanılabilir.
Dizilia
ERROR n
n
1 ile 2SS arasında bir aritaetik ifade olabilir. Belirtilecek hata mesajının kodunu teasil eder.
Açıklamalar
Basic’in kullandığı hata kodlan ile kullanıcının vereceği hata kodlarının cakısmaması için 200 ün üzerindeki kodların kullanılması önerilmektedir. Her derleyici/yorumlayıcının el kitabında hata mesajları ve kodları verilmiştir. Programcının kendi hata mesajını olusturaası ON ERROR deyimi ile yapılır.
Dizili» flrneâi
10 INPUT ,X»,}X
20 INPUT “Y«*)Y
30 T=XA2+Y*3
40 IF T>40 THEN ERROR 6
50 PRINT *T»’}T
60 S0T0 10
RUN
X»? 2.3 Y«? 1.5 8.665 X=? 5.1 Y=? 3.2
OverfİDN in 40
T=25
C0NT
Hata mesajı verildikten sonra prograa durur, C0NT komutu ile kaldığı yerden devam edebilir. Ancak T ‘ye 40 dan küçük bir değer verilir sonra Ü0NT komutu çalıştırılır. Aksi halde prograa 40 nolu satırın dışına çıkamaz.
Lehçeler
C-128
Bu lehçede aynı işlev ESRKN) fonksiyonu ile gerçekleştirilir.
ON ERROR Deyimi
AOC
Prograaın calısaaıı sıratındı bir hatanın yakalanmasını ve daha sonra belirtilen hata alt prograaının işletilenini sığlar.
Dizilia
ON ERROR GOTO satır-no Acıkla»alar
Bir hatanın yakalanaası duruşunda isiea sırasının belirtilen satır nuaarasına dallınaısın ve oradaki işlemlerin yapılması sağlar. Belirtilen hata alt prograaı islendikten sonr RESUHE deyiai ile programın nereden devaa edeceği bildirilir. RESUHE deyiaine bakınız Satır-no yerine sıfır kullanılırsa dallanaa olmaz. Prograa hata nuaarasını verir ve durur.
Dizili» Örneği
Aşağıdaki prograa bir oyuncunun bilgisayara girdiği bir sayıyı diğer bir oyuncunun bulaat için yazılmıştır. İnceleyiniz ve oynayınız.
10 ON ERROE 60T0 90
20 INPUT *1. oyuncu bir sayı gir»jX
30 CLS
40 INPUT *T»’jT 50 IF X > 1000 THEN ERROR 220 60 IF X X T THEN ERROR 225 70 PRINT ■BİLDİNİZ*
80 END
90 IF (ERR»220I AND <ERL‘50> THEN PRINT *X>1000 ÜLAHAZ* 1RESUHE 20 100 IF (ERR*225} AND (ERL-60) THEN
IF T < X THEN PRINT ‘daha büyük tahain yap*
ELSE PRINT “DAHA KÜÇÜK TAHMİN YAP’
110 RESUHE 40
Örnekte, tahain 1000 den büyük olduğu zaaan ERROR 220 oluşur, doğru tahain yapılaadiı zaaan ERROR 225 oluşur ve islea 90 satır nuaarasına dallanır. ERR hata kodunun değişk isaidir, ERL ise hata satırı nuaarasının değişken isaidir. ERR ve ERL fonksiyonları bakınız. EM değişkeni 220 ise ve hata satırı 50 ise aX>1000 OLMAZ* aesajı verilir islea sırası 20 satır nuaarasına dallanır. ERR değişkeni9 225 ve hata satırı 60 ise T ile karşılaştırılır. T < X ise ‘daha büyük tahain yap* aesajı verilir. T > X ise ‘daha kiç tahain yap* aesajı verilir. Isleae 40. satırdan devaa »dilir.
Lehçeler
C-128,ATARI-800XL
Bu lehçelerde aynı işlev < TRAP satır-no ) diziliai ile yapılır.
ON ERROR Deyimi
AOC
Prograaın calısaaıı sıratındı bir hatanın yakalanmasını ve daha sonra belirtilen hata alt prograaının işletilenini sığlar.
Dizilia
ON ERROR GOTO satır-no Acıkla»alar
Bir hatanın yakalanaası duruşunda isiea sırasının belirtilen satır nuaarasına dallınaısın ve oradaki işlemlerin yapılması sağlar. Belirtilen hata alt prograaı islendikten sonr RESUHE deyiai ile programın nereden devaa edeceği bildirilir. RESUHE deyiaine bakınız Satır-no yerine sıfır kullanılırsa dallanaa olmaz. Prograa hata nuaarasını verir ve durur.
Dizili» Örneği
Aşağıdaki prograa bir oyuncunun bilgisayara girdiği bir sayıyı diğer bir oyuncunun bulaat için yazılmıştır. İnceleyiniz ve oynayınız.
10 ON ERROE 60T0 90
20 INPUT *1. oyuncu bir sayı gir»jX
30 CLS
40 INPUT *T»’jT 50 IF X > 1000 THEN ERROR 220 60 IF X X T THEN ERROR 225 70 PRINT ■BİLDİNİZ*
80 END
90 IF (ERR»220I AND <ERL‘50> THEN PRINT *X>1000 ÜLAHAZ* 1RESUHE 20 100 IF (ERR*225} AND (ERL-60) THEN
IF T < X THEN PRINT ‘daha büyük tahain yap*
ELSE PRINT “DAHA KÜÇÜK TAHMİN YAP’
110 RESUHE 40
Örnekte, tahain 1000 den büyük olduğu zaaan ERROR 220 oluşur, doğru tahain yapılaadiı zaaan ERROR 225 oluşur ve islea 90 satır nuaarasına dallanır. ERR hata kodunun değişk isaidir, ERL ise hata satırı nuaarasının değişken isaidir. ERR ve ERL fonksiyonları bakınız. EM değişkeni 220 ise ve hata satırı 50 ise aX>1000 OLMAZ* aesajı verilir islea sırası 20 satır nuaarasına dallanır. ERR değişkeni9 225 ve hata satırı 60 ise T ile karşılaştırılır. T < X ise ‘daha büyük tahain yap* aesajı verilir. T > X ise ‘daha kiç tahain yap* aesajı verilir. Isleae 40. satırdan devaa »dilir.
Lehçeler
C-128,ATARI-800XL
Bu lehçelerde aynı işlev < TRAP satır-no ) diziliai ile yapılır.
ON ERROR Deyimi
AOC
Prograaın calısaaıı sıratındı bir hatanın yakalanmasını ve daha sonra belirtilen hata alt prograaının işletilenini sığlar.
Dizilia
ON ERROR GOTO satır-no Acıkla»alar
Bir hatanın yakalanaası duruşunda isiea sırasının belirtilen satır nuaarasına dallınaısın ve oradaki işlemlerin yapılması sağlar. Belirtilen hata alt prograaı islendikten sonr RESUHE deyiai ile programın nereden devaa edeceği bildirilir. RESUHE deyiaine bakınız Satır-no yerine sıfır kullanılırsa dallanaa olmaz. Prograa hata nuaarasını verir ve durur.
Dizili» Örneği
Aşağıdaki prograa bir oyuncunun bilgisayara girdiği bir sayıyı diğer bir oyuncunun bulaat için yazılmıştır. İnceleyiniz ve oynayınız.
10 ON ERROE 60T0 90
20 INPUT *1. oyuncu bir sayı gir»jX
30 CLS
40 INPUT *T»’jT 50 IF X > 1000 THEN ERROR 220 60 IF X X T THEN ERROR 225 70 PRINT ■BİLDİNİZ*
80 END
90 IF (ERR»220I AND <ERL‘50> THEN PRINT *X>1000 ÜLAHAZ* 1RESUHE 20 100 IF (ERR*225} AND (ERL-60) THEN
IF T < X THEN PRINT ‘daha büyük tahain yap*
ELSE PRINT “DAHA KÜÇÜK TAHMİN YAP’
110 RESUHE 40
Örnekte, tahain 1000 den büyük olduğu zaaan ERROR 220 oluşur, doğru tahain yapılaadiı zaaan ERROR 225 oluşur ve islea 90 satır nuaarasına dallanır. ERR hata kodunun değişk isaidir, ERL ise hata satırı nuaarasının değişken isaidir. ERR ve ERL fonksiyonları bakınız. EM değişkeni 220 ise ve hata satırı 50 ise aX>1000 OLMAZ* aesajı verilir islea sırası 20 satır nuaarasına dallanır. ERR değişkeni9 225 ve hata satırı 60 ise T ile karşılaştırılır. T < X ise ‘daha büyük tahain yap* aesajı verilir. T > X ise ‘daha kiç tahain yap* aesajı verilir. Isleae 40. satırdan devaa »dilir.
Lehçeler
C-128,ATARI-800XL
Bu lehçelerde aynı işlev < TRAP satır-no ) diziliai ile yapılır.
MHII^E/MKND Oeeyimrl
ft»»c
Belirtilen koşul ifadesi sonucu doğru olduğu sürece, döngü içerisindeki bir dizi deyisiı islenaesini sağlar.
Dizili»
WHILE ifade
Döngü deyimleri t ■
WEND
Açıklasalar
ifadenin sonucu doğru ( O 0 ) ise döngü deyişleri işlenir, NEND deyisine gelinci Bati işles sırasını NHILE deyisine döndürür ve ifadeyi kontrol eder. Sonuç yine doğru yan sıfıra eşit değil ise döngü tekrar edilir. Bu işlea ifadenin sonucu doğru olduğu sürıc devaa eder. Döngü içerisinde ifadenin sonucunu etkileyerek döngüye son verilebilir. 1c ic NH1LE/HEND döngüleri kullanılabilir.
örnek Problea: 2.6
Bir trafik kayıt dosyasında plaka-no ve araç sahibinin adının soyadının bulunduğu bir dizi vardır. Bu diziyi plaka nuaarasına göre küçükten büyüğe doğru sıraya dizin bir prograa yazınız. Veriler DATA deyialeri ile okutulacaktır. Dizinin döküaü yazıcıdan alınacaktır. Dizide 5 eleaan vardır.
Cözüa Tekniği :
Dizi 2 boyutlu ve 5 eleaandan oluşacaktır. Birinci boyutta plaka-no, ikinci boyutta ad soyad bulunacaktır. Plaka nuaaraları karşılaştırılarak sıraya diziiecektir.
Prograa ve Çıktısı ı
10 REH Bir TRAFİK DOSYA dizisini sıralaaa programıdır.
20 INPUT ‘Eleaan Sayısı *’;E 30 DIH TRt(2,E>
40 FOR J=1 TO E 50 READ TR*(1,J),TR*(2,J>
60 NEÜT i 70 KONTROL®1 80 «HİLE KONTROL 90 KONTROLE 100 FOR J=1 T0 E-i
110 IF TR*(1,J) > TR$U,J+I) THEN SNAP TRfü.JI,TR*(i,J+l)
: SNAP TRt(2,J),TR$<2,J+l) i KONTROL8l
120 NEXT J 130 HEND
140 LPRINT ‘PLAKA NO”,’AD SOYAD’ »LPRINT
150 FOR M TO E
160 LPRINT TR«(M>,TR«<2,J>
170 NEXT J
180 MTA “06ABJ41VAHHET ÇALIŞKAN* 190 DATA *06AB150\ÜZ6E KALHAZ*
200 DATA *01AD150*,FAtK TûZûN*
210 DATA *06Al163*,BİLGE KORKMAZ* 220 DATA *05AC315\İZZET HANAY 250 END RUN
Eleaan Sayısı *? 5 PLAKA NO
01AD150 05AC315 06A1163 06AB150 O6A0Î41
2.3.8 TANITIM DEYİMLERİ
COHHON, DEF tip, OPTIflN BASE ve KIDTH deyişleri ileri Basic tanıt» deyişleridir. COMMON Deyimi
Afi£
CHAIN deyiai ile ana programdan yan prograaa geçiş yapılırken bazı değişkenlerin de aktarılaasını sağlayan deyiıdir.
Dizilia
COMMON <değiçken><,değişken> …
değişken
Yan prograaa geçiş yapılırken aktarılaası istenen değişkenlerin isialeridir.
Açıkİatalar
Prograaın her yerinde kullanılabilir, ancak prograaın başında kullanaak bazı hataları önler. CHAIN deyiai ile tüa değişkenler yan prograaa aktarılacak ise ALL sözcüğe kullanılır. Aksi halde COHHON deyiai ile aktarılacak olanlar seçilir. Bu deyiale bir dizinin aktarılaası isteniyorsa dizinin değişken isai kullanılır ve parantez açılıp kapatılarak belirtilir.
AD SOYAD
FASK TûZûN İZZET HANAY BIL6E KORKMAZ ÖZSE KALMAZ AHKET ÇALIŞKAN
DiıiU» Örneği ı ı
300 COHHON At, X, Y, LO ı i
390 CHAIN ‘AıKONTROL*
CHAIN deyiai ile A sürücüsündeki diskette bulunan KONTROL isiali yan prograaa bağlı yapılaaktadır. COHHON deyiai ile Al karakter değişkeni, X, Y sayısal değişkenleri ve dizisi yan prograaa aktanlaaktadır.
DEF -tip Dayi mi
Değişkenlerin tipini (taa sayı, tek incelikli, cift incelikli veya karakter değiık tanıtaak için kullanılır.
Dizilia
DEF tip har f <-har f><, harf <-harf» …
tip
Taa sayı için INT, tek incelikli için SN6, cift incelikli için DBL, karakter dağiı için STR kısaltaalırı kullanılır.
harf
A-Z arasında bir harf kullanılır. Tipinin tanıtılaası istenen değişkenlerin bas harfli belirtir, ’harf-harf* seklinde kullanıldığı zaaan o harfler arası anlaaındadır.
flcıklaaalar
1.1.3 Basic değerleri bölüaünde anlatılan î,!,l veya I seabolleri ile de belirtilebiliyordu. Bu seaboller kullanılaadığı zaaan Basic tüa değerleri tek incel sayı kabul ediyordu. DEF tip deyiai, tip belirtae işlevini kolaylaştırır. Prograaı basında kullanılaalıdır. DEF tip deyiai ile tanıalandığı halde, prograa icerisindı belirten seabollerle tekrar tanıalanıyorsa öncelik tip seabollerinin tamamdadır.
Dizilia Örnekleri
10 DEFİNT I-N ’I,J,K,L,H,N ile başlayan tüa değişken isialeri taa sayı değ isaidir.
20 DEFSN6 A-E ‘A,B,C,D,E ile başlayan tüa değişken isialeri tek incelikli değişken isaidir.
30 DEFDBL F,0-R ’F ve 0,P,R ile başlayan tüa değişken isialeri cift incelikl 40 DEFSTR X,Y,Z *X,Y,Z ile başlayan tüa değişken isialeri karakter değişken isialeridir.
50 K=10/3
60 B-10/Î 70 F-10/3
00 KAMARA’
90 PRINT K,B,F 100 PRINT X RUN
3 3.333333 3.333333333333333 ANKARA
Lehçeler CPC-464,6128
Bu lehçelerde DEFINT taasayı değişkenleri, DEFREAL tek incelikli sayısal değişkenleri, DEFSTR katar değişkenleri tanıtlar. Diğer özellikleri yukarıdaki gibidir.
□PTION BASE Deyim± Aaat
Dizi indislerinin başlangıç değerini tanıalaaak için kullanılır.
Dizili»
OPTION BASE n
n
n sıfır veya bir olabilir, indisin sıfır veya birden başlaaasını sağlar. ftcıklaaalar
Bu bölüae kadarki örneklerde olduğu gibi, bu deyi» kullanılaazsa indis sıfırdın başlar.
1.1.3.2 ye bakınız. DİN deyiainden önce kullanılaalıdır.
8rnek Problea: 2.7
SPOR LOTO oynayan bir prograa yazınız. 36 aactan belirli sayıda (8 den cok ) beraberlik »acı seçildikten sonra bu »adarın adedi ve »aç »»araları ekrandan girilecektir. Prograa bu aaclann içinden her defada rasgele 8 aaç için çekiliş yapacaktır. Banko düşünülüyorsa prograa 8 «açlık çekiliş yerine daha az çekiliş yapacaktır, istenen kolon sayısını verene kadar çekilişe devaa edecektir. Lotoda birbirinin aynı kolon bulunmayacaktır. Aynı kolon çekilişlerinin adedi ekrana yazılacak ve o kolon için yeniden çekiliş yapılacaktır. Aynı kolim sayısı arttıkça seçilen beraberlik saçlarının tüa olasılıklarının sonuna yaklaşıldığı anlaşılacaktır.
Liste yazıcıdan, onbeşerli kolonlar halinde ve her kolondaki aac nuaaraları artan sırada dizili olarak alınacaktır.
Çözü» Tekniği ı
– Beraberlik aac nuaaralarının yerleştirileceği bir dizi oluşturulacaktır. Dizinin eleaan sayısı beraberlik adeditBE) kadar olacaktır.
f
I- 1 2 3 4 5 6 7 8 9 10 …. BE [TJ 7 j t İH 117 120 121
fl(BE) veya Z<BE) dizileri
– AtBE)-dizisinin bir kopyası oluşturulacak, bu da Z(BE) dizisi olacaktır. Bütün işlealer Z(BE) dizisi üzerinde yapılacaktır. Çünkü her çekilişte, Z(BE) dizisi üzerinden rasgele çekilen aac nuaaraları yerine sıfır atanacaktır. BÖylece sıfır atanaıs eleaanlara ikinci defa girae önlenecektir. Her çekilişte eleaanın değerinin sıfır olup olaadığı kontrol edilerek aynı aac nuaarasınm kolon içinde tekrarı önlenecektir.
– Bir kolonun çekilisi bitince yeni çekiliş için A(BE) dizisi Z(BE> ye kopyalanacaktır. Dizi orjinal haline getirilecektir.
– Oynanan her kolon 6(81 geçici loto kolonu dizisine atanacaktır. Bu dizi içindeki aac nuaaraları artan sırada sıralanacaktır.
– Oynanan eski kolonlar R(8,KS) (KS*Kolon Adedi) dizisinde saklanacaktır.
– Her yeni kolon yani 5(8) dizisi, R(8,KS) dizisindeki eski kolonlarla karşılaştırılacaktır. Aynısı var ise 6(8) iptal edilerek bu kolon için yeniden çekiliş yapılacaktır.
– Aynı kolon varsa AYNI sayacı bir artırılacaktır.
– R(8,KS) dizisi liste için yazdırılacaktır. Her gurupta onbeşer kolon olacak şekilde bir liste vercektir.
– Banko aac varsa yani her kolonda 8 den az çekiliş yapılacak ise banko sayısı kadar eksik çekiliş yapılacaktır. Tüa kolonlar 8 den az aac nuaarası bulunduracaktır. Her kolondan sadece banko olaayan nuaaralar listelenecektir.
Prograa ve Çıktısı s
10 REH Prograaın isai LOTO 20 0PTI0N BASE 1
30 DEFINT A,B,6,R,S,T,Y,Z,l,J,K,L,n,N 40 01H A(36),Z<36),6(36),R(8,400)
50 INPUT “Banko Düşünülüyorsa Banko Hac Sayısını 6ir *”}BA 60 BI-6-BA
70 INPUT “36 aac içinden kac aac beraberlik düşünüyorsanız onu giriniz =“)BE 80 FOR IM T0 BE
90 INPUT “Beraberlik aacının nuaarasını gir s”;A(l)
100 NEXT I
110 INPUT “Kolon Adedini 6ir =”jKS 120 XX * VAL(TIHEt)
W\WWJ) \ 30 132 133
130 RANDMIZE XX 140 FOR K« i TO K8 130 FOR I” 1 TO BE 160 Z(D» A(l)
170 NEXT I
180 FOR N-l TO BI
190 Y« INT(RND*<BEM))
195 IF Y-0 THEN 80T0 190 200 IF Z(Y) >0 THEN GOTO 190 210 B(N)-Z(Y)
220 Z(Y)*0 230 NEXT N 240 GOSUB 540
250 IF K * 1 THEN GOTO 340 260 FOR 3* 1 TO K-l 270 FOR N* 1 TO BI
280 IF R<M> <> 6<N> THEN 60T0 330
290 MEXT N
300 AYNI > AYNI+1
310 PRINT ‘Aynı Kolon Sayısı *”5AYNI
320 sora 150
330 NEIT 2 340 FOR N> i TO BI 350 R(N’K) * 6(N)
360 NEXT N,K
370 REH Liste Çıkarsa Bölüşü
380 INPUT “Kaç kopya liste istiyorsunuz **}LS
390 FOR LLS 1 TO LS
400 KK*1
410 FOR 3« 1 TO BI 420 II*J
430 LPRINT USIN6 ‘«.Beraberlik *|II 440 FOR K® KK TO KK+14 450 80 * R(JtK)
460 LPRINT USIN6 al«ta;SO 470 NEXT K 480 LPRINT 490 NEXT J 500 LPRINT
510 IF (KK+15) < KS THEN KK=KK+15 îSÖTO 410 520 NEXT LL 530 STOP
540 REH 8(8) i küçükten büyüğe doğru sıralasa
550 FOR Ls l TO BI-1
560 FOR «» L+l TO BI
570 IF (8(L) <= m THEN 60TG 590
bölüşü
»nnMnaa
500 BMAP S(L),B(H)
590 NEXT H,L 600 RETURN Ok RUN
Banko Düşünülüyorsa Banko Haç Sayısını Bir ■? 0
36 aaç içinden kaç aac beraberlik düşünüyorsanız onu giriniz =? 14
Beraberlik «açının nuaarasını gir »? 5
Beraberlik aacının nuaaraıını gir *? 7
Beraberlik aacının nuaarasını gir s? 10
Beraberlik aacının nuaarasını gir s? 13
Beraberlik aacının nuaarasını gir *? 15
Beraberlik aaçmın nuaarasını gir =? 17
Beraberlik aaçınm nuaarasını gir «? 19
Beraberlik aacının nuaarasını gir =? 22
Beraberlik aacının nuaarasını gir ■? 25
Beraberlik aaçınm nuaarasını gir ■? 27
Beraberlik aaçınm nuaarasını gir =? 29
Beraberlik aacının nuaarasını gir =? 30
Beraberlik aacının nuaarasını gir *? 32
Beraberlik aacının nuaarasını gir *? 33
Kolon Sayısını Sir *? 20 Kaç kopya liste istiyorsunuz ■? 1
1.Beraberlik 5 7 5 7 5 5 5 7 5 7 5 5 5 7 5
2.Beraberlik 7 15 7 10 10 7 7 13 7 10 13 13 13 10 10
3.Beraberlik 10 17 10 17 13 13 17 15 10 17 19 15 17 13 13
4.Beraberlik 13 19 13 19 15 15 19 17 17 22 25 22 27 17 15
5.Beraberlik 25 25 17 25 17 17 22 22 25 27 27 25 29 19 22
6.Beraberlik 29 30 19 27 19 22 25 25 27 29 30 27 30 22 27
7.Beraberlik 32 32 29 32 22 30 27 27 30 32 32 32 32 27 30
B.Beraberlik 33 33 32 33 32 32 29 29 32 33 33 33 33 30 32
1.Beraberlik 5 7 5 5 5 0 0 0 0 0 0 0 0 0 0
2.Beraberlik 10 13 7 7 10 0 0 0 0 0 0 0 0 0 0
3.Beraberlik 13 17 10 10 13 0 0 0 0 0 0 0 0 0 0
4.Beraberlik 15 19 17 13 15 0 0 0 0 0 0 0 0 0 0
5.Beraberlik 22 27 25 19 19 0 0 0 0 0 0 0 0 0 0
6.Beraberlik 27 30 29 27 22 0 0 0 0 0 0 0 0 0 0
7.Beraberlik 32 32 32 32 25 0 0 0 0 0 0 0 0 0 0
B.Beraberlik Ok 33 33 33 33 29 0 0 0 0 0 0 0 0 0 0
2.3.9 BELLEK SÎLME DEYİMLERİ
Bellekte yer kazanaak aaacına yönelik olarak prograaı, dizileri veya değişkenleri silaei için kullanılan deyialerdir. NEN, ERASE, CLEAR deyialeri ileri Basic bellek tilıı deyialeridir.
NEW Komutu
•ktıki prograaı vı tüa değişkenleri silaık için kullanılır.
ili
NEW
tlaaalar
i bir Bııic prograaı girileceği zaaan kullanılır. Acık olan tüa kütükleri de kapatır,
lii (İmiği
NEM ‘Bellekteki prograa, tüa değişkenler ve diziler silinir.
ERASE Deyimi
ç
graaın içindeki işlevi biten dizileri silerek bellekte yer kazanaak için kullanılır.
iHa
ERASE dizi-iemi <fdizi-ismi> … klaaalar
grıa uygulanırken bellek alanında az yer kalacağı anlaşılınca işlevi biten diziler inerek yer kazanılabilir. Silinen diziler DİN deyiai ile yeniden boyutlandırılabilir a sağlanan boşluk başka aaadar için kullanılabilir. FRE fonksiyonu ile birlikte bellek ıluğunu kontrol ederek kullanılabilir (Bkz. FRE fonksiyonu).
ili» Örneği 10 DİN A(3)
20 A(l)«10 30 A(2>=20 40 A(3)«40
50 PRINT AU>jA<2)jA<3)
60 ERASE A
70 PRINT AU);A(2);A(3)
RUN
10 20 40
0 0 0
CL.EAR Komutu
aç
tün sayısal değişkenleri sıfırlar ve karakter değişkenlerinin içini boşaltır. Ayrıca iliğin bir bdlûaûnû çalısı» alanı olarak ayıraak için kullanılır.
‘Dizinin boyutları tanıalanır.
’A dizisinin işlevi bittiği için bellekten silinir.
. uı –
CLEAR <|<n>< »«>>
n
Bellekte ayrılacak çalışa» »lininin progrıı vı verilir dahil aaksiauı boyunu tanıtlar. Bu seçenek takina dili progrtaları için kullanılır.
m
Bellekte Basic için depo alanı ayıreaya yarar. Belirtilmezse 256 bayt veya belleğin tekilde birini ayırır. İc ice birçok 6ÛSUB veya FOR … HEİT döngüsü kullanılacağı zatın tanıalanaalıdır.
Acıklaaalar
Bellekteki prograaa dokunaadan veriler için kullanılan bellek alanı boşaltılır. CLEAR koautundan sonra diziler belirsizleşir, sayısal değişkenler sıfırlanır ve karakter değişkenleri boşaltılır. Değişkenlerle ilgili tüa DEF FN, DEF 8E6, DEF USR, DEFINT, DEFDBL, DEFSN6, OEFSTR deyialeri işlevlerini kaybederler.
Dizilia Orneâi
10 A-1333 20 PRINT A
30 CLEAR ‘Bu koaut ile tüa veriler teaizlenir. Prograa aynen kalır.
40 PRINT A RUN 1333
CLEAR,3276B,1000 ‘Tüa veriler teaizlenir. Basic için aakıiaiua 32 K bayt çalışta alanı ayrılır. 1000 bayt Basic depo alanı ayırır
Lehçeler
BAS!CA,flSBA51C
Bu lehçede a belirtilaezse 512 bayt kabul edilir. Bellek küçük ise sekizde biri ayrılır.
6KBASIC
Bu lehçede t belirtilaez ise 768 bayt veya belleğin sekizde biri kabuledilir.
HSI
CLEAR <katar boyuX,en yüksek bellek adresi)
Dizilisinde kullanılır. Taa sayısal değişkenleri sıfırlar ve katarları boşaltır. <katar boyu) kullanılan karakter değişkenlerinin katarlarının boyunu tamalar, ikinci seçenek ise bellekte MSl-BASIC için ayrılan alanı belirler.
CPC-464,6128
Bu lehçelerde CLEAR’dan sonraki seçenekler kullanılaaz.
C-64,128,A TARI-800XL
Bu lehçelerde yerine CLR deyiai kullanılır.
$.10 FONKSİYONLAR
i Basic fonkıiyonlan uy jul »s» ilanlarına gör» sınıflındırılaıstır. Srıfik, aatris, k v» »ikini dili fonksiyonları ilgili bölüşlerde ınlıtılsııtır.
S.10.1 ARİTMETİK FONKSİYONLAR
a»tik i»1»»lirde kullanılan fonksiyonlardır.
CDBL Fonksiyonu
incelikli sayısal bir değeri cift incelikli değere dönüştürür. lia
d«§i ®ken=CDBL(X)
ırhangi bir aritaetik ifade veya değişken isai olabilir.
lia örneği 10 K°10 20 L-3.3
30 LET Hl> C0BL(K)/CDBL(L) ’K ve L değerleri önce cift inceliğe dönüştürülür sonra
islea sonucu M ye atanır.
40 PRINT M RUN
3.030303074089731
40 PRINT L;CDBL(L) ‘L nin tek ve çift incelikli değerleri görüntülenir.
RUN
3.3 3.299999952316284
CINT Fonksiyonu
isal bir değer yuvarlatılarak ta» sayıya dönüştürülür. İli»
desfiisken-CINT <X)
“it»etik ifade veya değişken isai olabilir.
İli» Orneöi 10 A=25.654
20 PRINT CINT(A);CINT(5.431)
RUN 26 5
C8NO Fcankmlyonu
A|H
Sayısal bir değeri t#k incelikli bir değere dönüştürür.
Dizili»
deği *k«n<«CSNG(X)
X aritmetik ifade veya tay nal devitken iıti olabilir.
Dizili» Prneâi
10 Ris124.634567789
20 LsCSN6(H4) ‘M cift incelikli değişkenin değeri L tek incelikli
değişkene yuvarlatılarak atanır.
30 PRINT Ht;L RUN
124.634567789 124.6346 Lehçeler CPC-464,6128
8u lehçelerde {değişken =CREAL(X)> diziliai kullanılır.
ERR ve» ERL Fonksiyonu
A>ac
Hata ile ilgili satır numarasının ve hata kodunun değişken işialeridir. ERR hata kodunu, ERL hatanın oluştuğu satırın nuaarasını verir. Hata kodları ıcin EK-3’e bakınız.
Dizilia
sayısal de£isken*ERR sayısal değisken=ERL
ftcıklaaalar
Genellikle ON ERROR ve IF … THEN deyialeri ile birlikte hata kontrolü için kullanılır. ON ERROR deyiaindeki örneğe bakınız.
Lehçeler
C-128
Bu lehçede ER ve EL sistea değişkenleri aynı işlevi yapar.
FIX Fonksiyonu
$!£
Sayısal bir değeri, ondalık kısmı atılarak taa sayıya dönüştürmeye yarar.
Dizilia
deeğisken-FIX <X)
X aritmetik ifade veya sayısal değişken ismi olabilir.
ıl İMİ ir
fonksiyonu 1NT fonksiyonundan farklıdır. Negatif sayılırda fil (unkıiyonu ondalık kısıı ııın ıtır, yuvarlaaı yapaız (INT fonksiyonuna bakımı).
Ha Örneği PRINT FIX(57.65)
57
PRINT FIX(-5.63)
5
*
HEX# Fon k»iyonu
•al bir değerin hekzadesiaal (on altılı sayı sisteai) değerini verir.
ÜS ^
d«öi*k»n=HEX*(X>’
ığeri -32768 ile 65535 arasında değişen aritaetik ifade olabilir. X taasayı değil ise ı tıasayıya yuvarlanır, sonra onaltılı sayı sisteaine çevrilir. X negatif ise (65536-X) «eklinde hesaplanır. (Bkz. Kaynak-4)
lia Örneği PRINT HEXt<32)
20
PRINT H£ll11023)
3FF
ti er
464,6128
HEXf (i »ar et siz taasayı ifade <, karakter genişliği»
Taasayı değer onaltılı sayı sisteaine dönüştürülür. Sonuç belirtilen karakter değişkeni genişliğinde elde edilir. Boşluklara sıfır yerleştirilir.
SGN Fonksiyonu
sal bir değerin işaretini belirleaek için kullanılır.
Ul
değ işken=SGN< X) itaetik ifade veya değişken isai olabilir.
lanlar
X in değeri negatif olunca S6N(X)=-1 olur,
X in değeri pozitif olunca S6N(X)s 1 olur,
X in değeri sıfır olunca S6N(X)= 0 olur.
DlılHı fcmhlıri i 1
90 IF 88N(A>”1 THCN 90T0 100 ‘ft nın d»4»ri pozitifse 100 • dallanılır, ı
tfrntfc Problm 2.8
Bir veznedar kamına girtn çıkan parayı bilgisayarla takip etack isteaektıdir. ödediği parayı negatif, kasaya gireni ise pozitif olarak girecektir. Kasadaki nakit para bir aiİyonun altına düşünce ‘KASAYA 25 MİLYON NAKİT BEREK1Y0R’, yüz ailyonun üzerine akınca ’50 BİLYONU ANA KASAYA TESLİM ET* aesajlarını al »ak istiyor. Ayrıca çerçevenin sol üst kösesinde ‘Nakit Toplası ■ xxx,xxx,xxxTL* görüntüsünün her isleaden sonra bulunaasını isteaektedir. Kasaya sıfır girdiği zaaan isleain devaa edip etaeyeceğini sorduktan sonra verilecek cevaba göre duran bir prograa yazınız. P-2.İ deki CERCEVE.BAS prograaı kullanılarak girdi ve çıktılar çerçeve içerisine yerleştirilecektir.
Cözüa Tekniği ı
İlk açılışta kasada bulunan nakit girilecektir. Daha sonra aüfteri islealeri girilecektir. Ana kasaya 50 Nfailyon) teslia edilince, toplat nakitten çıkartılacak, 25 N girince ilave edilecektir. Hesajlar aynı satırlarda görüntülenecekse önce o satırların teaizlenaesi gerekecektir.
CERCEVE.BAS prograeına su satırların ilave edilaesi gerekecektir.
183 COKttON S,KtN,n 185 CHAIN *A:VEZNE.BAS*,,60 Ayrıca kenar çizgilerinde kullanılan *1* ve işaretleri yerine CHRK219) yazdırılabilir. CHRI fonksiyonuna bakınız.
Prograa ve Çıktısı :
10 REH Bu prograa kasaya giren çıkan parayı takip eder
20 REN Prograaın isai VEZNE
30 DEF DBL P,T,A
40 CONHON S,K,N,R
50 CHAIN ‘A:ÇERÇEVE.BAS’,20
60 SI*CINT(S+N/2) ıK0«CINT<K+H/10)
70 LOCATE S+l.K+l :PRINT ‘Nakit Toplaaı*’) :PRINT USIN6 ‘(«<l«M*f,TL’;TN sLOCATE SI,K0 80 INPUT ‘Parasal isleai girin ı”;PI 90 60SUB 300
100 ON S6N(PI)+2 BOTO 110,150,110 110 TN=TN+PI
120 IF TN > 1.0E+8 THEN
LOCATE SI-1,K0
ıPRINT *50 Bilyonu ana kasaya teslia et*
sTN*TN-50*1.0E+6
160SUB 350 :S0T0 70
– İM .
130 IF TN < t.OE+6 THEN
LOCATE BH,KO
!PRINT ‘Kasaya 25 ailyon nakit gerekiyor’
«TN«TN+25»1.0E+6 140 60SUB 330 :60T0 70 150 60SUB 300
160 LOCATE SI-1,K0 t PRINT ‘Nakit Toplaaı =’) ; PRINT USING ‘iH«t»«ti,TL’;TN 170 LOCATE SI,K0 :INPUT ‘Oevaa edecek tisiniz (E/H) ‘;EH«
180 60SUB 300 190 60SUB 350
200 IF EHI*’H* THEN STOP 210 60T0 70
300 REH SI-1 inci satın teaizleyen alt prograt 310 LOCATE SI-l.KO :PRINT *
320 RETURN
350 REH SI ıncı satırı teaizleyen alt prograa 360 LOCATE Sl,KO SPRINT ‘
370 RETURN RUN
Çerçeve başlangıç satın s? 6 Çerçeve başlangıç kolonu »? 15 Çerçevenin satır sayısı «? 13 Çerçevenin kolon sayısı *? 50
INakit Toplan *
1
I
I
I
I
1) I Parasal isleıi girin? I I 1 I I
2) 50 Bilyonu ana kasaya teslia et Parasal işleai girin?
3) Kasaya 25 ailyon nakit gerekiyor Parasal isini girin?
4) Nakit Toplaaı * m,HX,XIXTL
2.3.10.2 KATAR FONKSİYONLAR Karakter değişkenleri üzerindi i»İti yıpın fonksiyonlardır.
A8C4F Fonksiyonu
Aıac
Bir katarın veya karakter değişkeninin ilk karakterinin ASCII kodundaki karşılığını veril
Dizilie
değisken=A5C< X*)
M katar veya karakter değişkeni olabilir.
Açıklasalar
CHR* fonksiyonu ASC fonksiyonunun tersini yapar. Yani ASCII kodu verilen sayısal değerin karakter karşılığını verir.
Dizilie Orneâi
10 At**KASTAHONU*
20 KI»ASC(A$) ’K karakterinin ASCII karşılığını Kl taesayı değişkenine ıtır 30 PRINT KZ RUN 75
PRINT ASCCKASTANONU*) ‘Yukarıdakinin aynı isleei yapar.
75
CHR# Fonkssi yonu Aeac
ASCII kodu verilen sayısal değerin karakter karşılığını verir.
Dizilie
karakter deği çkeni =CHR* <I)
I, 0-255 arasındaki ASCII kodlarıdır.
Açıklasalar
Sadece bir karakter verir. Ekrana veya yazıcıya özel karakterler göndersek için kullanıl ASCII kodları EK-l de verileiştir.
Dizilie Örneği
PRINT CHRM751 K
SPECTRUN
Bu lehçede parantezsiz <CHR$ 1 > diziliainde kullanılır.
DATE* Doıylmi /Fonk»i yonu
ft«»ç
Fonksiyon özelliği, zatını değişken olarak tanıılatak için kullanılır. Deyi* olarak ise zatını belirlemek için kullanılır.
mxy\*
(Fonksiyon)
karakter değişkeni =*DATE$
(Deyie)
DATE$=X*
Açıklasalar
XI karakter değişkeni, ay gün yıl sırasında tarihi belirler, aa-gg-yyyy şeklinde verilir.
yerine “/* seebolü de kullanılabilir. Yıl, iki karakterle de verilebilir. 10 veya 8 karakterden oluşabilir. Fonksiyon olarak kullanıldığı zatan seebolü ile tanıtlanır.
Di;ilie Orneâi
10 DATE$=’3-17-87* ‘Deyit olarak kullanılmıştır.
20 PRINT DATE* ‘Fonksiyon olarak kullanıltıştır.
RUH
03-17-1987
Lehçeler
Ban lehçelerde işletie sisteai iskanları kullanılır.
INKEY# Fon ksiyonu
ûü£
Klavyeden yalnız bir karakter okueak için kullanılır.
Dizilie
karakter değişkenia2NKEY$
Açıklasalar
lşlee sırası INKEYi fonksiyonuna geldiği zaaan prograa bekleaez, klavye ara belleğinden bir karakter okur devaa eder. Bu fonksiyonu etkili kullanabilsek için bir döngü içinde kullantak gerekir. Dizilie örneğini inceleyiniz.
Dizil i a Örneği
100 PRINT ‘Evet için (E) veya hayır için (H) tuşuna basınız” S20 AfsINKEYt sIF A*=” THEN 60T0 120
Sıtır 120 dı, klavyeden herhangi bir iuıı baıılaıdıgı lürıcı somuz bir ddngti uygulan» Herhangi bir tu$a basılınca progrıt devaa »ita.
Lehçeler
C-M,t28
Bu lehçelerde aynı aaıç için BET veyı 8ETKEY dtyiai kullanılır.
I_EM Fonksiyonu
ûüt
Bir katar içerisindeki karakter sayısını verir.
Dizilie
sayısal değişken=LEN<X$)
X*, karakter değişkeni veya karakter ifadesidir.
Açıklasalar
X* katarı içindeki tûa karakterlerin (bosluk dahil) sayısını belirtilen sayısal değiskeı atar.
Dizilia Orneâi
10 At=’Bu bir Basic kitabıdır”
20 B=LEN(A$) î C=LEN < * ANKARA”)
30 PRINT B;C RUN 22 6
X NSTR Fonksiyonu Aeac
Bir katar içerisinde başka bir katarın aranmasına ve bulduğu ilk yerin belirlenaesir yarar.
Dizilie
deisken=INSTR<<n,> X*,Y*>
n
Araaaya kaçıncı karakterden başlanacağını belirten, 1-255 arasında bir değer veya sayı» ifadedir.
X*,Y*
Kİ içinde arata isleainin yapılacağı katardır, Y* ise aranacak katardır.
Acıklaaalar
İlk bulduğu yerin pozisyonunu değişkene atar. Şayet a- n > LEN(XI) b- XI katarının U bos c- Yİ bulunaaaaıs ise INSTR fonksiyonu sıfır verir. Yf bos ise n veya 1 verir.
Dullu örnyj
10 AI””6ABCBEFGHIJKL*
20 X«INSTR(2,AV0’>
30 PRINT X
m
8
lehçeler
C-128
IN8TR(H,YI <,n»
Dizilisinde kullanılır.
Örnek Problet» 2.9
P.2.4 de ekrandan bir «etin parçası giriitişti. Aynı prograta paragraftaki keli» sayısını bulan bir prograa parçası ilave ediniz. Keline aralarına birer bosluk verilecektir. Satırlara bosluk verilaeden başlanacaktır.
Cüzât Tekniâi
INSTR fonksiyonu döngü içinde kullanılarak kelite aralarındaki boşluklar aranır. Bulunan her bosluk kelite için kullanılan sayacı bir artırır. Satır baslarındaki ve kelite aralarındaki her fazla bosluk bir kelite sayılacağı için tetin parçası girilirken dikkat ediltelidir.
Prograt ve Çıktısı :
10 REN Bir okuta parçasını ekrandan giren ve yazıcıdan çıktı olarak veren bir 20 REH progratdır. Progratın isti KSAY.
30 0PTI0N BASE 1 40 DEFINT B,K,S,I,E 50 DİN OKU 101
60 INPUT ‘Satır Sayısını 6ir j’jSS 70 FÜR 1=1 T0 SS 80 LINE INPUT 0K*<I)
90 LPRINT OKtil)
100 NEXT I 110 B*0 îK=0 :EB=0 120 FOR 1*1 Tfl SS 130 A<=” *
140 B* INSTR(B+l,QK*<I),Af)
150 IF B=0 THEN EB=B sK*K+l sBOTO 170 160 K=K+1 sEB=B s60T0 140 170 NEXT I
180 PRINT ‘Kelite Sayısı »*}K
190 STOP
RUN
Sıtır Sıyııını Gir ı? S
Yiraind yüzyıldı topluıu »n tok ıtluivym teknolojik gelisae bilgiıayırlırd* olauıtur. ilk (tatnalır çak karaasık aakinalar olan bilgiıayırlar, gttnttaüzda yerini daha büyük kıpııitıli ve dıhı duıük «ıliyetli aikro bilgisayarlara bırıkaııtır.
Keliae Sayısı » 28
L.EFT# Fonksiyonu
Ataç
Bir karakter katarının içinden, soldan itibaren n karakterini alıp bir başka d»ji ataaak için kullanılır.
Dizilia
karakter de§iekeni*LEFT$<X$,n)
XI, karakter değişkeni veya karakter ifadesidir, n, 0 ile 255 arasında bir ta değeridir.
ftcıklaaalar
XI, katan içinden soldan itibaren n inci karaktere kadarki bolünü, belirtilen karı değişkenine atanır, n. karakter dahildir, n katarın boyundan uzunsa XI katarının karakter değişkenine atanır.
Dizilia Örneği
10 AI**KAHRANAN HARAS*
20 BI=LEFTI(fll,8) ‘Al değişkeni içinden soldan 8 karakteri 8I ye atamı
30 PRINT Bl
RUN
KAHRAMAN
ok
RIBHT* Fonksi yonu
Ataç
Bir karakter katarının içinden, sağdan itibaren n karakterini alıp başka bir dağiı ataaak için kullanılır.
Dizilia
karakter değiskeni=RIGHT$(X#,n>
Açıklasalar
XI katarı içinden sağdan itibaren n karakter, belirtilen karakter değişkenine atanı katırın boyundan uzunsa, XI in töaü karakter değişkenine atanır.
dil» Orntflı
10 At«*KAHRAHAN «MAS*
20 8WUBHT«(W,3)
30 PRINT Bl
RUN
HARAS
LPOS Fon ksiyonu
M
tır yazıcı kafasının pozisyonunu belirleaek için kullanılır.
»ilia
sayısal deği sker>=LPOS (n) anlaasız paraaetra olarak kullanılır. Herhangi bir değer verilir.
zilla Orneâi ı
200 IF LPQS<XI > 80 THEN LPRINT CHRK13I ‘Yazıcı kafa 80. kolonu geçtiyse sonraki
satıra gecilaesini sağlar.
ı
«•İlikle yazıcılarda satır kontrolü için kullanılır. hc»Ur
ıSICA,6NBASIC
Bu lehçelerde n bağlı duruadaki yazıcının nuaarasını belirtir.
MID# Fonkmi yonu
«t
r katarın istenen bir bölüşünü başka bir karakter değişkenine ataaaya yarar. silis
karakter deâi«kenia:MID$(X*yn< tra>>
karakter değişkeni veya karakter ifadesidir, n ve a, 1 ile 2SS arasında bir değer ■bilir.
:ıklaaalar
> katarı içinden n inci karakterden itibaren a karakteri, belirtilen karakter değişkenine ;anır. s*0 veya n, IEN<XI) dan büyükse karakter değişkenine ataaa olsaz (Kaynak-4).
zilia Orneâi
10 PNI = ’06TL675*
20 Al = HIDitPNi,5,3) ‘PNI içindeki katarın 5. karakterinden itibaren 3 karakter Al ya atanır. PNI de değişiklik olaaz.
30 RUN
£1K
ft»»c
Bir sayısal değirin ııkiıli (octıl) myı ıiıt«aindtki kargılığını verir. Sonuç kırıkt değişkeni tipinde verilir.
Dizilie
karakter değişkeni»QCT$<n) n önce taa sayı değere yuvarlatılır sonra sekizli sayı sisteaine çevrilir.
Dizilia Orneâi
PRINT 0CTH24) ‘Onluk sisteadeki 24 ûn sekizlik sistemdeki karşılığı 30 du
30
SPACE# Fonksi yonu
flaac
Belirtilen sayı kadar boşluktan oluşan bir katar aeydena getirir. Bir karakter değişkeni atanabilir.
Dizilia
karakter değişkeni~SPACE$(n)
n, 0 ile 255 arasında bir değer alabilir. Taa sayı değilse yuvarlatılarak taa siyi dönüştürülür.
Açıklaaalar
SPC fonksiyonuna benzer ancak SPC fonksiyonunda değişkene ataaa işleai yoktur.
Dizilia Orneâi
10 ADI=*AHMET’
20 S0$s”KALHAZ”
30 BI=SPACE$(3) ‘Bl karakter değişkeni içinde 3 bosluklu bir katar oluşur.
40 PRINT ADt+B*+S0$
RUN
AHHET KALMAZ
SPC Fonksi yonu
Aaac
PRINT,LPRINT ve PRİNTi deyimlerinde kullanılır. Belirtilen sayı kadar bosluk bırakılaası sağlar.
UU
SPC(n)
0 il» 259 «raunda bir değer alabilir. Taa sayı dığilıt yuvarlatılarak taa sayı ılır.
illa Orneâi 10 AM°*AHNET*
20 SOI-‘KALHAZ*
30 PRINT ADI;SPC(3);SOI ‘Ad ve soyadı arasına 3 boşluk kornasını sağlar.
RUN
AHNET KALHAZ
fonksiyonu n inci pozisyona atlanaasını sağlıyordu, SPACEt n boşluktan oluşan bir İşken tanıtlıyordu, SPC ise değişken aralarına n boşluk yerleştirilaesini
1 ataktadır.
STR* Fonksiyonu
E
nal bir değeri karakter katan olarak kullanabileeyi sağlar. VAL fonksiyonunun tersi idir.
İlla
karakter deği»keni-STR*(X) lyııal değtr veya değişken isti olabilir.
i İP Prne&i
10 A « 649 20 Kf ■ STRKA)
30 PRINT Kİ, LEN(KI)
RUN
649 4
ılarda * veya – için bir karakter boşluk bulunuyordu.
İME* Deyi mi /Fon k»i y on «_*.
I
inin tanıılanaası ve bir değişkene atanaası için kullanılır.
İli»
yia)
TIME*«X*
nksiyon)
karakter değişkeni=TIME* karakter değişkeni SS:dd:ss (saat,dakika,saniye) şeklinde 8 karakterden oluşur.
10 TIHEI*M0»25i03* 20 PRINT TİNE»
RUN
10(25:03
Duyla uUrık kullanılıııtır. Fonkılyon olarak kullanılıııtır.
Lehçeler
Bazı lehçelerde işletin sisttıi Sıkanları kullanılır.
VAI_ F on k s i yonu
Ataç
Bir karakter değişkenindeki sayısal değerleri ayırıp verir.
Dizilia
sayısal deği 5ken=VAL(X$>
Xt, karakter değişkeni veya katar olabilir. ftcıklatalar
XI, karakter değişkeni içindeki sayısal değerleri ayırır. Başlangıçtaki boşlukları dikkat* altaz. İlk sayısal oltayan değere kadarki sayıyı verir. XI ın ilk karakteri sayısal değilse sonuç 0 olur.
Dizil it Orneâi
PRINT VftU” -5AL*) ‘Boşlukları dikkate altaz.
Ataç
ASCII kodu verilen karakterin istendiği kadar tekrar ediltesini sağlar.
Dizilie
karakter değişkeni^STRING*(n,m) veya
karakter değişkeni»STRING$(n,X*)
n ve a, 0 ile 255 arasında bir tat sayı değer alabilir, t tekrarı istenen karakterin ASCII kodudur, n ise tekrar sayısıdır. XI, karakter değişkenidir, ilk karakteri, tekrarı istenin karakterdir.
Acıklatalar
Birinci dizilia, ASCII kodu t olan karakteri n kadar tekrar ederek bir katar oluşturur. Bir karakter değişkenine atanabilir. İkinci diziliade ise tekrar edilen karakter Xt in birinci karakteridir.
-5
PRINT VALCABC25″} 0
‘ilk karakter sayısal oltadığı için 0 verir.
STRING* Fonksiyonu