COLOR Deyimi

COLOR DeyimiİŞLEM FR0MLARI DİZAYNI VE İŞLEM PLANLAMASI HESAPLARI

Ekranda karakterlerin, fonun ve çerçevenin renklerini belirleaek için kullanılır. Yazı ve grafik ortalılarında iki değişik diziliai vardır. Yazı ortaaındakı özellikleri Ekran Deyini eri bölüşünde, grafik ortaaındakı özellikleri de bu bölüade anlatılaıştır.

Dizilia

COLOR <fon rengi><,<palet>>

fon rengi

Fan rengini belirleyen katsayıdır. 0-15 arasında değişen renkler olabilir.

palet

üç değişik renk gurubunu belirleyen katsayıdır. 0 veya 1 değerlerini alır.

Renk Kodu Palet 0 Palet 1

1 Yeşil Hor

2 Kırım Kıraızı+eflatun

3 Kahverengi Beyaz

Acıklaaalar

Grafik ortaaında orta duyarlıkta kullanılır. Secilen paletteki renklerin kodları yukarıda verilaistir. Bu renk kodları PSET, PRESET, LINE, CIRCIE, PAINf ve DRAM deyialerinde kullanılır. Örneğin ; COLOR deyiainde 0 nuaaralı palet secilais, C1RCLE deyisinde 3 renk kodu kullanılaış ise cizilecek daire kahverengi olacaktır.

Dizilia Örneği

10 SCREEN 1 ‘Grafik ortaaını orta duyarlığa geçirir.

20 COLOR 2,1

COLOR deyiai ile fon yeşil olacak ve 1 nuaaralı palet renkleri islerlik kazanacaktır. Sonra gelen grafik deyişleri bu guruptan renkler seçebilir.

Lehçeler

A-BASIC

COLOR <fon rengi><,<palet><,<ortaa»>

Dıziîiainde kullanılır. <palet> 0-9 arasında değişir. <ortaa> 0 veya 1 dir. 1 grafik ortaaını, 0 yazı ortaaını tamalar. Bu dizilia yazı ortaaında da kullanılır.

CPC -464,6128

Bu lehçelerde BORDER deyial ekran çerçeve ringini tanulır. PEK dıyiai rindini tamalar. PAPER dıyiai karakterlerin gerUindekı {an ringini tu değişik rak kodu varilıbilir. BORDER, PEN v» PAPER dayialarirıdan tanrı gali bu lehçelerin kıbul ittiği önıeçenek renklerini verir. Hınklar için Kaynı faikımı. Bunların dışındaki renkleri kullanaak ıcin İNK deyim kullanılır.

INK paper/pen-no , renk kodu Dizilini ile kullanılarak onseçenekîer değiştirilebilir. <p«pı değiştirilecek fan veya karakter renginin standart nuıarasıdır. <rınk standart koda verilecek yeni rengin kodudur, s

50 PAPER 1 (Fon rengi parlak sandır)

60 INK 1,0 (Fon rengini siyah yapar)
I_I «NİEE Dey imi

A»aç,

Verilen koordinatlar arasında çizgi veya kutu cizıek için kullanılır. Yalm ortaaında kullanılır.

Dizilia

LINE < <X1,Y1) >-< <X2-Y2> > <,<renk koduX,B<F LINE <STEP(XI»Yİ)-<STEP <X2,Y2)> <renk kodu>

<Xl,Yl>-<X2fY2>

Çizginin başlangıç ve bitiş noktalarını belirlerler. 2.3.12 deki adresin* ylln bakını?. STEP (X,Y) ile göreli adreslese yapılır.

*

renk kodu

COLOR deyini ile secilen paletin içerisindeki renklerin rBnk kodudur. (0 !>) değişir. (Bak COLOR deyisi.

B<F>

<B) seçeneği “Bon-kutu” nun kısaltılaısıdır. Köseleri yukarıdaki koard»n«t dikdörtgen çizdiraeyi sağlar. <BF> seçeneği “Filed Bdk-DoIu kutu” nun kısaltıl Karakterlerin renginde, içi dolu dikdörtgen cizdiraeyi sağlar.

Acıklaaalar

Noktalardan biri verilaediği zaaan en son verilen noktanın koordinatları kul Koordinatlara belirtilen sınırlar dışında değer verilirse o sınırların değeri kull

Malc

6NBASIC

LINE <yukarıdaki diziliain aynısı) <,çizgi fitili>

<,çizgi sitili) seçeneği çizginin seklini belirler. Kesik çizgi gibi defti »akilleri denenebilir.

Bu lahçıdı bılirtilın noktalar arasına düz çizgi OMU dıyiai ili çizdirilir. (Bkz.DRAN dıyiai)

BOK <r*nk kodu),XItYl,<)X2fY2><,acı><tdalu kutu)

Oiziüai ili ekranda kutu cizdirilebilir. <renk kodu) 0-3 «raunda dıjır alabilir. O fan rengini, i çizgi rengini, 2 grafik ortaaında birinci tok renkliliği, 3 grafik ortaaında ikinci cok renklilik özelliklerini belirtir. XI, Yİ kutunun üst sol köşesini , X2, Y2 ise kutunun alt sağ köşesini belirler. <acı) kutunun belirtilen acı kadar saat yönünde dönaesini sağlar. <dolu kutu) kutunun içinin dolu (1) veya boş (0) DİMsını sağlar.

14,6128

Bu lehçelerde ekranda düz çizgi çizdiraek için DRAH deyini kullanılır. (Bkz. ORAN deyiai)

Probleaı2.12

Zatana göre, A,B ve C »addelerinin dağıiıaını gösteren bir histograa prograaı yazınız. Zaaan X ekseni «zerinde, aaddelerin dağıiıaı Y ekseni özerinde olacaktır. A, B ve C aaddelerinin dağıiıaı MTA deyialeri ile verilecektir. Zaıan ekseni, günlere, aylara veya yıllara göre olabilecek şekilde genel aaaclı olacaktır.

Tekniği :

önce histograaın çerçevesi belirlenir. Çerçevenin köşeleri, grafik ekranındaki koordinatlar cinsinden tespit edilir. Ekranın piksel özelliğine göre istenilen büyüklükte seçilebilir.
Şekildeki gibi, adresleaeyi sol alt köşeye göre göreli olarak yapabiliriz. Sol alt köseye 1X0,YO) denirse, diğer köseleri bu noktaya göre sıra ile (XÛ,YÛ-YU), (X0+XU,Y0-YU) ve (X0+XU,Y0) olacaktır. XU, x ekseninin, YU ise y ekseninin piksel uzunluğudur.

Zaaan ekiBni (X), zaaan dilişlerine (gün, ay, yıl) bölünecektir. Probleain özelliğine göre birisi^MciHr. Zaaan diîiai sayısı (ZD) prograaın başında girilir. i ekseninin piksel uzunluğu (XU) zaaan diliai sayısına bölünür ve her zaaan dilişinin piksel uzunluğu bulunur.

3. Hır zaaan diliıi Sivrindi A, I vı C aıddalırlnin kutuları, gtirûntülınıcıktir, Zıaan dilini pikııl uzunluğu, 3 • bBUnınfc bir kutunun II ikimi üıırindıki ganislıği piksel olırık bulunur. (BK*1U/Z0t

4. HUtogran kutularının »ol üst kttıalerinin koordinatları sırı ili (X0+X-BK,YO-V), (X0+X-(BK/3)*2f YO-V) vı (X0«X BK/5, YO YI dır, Bu özelliklerden sağ alt köseleri de belirlenir.

5. DATA deyialeri ile verilen dağılın değerleri (A,8,0, Y değerine dönüştürülerek YO ya göre pozisyonları hesaplanır. Her durunda YO değerinden Y nin çıkartılacağına dikkat ediniz. Dtinüttirne için şu formüller kullanılabilir : (YS gerçek y nin en büyük değeridir)

YU XU

Ya——*A X=—— *1

YS ZD

6. X ve Y koordinatları üzerinde cetveller gösterilaelidir. Y ekseni cetvel aralık sayısına (YC), X eksenini de zaaan dilini sayısına bölerek bu islen yapılabilir.

YU XU

YJ=——H 11——-H

YC ZD Cetvellerin aaksiıun değerleri üzerine yazdırılır.

Frograa ve Çıktısı

10 REtt Aylara göre satış dağılım HIST06RAH programdır.

20 REH Prograaın isai HISTOSRH 30 OPTIOH BASE 1 40 DEFINT A-Z

50 60SUB 1000 ‘Eksenlerle ilgili verilerin girilişi

40 SCREEN 2 ‘Grafik ortaaında yüksek hassasiyete geçer

70 60SUB 2000 ‘Eksenlerin çizdiril»esi

SO 60SUB 3000 ‘Koordinat cetvellerinin cizdirilaesi

200 REH Histograaın cizdirilaesi

210 FOR 1*1 TO ZD

220 READ A,B,C ‘A,B ve C nin okunaası

230 Ys(YU/YS)*A 240 XS(XU/ZD)*I 245 BfC=Xü/ZD

250 LINE (X0+X-BK,Y0-YMX0+X-(BK/3)*2,Y0),1,BF 260 Y=(YU/YSI*B

270 LINE (XO+X-<BK/3)*2,YO-Y)-(XO+X-BK/3,YQ),1,B 200 Y=<YU/YS)*C

290 LINE U0+X-BK/3,YQ-YHX0+X,YÖ)fl,B 300 NEXT I 310 LÜGATE 22,1 400 DATA 2553,1344,0

420 DATA 4123,962,0 430 DATA 633,3245,0 440 DATA 363,4789,0 430 DATA 1256,4531,1000 460 DATA 956,3333,2000 470 DATA 2566,4125,3000 480 DATA 3254,2565,0 490 DATA 128,569,0

500 DATA 1256,3564,0 510 DATA 569,2698,0 520 STOP

1000 REfî Edenlerle ilgili verilerin girilişi «««««**«« 1005 CtS

1010 IHPUT “Sol alt kösenin Xö değerini gir (pineli =*jXQ 1020 INPUT ‘Sol alt kösenin YO değerini gir (pixei) =*}YQ 1030 INPUT ‘Yatay eksenin uzunluğunu gir (pixel) S*;XU 1040 INPUT ‘Dikey eksenin uzunluğunu gir tpixel) =**,YU 1050 INPUT “Zaaan dilini sayısını gir (gün için 30, ay için 12, yıl için istenilen yıl sayısı girilebilir) =*;ZD 1060 INPUT “En yüksek gerçek Y değerini gir =’}YS 1080 INPUT *Y ekseni cetvel aralık sayısı a*)YC 1090 CLS 1100 RETURN

2000 REH Eksenlerin çizdirileesi alt progra»ı»*M»t**m*H 2010 LINE fX0,¥ö-¥U)-(X0+XU,YO), i ,S 2020 RETURN

3000 REN Koordinat cetvellerinin işlenmesi A.P, «mhhmh 3010 REH X ekseni cetveli 3020 F0R 1=1 T0 ZD 3030 XI>UU/ZD)»I

3040 LINE (X0+XI,Y0)-(X0tXI,Y0+5),l 3050 NEXT I 3060 L0CATE 20,65 3070 PRINT *X **jZD

3080 L0CATE 21,16 iPRINT’ Zatan*

3100 REH Y ekseni cetveli

3110 FOR 3*1 TO YC

3120 Y3=<YU/YC)*J

3130 LINE (XO-5,YO-YJ)-(X0,YO-¥J)

3170 NEXT i

3180 LOCATE 12,2 iPRINT ‘Dağılın1 3190 LOCATE 4,2 iPRINT ‘Y=’?YS 3200 RETURN m

Sol «İt killimin 110 değerini «ir (ptıall »7 ISO Bol alt killinin YO dairini gir <pl*ıH *•? 230 Y»t»y eksenin uzunluğunu gir (pi»eU «7 480 Dikay akaanin uzunluğunu gir (plxıl) “7 200

Zaaan di 11 «i »aynını gir <gân İçin 50,ay için 12, yıl için istenilen yıl ııyııı girilebilir} >? 12

En yüksek gerçek Y değerini gir ■? 5000

Y ekseni cetvel aralık sayısı ■? 8
ZAMAN Ok

I CZRCLE Daıyi mi
ftıec

Merkezi ve yarıçapı verilen bir daireyi veya elipsi ekrana cizdirsek için kullanılır. Diziliş

CIRCLE <X,Y) ,r <,renk kodu <,başlangıç acısı, bitiş acısı <,elips oranı»)

<XfY> fr

(X,Y) aerkezin koordinatlarıdır, r, elipsin X ekseni üzerindeki yarıçapıdır.

renk kodu

COLOR deyisi ile seçilen paletteki renk kodudur. 0-3 arasında değişir.

başlangıç acısı«bitiş acısı Elipsin başlayacağı ve bitirileceği acıdır. Radyan cinsinden verilir. -2PI il» +2P! arasında değilir. PI*3.1416 dır.

W —-

I »kaani yarıçapının, Y akimi yarıçapına oranıdır. Elipain »aklini belirtir. Dal ra için alipı oranı lahçalara vı 6(jRüNTö ORANI’na görı diği|lr,(Bkı. 2.3.121

Acıklaaalar

Acılar radyana ctvrilaık için IPI/İSO) ile çarpılır. Başlangıç v» bitıı acılarının ününe -iiarıti konuru cıabtr uçlan aırkezı birleştirilir. Sakildi gösterildiği gibidir t
PI

-3 —
20 SCREEN 2

30 C1RCLE (200,300),100,,PI/2,PI RUM
LiMer

CPC-464,6128

Bu lehçelerde ekranda daire cizdiraek, HOVE ve DRAM deyiaileri birlikte kullanılarak aşağıdaki progra» parçası ile gerçekleştirilir ı 10 0E6 : FOR A»1 TO 360 20 HOVE 300, 150

30 SRAK 300+100*CDS(A),İ50+100»S1NIA)

40 NEJfî A RUN

C-128

CIRCLE <rekn belirteci>,X,Y,l(r<,YrX,sa><,ea><,acıX,inc>

Omliai kullanılır. <renk belirteci) 0-3 arasıda değer alabilir. 0 fon rengini, 1 çizgi rengini, 2 grafik ortaaında birinci cok renkliliği, 3 grafik ortasında ikinci cok renklilik özelliklerini belirtir. X ve Y dairenin aerkez koordinatlarıdır. Xr ve Yr, dairenin X ve Y eksenindeki yarıçaplarıdır. Daire için Xr*Yr dir. <sa> çizdirilecek ceaberin başlangıç acısıdır. <ea> ceıberin bitiş acısıdır. <acı> seklin töaö ile belirtilen acı kadar saat yönünde döndürûlaesini sağlar. <inc> dilişler arasındaki acıyı belirtir. önseceneği 2 derecedir. <inc> seçeneği daire veya elipsten başka kapalı şekiller cizdiraek için de kullanılabilir. IBkz. Kaynak-5)

3PECTRUH

CIRCLE x,y,r Dizilisi ile kullanılır.

ftlftİ

Ekranda standart işkillerin dıttndıki tıkillıri tizdlrsık için kullanılır.

Dizili»

DRAW katar

katar

Katar içerisinde Basic in DRAM deyisi için sağladığı tek harfli koşutlar vardır tırnak arasında verilen bir dizi koşut belirli bir şekli tanışlar.

Aşağıda ORAK deyisinde kullanılan tek harfli koşutlar acıklansıstır. Koşutların harık başlangıç noktası daisa en son verilen noktadır.
ti n Yukarı hareket ( t )
D n Aşağı hareket W >
L n Sola hareket <*-)
R n Sağa hareket <—)
E n Köşegen üzerinde sağa yukarı hareket
F n ■ e sağa aşağı hareket
6 n • « sola aşağı hareket İS)
H n s * sola yukarı hareket ^ )
B Nokta veya çizgi cizseden hareket
N Hareket et, iş bitince başlangıca geri dön

n hareket edilecek uzaklığı verseye yarar, (n * ölçek faktörü) hareket edilecek > uzaklıktır. Tanısı verilen yönde istenilen uzaklık kadar hareket eder. ölçek fi acıklasalarda anlatılacaktır.

H »,y

Koşutu doğrudan (x,y) kordinatlan verilen noktaya hareket etseyi sağlar. x ve y örn + veya – işaretleri göreli adresleseyi belirtir. H -x,+y gibi.

Açıklasalar

Ekranların yatay ve dikey piksellerinin sayılan farklıdır. Örneğin (320 x 200) ı olan bir ekranda 6SRÛNT0 ORANI 1/1 olsaydı

8 yatay noktanın uzunluğu s 5 dikey noktanın uzunluğu

olacaktı. Ortas i (orta duyarlık) ta görüntü oranı 4/3 tür. Bu durusda

8 yatay noktanın uzunluğu s 20/3 noktanın uzunluğu veya 24 yatay noktanınki 24 dikey noktanınkine eşit olacaktır. Çizdirilecek şekil oranlar dikkate alınarak ölceklendirilselidir. (Kaynak-4,13,15,14)

DRAM *U20 R24 D20 L24‘

Dizilisi bir kareyi tanıslasaktadır.

I«r TOiüUif
A m
ı dığıri varaıyı yırır. a (0-31 ırasında değilir. 0 ııfır d»r»ı»yi, I, 90 dereciyi, 2, l dinciyi, 3 iıt 270 dırvcıyi belirtir. Şekilleri 3 dıjlıik ıcıdı çeviraek için lanılır. Kendinden lonra gelen tüı koıutları etkiler.

C m

ık kodu veraeye yarar, e COLOR deyisinde secilen paletteki renk kodlarından biridir. Orta irlıkta (0-3), yüksek duyarlıkta (0-1) arasında değişir. (Kaynak-4,13,14,15)

S m

!EK FAKTÖRÜ’nü versek için kullanılır. Şekilleri belirli oranda büyütaek veya küçültaek n kullanılır, e (1-255) arasında değişir.

a/4 = ÖLÇEK FAKTÖRÜ

n üncıliği 4 dür, yani ölçek faktörü ®1 dir. a*l verilirse belirtilen sekil dörtte bir inindi küçültülür.

X katar içinde katar 1 katar ile tanıaı verilen seklin değişken isai bu konut ile çağrılır. Belirli şekilleri •dan tanıalayıp istenildiği zaaan cağıreaya yarar, örneğin sekli tanıalanan bir araba ’üntüsü hareket ettirilirken sık sık çağrılabilir. Dizilia örneğine bakınız.

” – değişken ismi;” veya “değişken ismi;”

M koautalarında taa sayı veya katar yerine değişken isai kullanılacağı zaaan bu dizilia lanılır.

DRAU *XA«j*

DRAM *S=ÜLCEKi”

ORAN “V»A|R*Ar

ı şekilde N koautunda da HSX1;, =X2; veya H+^lj, -=X2; dizilişleri kulanılabilir.

ilia flrneâi

10 SCREEN 2 :CLS

20 A$S*U10 R15 E10 R30 F10 R15 D10 L5 65 L10 H5 L20 B5 L10 H5 L15″

30 F0R 1*1 T0 200 STEP 5

40 DRAH *84* ‘ölçek faktörünü 1 yapar.

50 DRAM *C1;XA$;* ‘Arabayı görüntüler 60 DRAM *00}XAfj” ‘Arabayı siler 70 DRAM *8H+=l5,+0’ ‘Arabanın pozisyonunu kaydırır 80 NEXT 1
prograa hareket eden bir arabanın prograaıdır. fil katarında başka tamalar vererek i$ik cisialeri hareket ettiraek aüakündür.

CPC-464,6128

DRAN X,Y <,(standart renk kuduK,(lnk «od»» „

Dizilisi kullanılır. Ekrandı in »on gelinin noktadan <11,Y) koordinatlarına doğru bir çizgi çizilir.

DRANR X göeli, Y güreli <,<*tındart renk koduX,<ink sode))

Dizilisi ile en son gelinen noktadan göreli adresleae ile yeni noktaya doğru çizgi çizdirilir. <standart renk kodu) 0-15 arasında değişir.

C-128

DRAN <renk belirteci),XI,Yİ <TÖ X2,Y2) …

Dizilisi kullanılır. <renk belirteci) 0-3 arasında değişir. 0 fon rengini, 1 çizgi rengini, 2 grafik ortasında birinci çok renkliliği, 3 grafik ortasında ikinci çok renkliliği belirtir. XI, Yİ başlangıç noktasını, X2,Y2 bitiş noktasını belirtir. İkinci nokta tanıalansazsa XI,Yi e bir nokta koyar.

SPECTRUH

DRAN X göreli, Y göreli, a Dizilisinde kullanılır. DRAN deyisinden önce verilen PLOT deyisi ile belirtilen koordinatlardan cizseye baslar, a seçeneği çesber cizseyi sağlar. Radyan cinsinden açı verilerek ceaber çizdirilebilir.

HSX

C s koşutunda s, 0-15 arasındaki renk nusaralarını belirler.

ATARI-S00XL

DRANÎD x,y

Dizilisi kullanılır. Ekranda en son gelinen noktadan (x,y) kordinatlarına doğru bir çizgi çizilir. <P0S1TIQN X,Y> dizilisi ekranın belirtilen noktasına gidilsesini sağlar.

Örnek Probless 2.13

Ekranda bir ucak görüntüsü veren ve pervanesi dönerken gittikçe yaklaştığı izlenişini veren bir progras yazınız. Uçağın karsıdan görünüşü çizilecektir.

CUzüs Tekniği :

1. Uçağın görüntüsü bir dizi LINE deyisi ile elde edilir. Görüntü çizgilerden seydana gelecektir. Ayrı bir alt prograsdan elde edilebilir.

2. Pervanenin görüntüsü DRAN deyisi ile bir katarda belirlenir.

3. Uçağın serkezi belirlenir ve belirli aralıklarla serkez hareket ettirilir.

4. Uçağın yaklaştıkça büyüsesini sağlayabilsek için

LINE STEP(-X,-Y) – STEP(+X,-Y), 1 dizilisinde X ve Y değerleri belirli oranda büyütülür. Uçağın serkezine göre, göreli adresleae yapılır.

5. Pervanenin yaklaştıkça büyüsesi DRAN deyisi koşutlarından Ss koşutu ile yapılır. Pervane ve ocağın büyüse oranlarının birbirine uyuslu olsası gerekir. Aynı katsayı kullanılabilir.

h. Pervanenin dönsesi iki şekilde sağlanabilir.

•> Pervanı görüntülünün, DRAN dıyiai kaautlarından A n il» sUrıkll «çını ırtınlırık dönaııi sağlanabilir* b. DRAN dıyiıindı pırvını için 4 ayrı acıda 4 görüntü tanıılıyın kıtır dizili kullanılır. Hır döngüdı birisi çizilir. Eskisi CO koıutu ila silinir,

•ograı vı Çıktısı ı

10 REH Prograaın isai UÇAK 20 DIH PEf(5)

30 DEFINT R,KI2IJ,X,¥

40 8CREEN 2 SO CLS

60 REH Pervanenin görüntü tanıaı 70 PE»ÜI « *NU15 «D 15*

80 PE$(2) = “NH13 NF13″

90 PEK3) = *10.24 NR24*

100 PEN4I » *N6İ3 *13*

110 HX»400 iHY*l00

120 REH Uçağın aerkelinin hareket ettirilaesi 130 FOR H*i TO 20 STEP 0.5 140 :HY=HY+N

150 DRAM *BH =HX;,*«¥;“

160 REH Uçağın cizdirilaesi ve bûyûaesi

170 SOR »1 sSOSUB 1000

180 PSET (HX,HY),0

190 FOR I«1 TO 5

200 FOR J«1 TO 4

210 DRAN *CljS«H;XPEt(3)|*

220 DRAN ’CO;XPE$(J);”

230 NEXT i 240 NEXT 1

250 6QRS0 ıSOSUB 1000 260 NEXT H

1000 REH Ucak görüntüsünün alt prograaı

1010 Rl=t*H :R2=2*H sR3»3*H sR4M*H :R6=6*H :R12=Î2*« :Rl8=18*H

1020 XaHX-R3 sY=HY-Rl

1030 LINE (X,Y)-STEP(-R12,+R2),S0R,B

1040 LINE (X,Y)-STEP<+R3,-R4),60R

1050 LINE -STEP(+R3,+R4),60R

1060 LINE -STEP(+R12,*R2>,60R,B

1070 LINE STEP(-R18,+0I-STEP<+R2,+R3),60R

1080 LINE -STEP(tR2,+0),B0R

1090 LINE -STEP<+R2,-R3),60R

1100 LINE STEP{-R3,-R6)-STEP(-R4,+0),SDR

1110 LINE STEP(+R4,-R3)-STEP<+0,+R3),60R

1120 LINE -STEP(+R4,+0),BOR

1130 LINE <HX-R1,HY-R3)-STEP<+R2,+R1),60R,BF

1140 RETURN

RUN

– 3ö« –

Ekranda tekillerin içini istenilen renk ile doldur«ak için kullanılır.

Dizili»

PAINT <X,Y>< »<renk koduX,dıs hat renk kodu»

(XfY>

Boyanacak seklin içinde kalan herhangi bir noktanın koordinatlarıdır. Süreli adresleae d» yapılabilir.

renk kodu

Seklin içinin hangi renk ile boyanacağını belirtir. 0-3 arasında bir değerdir. COLOR deyiai ile secilen paletteki linklerden biridir. Yüksek duyarlıkta 0-1 arasında değişir.

dhat renk kodu Seklin dış kenarlarının rengidir.

Dizilia Prneai 5 8CREEN 2

10 LINE U00,l0OM200,300),l,8 20 PAINT (150,2001,1,1 Bu progra» ekrandaki kutunun içini dolduracaktır.

Lehçeler

C-128

PAINT <renk belirteci>,X,Y,<,ıode>

<renk belirteci) tanın CIRCLE deyisinde bu lehçe için anlatılan tamam aynıdır. K,\ ici boyanacak şeklin içinde kalan bir noktanın koordinatıdır.

CPC-6128

Bu lehçede bu işle» HOVE ve FILL deyi»leri ile yaptırırlır. <H0VE X,Y> deyiai ili şeklin içinde bir noktaya hareket edilir, daha sonra FILL (standart renk kodu) deyiai ile ici doldurulur.

Partilere gttra oy dağUıaım dairesel histograa üıarinda gösteren grıfik prograaı ymnu, A,B,C,D va € partilerinin oy toplaalın akrandın girilecektir.

Cö*4a Tekniği ı
Problaain algoritaaıı aşağıda verilaistir.

1. Pırtılarin aldığı oy toplaaı hesaplanır ve oy yüzdeler! bulunur.

2. 360 daraca özerinden her partiye rastlayan acılar hesaplanır ve radyana çevrilir.

3. A partisinin dairesel histograaı çizdirilir. İci doldurulur.

4. B partisinin dairesel histograaı çizdirilir, ancak dairenin aerkezi kaydırılır. Bu oy yüzdelerinin daha iyi görüntülenaesini sağlar.

3. Aynı şekilde C,D ve E parti1erininki de çizdirilir. Alanların biri dolu biri bos olacak şekilde tama verilir. İstenirse renkli tama verilir.

6. Ekran üzerinde rakaasal yüzdeler gibi ayrıntılar gösterilebilir.

Prograa ve Çıktısı :

10 REH Dairesel histograa prograaıdır 20 REH Prograaın isai PASTA 30 DEFINT X,Y 40 60SUB 1000

30 REH Başlangıç ve bitiş acılarına kadar hesaplar 60 T»A*B+C+D*E

70 AY»(A/T)*100 ıBY*(B/T)*100 sCY»(C/T)#100 80 DV*<D/T)*100 sEY»(E/T)*100 90 AA=360»AY/100 :BA*360»BY/100 sCA«360*CY/100 100 DAs360*Oy/100 ıEA»360»EY/100 110 RA=3.141593/180

120 AR=AA*RA :BR=BA*RA+AR sCR»CA«RA+BR 130 DR*DA*RA+CR ISO 60SUB 2000

160 REH Dilia isialerinin üzerine yazdırılaası histograaa göre değişerek yazılır

‘Oy yüzdelerine göre ‘LOCATE deyialerinin adresleri ‘değişecektir
‘Yüzdeler

‘Acılar

‘Radyana cevirae katsayısı ‘Acılar (Radyan)

‘Daire diiiaierinin cizdirilaesi
170 LOCATE 8 , 45 iPRINT USIN6 ‘AZIfjAY
180 LOCATE u , 32 sPRİNT USIN6 •BM’îBY
190 LOCATE 15 , 36 iPRINT USIN6 •CUt’jCY
200 LOCATE 15 , 30 SPRINT USIN8 ■Dîli’jDY
210 LOCATE 12 , 55 SPRINT USING •EZH’iEY

300 STOP

1010 REH Verilerin okutulaası

1005 INPUT ‘Dairenin aerkez koordinatlarını giriniz}*,Y a’jX,Y 1010 CLS

1020 LOCATE 2,5 sPRIHT ‘Oy Toplaaları’

1030 INPUT ‘A*’5A

1040 INPUT *B=’;B sINPUT ‘C=’jC 1050 INPUT *D=’}D sINPUT *E*”;E 1060 RETURN

2000 REH D»ır« dillilerinin ctıdlrllml

2003 DQ*7J/12 ‘«1 ip* ar «mm b*lir l»y»ıı kahftyj

2010 CIRCLE Ü,Y),130,1,-0.02,-AR,00

2020 CIRCLE (M0.Y+10) ,150,1,-RR,-BR,DO

2030 CIRCLE (X-IO,V+IO),150,1,~BR, CR,DO

2040 CIRCLE <X+10,Y+I0),l50,l,-CR,-DR,DQ

2050 CIRCLE (X+0,Y+0),150,i,-DR,-0.02,DQ

2040 REH Daire içlerinin doldurul«ast histograe çizildikten sonra uygun şekilde yapılacaktır 2070 PAINT (350,150) ,1,1 ‘PAINT deyini adresleri

2080 PAINT (420,155),1,1 ’oy yüzdelerine göre

2090 PAINT (450,200) ,1,1 ‘değişecektir

2120 RETURN RUN

Dairenin »erkez koordinatlarını giriniz;*,Y =? 400,150

Toplaıları

A*?9500000

B=75500000

C=?4500000

D»?3500000

E®?2500000
îöPİâiilari
A–? 95600
B=? 55030
C=? 45000
D–? 35000
S=? 25000

Break in 360

Ok

örnek ProbİMi 2. İS

y » ı“ b’ /K fonksiyonunun * -l lü *ı«lıqmtlti 0.01 artırılarak grafiğini çizen prograa yazınız. *
Cöıü# Tekniği :

1. Grafik çerçevesi ve ekten büyüklükleri P-2.12 deki teknik kullanılarak çizdirilir.

2. Her iki kordinat üzerinde 10, 100 veya 1000 e bölünaüs cetveller gösterilir. Veriler okutulurken X ekseni cetvel katsayısı (XC) ve Y ekseni cetvel katsaysı (YC) ekrandan girilir.

xu

X ekseni üzerindeki aralıklar (piksel) * ——

XC

YU

Y ekseni üzerindeki aralıklar (piksel) s ——

YC

Bu aralıklar, eksenler üzerinden gecen çizgilerin adıaları olacaktır. Bu adıllara göre çerçeve taranır.
(+0,-YU) <+XU,-YU)

ra X 1 -<

(X0,Y0> (tXU,+0)

XC*7

Koordinat cetvellerinin piksel pozisyonları
3. 6erçek X yani (6X) değeri 0.01 artırılarak gerçek Y (GY) değeri hesaplanır.

4. 6X ve 6Y değerleri X ve Y piksel değerlerine dönüştürülür. X0 ve YO ya göre pozisyonları hesaplanır :

XU YU XS,YS gerçek X ve

X 3 ——*GX Y = ——*6Y Y nin taksıaua

XS YS değerleridir.
5. Koordinatları ekran piksellerine göre belirlenen nokta yerine koydurulur.
6. Koordinat cetvelleri üzerine XS,YS değerleri yazdırılır. Sol alt köse Xs0 ve Y=0 noktasıdır.

örnek ProbİMi 2. İS

y » ı“ b’ /K fonksiyonunun * -l lü *ı«lıqmtlti 0.01 artırılarak grafiğini çizen prograa yazınız. *
Cöıü# Tekniği :

1. Grafik çerçevesi ve ekten büyüklükleri P-2.12 deki teknik kullanılarak çizdirilir.

2. Her iki kordinat üzerinde 10, 100 veya 1000 e bölünaüs cetveller gösterilir. Veriler okutulurken X ekseni cetvel katsayısı (XC) ve Y ekseni cetvel katsaysı (YC) ekrandan girilir.

xu

X ekseni üzerindeki aralıklar (piksel) * ——

XC

YU

Y ekseni üzerindeki aralıklar (piksel) s ——

YC

Bu aralıklar, eksenler üzerinden gecen çizgilerin adıaları olacaktır. Bu adıllara göre çerçeve taranır.
(+0,-YU) <+XU,-YU)

ra X 1 -<

(X0,Y0> (tXU,+0)

XC*7

Koordinat cetvellerinin piksel pozisyonları
3. 6erçek X yani (6X) değeri 0.01 artırılarak gerçek Y (GY) değeri hesaplanır.

4. 6X ve 6Y değerleri X ve Y piksel değerlerine dönüştürülür. X0 ve YO ya göre pozisyonları hesaplanır :

XU YU XS,YS gerçek X ve

X 3 ——*GX Y = ——*6Y Y nin taksıaua

XS YS değerleridir.
5. Koordinatları ekran piksellerine göre belirlenen nokta yerine koydurulur.
6. Koordinat cetvelleri üzerine XS,YS değerleri yazdırılır. Sol alt köse Xs0 ve Y=0 noktasıdır.

Progrı* vı Çıktın ı

10 REM Grafik progrıııdır. İmi SRAF 20 ÖPTI0N BASE 1 30 DEF!(ÎT X,V,J,I

40 60SUB 500 ‘Fonksiyon katsayılarının girilişi

50 60SUB 1000 ‘Eksenlerle ilgili verilerin girilişi A.P.

40 SCREEN 2

70 60SUB 2000 ‘Eksenlerin ve koordinat cetvellerinin cizdirilaesi A.P. 100 REH Grafiğin cizdirilaesi

110 DEF FN8Y=A« tBXAB) »EIIP (C/6X)

120 FOR 6XS0.5 TO XS STEP 0.03

130 X=<XU/XS!*6X ‘X in piıtel değeri

140 ¥=(YU/YSJ»FHSY 1 nin pixel değeri

150 PSET IX0+X,YÖ-Y>,1

160 NEXT 6X

170 STOP

400 REH ALT PROBRAHLAR tHiHHMHHİtHHHHHHHHHHKHHIHH

500 REH Fonksiyon katsayılarının girilişi A.P. hihhihhhhhhh» 510 INPUT *a,b,c katsayılarını sıra ile giriniz S*;A,B,C 520 RETURN

1000 REH Eksenlerle ilgili verilerin girilişi A.P. hhhhhhhihm

1010 INPUT’Sol alt kösenin X0 (pinel) değerini gir **}X0

1020 INPUT ‘Sol alt kösenin YO (pixel> değerini gir *’)YQ

1030 INPUT ‘Yatay eksenin uzunluğunu gir (pixel) =“;XU

1040 INPUT ‘Dikey eksenin uzunluğunu gir (pixel) a’jYU

1050 INPUT *En yüksek gerçek X değerini gir **}XS

1060 INPUT ‘En yüksek gerçek Y değerini gir s’jYS

1070 INPUT ‘X ekseni üzerindeki cetvel aralık sayısı»“jXC

1080 INPUT ‘Y ekseni üzerindeki cBtvel aralık sayısı-*;YC

1090 CLS

1100 RETURN

2000 REH Eksenlerin cizdirilaesi A.P. m#*###*»*###»»****#»*#***»*##

2020 REH Koordinat cetvellerinin taranıası 2030 XASXU/XC 2040 YA*YU/YC

2050 FOR J*X0 T0 X0+XU STEP XA

2060 LINE <J,Y0-YU1-(J,YQ),1 ‘Dikey taraıa

2070 NEXT 3

20B0 FOR I=Y0 T0 Y0-YU STEP -YA

2090 LINE <X0,I)-(X0+XU,H ,1 ‘Yatay taraıa

2100 NEXT 1

2100 REH Koordinat cetvellerinin yazılan 2110 LOCATE 20,70 iPRINT *x**iXS 2120 LOCATE 2 , 5 sPRINT *y=*jYS 2130 LOCATE 20, 5 îPRINT *0,0’

2140 RETURN

RUH

»,b,c katsayılarını »ıra 11» «irini» -V 1,2,3

Sol alt kösenin *0 İpimi) diğerini gir -? 130

Sol alt kölenin YO (pixa!) dtğirini gir ■? 230 Yatay eksenin uzunluğunu gir (pinel) *? 450 Dikey eksenin uzunluğunu gir (pixvl) =? 200 En yüksek gerçek X değerini gir s? 10

En yüksek gerçek Y değerini gir *? 150

X ekseni üzerindeki cetvel aralık sayısı*? 8

Y ekseni üzerindeki cetvel aralık sayısı»? 8
9= İ50

/ …..

‘i 1
V

I
H7

anda koordinatları verilen alandaki noktaları (renkleri) bir dizi için* okusaya yarar, tık düzenleaede kullanılan 6ET deyisinden farklıdır.

ılı#

GET <X1»Yİ) – <X2,Y2),dizi ismi

<XlfYl)-(X2,Y2)

andan transfer edilecek alan dikdörtgen şeklindedir. Sol üst köşesi ve sağ alt köşesinin ırdinatlarıdır. Dikdörtgeni tanıtlar.

dizi ismi

itaların renklerinin saklanacağı dizinin isçidir, klanlar

inin tipi sayısaldır. Dizinin boyunun hesabı lehçelere göre değişmektedir. Dizinin boyu ^ veya keliae (nord) cinsinden hesaplanır. Progras başında dizi DİN deyisi ile ıisl ansalıdır.

deyisi genellikle ekrandaki şekilleri bir kütükte saklasak ve gerektiğinde PUT deyisi ! cağırsak için kullanılır. PUT deyisindeki diziliş örneklerini inceleyiniz.

PUT Deyimi

’ deyisi ile bir dizi içine transfer edilsiş bir şekli (renkleri) tekrar ekrana getirsek n kullanılır.

His

PUT (X,Y),dizi ismi <,eylem>

(X,Y)

anda görüntünün yer alacağı üst sol köşeyi tanışlar.

dizi ismi linin BET deyisi ile verilen issidir.

eylem

!T,PRESET,X0R,0R,AND kelise seçenekleri kullanılır. Açıklasalarda anlatılsıstır. kİ asalar

İT seçeneği kullanıldığı zasan BET deyisinin tersi gibi çalışır. Börüntüyü ekrana alır.

[SET seçeneği görüntünün negatifini ekrana alır.

) seçeneği ekrandaki görüntünün üzerine ikinci bir görüntü verildiği zasan ilanılır. Her iki görüntünün ortak noktaları görünür.

UR sec^nt’i)! ı-kranıla luıluııan ytiruoto tle tltimı «|i«rmtiuııun birlikti’ qunıımi”jiıu <uqlar,
KOR her iki görüntü d» butun hatları ite yürünür. Seki 1-9 da birinci v# ikinci görüntünün bu konutlarla alan uyguUnatı vırümtir ı
Dizili» Örnekleri 10 CLS

20 DİN KAREX(3000)

30 OPEN “VERİ.DAT” FOR OUTPUT AS II LEN=70 40 LINE Ü00,100)-(200,300),1,B 50 LINE U10,140)-(150,150),1,B 60 PAINT (120,145),1,1 70 BET (90,90)-(210,310),KAREI

80 PRINTtl, KAREÎ(I)

90 NEXT I 100 CLOSE
‘Sıralı erişiali kütük yaratır.

‘Birinci kutuyu çizer.

‘İkinci kutuyu çizer.

‘Kutunun içini kapatır.

‘Kordinatlar içindeki »ekli KAREÎ indisli ‘değişkenine atar.

‘Diziyi VERİ.DAT kütüğüne yazar.

‘Kütüğü kapatır.
Bu progra» ekrandaki iç içe iki kutunun görüntüsünü KAREZ(3000) indisli değişkenine atar. Daha sonra diziyi VERİ.DAT isinli veri kütüğüne yükler.

10 DİN KAREÎ(3000)

20 OPEN “VERİ.DAT” FOR INPüT AS tl LEN=70 ‘VERİ.DAT kütüğünü sıralı eri si#1 i olarak

‘açar.

30 FOR 1=0 TO 3000

40 INPUT#1,KAREÎ(I) ‘Sıra ile dizi eleaanlarmı okur.

50 HEXT I

60 PUT (250,50),KAREÎ ‘Sekli verilen koordinattan itibaren

çizer.

70 CLOSE ‘Kütüğü kapatır.

Bu progra» VERİ.DAT isiali veri kütüğünden KAREî(I) dizisini okur. Bu dizinin ekrandı görüntüsünü verir. OPEN, CLOSE, PRINTi ve INPUT* deyişleri ilerde anlatılacaktır.

lu boluıdı 6MBASIC, BASICA, fl-BABIC vs MSX lıhç»I»rlnin grafik (unktiymıUfı ortak yünleri 1» »nlıtıUıştır. Dijır Uhçılerln farkları her dayiain »onunda vtrilalıtir.

CSRLIN/POS Fonkaiyonu

\mc

Akranda ialecin bulunduğu satırın (CSRLIN) ve kolonun (PDS) değerini verir.

Dizilia

değişken = CSRLIN değişken = POS(n)

Fıçı kİ »al ar

CSRLIN fonksiyonu ialecin bulunduğu satırın değerini (1-25) belirtilen değişkene atar. POS fonksiyonu ialecin bulunduğu kolonun değerini ü-40,1-801 değişkene atar. n*Ö kullanılır. (Bkz.LPOS fonksiyonu)

Dizili» flrneâi 10 Y=CSRLIN 20 X=P0S<0>

30 LOCATE 24,35 :PRINT ‘SAYFA-5’

40 LOCATE Y,X sPRINT Maleç eski yerine çeldi”

Yukarıdaki örnekte ialecin yeri tespit edildikten sonra 24. satır, 35. kolona “SAYFA-5” yazılır. Sonra ialeç eski pozisyonuna yeniden döner.

lehçeler

C-128

RDOT(N) dizilisi kullanılır. N=0 için X koordinat değerini, N=1 için Y koordinat değerini, N=2 için o noktanın renk belirtecini verir.

ATARI-800XL

LOCATE X,Y,değişken

Dizilisi benzer aaac için kullanılır. Belirtilen koordinatlara gider ve o noktada bulunan bilgiyi değişkene atar.

SCREEN Fonksi yonu

B»!£

Yazı ekranında, aktif sayfada belirtilen satır ve kolondaki karakterlerin ASCII kodunu verir.

Dizili»

değişken=SCREEN < satır,kolon<,z >>

r “»ıımur

ı, O viya 1 diğerini ılır. t «Kiniği tıııllanılaadığı ;mu kıraktırin ASCII kodunu vırıı Kullanıldığı zııın vı dığıri 1 İm kırıktırin ringi ılı ilgili 0-255 ırasında bir diğı vırir. Bu değir o kırıktırtrı fon ringini vı kırıktır ringini bılirtir. (Kıynık-4,13,14)

Diz i 1iı Ornefli ı

50 K=SCREEN(24,36)

60 PRINT K

24. satır 36. kolondaki karakterin A olduğunu kabul edersek, K nin değeri 65 olacaktır. F^O I İnJT Fonksiyonu

ftıac

Ekranda koordinatları verilen pozisyonun rengini verir.

Pinliı

değİ5ken=POINT(X,Y>

<X, Y)

Brafik ekranında, rengi istenen pozisyonun koordinatlarıdır. 6öreli adresim ı yapılabilir.

ftcıklaıalar

Orta duyarlıkta 0-3 arasında değer verir. Yüksek duyarlıkta 0-1 değerlerini verir.

Dizili» Crneâi

10 SCREEN 2

20 IF P0INT (25,1001=1 THEN PRESET (25,100) ı

(25,100) noktasının rengi beyaz ise silinaesini sağlar.

2.3.13 MÜZİK

Hirobilgisayarların kullanıl alanlarından birisi de ses ve aûziktir. Müzik aletlerindi ayırdedilıeyecek kalitede ses üretıek lüıkündür. Bilgisayarların özelliklerine göre değin kalitede ve netlikte sesler elde edilebilmektedir.

Bilinen belirli bir lüzik parçasının prograıını yazabilıek için aüzik bilgisine de ihtiyı vardır. Bu bölüade lüzik konusuna girilıeden bu alanda kullanılan deyiaier anlatılacaktır,

2.3.13.1 MÜZİK DEYİMLERİ

6HBASIC, BASICA, HSX, A-BASIC lehçelerinin deyiıleri esas alınmıştır. Diğer lehçeler: benzer deyiıleri lehçeler bölümünde anlatılmıştır,

SOUND Dvyimi
ti 1 en belliklerde m üretmeye yarar,

il

SOUND frekans,süre

-frekans

ı Hertz olarak frekans değeridir. 37 ile 32767 arasında bir değerdir. Frekans .dükçe ses kalınlaşır.

süre

ten sesin ne kadar süre ile üretileceğini belirtir. 0-65532 arasında değişir. Her değer renin 18.2 de birini gösterir. Sûre için 18 değeri verildiği zaaan bir saniye süre ile İretilir. 1092 değeri bir dakikaya eşittir.

malar

:i bir SOUND komutuna kadar aynı ses (iretilir. Sesizlik için (SOUND 32767, süre) limi kullanılır. Süre için sıfır verilmesi bir önceki SOUND deyiminin ürettiği sesin h biteceğini belirtir.

lim örnekleri 10 SOUND RND*1000+37,2 20 GOTO 10 rnekle rastgele sesler üretilir.

10 REH Kuş sesi üretir.

20 FOR 1=3000 T0 4500 STEP 100 30 SOUND I,.3 40 NEXT 1 50 S0N=RND*700 60 FOR J=1 TO SON :NEXT J 70 GOTO 20

10 REH Cankurtaran sireni sesi üretir.

20 FOR 1*300 TO 1000 STEP 9 30 SOUND 1,0.1 40 NEXT I 50 80N*RND*50 60 FOR J=l Tü SÖN :NEXT J 70 80T0 20 eler

464,6128

SOUND <kanal durumu),<tone devresiK,<süre><,(volüm)

<,<volum arşivi X,<tone arsiviX,<ses devresi>»»>

Diziliminde kullanılır. (8kz. Kaynak-16)
Aşağıdaki program parçalarını deneyiniz.

‘Ses frekanslarını değiştirir.

‘0.3 süre ile I frekanstaki sesi üretir.

‘Rasgele süre ile sessizlik sağlar.

C-128

SOUND v,f,d<,dtr><,■)<,•><l«XtP>

Dizili«ind« kullanılır. (İki. Kıynık-5)

ATARI”800X1

SOUND ı«» kınılı,yükseklik,netlik,Bes voluau (ses kanalı) 0-3 arışındı değişen ses tonu guruplarıdır, (yükseklik) 0-255 ırısıdı değişir. 2 ile 255 ırtsı değerler duyulabilir. 255 ile düşük frekanslı (kalın) »ki elde edilir, (netlik) ses tonunun netliğini tayin eder. 0-14 arasında değişir, (m voluau) 0-15 arasında değişir. Sıfırda hiç ses çıkaaz. 8 norıal ses verir.

PLAY Deyimi

Aıac

Katar içerisinde belirtilen aüzik parçasını çalaak için kullanılır.

Dizilia

PLAY katar

katar

İçinde bir dizi aizik koautunu bulunduran katarlardır.

Hüzik Koautları

A-B

Bir gaadaki A (do), B (re), C (ai), 0 (fa), E (sol), F (la), 6 (si) notalarının çalıntısını sağlar. Bulunulan oktavdaki gaaın notalarını çalar. Harflerden sonra gelen I veya * işareti hızlı girişi, – işareti yavaş girişi belirtir.

O n

Oktav seçaek için kullanılır. 0-6 arasında değişen 7 oktav vardır.

N n

istenilen notayı çalaak için kullanılır. 7 oktav içinde toplaa 84 nota vardır, n, 0-84 arasında değişir. (0 n) ve (A-6) yerine kullanılabilir.

L n

Kendinden sonra gelen notanın uzunluğunu belirtir. Taa nota uzunluğunun i/n kadarını gösterir. 1-64 arasıda değişir.

P n

Notalar arası boşluğu belirler, n, 1-64 arasında değişir. Taa nota uzunluğunun l/n i kadir bosluk bırakılır.

T n

Teapo ayarlatası yapaaya yarar. (Kaynak-4 e bakınız)

MF

un sonraki çalınan notaların ön planda çalınacağını belirtir. Bir oıııvld bıtaeden bir ılıi nota çalınaaz.
MB

a «ilzik çalaak için kullanılır. Bilgisayar çalısaasına deva* ederken aüzik ara eğindeki notalar çalaaya baslar. Her defada 32 nota çaldırılabilir.

X değişken ;

koaut, bir karakter değişken isai ile bir dizi notanın çağrılaasını sağlar. ak-4,13,14,15
İla Orneai 10 A*»’B B-C*

20 B<*”04 Xft*|*

30 C#»”L1 C T200 N15 »14 »17 «18* 40 PLAY “P2 XA$; Iİİ\ XM}’ m <Kaynak-14)
:»l«r

20

PLAY ,<Vn><On><TnXUn><lln><eltaanUr><…….>*

Diziliainde kullanılır. Vn (n=l-3) sesi (notayı), On (n=0-6) oktavı, Tn (n=0-9) ton arşivini belirtir.
3.14 IİAK1NA DÎLÎ VE BELLEK
aal olarak BASIC 64 K bayt bellek kullanır. Basic çalışa» alanı içinde mada verilen
lek alanları vardır.
Basic Çalısaa Alanı
Bizia Basic prograaıaız

– Verileriaiz Yorualayıcı çalısaa alanı (2,5-4 K) Basic Geçici Kullanış Alanı
ada da görüldüğü gibi aakina dili alt prograaları için belirlenais bir alan yoktur, ak Basic bize bu alanın (64 K bayt) içinde veya dışında aakina dili alt prograaları n yer ayıraa olanağı sağlar, teinde veya dışında yer ayıraaya, sisteain özelliğine a belleğin doluluğuna göre karar verilir.

im dili alt prograaları Basic çalısaa alanının dışında yer alacak ise 64 K bayttan daha tif bellek alanı gereklidir. 12 K bayt isletia sisteai prograaları, 10 K bayt da Basic n olaak üzere 96 K bayt bellek alanına ihtiyaç vardır.

lic çalısaa alanı içinde veya dışında aakina dili alt prograaları için yer ayırtanın alları ileriki bölüaierde anlatılacaktır. Aşağıda Basic aakina dili ve bellek fialeri anlatılaıstır. Uygulamalarına da bunları gördükten sonra kısaca değinilecektir.

2»3.14.1 MAK1NA DtL1 VI BKLLEK DEYİMLERİ DEF SES x>«ylml

ftııı

Anı belleğin, bilgi yüklemek için kullanıl acık bölümünün başlangıç adresini belirler. Dizili»

DEF SES <-adres>

adres

0-63535 arasında değişen taasayıdır. ftClKllMliL

Diğer aakina dili deyiaierinin tanıaladığı adresler (DEF SES) segıent adresine göre, göreli ıdretlenaiştir. Basic çalışmaya başladığında segaentin başlangıç noktası, BASIC VER! SEÇMEKTİ’dir. DEF SE6 deyiai adressiz verildiği zaaan bu noktadan başlar. Segaent adresi onaltılı sayı sisteminde verilirken en sağdaki sıfır yazılaaz. Gerçek adresi bulunmak istenirse sağa bir sıfır ilave edilerek hesaplanabilir. (Kaynak-4,İ3,İ41

Dizilia Emeni

10 DEF SE6 ‘Basic veri segmenti başlangıç adresi olur.

20 DEF SE6«*HB800

İkinci dizilim başlangıç adresini B8000 hex noktasına getirir. Bundan sonra gelen aakina dili komutlarının adresi bu noktaya göre hesaplanır.

DEF USR Deyimi

ft»tc

Nakina dilinde yazılmış programların başlangıç adresini tanıalamak için kullanılır.

Dizilim

DEF USR <n>“göreli adres

n

Adresi belirlenen, aakina dili progr aal arma verilen numaradır. 0-9 arasında değişir. Verilmezse sıfır kabul edilir.

göreli edres

0-65535 araBinda bir tamsayı değeridir. DEF SE6 deyiai ile tanıalanan adrese göre göreli adresleae yapılır. 6ercek adres, segaent adresine göreli adres ilave edilerek bulunabilir.

Açıklamalar

Nakina dili programlarına verilen numaralar, daha sonra USR deyiai ile çağrılmalarını sağlar. Aşağıdaki örnekte belleğin 25000 inci noktasından başlayan ve 3 nuaarası verilen programın çağrılması gösterilmiştir.

10 DEF 9E8 – 0 20 DEF U6R3 -29000 ı

100 O UBflî(A+BI
POKE Deyimi

8ut

Ulllığin bitirtilen bir yerine bir bayt yanak için kullanılır.

MıiUi

POKE göreli adres,n

göreli adres

Belliğin neresine yazılacağını belirten adres nuıarasıdır. 0-65535 arasında bir tanıyıdır. DEF SES deyisi ile belirtilen adrese göre verilen, göreli adres değeridir.

n

Belirtilin adrese yazılacak karakterin ASCII kodudur. 0-255 arasında bir t mayı kullanılır.

Acıklınlar

Hakini dilinde veri depolaıak ve prograı yanak için kullanıl» bir deyiadir. Basic kaynak progrıılarında kullanılıası tavsiye edilir. (Bak Kaynak-11,4,13) PEEK fonksiyonu ile birlikte kullanılır.

□UT Deyimi

ftıac

Bilgisayarın cıkıs portuna bir baytlık bilgi yollaıak için kullanılır.

MlUin

OUT n,m

n

H5535 arasında değer alabilen sayısal ifadelerdir. Bu değer çıkış portunun nuıarasıdır.

m

Sonucu cıkıs portuna gönderilecek olan sayısal ifadedir.0-255 arasında değişen ASCII kodlandır.

teıklaıalar

1NP fonksiyonu ile birlikte kullanılır. Ayrıntılı bilgi için Kaynak-lit4tİ3’e bakınız.

âll£

Nakina dilinde (H.D.) yatılan alt prograaları çajıraak için kullanılır.

Dizilia

CALL güreli adres <(değişken <,değisken>…)> gürel i adres

H.D. prograaının başlangıç adresini belirtir. DEF SES deyiainde belirtilen adrese gür» verilen, göreli adres değeridir.

değişken

N.O. prograaına eleaan olarak atanacak değişken isialeridir. Karakter veya sayısal değiıktn olabilir.

Acıklaaalar

Nakina dili alt prograaları USR fonksiyonu ile de çağrılabilir. CALL deyiai ile ilgili uygulaaalar ileriki bölüşlerde verilai»tir.

Dizili» Örneği

10 DEF SES = 4HB00 20 ADR * 0 30 CALL ADRU,A*> i

Örnekte birinci satır başlangıç adresini 8000 Htx noktasına getirir, üçüncü satır ADR * 0 olduğu için başlangıç adresindeki H.D. alt prograamı çağırır. Aynı zaaanda At ve II değişkenlerini eleaan olarak alt prograaa geçirir.

Lehçeler

CPC-4&4,612fl

CALL adres <,değişken <,değişken) ….)

Dizilisinde kullanılır.

B8AVE Komt-jı-fc. cji Aaaç

Ana belleğin belirtilen bölüşündeki bilgileri yan birialere aktarıp saklanaasını sağlar, Genellikle N.D. alt prograalarında kullanılır.

Dizili»

BSAVE kütük tanımı«güreli adres, uzunluk

Göreli adres, DEF SE6 deyiainde belirtilen adrese göre verilen, göreli adres değeridir Uzunluk 0-65535 arasında değişen sayısal ifadedir. Saklanacak bigiierin bellekteki uzunluğudur. Bilgiler »akina kodunda saklanır.

ıtettisr

-128

BSAVE «kütük 1»«İN <,0 «Mel-noX,<WI),U «ygıt-n0>

<,B bank-no) P başlangıç adresi TO P bitil adresi Ditiliıind» kullsnılır. (Bkz. K»ynak-5)

IX

BSAVE kütük tanısı, başlangıç adresi, bitiş adresi, uygulasa adresi Dizilisinde kullanılır.
BLOAD Komutu

İt

n biri»1erde saklantı» ve belleğe uygun kodlanan kütükleri ana belleğe yükleatk için Uanılır. Senelikle H.D. programlarında kullanılır.

yjj»

BLOAD kütük tanımı. <«göreli adres>

reli adres, DEF SE6 deyisinde belirtilen adrese güre verilen, göreli adres değeridir, lleğin neresine yükleneceğini belirtir.

ftVE ve BLOAD koautları ekran »ra belleği kullanılarak ekrandaki resialerin saklanaasında ft saklanaı» resialerin yüklenaesinde kullanılır.

hceİBT

SICA, SHBASIC

Ekran ara belleği kullanılarak resia saklaması veya saklanaı» resialerin belleğe yüklenaesi öreneği aşağıda verilaistir t 10 DEF SES = ItHBOO « a

100 BSAVE “RESİN” ,0,ltH4000 Dizilisi ile ekran ara belleğindeki tü» bilgiler yan birislerde saklanır.

10 DEF SES * İHB0Ö 20 BLOAD “RESİN”,0

Dizilisi ile yan biriade saklanaı» RESİN kütüğü ekran ara belleğine yüklenir.

I2B

BLOAD “kütük isai” <,D sürücü-no>«0ü,>ll aygıt-no>

<,B bank-noX,P başlangıç adresi)

Dizilisinde kullanılır. (Bkz.Kaynak-5)

[

BLOAD kütük tanıaı <,RX,<göreli adres»

Dizilisinde kullanılır. <fi> seçeneği prograaın yüklendikten sonra uygulanaasını sağlar.

FRE FonN»lyonu

A§1£

Am bellekteki, Basic tırılindin kullınıleıyın bo» ballık ılınını verir. Yorualıyıcının cılııaı ılım bunı dahil değildir.

Dizilia

deği«kenaFRE(X) deği»ken-FRE(X*>

X veya X*

X vıyı X* anlaasız deği»ken »»illeridir.

Aciklmlar

Cok fazla ballık alanı kullanan prograalarda, bo» bellak alanını kontrol ederek, CLEAR vıyı ERASE deyiıleri ile bazı değişkenler silinip yeni alan kazanılıbilir. Aşağıda buna bir örnek gösterilai»tir.

Dizilia Orneai

10 m AÜ00,İ0Û),BÜ0,1Q) ı

100 İF FRE(O) < 5000 THEN ERASE A t

Bo» alan 9000 baytın altına düs&nce A dizisi silinir.

PEEK Fonksiyonu

Aaac

Anı ballıktaki adresi verilin noktanın değerini, belirtilen dıği»kene atar.

Dizilia

dRfli »kan“PEEK(görali adraa)

görali adraa

0-69935 arasında bir taısayı değer alır. DEF SES deyini ile belirtilen adrese göre, göreli adresleae yapılır.

daği »ken

Elde edilecek değişkenin değeri 0-255 ansındı bir değer olacaktır. Bir baytlık bilginin ASCII kodudur.

USR Fonksiyonu

A«i

Nuaarası verilen H.D. alt prograaını cağıraak için kullanılır. Alt prograalar eleaanı ile birlikte çağrılır.

*nu

d»öi»k«n-UBR<n> (art «man)

n

ğnlacak N.D. programına DEF USR deyiai ilt verilin numaradır. 0-9 arasında değilir, rilaezse sıfır kabul edilir.

•lmnan

yısal veya karakter değişken isai veya ifadeleri olabilir. H.D. alt prograaınm irisinde kullanılırlar.

Müjlit.

LL deyiai ile de N.D. alt prograalarının cağrılabileceği önceki bölüşlerde belirtilmişti, ularla ilgili uygulamalar ileriki bölSalerde verilmiştir.

1İ1İIL

14,126

<UBR IX)> dizilimi ile kullanılır. X elemanıdır. Bu lehçelerde H.D. prograaınm başlangıç adresi C-128 için 4633 ve 4634 dür. C-64 için 785 ve 786 dır.

IIMF31 Fonktsi yonu

SS.

gisayarın belirtilen portundan bir bayt okunmasını sağlar. Değerini bir değişkene atar. ilim

d«0i«ken»INP(n)

n

t numarasıdır. 0-65535 arasında değişir. Onaltılı sayı siBteminde de değer verilebilir.

ilim flrneâi 50 X ” 1W1150) t 150 den bir bayt okur ve X değişkenine atar.
VARPTR Fonksiyonu

l

İlkteki bir değişkenin veya kütük kontrol bloğunun başlangıç adresini verir.

ilil

d«§işken1=VARPTR<de$i9k«n2) d«§i9kenl-VARPTR(ttkütük-no)

«M i «k«n2

Adrııi iıtının ııyııal viya karakter dı|tıkıninin İnidir. Adraıi diğitkenl’ı »tınır.

kütük-no

OPEN dıyiai ila acılan kltUğün nuııraııdır. (OPEN dıyiain* bakınız)

Acıkİaıalar

Dığişkenl’e atanan adrııin değeri 0-65333 aralında değilir. Adrt* DEF SES deyiai i] varilen başlangıç noktalına göre DE6IL, Baıic veri ııgaentinı gör» görılidiı Dığiıkınlerin bellekteki adreıini bulaak için kullanılır. Ayrıntılı blgi için Kaynak-4 bakınız.

Lehçeler

ATARI-B00XL

ADR (değilken)

Diziliıi bılirtilen değişkenin bellek adreıini verir.
2.3.14.3 MAKÎNA DİLİ PROGRAM KULLANIMI

Bu bölüade aakina dili prograalarının naııl yazıldığı anlatılaayacaktır. Bu kor profesyonel olarak prograacılık yapanları ilgilendiraektedir. Ancak yazılan aakina dil prograaların naııl kullanılacağı, bellekte naııl yer ayrılacağı konuları bu btll&ac işlenecektir.

Baıic Çalına Alanı Dıımda Nakina Dili Pronraalarına Yer Acaa Siıtea 96 K bayt bellek alanına uygun iıe 10 DEF SES « Mİ 700

diziliai ile belleğin 96 K baytlık bölüaünün son 4 K baytı N.D. Prograaları için ayrılır 17000 Hex (92 K) başlangıç adreıi olacaktır.

Basic Calııaa Alanı teinde N.D. Prograılarma Yer Acaak

CLEAR deyiai veya /Hı işletil liıteai koautu kullanılır. Kaynak-4.

10 CLEAR, itHFOOO

diziliai ile Baıic calışaa alanının ıon 4 K baytı N.D.Prograalanna ayrılır.(He* F000»60 bayt)

BASIC /Ht İtHFOOO

Koaut uviyeıiRde yukarıdaki dizilia girilerek aynı bellek noktasında H.D.Prograalarına yı ayrılır.

H.D. Proaraalarınm Belleğe Yûklenaeıi

H.D. alt prograılannı belleğe değişik yükleae şekilleri vardır. Burada bunlardan iadet ikisine yer verilecektir.

leytai ili Alt Prograaın Belleğe Ylklanaesi ı

Intea kın «İt progr «lir için cok pratiktir. Basic programın lurUind» DATA erine yerleştirilen N.D. alt prograaı POKE deyiai il» belleğe adı» »dia yttklanir. Bu

ili alt prograa Baıic programım bir parçan olacaktır. Bu lılealer yapılırken lıki yöntea uygulanın

1. Alt prograaın aakina dilinde kodu hazırlanır.

2. N. Dili kodunun her baytının onaltılı sistemdeki karşılığı 4HXX diziliainde DATA deyialerine yerleştirilir.

3. Bir döngü ile DATA deyiaindeki her bayt bilgi, POKE deyiai kullanılarak belleğe yüklenir.

onraaın Bir Kütükten Belleâe Vüklenaesi

ıtea için Basic dilinin BLOAD koautu kullanılır. BLOAD koautu ile yüklenecek N.D. alt taı BSAVE koautu ile saklanan bir alt prograa olabilir. Bu duruada H.D. alt prograaı /e DEBUB koautlan ile yaratılaış, derlenaiş, uygulanabilir bir progr»a olaalıdır. tılı bilgi için Kaynak-4’e bakınız.

i» Yüklenais H.D. Alt Prooraaının Basic Prouraamdan Caârâılaası )e yüklenen H.D. Alt Prograaı

a. USR fonksiyonu ile çağrılabilir. DEF USR deyiai ile alt prograaın başlangıç adresi belirtilir.

b. CALL deyiai ile de çağrılabilir. CALL deyisinin göreli adres değeri alt prograaın başlangıç adresine eşitlenaelidir.

da POKE deyiai ile belleğe yüklenen ve CALL deyiai ile çağrılan bir örnek prograa »iştir. <Kaynak-4)

10 DEFINT I,K,A 20 DEF SE6 – IHFOO 30 REH Belleğe yükleae döngüsü 40 FOR l«0 TO 21

S0 READ KOD 60 POKE IfKOD

70 HEXT I 60 ADR-0

90 A«2 ıB»3 tC*0 100 CALL ADR(A,8,C)

110 PRİNT C 120 STOP

130 DATA M55,kHBB,WEC,fcH8B,ttl76,*H0A 140 DATA tK8B,&H04,İH8B,İH76,M08 130 DATA tH03,fcH04,IH8B,fcH7E,&H06 İ60 DATA tıH89,tıH05,tH5D,WCAliH06,)tH00 RUH

3
’64 K baytın son 4 K sını alt prograa için ayırır.

‘Döngü sayacı aynı zaaandı alt prograaın başlangıç adresini tamalar.

‘Okunan H.D. Kodlan belleğe her döngüde bir bayt şeklinde yüklenir.

‘Alt prograaın başlangıç adresi atanır.

‘H.D. alt prograaı A,B,C elaaanları ile çağrılır.

Henülerlı hazırlınaıı prograalar kullanıcıya biyik kolaylık uflar. Prograaın akışı taaaaa* amfilerle kontrol edilir. Kullanıcıya har aenidı yıterli acıklaaalar verilir. lu acıklaaalara verilecek cevaplarla prograa akın davaa adar. Hatalı verilen cavaplarda öncıki aenüye dönae vı hataları düııltıı olanağı sağlanır. Kullanıcının, prograa» olaadığı düıünûlırık hazırlanır. Prograa akın ııraıında kullanıcının içindin cıkaaayacağı durualarla karıılaıaaıı, prograaın iyi hazırlaneadığını gösterir. Kullanıcı ila prograa araıında iyi bir iletişi a kurulabileiş iu prograa başarılıdır.

Hınülü prograalar genelde cok aaaclıdır. Prograaa har başvuruda bir veya birkaç işlea yaptırılabilir, lir kitik yaratılabileceği gibi yaratılan kütîğı ilavı yapılabilir vvya liıteıi alınabilir. öncıki bilgileriaizı göre bu işleıler, önceden okutulan vırilırla kontrol ettirilirdi. Aaac prograaın başında belirlenirdi. ftenülü prograalarda aaaç aenüye verilen cıvaplarla belirlenir. Prograa içerisinde bir ileri bir geri dallanaalar ıık ıık yapılır.

Bu prograalarda, smyü değişik cırceveler içinde, göze hoş görünecek şekilde kullanıcıya şuneak iyi bir alışkanlıktır. Henilerle ilgili cırcıvelıri, acıklaaaları ve soruları alt, prograalarda toplaaak prograaın yazılışına kolaylık lajjlar. Prograa hazırlanır kan akranın vı emilirin birer aodeli ka§ıt üzerinde hazırlanır. Prograa içindeki alt prograaların liıtııi başlangıç şatır nuaaraları ile listelenirle prograaın hazırlanılma kolaylık ıa§layacaktır.

2.4.1 MENüLü PROGRAM YAZMA YÖNTEMİ

Aşağıda aenûlû prograa yazarken kullanılacak yöntealer anlatılaıştır. Bu ySatealeri kullanarak prograacı, göze hitabeden, kullanıcıya kolaylık sağlayan prograalar yazabilir. Kütük düzeniete bölüaünda aenülü örnek prograalar verilaiştir.

BffltttTû KARHASIN! CtiLEHEK

Ekranın, latır kapaıitesinin üzerinde satır yazıldığı zaaan üstteki tüa görüntü bir satır yukarı kayar. Renü ü prograalarda bunu önleaek gerekir. İki şekilde önleaek aiakündir.

a. LOCATE deyiaini kullanırken ekranın son satırına çıktı verilatz.

b. Eğir son satırına PftlNT ile çıktı verilirse, PRINT deyiainin sonuna <;> koyarak ialecin alt latıra inaeıi önlenir.

10 CLS sFOR 1*1 TO 24 20 LOCATE 1,10 iPRINT 1;

30 NEXT I

10 uncu kolona yukardan aşağı nuaara yazan bu prograa parçan, ialeci son ııtırda bıraktırır. Ancak prograa bu hali ile bırakılırsa prograa dururken KONUT CA6RI SEHBOLü’nü veraak için ganede satır atlar. İşleae devaa ederse bu durua yaratılaaz. Bunun için < 40 GOTO 40 > satırını sona ilave ederek sonsuz bir döngü oluşturulur. Prograaı durduraak için <Cmrtol ♦ O vaya <Control+ Brıak) gibi işlıtia liıtHi iıkanları

ü)f_fiî?iî.{Uft!!!!SR

idler, gdzc ta» gtirünaııi için çırctvıler iç«ri*ind« variUrlar, C*ft«v«l*rln dikey urlarını çizdirirktn bir dttngO içindi PRINT CHRf(XXXI dlıiliıl kullanılır. A»ağıda :[] kodları 11» cok kullanılan «ikiIlır vırilıiıtir.

ftSCII Kodu Sikil

219 ■

220 B

221 U .

222 [| ;

223 -ğ-

>ık Problın 2.16

Sili 1-10 di ADRES Küîftü seniıinün gürültüleri verilıiıtir. 6u görüntüyü ad ıs adıa {tundan •onrıki böl sil ir de ildi edeceğiz. Bu bölûade çerçevenin dikey kenarlarını çizen bir alt progru yazınız.

ıgraı ı

10 60SUB 5000 ’Cercıve alt progruını çağırır.

20 6ÖT0 20 ‘Koşut çağrı sesboli M «lir. Somuz döngü.

9000 REH «HHHHHHHHHWWHHHHHHHtlHH»HHHIHHWH

S010 REM MENd ÇERÇEVESİ alt prograaı

9020 CLS ıFOR I-l TO 24 ıLOCATE 1,1 iPRINT CHRt(221)f

5030 LOCATE 1,2i iPRINT CHRf(219)} »LOCATE 1,79 iPRINT CHRK222)} ıREXT I

5090 RETURN

uğrudaki 10,20 ve 5090. utırlar geçicidir. Progr» parçasını dinisek için llanılsııtır. Progru 20. utırdı »onsuz döngüye girer. Durdursak için <Cntrl.*C> yada ıtrl.+Brıık) tınları gibi ifletis si »tut iskanlarını kullanınız.

TAY C1I6İ ÇİZDİRMEK

ni çerçevelerindeki yatay çizgileri cizdirıek için STRIN6tln,IIX) diziliai kullanılır. RIN6I deyieinı bakınız.

nık Protleeı 2.16 (devaı)

REB KûTü6ü aenü çerçevelinin orta ve alt yatay çizgilerini çizdiriniz. Prograsa 5040 dan vm ediniz.

!

5040 LOCATE 12,1 iPRINT STRlN6t<21,219> ‘orta çizgi 5090 LOCATE 24,1 iPRINT STRIN6f(79,219); ‘alt çizgi 9090 RETURN
TAY C161 ÜZERİNDE YAZI

tay çizgi üzerinde yazı görüntülü < COLOR 0,7 > diziliai ile yazı ortasında teri görüntü dı

MM KNu

1.AMES tLAVtll

2.A0RES LİSTElt ‘Seçenimizi

Giriniz ?

prograadan cıkMk için C’ye tasınız
ftMM İLMESİ

EHTEH il» bilgileri giriniz

Mı Soyulı ı AHRET KORKMAZ

Fi rai İMİ : FlttAS

Cadde veya Sokak isai : KARANFİL

Kapı Nuaarası : 3/5

Seat veya Mahalle İsai i KIZILAY

fosta Kodu : 06340

Şehir İsai : ANKARA

Adreste yanlışlık varaı(E/H/A):

(Ana aenüye dönaek için A ya basınız) Adres ilavesine devaa edileceka: (E/H) :
MA 1ENÛ ŞEHİR IStKLERİ
1.ADRES İLAVESİ En fazla 5 isi» giriniz ve büyük harf
2.ADRES LİSTESİ kullanınız. ENTER ile giriniz.
Seçeneğinizi
Giriniz ? 1’İSTANBUL
»rograadan cıkaak 2-ANKARA
ici» C’r* basını:
3-1
ADRES LİSTESİ
1.T6H LİSTE
2.8AZI ŞEHİRLERİN LİSTESİ
Seçeneğinizi Liste icın I’e basınız
Şiriniz ?
ana aeniye dönaek
için A ya basını: İptal etaek veya ADRES LİSTESİ aenûsûne dönaek için t tuşuna basınız.

Seki 1*10 ADRES KüTüfiü Prograaınm Menüleri

Brntk Problın 2.14 (dıvıı)

ADRES KüTûflü «nü çerçevelinin, üst yıtıy kenarının üzerin» ‘ADRES Kulufiü” katırını yıldırımı. Progrısa 3060 din dms idiniz, ı

3060 COLOR 0,7 tLOCATE 1,1 ‘Tır» görüntü İçin 1,1 ı gelir

5070 PRINT SPCI34I “ADRES KüTüfiü” SPC(32) :COLOR 7,0 ıRETURN

NENÜ ACIKLANALARININ VERILHESI

NenÜler üzerinde gerekli açıklasalar LOCATE ve PRINT deyişleri ile uygun yerlere yıldırılır. Eğer ters görüntülü yazı isteniyorsa (COLOR 0,7> dizilisi kullanılır.

Ekranda sürekli dursası veya aym anda görünsesi gereken senüler aynı alt progr as içinde olabilir. Ancak görüntünün belirli şartlara göre almsası gerekiyorsa farklı alt prograslarda ol«ası daha uygundur.

Orneğisizde dört senü de ayrı alt prograslarda hazırlansııtır.

İtmek Problesı 2.16 (devas)

ANA HENü ve ADRES LİSTESİ senülerinin açıklamalarını uygun yerlere yazdıran alt prograslar yazınız. Sekle uygun olsasına çalısınız. HENü ÇERÇEVESİ’nin progras parçası burada tekrar verilsistir. Kaldığı yerden devas ediniz.

10 60SUB 5000 ‘Çerçeve alt prograsım çağırır.

20 BDSUB 5100 îBÜSUB 5200 ‘ANA HENü ve ADRES LİSTESİ senûlerini çağırır.

5000 REN HIHHmUİHHHHHtIHHHHHHHHMHtmtHİHHHHH

5010 REH HENü ÇERÇEVESİ alt progrası

5020 CLS iFOR 1*1 TO 24 :LOCATE 1,1 iPRINT CHR«(22l);

5030 LOCATE 1,21 iPRINT CHR*(219){ ıLOCATE 1,79 iPRINT CHR((222); iNEHT 1

5040 LOCATE 12,1 iPRINT STRIN6*(21,219) ‘orta çizgi

5050 LOCATE 24,1 iPRINT STRIN6$(79,219)f ‘alt çizgi

5060 COLOR 0,7 ıLOCATE 1,1 ‘Ters görüntü için 1,1 e gelir

5070 PRINT SPC(34) ‘ADRES KüTüfiü” SPC(32> :COLOR 7,0 RETURN

5100 REH IHHHHimHnHHHHHHHHHHHMHHHHHHHHHHH

5110 REH ANA HENü açıklasaları

5120 LOCATE 2,7 iPRINT “ANA HENü” iLOCATE 4,4 iPRINT “1.ADRES İLAVESİ”

5130 LOCATE 5,4 iPRINT “2.ADRES LİSTESİ” iLOCATE 6,4 iPRINT “Seçeneğinizi”

5140 LOCATE 7,4 iPRINT “Biriniz ?” iCOLOR 0,7

5150 LOCATE 9,2 iPRINT “prograsdan çıksak * iLOCATE 10,2

5160 PRINT “için C ‘ye basınız” sCOLOR 7,0 ıRETURN

5200 REH tHHHHHHHHHHHJIHHHHHHHHHUHHHIHHHHMHIH

5210 REH ADRES LİSTESİ senüsü açıklasaları

5220 LOCATE 13,5 iPRINT “ADRES LİSTESİ” iLOCATE 15,4 iPRINT “İ.TÜH LİSTE”

5230 LOCATE 16,4 iPRINT “2.BAZI ŞEHİRLERİN” sLOCATE 17,6 »PRINT “LİSTESİ”

5240 LOCATE 18,4 iPRINT “Seçeneğinizi” ıLOCATE 19,4 iPRINT “6iriniz ?” :COLOR 0,7 5250 LOCATE 21,2 ı«WT “ana aenüye dönsek” :LOCATE 22,2 5260 PRINT “için A’ya basınız” iCOLOR 7,0 tRETURN

ADRES İLAVESİ «»nü»(İndikl (t/HI «orultrı adrıı bilgi alanları girildiktin »ı »arulacaktır. ADREB İLAVESİ unutunun alt progrıaına 9300. «ıtırdan dıvıa »diniz, ı

5300 REH miimiiimmmmmmmiiiiiiiiiimihmmmimhhmmiimhh

5310 REH ADRES İLAVESİ aınüıü alt prograaı

5320.LOCATE 2,43 iPRINT “ADRES İLAVESİ” iCOLOR 0,7

5330 LOCATE 4,36 iPRINT “ENTER ile bilgileri giriniz” iCOLOR 7,0

5340 LOCATE 6,23 iPRINT “Adı Soyadı i”

5350 LOCATE 8,23 sPRİNT “Firaa İsai :*

5360 LOCATE 10,23 iPRINT “Cadde veya Sokak İsai s”

5370 LOCATE 12,23 iPRINT “Kapı Nuaarası i”

5380 LOCATE 14,23 iPRINT “Seat veya Hahalle İsai ı”

5390 LOCATE 16,23 iPRINT “Posta Kodu i*

5400 LOCATE 18,23 iPRINT “Şehir İsai :”

5410 LOCATE 20,23 iPRINT “Adreste yanlışlık varil<E/H/A)ı”

5415 LOCATE 21*23 :PRINT “(Ana amfiye dönaek için A ya basınız)”

5420 LOCATE 22,23 iPRINT “Adres ilavesine deva» edilecek ai (E/H)ı”

5430 COLOR 0,7 ‘Bilgi alanları ttrs

5440 FOR 1*6 TO 18 STEP 2 ‘görüntüye göre

5450 LOCATE 1,48 iPRINT SPC(31) ‘hazırlanır.

5460 NEXT I iCOLOR 7,0 iRETURN

ESKİ MESAJLARIM EKRANDAN S1L1NHES1

Nenüler içinde daha önce verilait aesajlar, < PRINT SPC(1X) > diziliai ile LOCATE dey kullanılarak silinir.

Örnek Probleaı 2.16 (davaa)

ŞEHİR ISIHLERİ aenüsöndeki şehir sıra nuaarası ve »ehir i»ialeri bu aeni ici düzenlenecektir. Alt prograaa eski şehir isialerinin ve aesajlarm silinaesini de di ediniz. SEHIR ISIHLERİ aenüsünün alt prograaına 5900. satır nuaarasından devaa ediniz.

9900 REH HHfHHHHHHHHHHHHHHHHHHHHHHHHHHMHH

9910 REH ŞEHİR İSİMLERİ aenüsü alt prograaı

5520 LOCATE 2,44 iPRINT “ŞEHİR ISIHLERİ” iCOLOR 0,7

5530 LOCATE 4,32 iPRINT “En fazla 5 isia giriniz ve büyük harf”

5540 LOCATE 5,32 iPRINT “kullanınız. EMTER ile giriniz.

5550 LOCATE 18,32 iPRINT “Liste için X ‘e basınız” iLOCATE 22,24 5560 PRINT “İptal etaek veya ADRES LİSTESİ aenüsüne dönaek için”

5570 LOCATE 23,24 iPRINT “I tuşuna basınız” iCOLOR 7,0

5580 FOR I* 7 TO 15 STEP 2 ‘Şehir isialerini

5590 LOCATE 1,41 iPRINT SPC(17) ıNEXT I ‘ekrandan siler.

5600 LOCATE 17,22 iPRINT SPCI57) :RETURN ‘Mesajı siler.
Ayrıca ŞEHİR ISIHLERİ aenüsünü tülden silen bir alt prograa yazınız. 5700. satırdan dı

5700 REH

5710 REH Sihir iıialıri unüıünu SİLMEK için ılt progru 3720 FOR J-2 TO 23 ıLOCATE J,22 iPRINT BPC(37) iNEltT i ıRETURN

İKİ BİLfllLERİ 6ÛNCELLE8TİRHEK

ıh* ön» ekrana yazılaıs ve birkaç iticiden sonra tekrar üzerine dönüldüğünde bilgi aynen ılıcak isi uki girileni dıği«tirşemi için aşağıdaki teknik kullanılır. Aynı teknik ıhı Ünce kütüğe yazılaıs kayıtlar tekrar çağrılırsa yine kullanılabilir, ı

700 LOCATE 11,12 ı INPUT XXI 710 1F XXI O ” THEN ABI » XX*
’ograaın bu parçasından daha önce geçilais ancak yanlış bilgi girildiği anlaşılınca ılunduğu aenû tekrar cağrılaıs ya da daha önce kütüğe girilais bir kayıt tekrar çağrılaıs labilir. Bu durueda INPUT deyiaine cevap verilirse, yani bilgi girilirse ABI » XXI iuııı yapılır. Bilgi girilaeden ’enter” cevabı verilirse ataaa yapılaaz, bilginin eski ığeri korunur. ADRES İLAVESİ aenüsû kontrolü yapılırken uygulaması verilaistir.

ENODEN SECIH YAPHAK

ınüd» secia yapsak için seçenekler klavyeden girilir. INPUT deyiai veya INPUTI ve MEYİ unksiyanları kullanılır.

ıpılan seçenek INPUT ile girilaek istenirse ENTER tuşuna basaak gerekliktedir. INPUT ile irileceği zaaan iaiec ve seçenek ekranda görünecektir. (Bkz. INPUT deyiai)

UPUTI fonksiyonu ile girilaek istenirse ENTER tuşuna gerek yoktur. İaiec ve seçenek kranda görünaez. ialecin görünaesi istenirse < LOCATE XX,XX,I > diziliai kullanılır, ıvabı alınca prograa devaa eder. Seçeneğin karakter sayısı birden fazla olabilir.(Bkz. NPUTI fonksiyonu)

NKEYI fonksiyonunun kullanılışı aynı INPUT# fonksiyonu gibidir. Yazılısı farklıdır, ıceneği bekleaesi için sonsuz döngü oluşturulur. (Bkz. INKEYI fonksiyonu)

rnek Problea; 2.16 (devaa)

kranın sol altında ADRES LİSTESİ aenüsü, sağ tarafında ADRES İLAVESİ ve ŞEHİR ISIHLERİ inüleri görüntülenecektir. Ancak ANA HENü’den alınacak cevaba göre hareket edilecektir. NA HENü’de seçenek <i> ise sağda ADRES İLAVESİ aenüsü yer alacaktır. <2> ise sol alttaki DRES LİSTESİ aenüsü görüntülenecektir. Seçenek < C > ise prograadan çıkılacaktır.

DREB LİSTESİ BBnüsünde, seçenek <i> ise ADRES KüTü&ü’nün tüa listesi yazıcıdan irilecektir. <2> ise sağ tarafta ŞEHİR ISIHLERİ aenüsü görüntülenecektir.

ıceneklere göre aenü alt prograalarını çağıran ana prograaı yazınız.

100 REH Bu bir ADRES KûTüftü ainttıl programdır 110 DEFINT I,K,N »»IH BIU30)

120 SOSUB 5000 ıBOBUl 5100 ÇERÇEVE v« ANA HENü çığrılır.

130 REH ANA HENü’dıki minik kontrolü 140 LOCATE 7,13,1 iZZI-INPUTt (1)

150 1F Ut »V OR 2Z#-»C THEN 8T0P ELSE

IF ZZ*« “1* THEN BDTD 500 ELSE

IF ZZ*»*2″ THEN SOSUB 5200 ELSE 60T0 140 160 REH ADRES LİSTESİ seçenek kontrolü 170 LOCATE 19,13,1 iZZf =INPUT*<1)

180 IF ZZ*=”A* OR ZZt»V THEN 6DT0 120 ELSE IF ZZ*=*1″ THEN SOTO 800 ELSE

IF ZZ$»”2* THEN SOSUB 5500 ELSE SOTO 170 190 REH ŞEHİR ISIHLERİ aenüsü kontrolü 200 FOR I* 1 TO 6 ıK»5+I*2

210 LOCATE K,40 iPRINT I îLOCATE K,42 ıINPUT *-,,SE*(I)

220 IF SEKİ) =*X” OR SEt<I)»V THEN IK=1-1 «SOTO 900 ELSE IF SEHI)*’i” THEN SOSUB 5700 s 60T0 160

230 NEXT I

240 LOCATE 18,25 .‘PRINT *5 ten fazla şehir yazaaazsınız. Yeniden yazaanız’

245 LOCATE 19,25 iPRINT ‘gerekiyor. Devaa etaek için herhangi tuça basınız.”

250 ZZf*INKEY« ıIF ZZ$=”” THEN 60T0 250

260 SOSUB 5700 :60SUB 5500 :60T0 190

500 REH ADRES İLAVESİ aenüsünün cağrılaası ve kontrolü

510 SOSUB 5300 ‘ADRES İLAVESİ aenüsü çağrılır.

520 COLOR 0,7 ıLOCATE 6,48 ıINPUT “”.M ıIF M<>”‘ THEN AS<«XX* ‘Ad Soyad 530 LOCATE 8,48 :INPUT “*,m sIF XX*<>” THEN FIt»XX* ‘Firaı taai

540 LOCATE 10,48 ıINPUT *”,XXI iIF XX*<>*” THEN CS<»XX« ‘Cadde veya Soka

550 LOCATE 12,48 :INPUT »*,XX* îIF XX«>” THEN KN*»XX* ‘Kapı No

560 LOCATE 14,48 ıINPUT “*,XX$ :IF XX*<>”” THEN BHt«XX* ‘Seat veya Hıhıl

570 LOCATE 16,48 sINPUT “*,XXI îIF XX*<>”” THEN PK$»XX* ‘Posta Kodu

580 LOCATE 18,48 :INPUT “*,XXI sIF XX«>”” THEN SI$=XXI ‘Şehir isai

585 COLOR 7,0

590 REH ADRES İLAVESİ kontrolü 600 LOCATE 20,54,1 sZZt’İNPUTtü)

610 IF ZZI = “E” OR ZZ$=”e” THEN SOTO 520 ELSE

IF ZZİ «*h* OR ZZİ*”H” THEN SOSUB 6000 ELSE IF ili =’A* OR ili-’i’ THEN SOTO 120 ELSE SOTO 600 620 REH ADRES İLAVESİ’ ne devaa kontrolü 630 LOCATE 22,63,1 «ZZI-INPUTKD 640 IF 11% = “E” OR ZZt«’e” THEN SOTO 500 ELSE

IF 22* S”H” OR ZZ$=*h” THEN 60T0 120 ELSE BOTO 630 800 REH Yazıcıdan ADRES KüTü&ü’nün TAH LİSTESİ’ni verir.

810 SOSUB 7000 sSOTO 120 ‘ADRES KüTü6ü’nün taa listesini veren alt prograaı çağırır. 900 REH Yazıcıdan BAZI ŞEHİRLERİN listesini verir.

910 60SUB 8000 : 60T0 120 ‘Bazı şehirlerin üstesini veren alt prograaı çağırır,

)i|er »İt prograaları 910. »ıtırdın tanrı kodlayınız. Asiğıd»kil»ri »itin» d»v»« »dinli.
6000 REN

6010 REN Adres kütüğüne KAYIT İLAVE »İt prograaıdır.

6020 LOCATE 21,23 »PRINT SPCI20)

6030 LOCATE 21,23 iPRINT “KAYIT İLAVE EDİLDİ* iRETURN

7000 REH «HIIMHMHHHHHHHmiHHHHHHHHHHIHHHİMHH

7010 REN Adres kütüğünün TAH LİSTESİNİ veren alt prograıdır.

7020 PRINT ‘TAN LİSTE VERİLDİ’ ıRETURN 8000 REN

8010 REN YAZICIDAN ADRES DüZENLENE alt prograaıdır.

8020 PRINT ‘ADRES DÜZENLENDİ’ :RETURN

İ000,7000,8000 satır nuaaralı alt prograalar, KüTüK DüZENLENE bölüşünü gördükten sonra >.2.19 da kodlanacaktır. Burada geçici olarak, yerine aesai veren basit çıktılar kodliMistır.

iECENEK 1C1N BEKLERKEN NÜZIK CALDIRNAK

ıicenek için kullanılan INPUT, INPUT# veya INKEY* fonksiyonundan önce bir aüzik parçasının »İt prograaı çağrılır. Bu alt prograa basit bir BEEP deyiai olabileceği gibi kulağa hos jelen kısa bir aüzik parçası da olabilir. Arka planda çalan aüzik parçası da kullanılabilir. (Hözik bölüşüne bakınız)

)rn»k Problea» 2.16 (devaa)

bağıdaki aüzik alt prograaını sona ilave ediniz. 140,170,250,600,630 nuaaralı satırların İtasına < 60SUB 9500 > dizilisini ilave ediniz. Seçenekler sorulurken bu parça çalacaktır. 9500 REH HİHHHHKHHHHHHHHHHHHHHKIHİHHHHHHHH 9510 REH HüZIK alt prograaı 9520 SOUND 800,4 :SOUND 32767,1 9530 SOUND 1000,2 sSÜUND 1180,3 sRETURN

IftTftLI B1LBI SÎRS8 KONTROLÜ

(atalı bilgi girişi sonucunda OVERFLOH, TYPE HISHATCH ve FIELD OVERFLOH hataları oluşur, îrneğin § bilgi girişi yapılırken sayısal değer girileceği yerde alfasayısal değer jirilirse TYPE HISHATCH hata aesajı verir. Aynı hata bir INPUT deyiainde olursa ‘redo froa start’ aesajı ile bilgi girişinin tekrarlanaası istenir. Basic’in kabul ettiği anırlarm dışında sayısal değerler girildiği zasan OVERFLOH hata aesajı verir. Kütüklerin kayıt tamamın yapıldığı FIELD deyiainde belirtilen uzunluklardan daha uzun bilgi girişi yapılırsa FIELD OVERFLOH hata aesajı verir. Bu hatalar sonucunda prograaın duraasını inleae yöntealeri aşağıda anlatılaıstır :

Sayısal değer yerine alfasayısal değer girilirse aşağıdaki yönteae göre ikilenebilir, ı

500 LOCATE 10,15 ıINPUT XX* ı KN*VAL(XX«)

510 IF KN»0 THEN 60T0 500 ‘alfabetik değer girilais ise 500. satıra dallanaa olur.

Diğer hatılı girişler Uin 0NIH9I iıyiaindı ınlıtılın yön ta kullanıl ir. Aiifiaı Dir örnek verllaietir ı

10 ON EftftOR SOTO 1000 ı ı

500 LOCATE 10,12,1 s1HPUT “”,KNX 510 LOCATE llf12(l ıINPUT “\A*

:

:

1000 REN Bilgi giriş hata kontrol prograaıdır.

1010 LOCATE 23,5 iPRINT SPC(50)

1020 IF (ERR=6) AND <ERL*500) THEN LOCATE 23,5 iPRINT ‘Daha fcicöfc bir değer giriniz’ iRESUHE 500

1030 IF (ERRs13) AND (ERL=50Û) THEN LOCATE 23,5 sPRINT “Taa sayı giraelisiniz” iRESUHE 500

1040 IF <ERR*50) AND (ERL»S10) THEN LOCATE 23,5 iPRINT “Bilgi alanına m fazla 20 kaı giriniz” iRESUHE 510

ERR*6,13 ve 50 hata kodlarıdır (Kaynak-4). ERL*500 ve 510 hataların oluştuğu satırlardır OVERFLON, TYPE HISHATCH ve FIELD OVERFLON hatalarının kodları lehçelere göre değiteceğ için o lehçelerin kodları kullanılaalıdır.

genel kütük düzenlese yöntealeri anlatılaıstır. Varılan bilgiler bütün prograalaaı dilleri için geçeriidir. Kütükler aynı aantık çerçevesinde düzenlenirler incik prograalaaa dillerinin özelliklvrine göre farklı şekilde uygulanırlar. Bu kitapta BASIC dilindeki uygulaaaları üzerinde durulacaktır.

2.5.1 KÜTÜKLERİN ÖZELLİKLERİ

Bu bölûae kadarki yazdığımız prograaların da birer kütük olduğunu biliyoruz. Bunlara PROBRAH KÜTÜKLER! dendiğini, yalnız verilerden aeydana gelaif kütüklere de VERİ KüTüfiü dandiğini önceki bölüşlerde göraüstük. Prograa kütüklerindeki her prograa satırının bir kayıt olduğunu biliyoruz. Veri kütükleri de kayıtlardan aeydana gelir, ancak veri kütüklerindeki kayıtların özellikleri prograa satırlarından farklıdır. Veri kütüklerinde kayıtlar, birbiriyle ilgili biria bilgilerden aeydana gelir. Her kayıt, kütüğün bir eleaanıdır. Kayıt içerisindeki her biria bilgi bir B1L61 ALANI içerisine yerleştirilir.

2.5.1.1 KAYIT TANIMLARI

Aaaca uygun kütük yarataamn ilk basaaağı kayıt yarataaktır. Bir kayıtı seaatik olarak söyle gösterebiliriz ;
Bilgi Alanı B.A. B.A. B.A.
V
V
KAYIT

Kayıt yaratılırken dikkat edilecek noktalar şunlardır t

– Kayıt içine girecek bilgilerin seçiai

* Bilgi alanlarının boyları

– Bilgi alanlarıma kayıt içindeki sırası

– Bilgi alanlarının tipi

– Bilgi alanlarına erisia yönteai

– Kayıt boyu

Kayıt olusturaaktaki en öneali nokta yan bellekte en az yer kaplayan ve bilgilerine en hulı erisilebilen kütüğü yarataaktır. Prograaiaaa dilleri bazı sımrlaaalar getirebilir. Bu aantık dahilinde aşağıda verilen kayıt temalarından birisi seçilir.

Kayıt İçinde Baslanaıc Noktası Belli Bilai Alanları

Kayıt içindeki bilgi alanlarının başlangıç noktaları’belirlidir.
Sicil no Adı Soyadı_Okulu
4123 ALİ AKNAN SİYASAL SİLGİLER FAKÜLTESİ ANKARA
Tl n 3Ö1

Kayıt boyu 80 bayt

Sındı dı görüldüğü glbt bilgi alanlarının vı kıyıt boyunun uzunlukları sabittir. V bıllıktı gereğinden faili yır kıplınır, bıllık tııırrufu lağlanııız.

* Bu tür kayıtların Baıic tiki uygulaaaıı INPUT#, PRINT*, NRİTEI viya FIELD •

* deyişlerinde değişken 1h1 kul Ilınılarak yapılır. Sistee değişken islinden *

* bilgi alanının adresini bulur ve ataaa olanağını sağlar. Ayrıntılı uygu- *

* laaası 2.5.S te örneklerle anlatılacaktır. t
Kayıt İçinde Süreli Bilgi Alanları

Bu tür kayıtlarda bilgi alanları birbirinden belirli seabollerle ayrılırlar. • , * , İt , gibi seaboller kullanılır.
4125*AL1 AKHANtSIYASAL BUBİLER FAKÜLTESİ ANKARA
Kayıt boyu 48 bayt

Bilgi alanları ve kayıt boylarının uzunlukları değişkendir. Yan bellek tasarrufu tığ! ancak bazı sakıncaları vardır :

– Bilgi olaayınca sıfır veya bosluk konsası gerekir.

– Bilgi alanı sayısı fazla ise seaboller için bellek kaybı olur.

* Basic‘teki uygulaaasmda kayıt boyu sabittir. Basic‘te sayısal bilgi alan- t

• ları arasında bosluk veya virgül bırakılarak birbirinden ayrılabiliyordu. *

* Alfabetik bilgi alanlarında ise çift tırnak veya virgül ile ayırea iskanı *

• vardı. Alfabetik bilgi alanı içinde çift tırnak, virgül gibi karakterler *

* bulunabiliyorsa (adreslerde olduğu gibi) Basic’teki uygulaaası LINE INPUTt *

• deyiai kullanılarak yapılır. Kayıt tek bir karakter değişkeni isıi ile *

* okunur veya yazılır. Sonradan prograa içinde INSTR* fonksiyonuna, **’ •

• seabolû aratılarak bilgi alanları birbirinden ayrılır. Kayıt boyunun sabit *

* olaasına rağaen bilgi alanlarının uzunlukları değişken olacağından bellek *

• tasarrufu sağlar. (ADRES KÜTÜ6Ü prograaına bakınız) *

Kayıt İçinde 6österaeli Bilgi Alanları

Kayıtın bas tarafında gösterge alanı bulunur. Her gösterge kayıttaki bilgi alanların bitiş noktalarını gösterir. Kayıt ve bilgi alanlarının boyu değişkendir.
\

“-V———J’*———-…………. —……………. …………. –

Sösterge Bilgi Alanları

Alanı

Sakıncalın ı Kayıttıki bilgi ılım uyut kidir gdstırgı gereklidir. Olaıyın bilgi ılınlirinin göstergesi da bulunur vı bir Öncekini gösterir. Aşağıdaki seaıda 2. va 3. bilgi alınlın yoktur,
t Bu tür kayıtların Basic’te uygulaaası yoktur. COBOL gibi yüksek progrıa- t ı İm dilleri için uygundur. *
(ayıt İçinde Etiketli Biloi Alanları

(ayıt içindeki bilgi alanlarının birer etiketi (harf veya seabol) vardır. Aynı etiketli lıllgi alanlarının uzunlukları değisaez. Kayıt boyu değişkendir. Bilgi alanları etiketleri ile başlarlar.
S L E K H

Etiket Bilgi Alanı Alanı
ieaada aynı kütüğün iki ayrı kayıtı gösterilaistir. Bulunaayan bilgi alanının etiketi de foktur. Aynı etiketli bilgi alanlarının boylarının aynı olduğuna dikkat ediniz. Seaada kinci kayıtta L ve K etiketli bilgiler yoktur. Avantajı; olaayan bilgi alanları için ııllek kaybı olaaz.

HHHHHMHHHHHHHHHHHHHHHHHHHlIHHlitHİHlIHHHitHHi

* Basic’teki uygulaaası aynı Göreli Bilgi Alanlarında anlatıldığı şekilde *

t yapılır. Sadece her bilgi alanına birer harf veya özel seabol verilir. *

t Prograa içinde belirtilen bilgi alanının seıbolü veya harfi, INSTRt fonk- t

t siyonu ile aranır. *
asaalı Deâisaez Uzunluktaki Biloiler

ilgi alanlarının ortalaaa uzunlukları dikkate alınır. Ortalaaa uzunluğu asan damalarda österge alanında tasaanm olduğu ve bilgi alanının sonu belirtilir.
T 50 N 0 T 130
v-v-/ v—r—’SO ——–

6österge Alanı Tasaa Taşaa

harfi tasaanm olduğunu ve onu takip eden gösterge adresinde tasan bilgi alanının sonu üsterilir. N tasaanm olaadığinı ve bilgi alanı uzunluğunun bilinen ortalaaa uzunluk Iduğunu belirtir.

t Bu tür kayıtların Basic ’t» uy|ulaaııt yoktur. COBOL gibi yüksek düzey •

* prograalaea dilleri tdn uygundur. t
2.9.1,2 BILGÎ ALANLARI

Bellek kaybına neden olan en tinenli etken bilgi alanlarının uzunluklarıdır. Bilgi alanl kayıtlan, kayıtlarda kütük uzunluklarını etkiler. Bu nedenle kayıta kanaati düsünl bilgiler en az bellek kaybına neden olacak şekilde düzenlemelidir. Alfabetik bilgi sayısal bilgilere göre daha fazla yer kaplarlar.

Alfabetik Biloiler

Sınıflandırılabilen alfabetik bilgilerin yerine kod nuearalan kullanılaahdır. An alfabetik bilgilerin sayılan cok çeşitli ise kodlaaak yararlı oleayabilir. örneğin üniversite giriş sınavında öğrenci listesi kütüğü düzenlenirken lise isieleri yerine kullanılabilir. Aynı şekilde bir personel kütüğünde kesinti cinsleri yerine kullanılabilir.

Adres listesi kütükleri en cok yer kaplayan kütüklerdir. Alfabetiktirler.

Cadde , Sokak , Hahaiie , Kapı No , Posta Kodu , Şehir gibi bilgiler bulunur. Bos bilgi alanları yoktur. Şehir, eahalle, kapı no gibi tekrar a bilgiler vardır. Bu tür kütükleri kısalteak için ayrı ayrı kütükler yaratılır. CaMı sokak için iki ayrı kütük yaratılır. Ana kütük kaydında, bu kütüklere eriıeek i gösterge veya anahtar bilgi kullanılır. Hahalle, kapı no ve şehir bilgileri ici tekrarlar çoktur. Bunlar kodlanır veya fihristler oluşturulur. Şehir i sial kodlanabilir. Mahalle ve kapı no için ise fihristler düzenlenebilir. Seki 1-i1 de s«m olarak gösterilıistir t
Seki 1-11 Adres Kütükleri

Seaada cadde , sokak , aahalle , kapı no kütüklerine kayıt nuaarası veya kayıt adresi erişilir. Şehirler bir dizi içinde olabilir. Şehir kodu ile dizi eleaanına erili lebi I Kütükler alfabetik sırada ve değişken kayıt uzunluklarına sahiptir.

Istergeler sayıaal oliu|u için *na kütükte baUek kaybı az olur. Takrir adan bilgiler için illik kaybı olaaı. Örneğin KIZILAY kilimi har tdraıta takrir takrir yızılaaz. (tahılla lt(l|0nd» yalnız bir KIZILAY vardır,

.5.2 KÜTÜK DÜZENLEME YÖNTEMLERİ

raktiğinda isleaek veya kullanılmak üzere aynı yapıda ve bir aantık çerçevesinde bir aya gelen kayıtlardan aeydana gelais, bir bellek ortasında saklanaı; bilgi kâsesine TÜK deniyordu. Her kayıtın kütük içinde bir yeri vardır. Bazı kayıtlarda, o kayıtın tik içindeki yerini belirleyen ANAHTAR B1L61LER vardır. Sicil nuaarası, sıra nuaarası, renci kayıt nuaarası, kod nuaarası gibi bilgiler anahtar bilgilerdir. Kütük düzenlese Ateşlerinde en ünesli öğe anahtar bilgilerdir. Anahtar bilgilerden düzenlese ateşlerine göre farklı şekilde yararlanılır. Kütükler uygulaaa aaaclarına göre üç değişik kilde düzenlenir.

– Sıarlı Düzenlese (Sequential File Drganisation)

– Doğrudan Düzenlese (Direct File Organization)

– İndeksi i Düzenlese Undened File Organization)

.5.2.1 SIRALI DÜZENLEME

ralı düzenienai5 kütüklerde kayıtlar sıra ile yaratılaıstır. Kayıt sıra nusarasmı »teren bir anahtar bilgi bulunabilir ancak kayıtlara erissekte bir yararı yoktur. Sıralı tenlensiı kütüklere Basic’tu yalnız sıralı erisis yapılır. (Bkz. 2.5.3)

ırala dizenlensi» kütükler her türlü ortasda (disk, teyp, disket) giri» veya cıkıı tütüğü ırak kullanılabilirler. Sıralı düzenine t

– kütüğün tüsü üzerinde isles yapılacak ite,

– kayıtlara sıra ile erlisek daha uygun ise,

– yeni kayıt girişlerinde kütüğü sıraya dizsek gereksiyorsa veya yeni kayıt sona ilave ediliyor iBe, yada

– kayıt içinde herhangi bir anahtar bilgi tespit edileaiyorsa tercih edilir.

alı düzenlensi* büyük kütükler bölünerek yan belleklere sığacak boyutlara indirilir, üğün devaaı vgaa prograa içinden kontrol edilerek bir başka yan bellekteki ikinci öğe geçilebilir. Disket veya kaset değiştirsek gibi. Disklerde bellek kapasitesi daha

il olduğu için bu tür sorunlar daha azdır.

» Basic’te yaygın olarak kullanılır. Adres listesi, kitap listesi gibi *

* kütükler sıralı düzenleaeye uygun kütüklerdir. Bu kütüklere sıralı erişie * t yönteai ile erişilir. Uygulanın 2.5.3 te anlatılacaktır. t

S.2.2 DOĞRUDAN DÜZENLEME

rudan düzenienai$ kütüklerde kayıtlar, kayıtın kütük içindeki yerini belirleyen kayıt ı nuaarasına göre sıralananlardır. Kayıt sıra nuaarası doğrudan kayıtın bellekteki iktel adresini belirtir. Anahtar bilgiler kayıt sıra nusarasmı tespit etseye yardıscı

alın bilgilerdir, Doğrudan düzenleneli kütüklerde mıhtır bilgi kayıt nuuraıınıı aynısıdır. Bir personel kütüğünde sicil no kayıt »ıra nuaarası yerine gecebi Uyarsa küt öl doğrudan düzenleıeye uygundur. Bir stok kontrol kütüğünde de kod no kayıt sıra nuearaıınıı yerine geçebilir. Doğrudan düzenlenil» kütüklere sıralı isleı yaptırmak da lüıkündür Doğrudan düzenieıe ;

– kütüğe heı sıralı heı de rasgele erısıek gerekiyor ise,

– kayıt içindeki anahtar bilgi kayıt sıra nuıarası yerine geçebiliyor ise,

– kayıt sıra nuıarası kolayca tespit edilebiliyor ise,

– rasgele erişi* ile sık sık güncellestirıek gerekiyor ise, yada

– kayıtları tekrar sıraya dizerken sıra nuıarasmın öneıli olduğu duruılarda tercih edilir.

Bellek kapasitesini asan kütükler bölünebilir. Progru içinden kontrol edilerek, başka ya belleklerdeki kütüklere erişilebilir.

e Basic’te yaygın olarak kullanılan bir yönteıdir. Personel, stok kontrol t

* gibi kütükler doğrudan düzenleıeye uygun kütüklerdir. *

HHİHHIHHHHHHİHHİHİlHHHİtHHHİHHHtHIHİHHHHHHHHH

2.5.2.3 ÎNDEKSLI DÜZENLEME

Kayıt içindeki anahtar bilgiler, kayıtın kütük içindeki yerini belirtıiyor ise yani anahtaı bilgi kayıt sıra nuıarası ile aynı değil İm bu yönteı tercih edilir. İndeksti düzenlendi kayıtın adrni ve anahtar bilgilerin bulunduğu bir indeks kütüğü oluşturulur. Anahta bilgi ile indeks kütüğüne girilir. Ana kütükteki kayıt sıra nuıarası elde edilir ve an kütükteki aranılan kayıt elde edilir. İndeks kütükleri genelde sıralı düzenlenir. Şekilde indeksi i düzenine seaatik olarak gösteril*i »tir s
Anahtar Kayıt

Bilgi Sıra No :
Ana Kütük
Saki 1-12 Indckıli Düztnlent Senası

Iıkı kütükleri değişik «eklilerde yaratılabilir. Sıralı düzenlenil* kütük olabileceği n alfabetik hazırlanan fihriıt ta olabilir, tndakı kütüklerinde anahtar bilgi va kayıt ‘i nuaarılarını icıran kayıtlar blok blok okunup kayıt ura nuaaraaı taraaaaı yapılır.

eteks kütüğünde anahtar bilgi kendi içinde sıralı ise ikiye bölerek araaa yönteai Uanılabilir. Bu duruada indeks kayıtlarına rasgele erisaek gerekir. Örneğin anahtar Igisi plaka no olan ve indeksli sıralı düzenlenaiş bir TRAFİK KöTüfiü’nden kayıtın iuneatının algoritaası aşağıda verilaistir ı

1- İndeks kütüğünün kayıt toplaamın yarısı bulunur,

2- Ortadaki bu kayıta rasgele erisie ile erişilir,

3- Aranan plaka no ile siadiki plaka no arasında büyük, küçük ve eşit kontrolü yaptırılır,

4- Esi t ise indeks kayıtı bulunaustur. İsime 7 den devaa edilir,

5- Aranan plaka no büyük ise kütüğün kalan üst yarısının orta noktası bulunur.

2 den devaı edilir,

6- Aranan plaka no küçük ise kütüğün kalan alt yarısının orta noktası bulunur.

2 den devaa edilir,

7- İndeks kayıtından ana kütükteki kayıtın sıra nuaarası okunur,

8- Ana kütükteki kayıt rasgele erisia yönteai ile elde edilir.

» üst düzey dillerde sık kullanılan bir yönteadir. Daha değişik kullaaıa * t özellikleri vardır. Ancak burada Basic’te uygulanabilecek özellikleri ile *

* anlatılaıstır. Basiete kütükleri indeksli düzenleyen hizaet prograaları *

* vardır. Bu prograalar yazılıa firaaları tarafından paket prograaı olarak *

* hazırlamıştır. FABSB6 bunlardan biridir. »

HiHMHHHİHHHHHMHMHHİlHHHHHHtHİHHHİHIIlIHHHİHHt

!. 5. 3 ERİStM YÖNTEMLERİ

izenleae yönteelerine bağlı olarak kayıtlara iki şekilde erişilir.

– Sıralı Erisia (ACCESS SEfitiENTIAÜ

– Rasgele Erisia (ACCESS RANDOH)

irde indeksli düzenlenaiş kütüklerde kullanılan ISAH (inde* Sequantial Access Hode) erisia ünteai vardır. ISAH gerçekte bir erisia yönteai değil bir düzenleae yönteaidir. Dolaylı larak rasgele erisia yönteeini kullanan bir yönteadir. İndeks kullanarak rasgele erisiai erceklestirir. İndeksli düzenleaede anlatılaıstır.

sağıda düzenleae yönteaine göre kayıtlara hangi yöntea ile erişilebileceği ve hangi rtaalarda yapılabileceği göster i laistir ı
DÜZENLEME YfflTEHI
Sıarlı

Doğrudan

İndeksli
ERİŞİM

S
YAK BELLEK ORTA»! T,D
S,R

S,R
D
D
S=Sırah R*Rasgele T»Teyp(kaset) D*Disk veya disket

Basic’te sıralı erisia tein yıratılaıı kiitlkler ASCII kodund» esklınırlar. Rasgele erisia için yaratılın kütükler isi ikili alıteıde eakUnırUr. Bu nedenle y»n belliklerde sıralı erisiı için saklanan fcâtttkiar cok yer kaplarlar, Sıralı erisiı için yaratılın kütüklere rasgele erisileıez. Biralı erisiı için yaratılan kütüklerde kayıt boyu »abit uzunluktadır-. lehçelere gör» kayıt boyları farklıdır. Rasgele erisiıli yaratılan kütüklerin kayıt boyları prograicı tarafından seçilebilir. OPEN deyiai anlatılırken bu konuda bilgi verilecektir.

2.5.3.1 SIRALI ERİŞİM

Kütüklere sıralı erisia, rasgele erisiaden daha kolaydır. Fakat emektik ve erisia hızı acısından avantajlı değildir. Birinci kayıttan başlayarak sıra ile kayıtlar özerinde isle* yapılır. Kayıtlar üzerinde aynı anda hea okuaa he» de yazaa yapılaaaz. Kütük OPEN deyiai ile okunaak (SIR1S) için acılaıs ise, yazaak için kütüğün CLOSE deyiai ile kapanıp yeniden acılaası gereklidir.

OPEN deyiai ile, bir veri kütüğü sıralı erisia için açıldığı zaaan, sistea ana bellekte bu kütük için bir KAYIT ARA BELLEĞİ ayırır. Okunaak için acılan ise birinci kayıtı, kayıt ara belleğine otoaatik olarak kopyalar. Ara bellekteki değişkenler INPUT! veya LINE INPUTt deyieileri ile Basic çalısaa alanındaki aynı isiali değişkenlere atanır, tslea seaatlk olarak Sekil-13 de gösterilaistir t
INPUT#

,LW INPUTİ
r
Prograa
Daği»kanlar A». B$, N ■i t
AS BS N
kayıt ara belleği
Ana Bellek
Seki 1 — 13 Sıralı Erisia İle Kayıt ve Değişkenlerin Ataması Kütük, üzerine yazıtsak (ÇIKTI) için açılan ise Basic çalısaa alanındaki değişkenler PR1NT1 , PRINTI USIKG veya NRITEI deyieleri ile kayıt ara belleğine atanır. Kayıt arı belleğindeki bilgiler otoaatik olarak yan bellekteki yerine kopyalanır. Sekil-13 deki sesanın tersi yazaa isleai için düşünülebilir.
Sıralı erisia için açılan kütüklerde, sistea her giriş, cıkıs deyişlerinden sonra, bir sonraki kayıta geçer. Onun «zerinde işlea yapar. Bu islee sırası kütüğün son kayıtım kadar devaa eder.

in tır itlimi 1” Yaratılacak kütük OPEN dıyiai ili »cılır,

2- PRINT», PRINT» U6IH6, viya «RITE» d»yilUri kullanılarak bilgiler kâtÜğl yazdırılır.

3- I* bitine* kütük CLOSE dıyiai ili kapatılır.

Itflklere Sıralı Eritil

1- Kütük OPEN deyiıi ile, giriş kütüğü olarak açılır.

2- Kütüktın tın ili, INPUT» viya LINE INPUT* deyiıltri kullanılarak kayıtlar okunur.

3- t» bitince kütük CLOSE deyiıi ile kapatılır. ıralı Eritilen Kütüklere Kayıt Eklemeli

aha ünce sıralı eritil için acılııt kütükler, çıktı kütüğü olarak acılaıazlar. AÇILIR İSE üTÖKTEKl BİLGİLER SİLİNİR. Böyle duruılarda kütüğe kayıt ekleıek için OPEN deyisindeki PPEND seçeneği kullanılır. OPEN deyiainde anlatılacaktır.

>.5.3.2 RASGELE ERISÎM

ısgele eritilen kütüklerin hız ve esneklik yönünden avantajları vardır. Bellekte daha az ır tuttukları daha önce belirtilıiıti. Rasgele eritilin en büyük avanatajı, tıralı riıiıdı olduğu gibi tüı kayıtların okumasına gerek olmasıdır. Aranan kayıta doğrudan ritilir. 0 kayıt üzerinde heı okuıa heı de yazıa yapılabilir.
PEN deyiıi ile bir veri kütüğü ratgele eritil için açıldığı zaıın, sisteı ana bıllekte bu İtftk için bir KAYIT ARA BELLESt ayırır. Kayıt ara belleğine kopyalanacak değişkinlerin (unlukları ve değilken isiıleri FIELD deyiıi ile belirlenir. Kayıt okusak için 6ET deyiıi le kayıt nuıaratı verilir. Basic bu kayıtı bulur ve kayıt ara belleğine kopyalar. Kayıt ‘a belleğindeki değişkenlere, artık Batic çalına alanından erişilebilir. Yalnız tayıtal ilgilerin önce CVI, CVS, CVD fonksiyonları ile ikili tiıteıde kodlamış katar tipinden (ili sistildeki tayıtal değir tipine dönüstürülıesi gereklidir. I«1m »eeatik olarak ıkil-14 de gösterilıi«tir ı

ı •
2
p o
50 SN* A* B*

0 o
999
1000
kütük

GET
Prograa
Deği skenler S, AD*, SO$
CVI,CVS.CVD
SN* A* B*
FIELD
kayıt ara belleği
Yan Bellek
Ana Bellek
Sekil—14 Rasgele Erisin tle Kayıt Okunaası

Kayıt yanak idn, Itıic çalısaa alanındaki değişkinler LBET veya RBET dayialari ila kaı ara belleğine atanır. layııal bilgiler L8ET vayı R8ET dıyialari ila kayıt ıra belleği atanaadan ânca HKIt, HKSt, NKDt fonksiyonları ile ikili sisteade kodlanan katar tipi dönüıtürilaalidir. Daha aonra kayıt ara belleğindeki bilgiler PUT dayiai İla nuaarı balirtilan kayıt» kopyalanır, tılaa laaatik olarak Şıkil-15 da gösterilaistir ı
Sek i 1 -15 Rasgele Erisia tle Kayıt Yazılması
Rasgala armada, sıralı arisiada olduğu gibi kayıtlar ana belleğe veya kütüğe otoaati

olarak kopyalanaazlar. Bu itlaain 6ET veya PUT dayialari ile yapıldığına dikkat ediniz.

Kütüklerin Rasgele Erisia İçin Yaratılaası

1- Yaratılacak kütük OPEN deyiai ile rasgele erisia için açılır.

2- FIELD deyiai ile kütüğe yazılacak bilgilerin boyutları va değişkenlerin islileri belirlenir.

3- LSET veya RSET deyiai ile değişkenler kayıt ara belleğine atanır. Sayısal değerler varsa, önce KKK, RKSt, HKDt fonksiyonları ile ikili sisteade kodlanan katar tipine dönüştürülür.

4- PUT deyiei ile, kayıt ara belleğindeki bilgiler belirtilen kayıta kopyalanır.

Kütülere Rasgele Erisia

1- Kütük OPEN deyiai ile rasgele erisia için açılır.

2- FIELD deyiai ile kütükten okunacak bilgilerin boyutları ve değişkenlerin isialeri belirlenir.

3- 6ET deyiai ile aranan kayıt, kayıt ara belleğine çağrılır.

4- Sayısal değerler CVI, CVS, CVD fonksiyonları ile ikili sisteade sayısal dağar tipine dönüştürülür.

5- Kayıt ara belleğindeki değişkenlere artık Basic çalısaa alanından erişilebilir.

2,S,4 GENEL DEYİMLER
Bu bolunda BASICA, HSBASIC, BNBASIC, A-BASIC lehçelerinin kütük düzenlen deyişleri ortak yönleri ile anlatılıııtır, Diğer lehçelerdeki farklı uygulaıalar, her deyiein lehçeler biilüıünde anlatılıııtır. OPEN, CLOSE, LOC ve LOF deyiıleri her iki erille yüntesinde de kullanıldığı için ayrı anlatıleıttır.

OPEN Doy±mi

AîlS.

Bir kütüğün giriş- cıkıs isleıleri için kullanıla acılıasını sağlar.

Diıiliı

OPEN kütük tanımı <F0R aıaçl) AS <l> kütük-no <LEN=kayıt boyu) veya

OPEN aıac2,<t> kütük-no, kütük tanııı <,kayıt boyu)

amaçl

Yerine OUTPUT verilirse, kütüğün sıralı erisiil i cıkıs kütüğü olarak açılacağını belirtir. INPUT, sıralı erisieli giriş kütüğü olarak acıtacağını belirtir. APPEND ise, sona yeni kayıt ıkleıek için sıralı erisiıli cıkıs kütüğü olarak acıtacağını belirtir ve açılır acılıaz kütük sonundan itibaren isleı yapıayı sağlar. Aıacl belirtilıez ise kütük rasgele erisiı için açılır.

amaç 2

Yerine 0 , I veya ft ile başlayan katarlar kullanılabilir.

– 0 , kütüğün sıralı erisiıli cıkıs kütüğü olarak açılacağını,

– I , kütüğün sıralı erisiıli giriş kütüğü olarak acılacağını,

– R , kütüğün rasgele erisiı için giriş ve cıkıı kütüğü olarak acılacağını belirtir.

kütük-no

Kütüklere açılırken verilen nuıaralardır. Kütük düzenim deyişlerinin hangi kütüğe ait olduğunu belirleıeye yarar. Değeri, bir ile o lehçede açılabilecek kütük sayısı arasında değişir. Bir taısayı ifade olabilir.

kayıt boyu

Kayıtın boyunu belirten taısayı veya taısayı ifade de olabilir. Sıralı erisiıli acılan kütüklerde <LEN=> ve kayıt boyu seçmekleri kullaoılıaz. Sıralı erisiıli kütüklerde kayıt boyu için önseçenek 128 bayttır. Sistesin sağladığı iıkanlarla değiştirilebilir.

Aeıktaıalar

Prograa içinde kullanılıak istenen her kütük imce OPEN deyiıi ile acılıak zorundadır. Bir kiitük aynı anda, farklı kütük nuıaraları verilerek sıralı erisiıli giriş kütüğü olarak kapanıadan tekrar açılabilir. Ancak sıralı erisiıli cıkıs kütükleri (veya APPEMD ile acılııs kütükler) kapamadan giriş kütüğü alarak acılaıaz. Kütük tanııı verilirken aygıt tanın verilıez ise istetil sisteıi kendi önseceneğini kullanır. Veri kütüklerinde genellikle “.DAT* belirteci kullanılır.

Dlıiliı Örnekleri

SO OPEN “VERİ” FM OUTPUI M 11 ‘VERİ,DAT hutüflünü liralı ariılali çıkıl

kütüğü olarak «cır,

50 OPEN ‘Oa , II , ‘VERİ” ‘Yukarıdakinin ikinci diziliıidir.

70 OPEN “VERİ” FOR INPUT AB «2 ‘VERİ.DAT kütüğünü sıralı »riıialı giril

kütüğü olarak acır.

70 OPEN ‘I* , »2 , “VERİ* ‘Yukarıdakinin ikinci diziliıidir.

90 OPEN *Aî\ALTIWER1.DAT* FOR INPUT AS II ‘A disket sürücüsünde ALTI klavutundal VERİ.DAT kütüğünü sıralı erisiıli giriş kütüğü olarak acaı 90 OPEN T , ti ,’AAALT1SVERJ.DAT’ ‘Yukarıdakinin ikinci diziliıidir.

100 OPEN *CAS1:STQK.DAT’ FOR OUTPUT AS 12 ‘Kasetteki STOK.OAT kütüğünü sıralı

erisiıli cıkıs kütüğü olarak acır.

İOO OPEN *0’ , 12 , “CAS1ıSTOK.DAT1 ‘Yukarıdakinin ikinci diziliıidir.

200 OPEN “VERİ* AS fi LEN*256 ‘VERİ .DAT kütüğünü rasgele erisiı için

acar Kütük-no*!, kayıt boyu*256 dır. 200 OPEN “R” , 1 , ‘VERİ* , 236 ‘Yukarıdakinin ikinci diziliıidir.

250 OPEN *AıVERİ* AS 12 ‘A disket sürücüsündeki VERİ.DAT

kütüğünü rasgele erisiı için acar. Kütük-noa2 dir, Kayıt boyu olarak sistesin önseçeneğini kabul eder.

250 OPEN aRa , 12 , ‘VERİ1 ‘Yukarıdakinin ikinci diziliıidir.

Lehçeler

BNBASIC

Sıralı erisiı icın kayıt boyu önseceneği (128 bayt) “/I” ve a/Ra koıutları değiştirilebilir. Kütük-no 1-255 arasında değişir.

BASICA

Sıralı erisie için kayıt boyu ünseceneği (128 bayt) ‘/S:* koıutu değiştirilebilir. Kütük-no önseceneği (3 kütük) a/F:’ koıutu ile değistirilebi! Rasgele erisiı için kayıt boyu 1-32767 arasın da değişir.

A-BASIC

Kütük-no 1-15 arasında değişir. Sıralı erisiı için kayıt boyu önseceneği (128 bı ‘/S:’ koıutu ile değiştirilebilir. Rasgele erijie için kayıt boyu 1-32767 araş değişir.
HSK
Bu lehçede ikinci diziiiı kullanılıaz. Kütük tanın için aygıt tanıtları anı verilıistir s

CASı Kaset teyp

CRT: CRT ekran

BRPî Grafik ekranı

LPTı Yazıcı

Bu lehçede <LEH*k»yıt boyu) »etmeğinde “LEH*” fcuU«nı)a*d«n doğrudan kayıt boyu yınlır.

CPC-464,M28

Bu lehçelerde ÖPENİN ve OPENOUT deyiıleri kullanılır.

ÖPENİN ‘kütük isai*

OPENOUT “kütük isei*

Dizilisinde kullanılırlar. ÖPENİN diskteki bir kütüğü giril kütüğü olarak açar. Açılan kütük bir ASCII kütüğü olsalıdır. OPENOUT diskte bir cıkıs kütüğü için yer acar.

(H4,128

OPEM kütük-no,aygıt-no <,ikinci adres-no)

<,’kütük isai,kütük tipi,aaac’>

Kütük-no 1-255 arasında değilir. Aygıt-no için, 0 klavyeyi, i kaset teypi, 5 ekranı,

4-7 yazıcıları, 8-11 disk sürücülerini tanışlar. Kütük-no ve aygıt-no için aynı numaraların kullanıl«ası karışıklığı önler (Kaynak-5). <ikinci adres-no) seçeneğinde kaset teyp dikkate alındığı zasan 0 giriş (okusa) illetini, i çıkıı (yazsa) i sİ esini, 2 EMHJF-TAPE (bant sonu) işaretli çıktı kütüğünü belirtir. Disk dikkate alındığı zasan nuaara kanal nusarasmı belirtir. Yazıcı dikkate alındığı zasan yazıcının fonksiyonlarından birini belirtir. <kütük tipi) PR08RAH, SEÖUENTIAL, RELATIVE ve USER seçeneklerini belirtir. <aaac> READ (girişi ve VRITE (çıkış) seçeneklerinden birini belirtir.

25 OPEN 9,9,12,’DENENE,SEQ,NRITE’

Örneği diskte nuaarası 9 olan sıralı erisiali bir kütük için yer acar. İsti DENENE olan bu kütüğün Adres Kanal-No 12 dir.

DOPEN t kütük-no,’kütük isai <,<tip)>* (,<L kayıt boyu)

<f0 sürScâ-flo>«ON,>(J aygıt-noX,N>

Diziliai C-128 de kullanılır. <tip) için S (sıralı erisiali kütük) ve P (prograa kütüğü) seçenekleri kullanılır. <N> seçeneği çıktı kütüğünü gösterir. Kullanılaazsa giril kütüğünü belirtir. C-128 de sıralı erisiali kütüğün sonuna kayıt ekleaek için APPEND deyiai kullanılır.

APPEND Ikütük-no, ‘kütük isai* <,D sürücü-no) «0N,)U aygıt-no)

Dizilisinde kullanılır.

ATARİ-BOOKL

OPEN I kütük-no, anaç, o, ‘kütük tanısı’

Dizilisinde kullanılır. <Aaaç> seçenekleri aşağıda veriiaistir.

J1_1§LEN_

4 Okuaa işlea (giriş)

8 Yazsa islesi (cıkıs)

12 Süncellestirse (giris/cıkıs)

9 Sona yazsa işleai

BUSINESS BASIC

OPEN Ic , ‘kütük issi’

Diziliainde kullanılır. <c) seçeneği kanal nusarasmı belirtir.

CL.PSK D«yimi

ftîüL

Bir kütüğün kulUnıı» kapatılanını »«(Ur.

Dizili»

CLOSE <<#> kütük-no <,<#> kütük-no> …>

kütük-no

Kütüğe açılırken OPEN deyisi ile verilen nuaaradır.

Acıklaaalar

Sıralı erisia için acılan kütükler, CLOSE deyiai ile kapatıldığı zaaan kayıt «ı belleğindeki son bilgiler kütüğe yazılır. SYSTEH, CLEAR, EKD deyişleri ve NEN, RUH, RESİ koautları tüa acık kütükleri kaptırlar. R seçeneği ile kullanılan RUH koautu aç kütükleri kapataaz.

Dizilia Orneâi ı

i00 CLOSE 11,13 *1 ve 3 nuaaralı kütükleri kapatır.

110 CLOSE ‘Daha ünce açılaıs tüa kütükleri kapatır.

Lehçeler

CPC-464,6128

CLOSEIN, CLOSEOUT deyialeri kullanılır. Diskteki giriş veya cıkıs kütükleri kapatırlar.

C-64,128

<CLGSE kütük-no> diziliainde kullanılır. Nuaarası verilen kütüğü kapatır. DCLC deyiai ile disk kütüklerini kapatır (C-128).

i_OG Fonksiyonu ftaaç

En son erişilen kayıtın kayıt nuaarasını verir.

Dizilia

deği sken=LOC(kütük-no)

Acıklaaalar

Rasgele erisiali kütüklerde LOC en son okunan veya yazılan kayıtın nuaarasını verir. Sıralı erisiali kütüklerde ise bastan itibaren kacıncı kayıtta olduğunu verir.

Dizilia Ornefii »

500 IF L0C<3) >= İOOO THEN STOP ’1000. kayıta gelince veya gecince

prograa duracaktır.

Lehçeler 6N8ASIC, BASICA

Sıralı erisiali kütüklerde kayıt boyunu 128 bayt kabul ederek kayıt nuaarasını ver APPEND veya OUTPUT olarak acılaıs kütüklerde kütüğün (bayt/128) olarak bo^ verir.

LOF Forık»! yönıj
£

irtllvn kütüjün bayt olarak boyunu verir.

İli»

d»Oİ9k«nnLOF(kütük-no) klaaalar

ic’in yarattığı kütüklerde kütük boyunu, önsecenekteki kayıt boyunun katları olarak ir.

İli» Orneâi :

500 IF KN * KB > LDF (1) THEN PRINT ■KÜTÜK SONU* sSTOP

»yit No * Kayıt Boyu) değeri kütük sonunu geçerse aesaj verir ve durur.

10 OPEN “STOK.DAT* AS «1

24 SK=LÖF<11/128 30 SET tl,SK

ıckte L0F(1)/128 ifadesi ile kütüğün sim kayıtının nuaarası belirlenir. SET deyiai ile ıı kayıta erişilir.

.3.5 SIRALI ERİŞİM DEY1MLLER1

bölüade EOF, PRINTt, PRINTI USING, NRITEİ, INPüTt, LINE INPUT# ve INPUT* sıraalı erişi» yi»leri anlatılaıstır.

EOF7 Fonksiyonu

tüflün sonuna gelinip gelinaediğini belirtir, ıllia

değisken=EOF< kütük-no) ıklaaalar

tük-no , OPEN deyiai ile açılırken kütüğe verilen nuaaradır.

Kütük sonuna gelinais ise EOF(kütük-no) a-l verir.

Kütük sonuna gelinaeais ise EOF(kütük-no) 3 0 verir.

ralı erisiali kütüklerde kütük sonu kontrolü için kullanılır.

PUHU ttrntii

10 OPEN “VERİ.DAT* FOR INPUT Al 13 ‘3 nolu kütüğü liralı »riıiıli girl* kütüğü

olarak »çır.

20 FOR I* 1 TO 1000

30 IF EOF(3) THEN CLOSE iEND ‘Kütük »onuna galinsis ita kütük kapanır v» prograa

durur.

40 INPUTI3, A, B, C 50 NRITE A,B,C 60 HEİJ I

Sıralı erisiali kütüklerde bu şekilde kullanılırsa kütük sonu hata aesajı önlenais olur.

Lehçeler

CPC-464,6128

EOF dizilisinde Kütük-no’suz kullanılır.

PRINT# v® PR I |n| T 4* USING Deyi mİ «®r~ ±

Asat

Sralı erisia için açılaıs bir kütüğe veri yazdıraak için kullanılır.

Dizilia

PRINT # kütük-no, ifadeler <}><,>

PRINT # kütük-no, USINB format;ifadeler

format

PRINT USIN6 deyiainde anlatılan tüa forsat karakterleri bu deyi» için de geçerlidir.

ifadeler

Kütüğe yazılaak istenen sayısal veya karakter ifadeleridir. İfadeler veya değişkenler birbirinden virgül veya noktalı virgül ile ayrılır. Katarlar çift tırnak içine alınırlar. Çeşitli uygulaaalan dizilia örnekleri ile aşağıda anlatılaıstır. Ayıraç olarak <,> kullanılırsa kütükte bilgiler arasında boşluklar bulunur.

Diziliş Örnekleri s

500 At*”ANKARA,HAYRANA*

510 Bts*İSTANBUL* sLET C«**IZfllR* sLET KNZ*565

520 PRINTI1, B$, SNX

t

a

Kütükteki görüntü {İSTANBUL_565

Ayıraç olarak virgül kullanıldığı zasan sayısal değer önünde gereksiz bosluk bulunacaktır. Virgül yerine noktalı virgül kullanılsalıdır. t

520 PRINT *1, B*iCf;KNl «

Kütükteki Görüntü ıISTANBULHHIR 565

Karakter değişkenleri noktalı virgül ile birbirinden ayrıldığı zasan kütükteki bilgilar

ııında boıluk veyı ayıraç olu*. Bunu sağlııık için kıtın, karıktır değişkinleri ııındı kullUnılıalıdır. ı

520 PRINT «1, B«J YlC*) Y)KNX ı

kökteki Görüntü tISTftNBÜL.I2HIR. 565 ı

520 PRINT II, A*j’,*jB*

s

tüktıki Görüntü »ANKARA.HAYHANA.İSTANBUL

landaki »ekiİde kütüğe yazılan bilgiler sonradan INPUT ti, Af, Bf diziliıi ile ıtulursı

AI»’ANKARA* B***HAYHANA’ ıcıktır, gerçekte A$s’ANKARA,HAYRANA* dır. İçinde virgül veya bosluk gibi ayıraçlar lunduran katarlar kütükte birbirinden çift tırnak ile ayrılaalıdır. t

520 PRINT 11, CHR*(34)}A*jCHW(34)}CHRt<34)}B*iCHR*<î4) ı

ükteki Böruntü ı’ANKARA.HAYHANA” İSTANBUL*

:üğe bu sekli ile yazıldığı zaaan INPUT 11 , A*,W diziliai do§ru değerleri okuyacaktır.

:8ğe bilgi yazdırırken üstteki gibi problealerle karsılasaaaak için HRITE I deyiainin lınılaası tavsiye edilir.

t

520 PRINT tifUSIN6*tt#tH.ttTL,*;J(;YjZ ı

iliai ile PRINT t USING deyi genellikle yazıcı kütüklerinde kullanılır.

£İİİL

UCA

PRINT t deyiai rasgele erisia için acılan kütüklerde de kullanılabilir.(Kaynak-4) “464,6128

PRINT <1 aygıt-noXifadelerXj>

PRINT <i aygıt-noX;XUSIN6 foraat <;><,> ifadeler)

<taygıt-no> kullanılaazsa ekran kabul edilir. 10 değişik aygıt tanısı vardır. 0-7 ekranı, 8 yazıcıyı, 9 diski belirtir.

MRITE 4* Deyi mi

l

ılı erisia için açılsıs bir kütüğe veri yazdırsak için kullanılır.

LÜI

WRITE # kütük-no. ifadeler

A» h lanlar,

Kütük-no vı ifadılırin mklaaalan öncıkilırin aynısıdır. NRİTEI dıyiai , PRÎNTI deyişindin farklıdır. KAtlğı yazarken dığırlır »nun» virgül koyar. KatarUrı çift tırnak içindi yazar.

Örnek Problıa »2.17

Aşağıda sicil nuaarası sırasında düzenlenaiş, sıralı erisiali bir personel kütüğü yaratılaıstır. İnceleyiniz.

10 OPEN “PERSONEL.MT‘ FOR OUTPUT AS II ‘Sıralı erisiali çıktı kütüğü olarak

açılır.

20 INPUT “ADI*”}ADt

30 IF AD***SDN” THEN PRINT LOC(l) :CLOSE II :END

40 INPUT “S0YADIa”$SY$ ıINPUT “HAASI =”}HA

50 MRITE 11, ADI, SYI, HA

60 60T0 20

70 CLOSE il

80 EN9

Ok

RUN

ADI»? ALİ

SOYADI»? SARAÇOĞLU HAASI *? 255627 ADI*? HEHHET SOYADI*? AKHAN HAASI *? 310000 ADI»? HADİ SOYADI*? CANAN HAASI *? 180500 ADI»? SON

3

8u prograa parçasında kayıt sıra-no, sicil nuaarasıdır. Sicil nuaarası sırasında kütük yaratılacaktır. Prograa ADI yerine “SON* girilince, en son kayıtın nuaarasını ekrana yazıp duracaktır. Kayıtların kütükteki görüntüsü aşağıda verilaistir :

“ALİ*,”SARAÇOĞLU*,255627 “HEHHET”,”AKHAN”,310000 “HADİ”,”CAHAN”,IB0500

INPUT # Deyimi

A»ac

Sıralı erisia için acılaıs bir aygıt veya kütükten verileri okuaaya ve belirtilen prograa değişkenlerine ataaaya yarar.

Dizilia

INPUT # kütük-no, değişken <,deği«ken> …

I mİ ir

i nuıırıaı verilin kütüktın, verileri prograa değişkinlerinin »ıraıındı okur vı »kınlın «tır. Vırilırlı değişkinlerin tipleri aynı olıılıdır. INPUT dıyiıindı olduğu ? ilinti yazı İmi, Bir INPUTI dıyiainin okuyacağı verilir alttaki özıllikleri uhdır.

– Baıic boıluk veya ENTER dışındaki karakterleri sayının veya katarın başlangıcı kabul ıdır.

– Sayısal dığırler bosluk, ENTER veya virgül ile son bulurlar.

« Katarlar çift tırnak ile baslıyorsa cift tırnak ile bitaelidir. Katar içinde cift tırnak olaaaz.

– Katarlar cift tırnak ile baslaaıyorsa virgül, ENTER veya kayıt sonu ile son bulur.

– Kütük sonuna gelinıis ise INPUTt ile ataaa işleıi iptal edilir.

I gibi editörlerle yaratılan veri kütükleri bu kurallara uyaalıdır.

i Probleı ;2.1B

P.2.17 deki yaratılaıs PERSONEL.DAT kütüğünden sıra ile tüa kayıtları okuyup ekrana yazan prograa yazınız, ı Ttkniği ı

PERSONEL.DAT kütüğü sıralı düzenlemiştir ve sıralı erisiali olarak ASCII kodunda yırıtılııstır. Sıralı erisiali giriş kütüğü olarak acillisi gerekir. Kütük sonu EOF(I) fonksiyonu ile kontrol ettirilir, at vı Çıktısı ı

10 OPEN ‘PERSONEL.DAT’ FOR INPUT AS *1

20 IF E0F(1) THEN CLOSE lEND 30 INPUT «1, ADI, SYI, HA 40 LPRINT AD*;SPC<2) |SY*jTAB<25);

30 LPIRNT USING ,fl#l#t,.f#TL,jHA 60 60T0 20 :CLOSE *1 sEND RUN

ALI SARAÇ06LU 255,627.00TL

HEHHET AKHAN 310,000.00TL

HADİ ÇAHAN 180,500.00TL

liL A

INPUT • deyiıi rasgele erisiı için acılan kütüklerde de kullanılabilir. Ayrıntılı bilgi için Kaynak-4’e bakınız.

LINE INPUT# Daeyi m±
ı erisiıli olarak acılııs bir kütükten bütün bir kayıtı okuyabiltek için kullanılır, içindeki ayıraçları dikkate alıaz. En fazla 255 karaktere kadir okur, belirtilin kını ıtar.
‘Sıralı erisiıli giriş kütüğü olarak açılır.

‘Kütük sonu kontrolü.

‘Prograa değişkenleri kütükten okunur. ‘Yazıcıya yazdırılır.

punt»

LINE INPUT# kütük-no, karakter deŞivkaml

karakter de0i»keni Kütükten okunan kayıtın atanacağı kırıktır değişkeninin inidir. Bir dizi eleaanı da olabilir.

Acıkla»alar

Satırın ununda, satır sonu karakteri (ENTER veya RETURN) varsa oda katarın bir parçası olarak değişkene atının LINE INPUT# deyisi, kayıtları göreli bilgi alanlarına veya etiketli bilgi alanlarına bölüneüs kütükleri okurken cok yararlı olur.

Dizili» Crneai

10 OPEN 11 ADRES.DAT’ FOR INPUT AS «1 20 IF EfiF(i) THEN CLOSE iEND 30 LINE INPUT II, SATIRI 40 PRINT SATIRI 50 SOTO 20 RUN

MERCİMEK S0K.«1/5*ASA81 AYRANCI*6420*ANKARA

3

Örnekte bir kayıt, sokak, nuıara, seat, posta kodu ve sebir gibi bilgi alanlarına bölÛMÛstâr. LINE INPUT I deyiai ile tüaü bir defada okunduktan sonra progra» içinde ayrılabilirler. 2.5.5.İ de örnek veril»istir.

Lehçeler

BASICA

LINE INPUT I deyisi rasgele erişi» için acılan kütüklerde de kullanılabilir. (Kaynak-4)

I M PLİ T ♦ Fonksiyonu

Aaac

Kütük nuaarası verilen kütükten veya klavyeden , n karakterlik bir katar okuyup belirtilen değişkene ataaak için kullanılır.

Dizilia

karakter değişkeni“INPUT*<n)

karakter deği«keni”INPUT*(n,<#>kütük-no>

n

Kütükten veya klavyeden okunacak katarın karakter sayısıdır.

Açıklasalar

Birinci diziiiade klavyeden n karakter girilince belirtilen karakter değişkenine atanır, n karakter girilince ENTER’a gerek kalaadan prograa calısaaya devaa eder. öirilen katır ekrında görüntülen»»*.

ikinci dirilildi belirtilin kütllktın n kırıktır okunur vı dı|iıkını »tınır, t

900 PRINT “Evat için E ya hayır için H yt batınız *

310 B«*INPUT«(1)

320 IF THEM 60T0 1000

330 IF Bt«*E* THEN SOSUB 2000 ELSE 60T8 500 t

örnekte görüldüğü gibi HENü’lû prograalarda sıkça kullanılır. İstenen katar, girilir girilaez prograa devaa eder.

t

700 i$=INPUT$(4,#2) *2 nuaaralı kütükten 4 karakter okunur ve XI değişkenine atanır. 710 PRINT XI i

örnekteki gibi, kütük içindeki değilken veya bilgi alanlarına dikkat etaeden ilk 4 karakteri okunarak üzerinde islet yapılabilir.

2.3.3.1 ADRES TAKIP PROGRAMI
Bir aümıillik büroaunda calıııaktaıınız. Büroda iöıterilerin »dr«ılırini takip »diyor«unuz. Yani «Sıtır 1 »drıılırinl do«y«y« illerken zaun zaatn d» aüıterilerin tüattnı veya bazı lehirdikilire «üMiilli oldurunuz firıaların kataloglarını göndıriyorıunuz.

Büroya tek disket türücülü bir bilgisayar almaıştır. Büro şefi lizden bu iılealeri yapacak bir Basic prograaı yazaanızı ve adresleri diskette saklaaanızı kullanıcıyı kolaylık sıç laaası için prograaın aenülü olaasmı istıaektedir.

Çözün Tekniği :

1. Adresler, yeni adres geldikçe kütüğe ilave edilecek şekilde sıralı düzenlenecektir. ADRES kütüğü sıralı düzenlenaiş bir kütük olacaktır.

2. Yeni adresler sona ilave edilecek ve zaaan zaun adreslerin tûaûnün veya bazı şehirlerin listesi alınacaktır. Kayıt içinde anahtar olabilecek bir bilgi yoktur< öyleyse kütük sıralı erisiali bir kütük olacaktır.

3. Bir kayıtta Ad Soyad, Firaa tsai, Cadde veya Sokak isai, Kapı Nuaarası, Seat İsai Posta Kodu ve Şehir isai bilgi alanları bulunacaktır.

4. Kayıt içinde başlangıç noktası belli bilgi alanları kullanaak bir kayıtın boyunu col uzun tutacaktır. Göreli bilgi alanları kullanarak bir kayıtı sıralı erisia için uyguı olan 128 bayta sığdıraak aüakün olacaktır. Bos bilgi alanı yoktur. Bilgi alanlar birbirinden siagesi ile ayrılacaktır. Prograa içindeki bilgi alanları birbirinden P.2.10 daki yönteae göre ayrılacaktır.

5. Kullanıcıya kolaylık sağlamı için prograa aenilerle çalışacaktır. P.2.16 daki aenl prograaı bu prograa için hazırlanaııtır. 0 aenû prograaını kullanınız.

6. Prograa 2.16 daki eksik alt prograalarm tanıaları altta verilaistir.

<6000 satır-no)…….. ADRES KüTûöü’ne adres ilavesi yapan alt P.

<7000 satır-no) …….. ADRES KüTüfiü’nûn taa listesini veren alt P.

<8000 satır-no) …….. Bazı şehirlerin adres üstesini veren alt P.

7. Henüz ADRES.DAT kütüğü yaratılaaaıstır. önce ADRES İLAVESİ aenüsü kullanılarak eldek adreslerin tüaünün kaydedilaesi gerekecektir. 6000 satır-nolu alt prograada ADRES.DA kütüğü

OPEN *AıADRES.DAT” FDR APPEND AS «i diziliai ile açılacaktır. Ancak birden cok kayıt sona ilave edileceği zaaan kütüğü tekrar acılaası önlemelidir.

S. <7000 satır-no) alt prograamda ADRES.DAT kütüğü

OPEN “AiADRES.DAT* FOR INPUT AS II diziliai ile acılacaktır. Sıra ile her kayıt okunduktan sonra adres liıtes düzenlenecektir.

9. <8000 satır-no) alt prograaı da

OPEN ‘AiASRES.DAT* FOR INPUT AS II diziliai ile acılacaktır. Ancak önce kayıtın sonundaki şehir isai okunup, belirtili şehir isialeri ile karşılaştırıldıktan sonra listelenecektir.

10. 7000 ve 8000 satır nuaaralı alt prograalarm yazıcıdan verecekleri liste düzeni ayn olacaktır. Bu duruada yazıcıdan liste düzenleyen, 9000 satır nuaaralı alt prograı çağırabilirler.

. “II* kütik-no ila »olan A8REfl.DAT kütüğü ANA KNü ya dönü» olduğu t tam kapatılacaktır. Alt prograalarm icinda kapatılaayıcaktır. Ana prograadakl 120 nuaaralı satırın batına CLOSE II diziliai ilava adilacaktir. Tekrar kütük acaayı Unlayan kontrol değişkeni (K) kütük kapatılınca ııfırlanaalıdır,

|raa 2.16 nin tonun» bu alt prograalar kodlanırta ADRES KüTüfiü aenülü olarak anılabilen cok aaadı bir progaa olacaktır. DİN ve DEF deyialerine gerekli değişken ileri ilave edilaelidir. Aşağıda tüa alt prograalarm liste ve başlangıç satır ıralan verilaiştir.
1SH1__SATIR NO

Nenü çerçevesi 5000

Ana Nenü 5100

Adret Listesi Henüsâ 5200

Adres İlavesi Henüsü 5300

Şehir 1si aler i Nenüsü 5500
Şehir İsiıleri Henüsünü Silae 5700 Adres Kütüğüne Kayıt İlave 6000 A. Kütüğünün Taa Listesi N. 7000 A. Kütüğünden Bazı Şehirler L.fiOOO Yazıcıdan Adres Düzenleae 9000 Hüzik Alt Prograaı 9500

Prograa ve Yan Prograalar ı

100 REN Bu bir ADRES KüTüfiü aenüsü prograaıdır 110 DEFINT I,K,N ıDIN SEU30) ıKEY 0FF

120 CLOSE II »K=0 :60SUB 5000 :60SUB 5100 ‘ÇERÇEVE ve ANA HENü çağrılır. 130 REH ANA HENü’deki seçenek kontrolü 140 LOCATE 7,13,1 ıZZI*INPUTf (1)

150 IF ili **c* OR ZZ*«*C* THEN STOP ELSE

IF ZZ*= *1* THEN SOTO 500 ELSE

IF ZZ$=’2″ THEN 60SUB 5200 ELSE 60T0 140 160 REH ADRES LİSTESİ seçenek kontrolü 170 LOCATE 19,13,1 ıZZt *INPUT«<1)

160 IF ZZ*»*A* OR ZZI»*a’ THEN 60T0 120 ELSE IF ZZ*«*1* THEN 60T0 800 ELSE

IF ZZf“*2* THEN SOSUB 5500 ELSE SOTO 170 190 REH ŞEHİR ISIHLERİ aenüsü kontrolü 200 FOR I* 1 TO 6 :K=5+1*2

210 LOCATE K,40 sPRINT I sLOCATE K,42 îINPUT *-*,SE*<I)

220 IF SEKİ) =T OR SE*(I)”V THEN IK«I-1 îSOTO 900 ELSE IF SENİ)**!* THEN SOSUB 5700 : SOTO 160

230 NEXT I

240 LOCATE 18,25 iPRINT *5 ten fazla şehir yazaaazsınız. Yeniden yazaanız” 245 LOCATE 19,25 iPRINT ‘gerekiyor. Devaa etaek için herhangi tuşa basınız.*

250 ZZI-INKEYI ıIF ZZI»’* THEN 00T0 250

260 60SUB 5700 «BOBUB 5500 ıBOTO 190

500 REN ADRES İLAVESİ aenüsünttn çağrılaısı ve kontrolü

510 SOSUB 5300 ‘ADRES İLAVESİ »nüsü çağrılır.

520 COLOR 0,7 ıLOCATE 6,48 «INPUT “,XXI t IF XXI<>*’ THEN ASI«XXI ‘Ad Soyad 530 LOCATE 8,48 ıINPUT “,XII »IF XXI<>”” THEN FII*XXI ‘Firaa İMİ

540 LOCATE 10,48 jINPUT ,*,XXI sIF XXI<>” THEN CSI*XXI . ‘Cadde veya Sokak 550 LOCATE 12,48 s INPUT “,XXI s IF XXIO” THEN KW«XXI ‘Kapı No

560 LOCATE 14,48 sINPUT “,XXI sIF XXI<>” THEN SNI»XXI ‘Seet veya Hahalle

570 LOCATE 16,48 s INPUT ”,XXI s IF XXI<>”” THEN PKI*XXI ‘Posta Kodu

580 LOCATE 18,48 îINPUT *yil îIF XXI<>” THEN SII*XXI ‘Sebir isai

585 COLOR 7,0

590 REH ADRES İLAVESİ kontrolü 600 LOCATE 20,54,1 sZZI*INPUTI(l)

610 IF m * “E* OR ZZI**e* THEN SOTO 520 ELSE

IF ZZI =’h” OR ZZI=”H‘ THEN SOSUB 6000 ELSE IF ZZI*’a* OR ZZ*«’A* THEN 60T0 120 ELSE 80T0 600 620 REH ADRES İLAVESİ’ ne deva* kontrolü 630 LOCATE 22,63,1 sZZI*INPUTKl)

640 IF ZZI « ‘E’ OR ZZI=V THEN SOTO 500 ELSE

IF ZZI B*H” OR ZZIs*h” THEN 60T0 120 ELSE 60T0 630 800 REH Yazıcıdan ADRES KüTü6ü’nün TAH LİSTESİ’ni verir.

810 SOSUB 7000 sGOTO 120 ‘ADRES KüTüfiü’nün tae listesini veren ait prograaı

çağırır.

900 REH Yazıcıdan BAZI ŞEHİRLERİN listesini verir.

910 SOSUB 8000 sSOTO 120 ‘Bazı şehirlerin listesini veren alt prograaı

çağırır.

5000 REH IHHHHHItHHHHHHHHHHHHHHHIIHKHHHHHHH

5010 REH HENü ÇERÇEVESİ alt prograaı

5020 CLS sFOR 1=1 TO 24 sLOCATE 1,1 sPRINT CHRIÎ221Î?

5030 LOCATE 1,21 sPRINT CHRH219); !LOCATE 1,79 sPRINT CHRK222); :NEXT I

5040 LOCATE 12,1 sPRINT STRINBK2İ,219) ‘orta çizgi

5050 LOCATE 24,1 sPRINT STRIN6N79,219)s ‘alt çizgi

5060 COLOR 0,7 ıLOCATE i,i ‘Ters görüntü için 1,1 e gelir

5070 PRINT SPCİ34) ‘ADRES KÜTÜ6Ü” SPC<32) iCOLOR 7,0 ıRETURN

5100 REH HtHKHtHmHHHHIHIHHHKHHHHHliKMHHHMHH

5110 REH ANA HENü acıkUaaları

5120 LOCATE 2,7 iPRINT ‘ANA HENü’ ıLOCATE 4,4 sPRINT *1.ADRES İLAVESİ’

5130 LOCATE 5,4 sPRINT ‘2.ADRES LİSTESİ’ sLOCATE 6,4 sPRINT ‘Seçeneğinizi’

5140 LOCATE 7,4 sPRINT ‘Biriniz ?■ sCOLOR 0,7

5150 LOCATE 9,2 sPRINT ‘prograadan çıkaak • sLOCATE 10,2

5160 PRINT ‘için C ‘ye basınız’ sCOLOR 7,0 sRETURN

5200 REH İHHHHHHHHHHHHHHHHHHHHHIHtHHHHtHHHf

5210 REH ADRES LİSTESİ aenüsü acıklaaalan

5220 LOCATE 13,5 sPRINT ‘ADRES LİSTESİ* sLOCATE 15,4 sPRINT ‘1.TÜH LİSTE*

5230 LOCATE 16,4 sPRINT “2.BAZI ŞEHİRLERİN” sLOCATE 17,6 sPRINT “LİSTESİ”

5240 LOCATE 18,4 »PRINT “SoçiMginm” ıLOCATE 19,4 »PRINT “Birini* V »COLOR 0,7 5250 LOCATE 21,2 ıPRINT “»nı «enfiye dönaek11 sLOCATE 22,2 5260 PRINT “için A’ya basınız” iCOLOR 7,0 »RETURN 5300 REH

5310 REH ADRES İLAVESİ aenüsü «İt prograaı

5320 LOCATE 2,43 sPRINT “ADRES İLAVESİ” sCOLOR 0,7

5330 LOCATE 4,36 sPRINT “ENTER ile bilgileri giriniz” iCOLOR 7,0

5340 LOCATE 6,23 iPRINT “Adı Soyadı i”

5350 LOCATE 8,23 iPRINT “Firaa İsai s’

5360 LOCATE 10,23 -.PRINT “Cadde veya Sokak İsai s1 5370 LOCATE 12,23 iPRINT “Kapı Nuaarası i*

5380 LOCATE 14,23 iPRINT “Seat veya Hahalle İsai i”

5390 LOCATE 16,23 iPRINT “Posta Kodu i”

5400 LOCATE 18,23 iPRINT “Şehir İsai i”

5410 LOCATE 20,23 iPRINT “Adreste yanlışlık varaı(E/H/A):”

5415 LOCATE 21,23 iPRINT “(Ana aenüye dönaek için A ya basınız)”

5420 LOCATE 22,23 iPRINT “Adres ilavesine devaa edilecekai (E/H) i”

5430 COLOR 0,7 ‘Bilgi alanları ters

5440 FOR Is6 TO 18 STEP 2 ‘görüntüye göre

5450 LOCATE 1,48 iPRINT SPC(31) ‘hazırlanır.

5460 NEXT I sCOLOR 7,0 ıRETURN

5500 REH ***************************************************************

5510 REH ŞEHİR 1SHU.ERI aenüsü alt prograaı

5520 LOCATE 2,44 iPRINT “ŞEHİR ISIHLERİ” iCOLOR 0,7

5530 LOCATE 4,32 iPRINT “En fazla 5 isia giriniz ve büyük harf*

5540 LOCATE 5,32 iPRINT “kullanınız. ENTER ile giriniz. *

5550 LOCATE 18,32 iPRINT “Liste için X ‘e basınız* sLOCATE 22,24 5560 PRINT “İptal etaek veya ADRES LİSTESİ aenusüne dönaek için”

5570 LOCATE 23,24 iPRINT “t tuşuna basınız” iCOLOR 7,0

5580 FOR I* 7 TO 15 STEP 2 ‘Şehir isialerini

5590 LOCATE 1,41 iPRINT SPCU7) iNEXT I ‘ekrandan siler.

5600 LOCATE 17,22 iPRINT SPC(57) iRETURN ‘Hesajı siler.

5700 REH HIHHHHHHHMHHHHHHHHHHHHHHHHHHHHttH 5710 REN Şehir isialeri aenüsûnü S1LHEK için alt prograa 5720 FOR M TO 23 iLOCATE J,22 iPRINT SPC(57) :NEXT 3 iRETURN 6000 REH ***************************************************************

6010 REN Adres kütüğüne KAYIT İLAVE alt prograaıdır.

6020 IF K=1 THEN 60T0 6050 ‘Kütüğün tekrar acılaası önlenir.

6030 OPEN “AsADRES.DAT* FOR APPEND AS II ‘Kütük sıralı erisiali cıkıs kütüğü

açılır

6040 K=1 iY$*”**

6050 AD*=AS*+Y*+FH+YI+CSI+Y*+KN*+Y*+SRI+Yt+PK*+Y*+SI* ‘Göreli bilgi alanlı kayıt

düzenlenir

6060 PRINT 11,AD* sRETURN ‘Kütüğe kayıt yazılır.

7000 REH ***************************************************************

7010 REH Adres kütüğünün TAN LİSTESİNİ veren alt prograadır.

7020 OPEN *AıADRE8.QM* fOft INPUI M ft 7030 IF EOF(II THEN RETURN 7035 LINE INPUT «1,AD*

7040 L4.ENIAD*)

Nİ N2 N3 N4
Kütük liralı eri*i«li kütük olırık içilir ‘Bir kayıt okunur

‘Adres katarının boyu (kayıt boyu) bulunur N5 N6
AS* t FI* « CS* « KN* « SN* « PK* « SI*
7050 Nl*INSTR(ADt,’«’) îAS*sNID*(AD*,1,N1-1) ‘Ad Soyad belirlenir.

7060 N2sINSTR(Nl*i,AD*,*t’) !FI*=HID*(AD*,N1+İ,N2-N1-1) ‘Firaa İsai belirlenir. 7070 N3*INSTR<N2+l,AD*,’**) 8CS*«HID*(AD*,N2+l,N3-N2-l) ‘Cadde, sokak isai

belirlenir.

7080 N4*INSTR(N3*1,AD*,*»*) :KN*»HID*(AD*,N3tl,N4-N3-l) ‘Kapı No belirlenir 7090 N5*INSTRtN4+l,ADV**) !SR*»HID*(AD*,N4+l,N5-N4-l) ‘Sevt veya Mahalle

belirlenir.

7100 N63INSTR(N5+1,AD*, ‘t*) sPK**«ID*<AD*tN5+1,«6-N5-1) ‘Posta Kodu belirlenir. 7110 SI*sHID*(AD*,N6+l,L-N6) ‘Şehir İsai belirlenir.

7120 60SUB 9000 :60TQ 7030 ‘Yazıcıdan liste düzenleyen alt prograaı çağırır. 8000 REH

8010 REH Adres kütüğünden BAZI ŞEHİRLER LİSTESİ’ ni veren alt prograadır.

8020 OPEN ‘AsADRES.DAT* FOR INPUT AS <1 ‘Sıralı erisiali giriş kütüğü açılır 8030 IF EOF(1) THEN RETURN

8035 LINE INPUT «1,AD* Bir kayıt okunur

8040 N1*INSTR(1,ADV«’J iN2*INSTR(Nl+l,ADf,’*’) sN3*INSTR<N2+l,AD*,*»*)

8050 N4»INSTR(N3+l,AD*,*f) ıN5=INSTR(N4+l,AD*,*«*) :N6»INSTR(N5+i,AD*,**’)

8055 L=LEN(AD<)

8060 SI**HID*(AD*,N6+1,L-N6) ‘Şehir isai belirlenir.

8070 FOR I« i TO IK

8080 IF SI*sSEI(I) THEN 60TD 8100

8090 NEXT I : 60T0 8030

8100 AS**H1D*(AD*,1,NI-1) tFI*«HID*(AD*,Nl+i,N2-Nl-l)

8110 CS**HID*(AD*,N2+1,N3-N2-1) îKH*-HIS*<AD*,H3+1fN4-N3-1)

8120 SH*=HlD*(AD*fN4+l,N5-N4-l> :PK*»H1D*(AD*,N5+1,N6-N5-1)

8130 SOSUB 9000 sGOTO 8030 9000 REH

9010 REH YAZICIDAN ADRES DüZENLENE alt prograaı 9020 B0*=SPACE*(10) ıLPRİNT B0*| STRIN8*(50,a-a)

9030 LPRINT B0*jAS* sLPRINT B0*)FI* ıLPRİNT B0*}CS*|*,*|

9040 LPRINT SPC(l) *N0ıajKN*»Vj sLPRINT BPC(1)}8H* ıLPRİNT BD*fPK*>\*j 9050 LPRINT SPC(2); SI*; ‘-TÜRKİYE* iRETURN 9500 REH

9510 REN HüZIK alt prograaı

9520 SOUND 800,4 sSOUND 32767,1

9530 SOUND 1000,2 ıSOUND 1180,3 ıRETURN

«rii SflVE “AıADUSTılAS* diziliai ili A lörücûıünd.kl dükette ııklınu. ItUN “AıADLIBT.IAB”
nmı SEÇMELER TPAO ARASTIHHA MERKEZİ MÜDAFAA CAD., NQı22 KIZILAY 06420, ANKARA-TURKEY
KAHRAMAN BAPCUN T0FA8

KARANFİL SOK., NOı123 YENİMAHALLE 06350, ANKARA-TURKEY >

IES.DAT kütüğü ve ADLIST.BAS Basic prograaı kaset teypte saklantı s ise ‘CASlsADRES.DAT’ *CA8lıADLISI.BAS* kütük Unı«lan kullanılacaktır.

Verilen kolon sıyın kidir tota oynayın bir Basic progra»! yazınız. 1, 0 ve 2 nin gercefelesae ihtiaıUeri *ıit oleayacıktır. Birin, sıfırın ve ikinin gercekleıee ihtilallerinin yüzd» olarak verileceği düşünülerek düzenlenecektir.

Çözüe Tekniği :

1. P-1.25 te i, 0 ve 2 nin ihtilalleri esit düşünülerek bir TOTO prograaı hazırlanmıştı.

0, 1 ve 2 değerleri rasgele elde edilebiliyordu. Bu prograada 9, 1 ve 2 nin ihtilalleri farklıdır, öyleyse Basic’in kullandığı rasgele sayılar dizisini bu aaac için doğrudan kuilanaaayız. 1, 0 ve 2 nin değişik dağıl ıslarını bulunduran diziler gereksektedir. örneğin S10 bir, X20 sıfır ve S70 iki dağılışı için, içinde bu oranlarda i, 0 ve 2 olan dizi yarataaaız gerekliktedir. 10 eleaanlı bir dizinin içinde l adet bir 2 adet sıfır ve 7 adet iki bulunaalıdır.

2. Diziler 10 eleaanlı düşünüldüğüne göre 1,0 ve 2 nin dağılışları 210 duyarlıkta olacaktır, i, 0 ve 2 nin 110 duyarlıktaki tüa dağılıaları ve dizinin kaçıncı dizi (İHTİMAL KG) olduğu aşağıdaki tabloda verilaistir.
IHI İMALLER TABLO 3U
ihtisal 1 0 2 Ihtiaal 1 0 2 İhtisal 1 0 2
No No No
1 0 10 90 24 20 40 40 47 50 30 20
2 0 20 BO 25 20 50 30 48 50 40 10
3 0 30 70 26 20 60 20 49 50 50 0
4 0 40 60 27 20 70 10 50 60 0 40
5 0 50 50 28 20 80 0 51 60 10 30
6 0 60 40 29 30 0 70 52 60 20 20
7 0 70 30 30 30 10 60 53 60 30 10
S 0 B0 20 31 30 20 50 54 60 40 0
9 0 90 10 32 30 30 40 55 70 0 30
10 10 0 90 33 30 40 30 56 70 10 20
13 İ0 10 80 34 30 50 20 57 70 20 10
12 10 20 70 35 30 60 10 58 70 30 0
13 10 30 60 36 30 70 0 59 80 0 20
14 10 40 50 37 40 0 60 60 80 10 10
15 10 50 40 38 40 10 50 61 80 20 0
16 İ0 60 30 39 40 20 40 62 90 0 10
17 10 70 20 40 40 30 30 63 90 10 0
18 10 BO 10 41 40 40 20 64 Banko 1
19 10 90 0 42 40 50 10 65 Banko 0
20 20 0 80 43 40 60 0 66 Banko 2
2İ 20 10 70 44 50 0 50
22 20 20 60 45 50 10 40
23 20 30 50 46 50 20 30

Tablodaki dağılın viran, içindi bılirtilın oranlarda I, 0 vı 2 bulunduran ditilir aşağıda vırilıiıtir. Dizilir A(66,10) indisli diğitkml olarak tanıtlanabilir.
Dlti Dizi Dizi

Sırı Dizi Sıra Dizi Sıra Dizi

No Elııanları_No Elaaanları_No Elaıanları
il 2,2,0,2,2,2,2,2,2,2 2ı 2,2,2,0,2,2,2,0,2,2 3ı 0,2,0,2,2,2,0,2,2,2 4: 2,2,0,2,0,2,0,2,0,2 5s 0,2,2,0,2,2,0,2,0,0 i: 0,0,2,0,2,0,2,0,2,0 7; 0,2,0,0,2,0,2,0,0,0 8ı 0,0,0,2,0,0,0,0,2,0 9* 0,0,0,0,0,2,0,0,0,0 10ı 2,2,2,2,1,2,2,2,2,2 Ilı 2,2,2,1,2,2,0,2,2,2 12: 2,2,0,2,2,0,2,1,2,2 13ı 0,2,1,2,0,2,2,2,0,2 14ı 2,2,0,2,0,2,0,1,2,0 15ı 0,0,2,t,2,0,0,2,0,2 16ı 0,2,0,0,2,2,0,1,0,0 17ı 0,0,2,0,0,0,2,0,0,1 18ı 0,2,0,0,0,0,0,0,1,0 19: 0,1,0,0,0,0,0,0,0,0 20ı 2,2,2,1,2,2,2,1,2,2 21ı 2,0,1,2,1,2,2,2,2,2 22ı 2,2,0,1,2,2,1,2,2,0
23ı 2,2,0,2,1,2,0,2,1,0 24ı 0,1,2,0,2,0,2,1,2,0 25ı 0,2,1,0,2,2,1,0,0,0 26: 1,0,0,2,0,0,2,0,0,1 27ı 0,0,1,0,2,0,0,1,0,0 28ı 0,0,0,1,0,0,1,0,0,0 29ı 1,2,2,1,2,1,2,2,2,2 30: 2,2,1,0,1,2,1,2,2,2 31ı 0,2,0,2,1,1,1,2,2,2 32ı 0,1,1,2,1,0,2,2,0,2 33ı 0,2,0,2,0,1,2,1,0,1 34ı 1,0,1,0,2,0,0,2,1,0 35: 0,0,2,1,1,0,0,0,0,1 36: 1,0,1,0,0,0,0,1,0,0 37: 1,2,1,2,1,2,2,2,2,1 38ı 2,1,2,1,0,1,2,1,2,2 39: 2,2,0,1,1,2,1,0,1,2 40: 1,1,2,0,1,0,2,1,0,2 41ı 0,1,2,1,0,2,1,0,1,0 42: 0,1,1,0,1,0,2,1,0,0 43: 1,0,0,1,0,1,0,1,0,0 44ı 1,2,1,2,1,1,2,2,2,1
45ı 2,1,1,2,1,1,2,1,2,0 46ı 0,1,2,1,1,1,2,0,2,1 47: 0,2,1,1,1,0,2,1,1,0 48: 2,0,1,1,1,0,1,0,0,1 49: 1,1,0,0,1,0,0,0,1,1 50: 1,1,1,2,1,2,2,1,2,1 51: 1,1,2,0,1,1,1,2,1,2 52: 0,1,1,1,2,1,1,2,1,0 53ı 0,1,1,1,2,1,1,0,1,0 54ı 1,1,0,1,0,1,1,0,0,1 55ı 1,2,1,2,1,2,1,1,1,1 56: 2,1,1,2,1,0,1,1,1,1 57: 1,1,1,0,1,0,1,2,1,1 58: 0,1,1,1,0,1,1,0,1,1 59: 1,1,1,2,1,1,2,1,1,1 60: 1,0,1,2,1,1,1,1,1,1 61: 0,1,1,1,1,1,0,1,1,1 62: 1,1,1,1,1,2,1,1,1,1 63ı 1,1,1,1,0,1,1,1,1,1 64ı 1,1,1,1,1,1,1,1,1,1 65: 0,0,0,0,0,0,0,0,0,0 66: 2,2,2,2,2,2,2,2,2,2
Tablodaki ihtilal no ili DİZİ SIRA NO aynı anlaıdadır. Yukarıdaki diziler 66 kayıtlı ve içinde 10 adıt bilgi alanı bulunan sıralı dizınlınıiı bir kütüktür. Hır aac için düıünülm 1HT1HAL ND aynı zaıanda da kütük kayıt sıra nuıarasıdır. Hır ıac için verilecek ihtilal nuıarası ekrandan girilirse onunla ilgili dizi elde edilebilir.

A(66,10) dizisindeki hır bir satır, bir kayıt olduğuna göre 66 kayıtlı IHTINAL.DAT veri kütüğü ekran editörleri kullanılarak veya aşağıdaki prograı ili yaratılır. Kütük, sıralı erisiıli çıkı» kütüğü olarak açılır.

10 DEFINT A

20 OPEN ‘IHTINAL.DAT’ FOR OUTPUT AS «1 30 FOR I- 1 TO 66

40 INPUT ‘İhtilal Dağılım t’ ; A1,A2,A3,A4,A5,A6,A7,A8,A9,Aİ0 50 KRITE II, A1,A2,A3,A4,A5,A6,A7,A8,A9,A10 60 NEXT I ıCLOSE II RUH

İhtilal Dağılın : 2,2,0,2,2,2,2,2,2,2 İhtilal Dağılııı ı 2,2,2,0,2,2,2,0,2,2 İhtilal Dağılın ı

5. T0T0.8AS prograaı İNTİHAL.DM vari kfltlğilnl liralı trlılali giril kütüflû uları* «cacıktır. Kdtüğ» ııra ila A(66,1Q) dizisin» okuyacaktır. Ekrandan girİlıcak İHTİMAL NO, AU,J) dizilinin I ili güıtırilın birinci İndiıi olacaktır.

6. 16 aaç için ayrı ayrı İHTİMAL NO olduğuna göre, IH(16» dizili har aaçın ihtiaıllar dizisi olacaktır. Yani her bir eleaanı A(I,J) dizisinin birinci indisini verecektir.

7. Y * 1NT (RND*10+İ> diziliai, 1 ile 10 arasında rasgele sayılar üretecektir. Y değeri de A(I,vJ) dizisinin ikinci indisi yani J olacaktır. Böylece A(IH Uhtiaal No), Yİ dizi eleaanı i, 0 veya 2 değerini verecektir. 16 aac için bu itlea tekrarlanınca biı kolon toto elde edilecektir.

S. Kac kolon toto isteniyorsa isle* o kadar tekrarlanacaktır. Oynanan tüa kplonlaı Ttl6,300) dizisinde saklanacaktır. Prograa her yeni kolonu, T(I6,300) dizişindik: kolonlarla 13. aaca kadar karşılaştıracaktır. Birbirinin aynısı kolon alda adilaiı ise yeni kolon iptal edilecek ve baıka bir kolon elde edilecektir. Aynı kolon eldi edildiği zaaan, bir sayaç ile saydırılacaktır. Aynı kolon Bayisinin artaaıı 13 aa< için verilen dağılıaın doyaa derecesini gösterecektir.

9. Prograa aıağıdaki aenüyü ekrana verecek ve veriler bu aenüden girilecek «ekildi düzenlenecektir.
toto probrahi m

Totonuzun ihtiaal nuaaralarını, ihtiaall»r tablosundan saçarak giriniz
1.flac th. No:

2.Hac İh. Noı

3.Hac İh. Noı

4.Hac İh. No:

5.Hac İh. Not

6.Hac İh. Noı

7.Hac İh. Noı

8.Hac İh. No:
9.Hac İh. No:

10.Hac İh. No:

11.Hac İh. No:

12.Hac İh. No:

13.Hac İh. Noı

14.Hac İh. No:

15.Hac İh. No:

16.Hac İh. Noı
İstediğiniz kolon sayısı ı ***********************************************************

Siadiki kolon : AYNİ KOLON SAYISI :
Kolon sayısı artacak aı (E/H): Kolon sayısı kaca çıkacak:

KAC KOPYA LİSTE İSTİYORSUNUZ i
Sekil-16 Toto Prograaı Menüsü

Prograa çalııırkan amfinin alt bölllıllnd», oynadığı »on kolonu y» kac adat aynı kolon cakiliıi yaptığını yazıcıktır. Oynanın kolon »iyin yatar 11 dağil iıa çekili»» davaa edecektir. Uıva kac kolon oynınıcak iıa o girilecektir. En »onunda yancıdan iatanan kopya adedi aorulacaktır. 23 ar kolonluk guruplar halinde Liıtalanacaktir.

’ia ı

10 0PT10N BASE 1 ıDEFINT A-Z 15 DİN ,1(16,300) ,IHÜA) s60SUB 1000

20 OPEN •IHTIHAL.DAT- FOR INPUT AS «1

25 K»1

30 IF EOF(1) THEN CLOSE «1 tSOTO 80 40 INPUT <llAllA2lA3fA4,A5,AilA7,A&,A9lAİ0 50 A(K,1)=A1 :A(K,2)«A2 ıA(K,3)«A3 ıA(K,4)=A4 :A(K,5)*A5 60 A(K,6)*A6 sAtK,7)*A7 :ft(K,8)=A8 sA(K,9)*A9 »A(K,10)»A10 70 K»K+1 160T0 30 80 FOR I>1 TO 8

90 LOCATE 5+1,28,1 ıINPUT “,XXI sIF XXI O ** THEN IH(I)»VAL(XXI) ‘thtiaal nuaaraları

‘giriliyor.

95 IF IH(I) >0 THEN 60T0 90 ELSE NEXT I 100 FOR 1*9 TO 16

110 LOCATE 1-3,47,1 ıINPUT “,XXI ıIF XXt<>” THEN IH(I)«VAL(XXI)

115 IF IH<I)«0 THEN 6010 110 ELSE NEXT I 120 EKS-1 ıLOCATE 15,40,1 ıINPUT “,KS 130 FOR I« EKS TO KS 140 LOCATE 17,29 iPRINT I 145 XX-VAL(TIHEI) ıRAMKMIZE XX 130 REN 1 kolon toto oynuyor.

160 FOR HS>1 TO 16 170 XX«VAL(TIHEI> ıRAMKMIZE XX 180 Y-INT (RNDMO+l) :IHHS=IH<«S)

190 T(H8,I)“A(IHHS,Y) ıNEXT NS 200 IF I>1 THEN 60T0 320 210 REN Aynı kolon araaa bölüaü,

220 FOR KA*I TO 1-1 230 FOR HS-1 TO 13

240 IF T(NS,KA) O T(HS,II THEN 60T0 260 230 NEXT NS

260 REH Aynı kolon bulundu I yı bir daha oynatın 270 AYNI*AYNI+1 «GOTO 150 ‘Aynı kolon sayacı artırılıyor.

280 NEXT KA

290 IF AYNI «0 OR AYNI=EAYNI THEN SOTO 320 ‘Aynı kolonda değişiklik yok.

300 LOCATE 17,54 sPRINT AYNI 310 EAYNI »AYNI 320 NEXT I
“Rasgele sayılar diziaini yeniden sıralıyor, ‘ihtisal indeksi bulunuyor.

‘Bir değerlendirme elde »diliyor.

‘1. kolonda kar$ıla*tıraa önleniyor.

‘Liste kopya sayısı giriliyor.
‘Hac nuıaraları yazılır. ‘Bir satıra 25 kolon yazar.

‘Araya bos satır yazar. *6urup kontrolü.
325 LOCATE 19,49,1

330 ZÎMNPUTK1) i IF ZZM*a TÜN NTO 330 ‘Evet Hayır kontrolü.

340 IF ZZt-‘h” OR ZZt-‘H* THCN NTO 370 EL8E

IF ZZf-‘I’ OR llt*’*’ THEN B0T0 350 ELBE B0T0 330 350 EKS”K8+1 ıLOCATE 20,42 ıINPUT “\KB ‘Artacak kolon sayısı giriliyor.

360 60T0 130

370 REN Toto listelen bölüaü.

3B0 LOCATE 21,45 ıINPUT a*,LS 390 FOR LL»1 TO LS ıKK»l 400 FOR J«1 TO 16 : II*=J 410 LPRINT USIN6 ‘«.Hs’jII}

420 FOR K*KK TO KK+24 430 LPRINT T(J,K);

440 NEXT K,J ıLPRİNT

450 IF (KK+25) < KS THEN KMK+25 16OTO 400 460 NEXT LL ıSTOP 1000 REN

1010 REN TOTO HENüSü alt prograaı

1020 CL8 ı FOR 1*1 TO 24 ıLOCATE 1,10 iPRINT CHR*(221)j

1030 LOCATE 1,70 iPRINT CHRK222) sNEKT I ‘Dikey kenarlar

1040 LOCATE 1,10 sCOLOR 0,7 sPRINT SPC<23) “TOTO PR06RAHI’ SPC(24) tCOLOR 7,0

1050 LOCATE 23,10 sPRINT STRIK6t<61,219) ‘Yatay kenarlar.

1060 REH Nenü acıklaeaları.

1070 LOCATE 3,14 iPRINT “Totonuzun ihtilal nuıar al arını, ihtilaller11 İOBO LOCATE 4,14 iPRINT ‘tablosundan seçerek giriniz*

1090 LOCATE 6,14 iPRINT M.Haç Ih. Noı* sLOCATE 6,32 sPRINT * 9.Hac İh. Nos*

1100 LOCATE 7,14 sPRINT ‘2.Hac İh. Noı* sLOCATE 7,32 sPRINT *10.Hac Ih. Nos’

1110 LOCATE 8,14 sPRINT *3.Haç İh. Nos’ sLOCATE 8,32 sPRINT ‘U.Hac İh. Nos*

1120 LOCATE 9,14 sPRINT ‘4.Hac Ih. Nos’ sLOCATE 9,32 iPRINT ’12.Hac İh. Nos’

1130 LOCATE 10,14 sPRINT ‘5.Hac İh. Nos’ sLOCATE 10,32 sPRINT *13.Hac İh. Nos’

1140 LOCATE 11,14 sPRINT *6.Hac Ih. Nos* sLOCATE 11,32 sPRINT *14.Naç İh. Nos*

1150 LOCATE 12,14 sPRINT *7.Hac İh. Noı* sLOCATE 12,32 iPRINT *15.Haç İh. Noı*

1160 LOCATE 13,14 sPRINT ‘B.Hac İh. Nos* ıLOCATE 13,32 sPRINT *16.Hac İh. Nos*

1170 LOCATE 15,14 sPRINT ‘istediğiniz kolon sayısı s’ sLOCATE 16,11 sPRINT STRINGH59 “*’}

1180 LOCATE 17,14 :PRINT ‘Siediki kolon s* sLOCATE 17,35 sPRINT ‘AYNI KOLON SAYISI s’ 1190 LOCATE 19,14 sPRINT ‘Kolon sayısı artacakıı (E/H) ı’

1200 LOCATE 20,14 sPRINT ‘Kolon sayısı kaca çıkacak:”

1210 LOCATE 21,14 sPRINT ‘KAC KOPYA LİSTE İSTİYORSUNUZ ı’

1300 RETURN Ok

SAVE “TOTO.BAS’
U.»

U.B»

U.m
• : # » » * î 9 ı ı t ı «

244442414444» l 4 l 2 1 2 2 t 2 l 2 l 2:2221222:222 4 4 * 4 4 4 4 4 4 4 4 4 «4(1444412211 IJ142140I413

1 I « 2 I • I « 2 • t • 2

2 1 4 2 2 2 2 1 2 2 1 2 2 4444244444414 #424142*42414 1(44114(11141 2 l 2 2 l 1 I 1 l I 1 1 I 2 2 1 2 2 2 1 ( 2 2 2 1 2 4241442214444 2 2 2 2 2 2 2 2 2 2 2 2 2 ta 4*

.5.6 RASGELE ER181M DEYİMLERİ
l MU«d. FIELD, HKH/MKSI/NKD*, L9ET/R8ET, PUT, SET, CV1/CVB/CVD deytı ve fonksiyonları katılacaktır.

FIELD Deyimi

yit ıra belleğine kopyalanacak değişkenlerin uzunluklarını isiilerini belirler. ziliı
FIELD <#> kütük-no, uzunluk AS karakter de§iskeni <,uzunluk AS karakter değişkeni> …

Kütük-no

tüğa OPEN deyiıi ile açılırken verilen nuıaradır.

Uzunluk

ııt ara belleğinde, bu karakter değişkenine bayt olarak ayrılan bellek uzunluğudur. Bir i sayıdır. Taısayı ifade de olabilir.

ı klanlar

1.3.2 deki seıada da gösterildiği gibi, FIELD deyiıi kayıt ara belleğinde kullanılacak liykenlerin isiılerini, diziliş sırasını ve uzunluklarını belirler. Ataıa isietini çekle*tirıez. Kayıt ara belleğine ataıa isleıleri LSET ve RSET deyiıleri ile yapılır. Oktan kayıt ara belleğine, kayıt okuıa isleıi SET deyiıi ile, kayıt ara belleğinden Öğe yazdırıa isleıi ise PUT deyiıi ile sağlanır.

arıdaki acıkİasalardan da anlaşılacağı üzere FIELD deyiıi kayıt ara belleğindeki bilgi nlannı ve başlangıca göre pozisyonlarını tanıtlar. Aynı kayıt ara belleği değişik FIELD illeri ile farklı biciıde tanıtlanabilir. 8u duruıiarda ataıa isleılerinde dikkatli malıdır. FIELD deyiainde kullanılan değişken islilerinin aynısının, prograı içindeki la islerlerinde kullanıltası tavsiye edilıez.

»k Problet 8 2.19

Bir fakültenin kayıt kabul işletlerinde progr atçı olarak çalışıyorsunuz. Büroda 20 II bayt kapasiteli diski ve tek disket sûrücülü bir bilgisayarınız vardır. Aşağıdaki şartlara cevap verecek bir prograa yazıanız isteniyor;

Her öğrenci değişik zaıanlarda gelip kayıt nuaarasını söyleyip söıestri notlarını öğrenıek istiyor. Bir öğrenci en fazla 6 ders alaaktadır. Alladığı dersler için not söz konusu değildir. Notlar 100 üzerinden verilıektedir. öğrencinin eline kayıt nuaarasını, adını, soyadını, bölütü ve sınıfını ders isiılerini ve notlarını veren bir çıktı verilecektir.

Progrı», rasgele eriıiı deyişlerini gttrdlkce adıa adıa kodlanacaktır. En tonunda prograaın tlafi birlikti vırilıcıktir.

Cöıi. Tekniği ı

1. Prograa iki atanalı olacaktır. Birinci asatada NOTLAR kutsinin yaratılanı gerçekleştirilecektir.

2. NOTLAR kütüğü öğrenci kayıt nuaarasına (KN) göre sıralı olacağı için tıralı düzenlenaiş bir kütük yaratılacaktır.

3. öğrenci kayıt nutarasının, kütük kayıt sıra nuaarası (Anahtar bilgi) yerine geçebileceğini ve öğrencilerin rasgele gelip not öğreneceklerini dütünürıtk kütüğü rasgele erisis için yaratsak uygun olacaktır. Kütük sıralı düzenlenaiş rasgele erisiali bir kütük olacaktır.

4. Kayıt boyunun 12S bayt veya katları seklinde oltasının bellek tasarrufu sağhyacağı için bir kayıtı 128 bayta sığdıraaya çalısalıa. Ad soyad için 60 bayt, bölüa ve sınıf için 20 bayt, ders isialeri için 6 bayt <6*6*36 bayt), notlar için 2 bayt (2×6*12 bayt) oluk Izere bir kayıtın boyu 128 bayt olur.

5. Kütük için gerekli veriler ekrandan girilecektir.

6. Kütük diskte yaratılacağı için kütük tanıaı ‘CsNOTLAR.DAT* olacaktır.

Prograa :

10 REH Bu prograa not takip prograaı için NQTLAR.DAT veri kütüğünü yaratır.

Prograaın isai YARAT.BAS tır.

20 DEFİNT ft-Z

30 OPEN ‘CiNOTLAR.DAT’ AS il LEN-128

40 FIELD il, 60 AS AS*, 20 AS BS*, 6 AS Di*, 2 AS Nİ*, 6 AS D2*, 2 AS N2*,

6 AS D3*, 2 AS N3*, 6 AS D4*, 2 AS N4*, 6 AS D5*, 2 AS N5*,

6 AS D6*, 2 AS N6*

50 KN =KN+1 »PRINT sPRINT ’Kayıt-no ı’jKN 60 INPUT ‘Ad Soyad s’;A*

70 INPUT ‘Bölüaü-sınıfı s*;B*

BO INPUT ‘l.Ders ve Notu *}DRl* ,NT1 90 INPUT *2.Ders ve Notu ‘;0R2* ,NT2 100 INPUT *3.0ers ve Notu ‘jDR3* ,NT3 110 INPUT *4.Ders ve Notu ‘;DR4* ,NT4 120 INPUT *5.Ders ve Notu *;0R5* ,NT5 130 INPUT ‘6.Ders ve Notu *;ÜR6* ,NT6

QET Oayiml
üi

»gele eri »i* için yaratılan bir kütükten belirtilen kayıt ı kayıt ara belleğine taııaaya ırar.

zili»

BET <#> kütük-no <,kayxt-no>

kütük-no

itüğe OPEN deyiıi ile açılırken verilen nuaaradır.

kayıt-no

itüğün er i si 1 «ek istenen kayıtının nuıarasıdır. Taasayı veya taasayı değişken isai inanılabilir.

:ı klaaal ar

lyıt nuaarası verilaediği zaaan bir sonraki kayıt, kayıt ara belleğine taşınır. Bu özellik itüğün aynı zaaanda sıralı okunaasını sağlar. 6ET deyiai ile kayıt ara belleğine getirilen lyıtın bilgi alanları daha önce FIELD deyiai ile tanıalanaalıdır. Kayıt ara belleğindeki ırakter katarları doğrudan değişken isai verilerek prograa içerisinde kullanılabilir, cak sayısal değerlerin CVI, CVS, CVD fonksiyonları ile ikili sisteade kodlanaıs katar pinden ikili sisteade kodlanaıs sayısal değere donüstürülaelidir.

hceler *

SICft

6ET deyiainden sonra, FIELD deyiai ile tanıalanan kayıt ara belleğindeki bilgi alanları INPUTi ve LINE INPUT# deyialeri ile okunup kullanılabilir (Kaynak-4).

64,il28,ATARI-800XL

6ET t kütük-no, değişkenler listesi Belirtilen kütükten her defada bir karakter okur.

50 BET 11,B$

1 nuaaralı kütüğün 8f katarından bir karakter okur.

128

RECÖRD I kütük-no, kayıt nuaarası <,bayt>

Dizilisi kütüğün belirtilen kayıtım elde eteek için kullanılır. Aşağıdaki örnek nasıl kullanıldığını gösteraektedir ı

İö DCPEN 13,’STOK’ (Diskteki 3 nolu STOK kütüğünü açar)

20 FtECORD 13,20,1 (Kayıt sayacı 20. kayıtın 1. baytına gelir)

30 INPUT 12,Al (Kütüğün o noktasındaki A$ karakter değişkeninin

değeri okunur)

lek Problee :2.19 (devaa)

»granın ikinci aşaaaşmda kütükten kayıt nuaarası verilen Öğrencinin adı, soyadı, lüaü-sımfı, ve ders notları okunacaktır.

1. Diskti daha ün» yıntılaı» NOTUM.DAT kütüğü raıgılı ıri»iıli olarak açılır.

2. Yaratılırken varilin FULÜ tanııı kullanılarak bilgi alanları bıUrlınlr. Bilgi alanlarının dığl*kın iıat bılirlınlr.

3. SET dıyiai üı i atanın tijr incinin kayıtl okunur.

4. Sayısal dığırlır ikili ılıtıldı kodlanıl» katar tipindin ikili »iıtııdı kodlınıı» sayısal değer tipine dönuftürölür.

Prograı s

10 REH Bu prograı A fakültesinin kayıt kabul islerindeki öğrencilerin notlarını takip eder. NOTLAR.DAT veri kütüğünü rasgele erisiıli olarak acar ve öğrenci kayıt nuıarasma göre not bilgilerini yazıcıdan verir.

20 DEFINT A-Z

30 OPEN “CsNOTLAR.DAT* AS *1 LEN 128 ‘NOTLAR kütüğünü rasgele erisiıli olarak

acar.

40 FIELD «1, 40 AS A*, 20 AS B$, * AS Dit, 2 AS Nİ*, 4 AS D2«, 2 AS N2t, i AS BS$, 2 AS N3t, 6 AS D4$, 2 AS N4t, 6 AS 051, 2 AS N5I,

6 AS D«, 2 AS m 50 INPUT “Öğrenci kayıt nuıarasını giriniz t”; KN

60 SET II,KN ‘Bir kayıt okuRur. Kayıt ara belleğine taşınır.

Prograaın devan bir sonraki bölüade verilecektir.

CVI/CVS/CVD Fonksiyonları Aaac

Kayıt ara belleğindeki karakter değişkenlerini sayısal değişken tipine dönüştürür.

Dizilia

sayısal deği*ken»CVI (karakter değişkeni-2 bayt) sayısal değisken*CVS(karakter değişkeni-4 bayt) sayısal değisken=CVD (karakter değişkeni-8 bayt)

Acıklaaalar

Rasgele erisiıli kütüklerdeki bilgilerin ikili sayı sisteıinde kodlanaıs katarlar siklin saklandığı daha önce anlatılııstı. Kütüklerden 6ET deyiai ile kayıt ara belleğim taun bilgi alanları ikili sisteıde kodlamış katar tipindedirler. teindeki sayısal bil alanlarının prograı içerisinde kullanı1abilıesi için CVI, CVS, ve CVD fonksiyonları i ikili sisteadeki sayısal değere dönüstürülıesi gerekir. 2 baytlık katarlar CVI fonkıiyo ile taasayıya, 4 baytlık katarlar CVS fonksiyonu ile tek incelikli sayıya, 8 baytl katarlar CVD fonksiyonu ile cift incelikli sayıya dönüştürülür. Bu fonksiyonlar karakt değişkeni ve sayısal değişkenlerin bellekteki görünüşlerini değistiraezlır, şadı Basic’in onları sayısal değer olarak değerlendirmesini sağlarlar.

Örnek Probleı s2.19 (devaa)

Aşağıda, prograıdaki sayısal değerlerin ikili sisteadeki katar tipinden ikili liıtııdı sayısal değer tipine dönüstürülıesi gösteri İliştir. Prograıın tülünün listesi verilaistiı

«m n pıvfrn n T»*«*vw»ımn Riyn imi ıvm ınvaıı «fmcıiırın notlarını takip adar. NOTLAR.DAT vırt kfttlflnB raıgala arlıiali olarak Kar ve »frenci kayıt naaaraıına gör» not bilgUarini yazıcıdan varir.

20 DEFINT M

30 OPEN “CıNOmOAT’ AS «I LEN 128 ‘NOTLAR kttlğlnt raagala ariaiali olarak

acar.

40 FIELD (1, 60 AS At, 20 AS Bt, 6 AS 011, 2 AS Nİ*, 6 A8 02*, 2 AS N2*,

6 AS D3*, 2 AS N3«, 6 AS D4*, 2 AS N4*, 6 AS 03*, 2 AS NS*,

6 AS 06*, 2 AS N6*

30 INPUT “öğrenci kayıt nuaarasını giriniz ı*j KN

60 6ET 11,KN ‘Bir kayıt okunur.

70 N1KVHN1*) sN22*CVI(N2*) :Nİ3=CVI(N3*)

80 N44«CVI(N4*) :N55=CVI<N5*) :N66»CVI(N6*)

90 LPRINT STRING*(50,*-“) iPRINT AS*;’~’;BS*

100 LPRINT D1*}*–*5N11îTAB<16)5 sLPRINT D2*;*–*}N22 110 LPRINT D3*;*~*;N33jTAB(16); ıLPRİNT D4*;*–‘;N44 120 LPRINT DS*}’—a}N5SşTAB<lâ)i sLPRINT D6*;*~*jN66 130 PRINT ‘Deva* etsek için herhangi bir tusa basınız*

140 LOCATE ,,1 iZZ*«INPUT*ü)

150 IF ZZ* O ” THEN 60T0 50 RUN

öğrenci kayıt nuaarasını giriniz i? 1
HADİ YANAN 1NSAT-3

STATİK- 55 JE0L – 45

0IF — 67 İST — 100

HID – 90 HEK – 89

Devaa etsek için herhangi bir tu»a basınız

öğrenci kayıt nuaarasını giriniz ı? 2
KEMAL KOC PETROL-3

SOND — 67 CAN — 56

JEOL – 80 HAT – 78

REZ – 70 PET — 100

Devaa etsek için herhangi bir tu$a basınız
rograaın 70 ve 80 inci satırlarında sayısal değişkene çevrilse isİesi gösterilaistir. Bu atırlar iptal edilip PRINT deyiainde, Nlt yerine doğrudan CVIiNl*) in kodlanaası daha ygundur.

2.S.6.1 STOK KONTROL PROMAMI
Aşağıda »tok kontrol bıkkındı mı hıtlır» İla km ve üı bilgilar varilaiıtir. Daha »oı bu bilgilar kullınılırık bir atok kontrol prograaı hazırlanaıstır.

STOK KONTROL NEDİR

Halzete stok kontrolü, aalzeae »toklarının en ekonoaik ve en etkin şekilde yöneti»ini kontrolünü sağlayan bir sevk ve idare tekniğidir,

STOK KONTROLÜN CNEHÎ

Stok kontrol, işiet»enin karını doğrudan etkiler. Aşağıda fazla ve ektik at bulundurmanın yarar ve zararları anlatılaıstır.

Fazla Stok Bulundurmanın Zararları :

1. Bağlanan seraayenin faiz kaybı

2. Fiatların düsaesi duruaunda, zararın büyünesi

3. fialzeaelerin bozulaa, paslanaa ihtiaali

4. Nodel eskitesi

5. Fazla yer işgal etaesi

Eksik stok bulundurmanın zararı ise itletaenin o andaki ihtiyacının karsılanaaaaa sonucunda üretiain duraasıdır.

STOK ÇEŞİTLERİ

Haatadde stoku, yedekparca stoku, üretia stoku ve itletae talzete stoku gibi stok çesitlaı vardır.

STOK KONTROLÜN HEDEFİ

Stok kontrolün iki Bnaali hedefi vardır. ETKİNLİK ve EK0N0H1KL1K ‘tir.

a. ETKİNLİK : üretiai aksataaıak

b. EKONOMİKLİK : En ucuza alaak

En az depolaaak En ucuza depolaaak

Nalzeaeye bağlı seraayeyi en alt sevyede tutsak STOKU YAPILACAK HftLZEHELERlN SECİNİ

Stoku yapılacak aalzaaeler seçilirken dikkat edilecek noktalar şunlardır :

– Devaalı, devaasız aalzeaeleri ayıraak

– Oneali, öneasiz aalzeaeleri ayıraak

– Stoku yapılaayan aalzeaeleri ayırsak

– Piyasada her an bulunabilen aalzeaeleri ayıraak

– Piyasada bulunan, toplaa ve parakende fiat farkı olaayan aalzeaeleri ayıraak

STOK KONTROLÜN ASMALARI

a. flalzeae kataloglarının hazırlaması, yedekparca katalogları ve aalzeae kataloglarının fihristlenaasi,

b, Stok lirin kodlananı,

ı. Nihil bir »tok kontrol yont#»ınin seçileceğin» kar«r vırllaıti, d. Secilen »tok kontrol yonte»inin uygulaması, stok kontrolün safhalarıdır.

STOKLARIN KODLANMASI

Asaç işlet»eye en uygun kod sisteainin seçilmesidir. Seçilirken şunlara dikkat edilaelidir :

– Kopya olaaıalı, her işletilenin kendi atacına uygun şekilde tasarlamahdır.

– tşletaede herkesin bilaesini sağlayacak şekilde basit olaalıdır.

– Çağrısı» yapacağı icın harf kullanılabilir, ancak her kodda eşit sayıda harf olaalıdır.

– Bilgisayar kullanılacak ise kod nuaarası ile, kayıtın kütükteki yeri arasında bağlantı kurulabilecek şekilde tasarlanaalıdır.

STOK KONTROL YSNTEHî

Değişik stok kontrol yöntealeri vardır. Stok kontrol yönteai secisinde işletaenin ve stoku yapılacak »abecelerin özelliklerinin etkili olduğu gibi, bilgisayar kullanılıp kullanıltayacağı da etkili olur. Zaaarta Göre stok kontrolunda Takvia Yönteai veya Sarık Seıaları yönteai kullanılır. Miktara Göre stok kontrolü ise kartlar üzerinden veya fiili aiktarlar üzerinden bilgisayar kullanılarak yapılır. Burada sadece bilgisayar ile aiktara göre stok kontrol yönteai anlatılacaktır.

HiKTftRft SÛRE STOK KONTROL
S e ; ! – i 7 Miktara Göre Stok Kontrol Grafiği
ykü”!/ «sfctara göre stok kontrolün grafiksel gösterisidir. Tüketia Azaai Stok ile ,e&laeı$tır, Stok «iktarı Beklese Seviyesinin altına düşünce 8 kadar sipariş yapıiaıştır.

Stok Eanlyat leviyaaina yıllatınca bu ılpıriı karıılanaıstır. Stok tekrar Azaai 8 »eviyesine çıkaııtır. Kontrol yttnteal bu aantık çerçevesinde yapslaaktadır. Aşağıda a kontrol terletirinin acıklaaalan verüaitUr.

ftzaai Stok

üzerinde stok bulundurulaası ekonoaik olaayan stok «iktarıdır. Mateaatiksel olaı aşağıdaki gibi gösterilebilir,

Azaai Stok = Eaniyet Stoğu ♦ D

Beklese Sâresi (Stoku)

Bekine Süresi siparişin verildiği andan aalzaaenin depoya girdiği ana kadar gecen silrad; Bekleae Stoku ise bu zaaan zarfında kullanılacak aiktardır.

Eanivet Seviyesi

En az bekleae stoku ile en fazla bekleae stoku arasındaki farktır.

EKOHOHtK SİPARİŞ MİKTARI <fl)

Ekonoaik sipariş aiktarı aşağıda belirtilen değişkenlere bağlı olarak hesaplanır.

\/2*Y*S ‘ Y * Yıllık Sarf (a,kg,ton)

9 = ———————-S = Sipariş Maliyeti (Tl)

C*D C = Biria Fiatı (TL/biria)

D = Stok Tutaa Maliyeti (Biria fiatın yüzdesi olarak) C*D = Malzetenin Depolansa Masrafı (TL/biria)

Sipariş Maliyetini Etkileyen Masraflar s

1. Sipariş aiktarını tespit aasrafları

2. Satınalaa aasrafları

3. Tesliade kalite kontrol aasrafları

4. Nakliye aasrafları

5. Tealia alat aasrafları

i. Hal bedelini ödeae isleai aasrafları

7. 6üarük, ardiye, auaaele, pul, banka, koaisyon aasrafları

Türkiye’de Yurtiçi Sipariş Maliyeti 1750 – 3500 TL arasında, Yurtdışı Sipariş Maliyi 25000 – 35000 TL arasında değisaektedir,

Oepolaaa Masrafları <C*D)s

1. Yatırıaın faizi

2. Modası gecen aalzeae zararları

3. Depoda bakıa aasrafları

4. Cürüae, bozulaa aasrafları

5. Kaybolaa, kırılsa aasrafları

b. Depo, kira ve sigorta aasrafları

7. Aaortisaanlar

8. Envanter sayısı aasrafları

Türkiye’de Stok Tutaa Maliyeti X25 – 130 arasında değisaektedir.

YILLIK TORLAK STOK HALtYETİ

Yıl boyunca «haizde bulundurduğu; »tokun yıllık topla» aaliyatı ««ağıdaki faaüle güre hııaplanır.

T ■ C*Y ♦ S*(Y/Q) + C*D* (fl/2) + Eaniyet Stoku * C*D

v > v….. …; > v j

•v V —-v* ^ , -v,———–

yıllık yıllık sipariş yıllık depolaaa eaniyet stokunun

aaliyet aasrafları aasrafları depolaaa aasrafları
HAREKETSİZ MALZEMELERİN ELDEN ÇIKARILMASI

1. Yıllık sarfı (V) = O veya Stok > Azaai Stok ise aalzesenin elden çıkarılaası gerekir.

2. Bozul «us veya bilinaeyen stokların elden çıkarılaası gerkir.

3. Azaai Stok Seviyesinin üzerinde yani ÖLÜ STOK varsa

a. Bekleae seviyesinin altına düşaesi beklenir.

b. Çok beklendiğinde elden çıkarılaası gerekir.

STOK KONTROL 1C1N B1LSÎ ALANLARI

Yukarıdaki genel stok kontrol bilgilerinden sonra bir stok kontrol kütüğündeki kayıtlarda $u bilgiler bulunaalıdır.

1. Kayıt Nuaarası (KN) veya Kod Nuaarası

2. Kontrol Karakterleri (KKİ)

3. Malzeaenin İsai (MI$)

4. Nalzesenin özellikleri (parca-no, katalog-no gibiMMOl)

5. Birici (BRf)

6. Biria Fiatı (BF)

7. Azaai Stok (AS*)

6. Bekleae Stoku (BS)

?. Eaniyet Stoku (ES)

10.Stok (ST)

11.Yıllık Sarf (YS)

12.önceki Yıllık Sarf (OY)

Kontrol karakterleri stok kontrolü yapılacak veya yapılsayacak aalzeaeleri belirler.

STOK KONTROL PROGRAMI

Yaklaşık 3000 çeşit aalzeaesi olan bir iş yerinin stok kontrolünü yapan bir bilgisayar prograaını yazınız. Prograa aşağıda belirtilen işlealeri stok kontrol için verilen bilgileri kullanarak, yapacak şekilde tasarlanacaktır. 10 M baytlık , tek disket sürücülü bir ati krobi İği sayar iniz vardır. Stoklar da diske saklanacaktır.

3rogra»m özellikleri ;

1. Stok kontrolü yapılacak aalzeaeleriR sipariş listesini hazırlayacak.

2. Depodan sürekli aalzeae giris-cıkışı olduğu düşünülerek STOK kütüğü sürekli

3. Kılım katalogunun kodu kulunaayan bir aılzeaı kayıt i yapılacağı zatın ıılzeeenin gurubu girilin» o gurubun ilk bo* kıyıtını kıydedilıeek.

4. Yıl sonundı yıllık toplıa »tok aıliyıti 1lı birlikti ınvıntır littııi hızırliyicik.

Cüzü» Tekniği

1. STOK veri kütüğünün tasarı» ı Güncelleştim için rasgele kayıta girip okuaı ve^ yazaa gerçekleştirileceği için, kütük rasgele erişiali bir kütük olaalıdır. Ayı zaaanda, sıradan tüa kütük üzerinde de islea yapılacağı için, kütükteki kayıtlı sıralı düzenlenaelidir.

2. Kayıt ve kod nuaaralarının tasarıaı ı Kayıt ve kod nuaarasının aynı nuaarı olanı kayıtlara eri si »i hızlandıracaktır. 3000 çeşit aalzeae gruplandırılarak 4 rıkıal bir kod kullanılabilir. Aşağıda aalzeK katalogunun guruplar tablosu gösterilaiitir Şurup başlangıçları STOK kütüğü yaratılırken girilecektir.
6urunlar 6urusların İçerisi
1 – 100 Kırtasiye Halzeaeleri
101-150 Teaizlik Halzeaeleri
151-210 Sıda Halzeaeleri
211-250 Et ve benzeri Haddeler

ı :

8u tür kodlaaa gurup sonlarında boş kayıtlar bulunaasma neden olacaktır. Suru başlangıçlarını belirlerken bos kayıt sayısının en azda tutulaasma dikkı edilmelidir.

3. Kütük üzerinde sıralı isle» yaptırılırken gurup sonuna gelip gelinaediği okum kayıtın KONTROL KARAKTER’leri (KKD kontrol edilerek tespit edilebilir. 6urup sonun gelinais ise bir sonraki dolu kayıtın kayıt nuaarası, tipi uygun olan belirili bi bilgi alanına yazdırılır. Bu prograada, bu aaaç için STOK alanı kullanılaıstır Sıralı islea yaparken bu kayıttan sonraki ilk dolu kayıta atlaaa yapılır. Şurup son kayıtma yeni aalzeae kayıtı yapılacağı zaaan sonraki ilk dolu kayıtın nuaarası bir sonraki kayıta yazdırılır. Aşağıdaki şekilde guruplar arası islea gösterilaistir
STOK KüTüfiü r 1 Dolu kayıt 2 * Dolu kayıt Kayıt 3 Dolu kayıt No

85 S 110 6urup sonu kayıtı

Bos kayıt Bos kayıt

ı

110 Dolu kayıt Sonraki ilk dolu kayıt

Sonraki İlk kayıtın nua*ra»ı ila gurup »onu kay itinin nuaaran aralındaki fark gurup aralındaki bot kayıtları gösterir.

4. Sipariş List Minin Hazırlanması ı Stok Kontrolü yapılacak aalzeleler KONTROL KARAKTERİ alanına seabolü yazdırılarak ayrılacaktır. Sipariş listesi hazırlanırken kontrol ettirilecektir. Sipariş aiktarı B ®\/2*Y*S/(E*D) forafilüne göre hesaplanacaktır. Kütüğün töaü üzerinde veya belirtilen gurupların sipariş listesi hazırlanacaktır.

5. Kayıt Bilgi Alanları : Kayıtın seaası aşağıda verilaistir.
2 22 47 49 53 55 57 59 61 63
« KURSUN KALEN SARPER HB AD 250 95 50 10 25 3050 2500
KK* Hl* OZ* mi Ci ASX BSÎ ESİ STÎ YSJE OYX

12.11.1988 Açıklasalar …. TA* NAT*
Kayıt boyu 128 bayt olursa disketin 512 baytlık bir sektörüne 4 kayıt sığabilecektir. Diskteki STOK kütüğü eaniyet için yedeklenecektir.

Yukarıdaki kayıtın FIELD deyiai aşağıdaki gibi tanıalanır :

FIELD «1, i AS KK*, 20 AS Hl*, 25 AS 0Z*,2 AS BR*, 4 AS BF*, 2 AS AS*,

2 AS BS*, 2 AS ES*, 2 AS ST*,2 AS YS*, 2 AS OY*, 10 AS TA*, 54 AS NAT*

Yalnız taasayı olarak tanıalanaış bilgi alanlarının değeri 32767 yi gecaeaelidir. Bu duruada aalzeaenin biriai değiştirilerek sayı küçültülebilir.

6. Günceliestime iki şekilde gerçekleşecektir. Eski kayıtlarda değişiklik veya yeni kayıt ilavesi şeklinde olacaktır. Eski kayıt üzerinde değişiklik kayıt okunduktan sonra yapılır ve tekrar yazdırılır. Yeni aalzeae kayıtları kendi gurubunun sonundaki boşluklara yapılacaktır. Bu islea için aalzeaenin gurubunu girerek o gurupta sıra ile kontrol karakterinin ‘S* olduğu kayıt aranır. Yeni aalzeae bu kayıta girilir. Bundan sonraki kayıt gurup sonu kayıtı olur.

7. Fazla stoklar Y s 0 veya ST > AZ kontrolü ile tespit edilir. Yıl sonundaki envanter listesinde kod nuaarası, aalzeae isai, biria fiatı ve stoktaki aiktar bulunacaktır. Listenin sonunda yıllık toplaa stok aaliyeti verilir.

8. Prograa cok aaaçlı olacağı için aenülerle kontrol edilaesi kullanıcıya kolaylık sağlayacaktır. Bu prograada Seki 1-13 deki aenüler kullanılacaktır.

• <1> YENt MALZEME KAYITI 6urup kodunu gır ı <2> MALZEME OIRîS/CJKIfi/DüZELTME Seçeneğinizi giriniz ?
Kod No !
Kontrol Karakteri i
Malzeae isai
Özel 1 i kİ eri
Biria Fiatı Biriai s
Azaai Stok ‘
Bekleae stoğu
Eaniyet Stoğu
STOK
Yıllık Sarf önceki Y. Sarf :
Sipariş Tarihi
Acıklaaa : *
■Hn Ana aenüye dönaek için A ya basınız ■■■■■■■■

mmmmmmm siparis listesi ■■■■■■■■■■

<1> TÜM GURUPLAR Şurup kodunu giriniz s <2> BAZI ŞURUPLAR Başka gurup varaı (E/H) :

Seçeneğinizi giriniz ?
Depolaaa Masraf Yüzdesini Giriniz (XI >25 Sipariş Maliyetinizi Birinjz (TL) :1750
Ana aenüye dönaek için A ya basınız

9. Prograaın Yifiııı ı ReMlaM ana prograaın «onundaki »İt prograalarda hazırlaş cafırnak daha pratik olacaktır. Ana Benlinin »»çanak kontrolü ana prograa içir yapılacaktır. Difar Mnllarin Bacanak kontrol liri v» Ulealıri yan prograalaı garç»klı*tlrilecoktir. Bu prograalarCHAIN deyiai İla ana prograadan cafıraı prograa yazaayı »adalaıtiracaktir. Alt prograalarm v« yan prograalarm listı asafıda verilalıtir ı
Ana Prograa KONTROL.BAS
Ana Nenü A.P. 1000. satır
Sipariş Listesi Henüsü A.P. 2000. satır
Güncelle$tirae Nenüsû A.P. 3000. satır
Sipari» Listesi Yan Prograaı SIPLIST.BAS
Fazla Stok Tespiti Y.P. FAZSTOK.BAS
Envanter Listesi (Yıllık Stok Maliyeti) ENVANTER.BA8
Sincellestirae Y.P. GÜNCEL. BAS
Kayıt Siriş Isleai A.P. 1000. satır
Eski Girişleri Silae A.P. 2000. satır

LIST

10 REN *mm*«MM»m**STOK KONTROL PRQ6RAIU*HMtmMmmtm*m«H 20 REN iHH*ı*ı*«*«f*H*ANA PROSRAN KONTROL. BAS**HMM«»»MMm*H#m#* 30 DEFINT A-Z ıKEY OFF 35 KEY OFF

40 OPEN ‘STOK.DAT* AS «1 LEH > İ2S

50 FIELD II, 1 AB KKI, 20 AS NII, 25 AS 01* , 2 AS BR*, 4 AS BFI, 2 AS AS*, 2 AS BS*, 2 AS ES*, 2 AS ST*, 2 AS YS*, 2 AS OY*, 8 AS TA*, 56 AS NAT*

60 SOSUB 1000 ‘Ana aenü çığrılır.

70 REH Ana aenfi seçenek kontrolü.

80 LOCATE 6,52,1 »ZZ*»INPUT*<1)

90 IF ZZ***1* THEN SOSUB 2000 iCHAIN “SIPLIST”,,ALL ELSE

IF ZZ*»*2* THEN SOSUB 3000 ıCHAIN ‘GÜNCEL*,,ALL 100 IF ZZ***3* THEN CHAIN ‘FAZSTOK’,,ALI ELSE

IF ZZ*=*4* THEN CHAIN ‘ENVANTER* „ALL ELSE

IF ZZ*>’C* OR ZZ*«’c* THEN ıLOCATE 24,1 ıCLOSE «1 lEND ELSE SOTO 80

999 REH *m***t**t»MM§HENü ALT PROGRAHLARI«»**»*m**h***«m*#hmk##m

1000 REN mMHHHHMAna aenü alt prograaHHMMt*HH«H»*tt*»Mm*»«

1010 CLS ı LOCATE 1,10 iPRINT 3TRIN6*(62,219)

1020 LOCATE 8,11 sPRINT STRING*(60,219> sLOCATE 23,10 sPRINT STRINS*(62,219) 1030 FOR 1*2 TO 22 ıLOCATE 1,10 sPRINT CHR*(219)

1040 LOCATE 1,71 sPRINT CHR*(219) :NEXT I

1050 LOCATE 3,18 sPRIMT “<1> B1PAR18 LİSTESİ *

1060 LOCATE 3,43 iPRINT “<3> FAZLA STOK TESPlTt”

1070 LOCATE 4,1B iPRINT “<2> GÜNCELLEŞTİRME’

1080 LOCATE 4,43 sPRINT ‘<4> ENVANTER LİSTESİ*

1090 LOCATE 5,47 sPRINT ‘(STOK HALIYETD”

1100 LOCATE 6,29 sPRINT “Seçeneğinizi giriniz ?*

1110 COLOR 0,7 sLOCATE 1,33 sPRINT * ANA HENÜ*

1120 LOCATE 23,23 sPRINT * Cifeaak için C ye basınız’

1130 COLOR 7,0 :RETURN 2000 REH

2010 REH mmmm«mSipariş listesi aenüsü alt prograaı*«mHHm«t 2020 LOCATE 3,18 iPRINT SPC(50) sLOCATE 4,18 sPRINT SPC(SO)

2030 LOCATE 5,45 sPRINT SPC(23) sLOCATE 6,29 sPRINT SPC(25) ‘Ana aenü silinaesi 2040 COLOR 0,7 ıLOCATE 1,33 sPRINT ‘SİPARİŞ LİSTESİ*

2050 LOCATE 23,23 sPRINT ‘Ana »etliye dönaek için A ya basınız8 ıCOLOR 7,0 2060 LOCATE 3,20 sPRINT “üls TÜH ŞURUPLAR”

2070 LOCATE 3,40 sPRINT “Şurup kodunu giriniz ı*

2080 LOCATE 4,20 sPRINT ’Ü2» SAZI ŞURUPLAR”

2090 LOCATE 4,40 sPRINT “Başka gurup varaı (E/H) s*

2100 LOCATE 6,20 sPRINT “Seçeneğinizi giriniz s* sRETURN

3000 REH HIHHHHHHHHHHHHHfHHIHHHHHHHHHHHHHHm

3010 REH Süncellestirae aenüsü alt prograaı

3020 LOCATE 3,18 sPRINT SPC(50) sLOCATE 4,18 iPRINT SPC<50) ‘Ana «enü silinir 3030 LOCATE 5,45 sPRINT SPC(23) sLOCATE 6,29 sPRINT SPC(25)

3040 COLOR 0,7 sLOCATE 1,33 sPRINT “GÜNCELLEŞTİRHE ”
3050 LOCATE 23,23 sPRIKT *Ana aenüye dönaek için A ya basınız” sCOLOR
3060 LOCATE 3,24 sPRINT “<1> YENİ HALZEHE KAYITI6
3070 LOCATE 4,24 sPRINT “<2> HALZEHE 6IR1S/CIKISI/DÜZELTHE*
3080 LOCATE 6,30 sPRINT “Seçeneğinizi giriniz ?”
3090 LOCATE 10,16 sPRINT “Kod No s “
3100 LOCATE 11,16 sPRINT “Kontrol Karakteri s”
3110 LOCATE 12,16 sPRINT “Halzeee İsai s”
3120 LOCATE 13,16 sPRINT “özellikleri
3130 LOCATE 14,16 sPRINT “Biria Fiatı s”
3140 LOCATE 14,60 SPRINT “Birisi s”
3150 LOCATE 15,16 sPRINT “Azaai Stok
3140 LOCATE 16.16 «PRINT “Bekle*? Ştoöy s*
3170 LOCATE 17,16 sPRINT “Eaniyet Stoğu s”
3180 LOCATE 18,16 sPRINT “STOK s”
3190 LOCATE 19,16 tPRINT “Yıllık Sarf s”
3200 LOCATE 19,44 sPRINT ■önceki Y. Sarf s”
3210 LOCATE 20,16 sPRINT “Sipariş Tarihi s”
3220 LOCATE 21,12 sPRINT ‘Açıklasa s” sRETURN

UOftD”AsSIPL191,BftB

Ok

LIST

İO REH (IHIHMIIMHIHHI STOK KONTROL PR06RAHI

20 REH SIPLIST.BAS YAH PROGRAMI hhhhhhhhhhhh

30 DEFINT A-Z

40 LOCATE 6,42,1 jZZ*=INPUT*(1) ‘Sipariş listesi seçenek kontrolü

50 IF ZZ$=”A* OR ZZ$=”a* THEN CLOSE II tCHAIN ■KONTROL*,ALL ELSE IF ZZ*=*1* THEN 60T0 60 ELSE IF ZZ*=’2* THEN 80T0 500 ELSE SOTO 40 60 REH Tüa gurupların sipariş listesi hazırlanıyor,

70 LPRINT SPC(IO) ‘TÜH ŞURUPLAR StPARtS LİSTELER!* tKN«l 80 LOCATE 10,16 sINPUT ‘Depolaaa Masraf Yuzdesini Biriniz (X) s*,D 90 LOCATE 12,16 :INPUT ‘Sipariş Haliyetinizi Şiriniz (TL) :’,SH!

100 GET II,KM stF EQF(İ! THEN CLOSE II «CHAIN ‘KONTROL*„ALL ‘Bir kayıt okunur. 110 IF KK*«’S* OR KK*=V THEN KN=CVI(ST*> sSOTO 100 ELSE IF

KK*»’*’ THEN GOTO 120 ELSE KN*KN+l ıGOTO 100 120 REH Sipariş aiktarı hesabı 130 S»CVI<ST*1 iB*CVI(BS*l 140 IF S *> B THEN KN*KN+1 :60T0 100 ISO Y*CVKOY*l ıC!»CVS(BFt)

160 DEPî-D/100 :Q!>SBR(2*Y«SH!/(C!«DEP!}) sBO*»’ ‘

170 LPRINT SPCU) ;KN;BQt;«lijBQt>,0Z$)BOt;BQ=’;Q!•,BR*şBQt;’ST=*;S;B0$;BRİ

180 KN*KN+1 î 60T0 100

500 REH Bazı gurupların sipariş listesi

510 BEEP :LOCATE 3,62,1 ıINPUT “$n* :KN=VAL(M) ‘Grup kodu girilir.

520 IF KN*0 THEN GOTO 510 ‘Alfabetik karakter kontrolü

530 BO**” ‘ sLPRINT SPC(10)j»GURUP*jB0*?KNjB0*j’SİPARİŞ LİSTESİ*

540 LOCATE 10,16 tINPUT ‘Depolaaa Hasraf Yuzdesini Giriniz (X) i’,0 550 LOCATE 12,16 sINPUT ‘Sipariş Haliyetinizi Giriniz (TL) :’,Sfl!

560 GET tl,KN :IF EOF(l) THEN CLOSE II iCHAIN ‘KONTROL’,,ALL 570 IF KK**’S’ OR KM**»* THEH SOTO 700 ELSE

IF KK*=*»* THEN 60T0 580 ELSE KN=KN+1 s60T0 560 580 REH Sipariş aiktarı hesabı 590 S=CVI(ST*I !B*CVI(BS*I 600 IF S => B THEN KN=KN+1 :60T0 560 610 Y*CVI(0Y*1 ıC!= CVS(BF*)

620 DEP!* D/100! :8!»SOR<2«Y*SH!/(CI*DEP!})

630 LPRINT &PCü)$KHfBO*?ni*!BÜ*;QZt?BO*;’Q**;Q!;BR*}BO*;*ST**’,S?BO<;BR*

640 KN»KN+1 sGOTO 560 700 REH 6urup sonuna gelindi

710 LOCATE 4,65,1 iBEEP :ZZ*»INPUT*(1) ‘Guruplara devaaaı 720 IF ZZ*S’E* OR ZZ*«*e* THEN GOTO 730 ELSE

IF ZZ*a’H* OR ZZ*=’h* THEN CLOSE 11 :CHAIN ‘KONTROL*,,ALL ELSE GOTO 710 730 LOCATE 3,62,1 sPRINT SPC(71 iGOTO 510 Ok

LüftUNAîLNVANîfcN.IM!î

Ok

LIST

10 REH •hhhmhhhmhhh STOK KONTROL PROGRAMI

20 REM ttmmmHtmm* ENVANTER. BAS YAN PROGRAMI mmmmmmm

30 DEFINT A-Z sKN»l sBO**” ■ sLPRINT SPC(IO) “ENVANTER LİSTESİ”

40 LOCATE 10,16 îINPUT “Depolaıa Masraf Vûzdesini Giriniz (Z) s”,D 50 LOCATE 12,16 :INPUT “Sipariş Maliyetinizi Giriniz (TL) s”,SM!

60 GET İI,KN sIF EOF(l) THEN GOTO 200

70 IF KK*=”S” OR KK*=V THEN KN=CVI(ST*I sGOTO 60

80 Y=CVI(YS*) :C!=CVS(BF$) sE=CVI(ES<) sS=CVI(ST*)

90 DEP!=D/100i :9!=SQR(2«Y*SM!/(C!*DEP!>)

100 Tf=Tf+C!*Y+SH!*(Y/8!)+C!*DEP!*(Q!/2)+E*DEP!«C!

110 LPRINT SPC!5}jKN;TAB(i5}jHI*jBQ*;C!;’TL/”)BR*iBü*i*ST0K=*jS;BQ*;8Rt 120 KN=KN+1 SGOTO 60 200 REM Envanter bitti

210 LPRINT SPCİ5)i”YILLIK TOPLAM STOK MALİYETİ*)

220 LPRINT USING “t«tm**t«t,.**TL’;Tt 230 CLOSE ti :CHAIN “KONTROL*,,ALL

LOADBA:6UNCEL,BAS

Ok

LIST

10 REM HHHMMMiHHMHMH STOK KONTROL PROGRAMI

20 REM ««HtmMtmfMHM* GÜNCEL.BAS YAN PROGRAMI hhhhhhhhhhhi

30 DEFINT A-Z

40 LOCATE 6,53,i sZZ4=INPUT*(l) ‘GüncelIeştime seçenek kontrolü

50 IF ZZ*S’A* OR ZZ*«V THEN CLOSE «i iCHAIN “KONTROL”,ALL 60 IF ZZ*=el” THEN GOTO 300 ELSE

IF ZZ*S”2″ THEN GOTO 70 ELSE GOTO 40 70 COLOR 0,7 !LOCATE 10,37 i INPUT “,Ht sKN*VAL(XX*l sIF KN*0 THEN GOTO 70 80 6ET «İ,KN

90 LOCATE 11,37 sPRINT KK* sLOCATE 12,37 sPRINT MU 10Û LOCATE 13,37 sPRINT OZ* sLOCATE 14,68 sPRINT BR*

105 LOCATE 14,37 sPRINT CVS(BFI) sLOCATE 15,37 sPRINT CVI(AS*)

110 LOCATE 16,37 sPRINT CVI(BSD sLOCATE 17,37 sPRINT CVI(ES*)

120 LOCATE 18,37 sPRINT CV1IST*> sLOCATE 19,37 sPRINT CVKYS*! î3v LOCATE 19,60 sPRINT CVI(OY*) sLOCATE 20,37 sPRINT TA*

140 LOCATE 21,22 sPRINT NAT* îCOLOR 7,0

150 SOSUB 1000 :SOSUB 2000 ‘Düzeltte için kayıt giriş ve son yazılanı

ekrandan si İne işlenleri 160 IF KA* O THEN LSET KK* * KA*

170 IF HA* O “” THEN LSET MI* = MA*

180 IF MO* O ■■ THEN LSET OZ* = MÖ*

190 IF BI* O ’■ THEN LSET BR* = BI*

200 IF C! O 0! THEN LSET BF* * NKS*(C!)

210 IF A O 0 THEN LSET AS* = HKI*(A>

220 IF B 0 0 TMCN LNT III • NKll(l)
230 IF E O 0 IHIN llif III – NK1IIE)
240 IF S O 0 THKN LBIT İT* ■ HKII(S)
250 IF Y o 0 THEN LSET YS* – HKIKY)
260 IF 0 o 0 THEN LSET OY* ■ HK1*(Q)
270 IF T* 0 D» THEN LSET TA* ■ T*
280 IF NT* o «ı THEN LSET NAT* > • NT*
290 PUT 11, ,KN sGOTO 40

300 REH Yeni kayıt girişi yapılıyor veya kodu veriliyor.

310 LOCATE 3,48 sINPUT “6urup kodunu gir s*,KA* sKN«VAL<KA<)

320 IF KA*» ‘A* Of) KA*» “a” THEN CLOSE »1 i CHAIN “KONTROL” „ALL 330 IF KN – 0 THEN LOCATE 3,66 sPRINT SPC<5) sGOTO 310 340 REH Bo» kayıt aranıyor.

350 SET «i, KN sIF KK* O “S” THEN KN»KN+l :GOTO 350

360 SON =CV1(ST*) :IF (SON-KN) <= 1 THEN 60T0 500

370 LOCATE 10,37 :PRINT KN sGOSUB 1000 tOOSUB 2000

380 LSET KK* = KA* sLSET Hl* * HA* iLSET OZ* * HO* sLSET BR* * BI*

390 LSET BF* » HKSİ(Cİ) sLSET AS* * HKI*<A) sLSET BS* = HKl*(B)

400 LSET ES* ■ HKI*(E) sLSET ST* * HKI*(SI sLSET YS* » HKI*(Y>

410 LSET OY* * HKI*<OI sLSET TA* * T* sLSET NAT* = NT*

420 PUT «1, KN :KNsKN+l

430 6ET «1, KN ıLSET ST*=HKI*(SON) iLSET KK*»’S” sPUT il,KN :60TÖ 40

500 LOCATE 7,12 sPRINT ‘Guruplar arasında bos kod yok ba$ka guruba giraelisiniî

510 ZZ*=INKEY* sIF ZZ*=“” THEN GOTO 510

520 LOCATE 7,12 sPRINT SPCİ55) sLOCATE 3,65 sPRINT SPC(5) ıSOTO 300

1000 REH

1010 REH Kayıt girıs isimleri alt progra»

1020 COLOR 0,7 »LOCATE 11,37 iINPUT *”,KA* ıLOCATE 12,37 ıINPUT **,HA*

1030 LOCATE 13,37 îINPUT “”,«0* sLOCATE 14,37 sINPUT “”,Cİ 1040 LOCATE 14,68 sINPUT ’”,BI* sLOCATE 15,37 sINPUT “”,A 1050 LOCATE 14,37 {»(PUT “\8 .-LOCATE 17,37 îINPUT **,E 1060 LOCATE 18,37 ıINPUT ’”,S ıLOCATE 19,37 ıINPUT *”,Y 1070 LOCATE 19,40 sINPUT “*,ö

1080 LOCATE 20,37 ıINPUT “\î* ıLOCATE 21,22 ıINPUT “,HT*

1090 COLOR 7,0 sRETURN 2000 REH

2010 REH Eski girişleri sile» alt prograaı 2015 LOCATE 10,37 sPRINT SPC(33J

2020 LOCATE 11,37 sPRINT SPC<33) sLOCATE 12,37 sPRINT SPC(33I 2030 LOCATE 13,37 iPRINT SPC(33) ıLOCATE 14,37 iPRINT SPC1151 2040 LOCATE 14,6B sPRINT SPC<2)

2050 LOCATE 15,37 sPRINT SPC133) sLOCATE 16,37 sPRINT SPCİ33)

2060 LOCATE 17,37 »PRINT SPC<33) sLOCATE 18,37 sPRINT SPC(33)

2070 LOCATE 19,37 sPRINT SPC(6) ıLOCATE 19,60 sPRINT SPCtfi)

2080 LOCATE 20,37 sPRINT SPC<33) sLOCATE 21,22 sPRINT SPC149I 2090 LOCATE 3,48 sPRINT SPC(23> sRETURN

LOfiD’A:FAZSTOK.BAS

Ok

LIST

10 REH #»*»«»#*#*#»#»*»###»### 6T0K KONTROL PR06RAHI 20 REH »hhhhhhhhmh FAZSTOK.BAS YAN PR06RAHI 30 DEFINT A-Z îKN=Î sLPRINT SPC(IO) “FAZLA STOK LİSTESİ*

40 GET II,KN sIF EOF(l) THEN CLOSE #i :CHAIN “KONTROL”,,ALL 50 IF KK*=”S” OR KK*=V THEN KN=CVI(ST*> sGOTO 40 60 Y=CVI(YSt) :S=CVI(ST*) :A°CVI(AS$)

70 IF Y=0 THEN FS=S ELSE IF S > A THEN FS=S-A 80 ÎF FSaO THEN KN*KN+1 sGOTO 40 ELSE BO**” *

90 LPRINT SPC!5);KN;TAB(lS);NI$;B0l;0Zt;B0t;”FAZLA STOK >”;FS;BO*;BR«

100 FS»0 ıKN>KN+l i GOTO 40 Ok

Stok Kontrola yeni başlarken önce STOK.DAT i si al i veri kütüğü yaratılmalıdır. 3000 çeşit aalzeae kodu kullanılacağına göre uygun şekilde tasnif edilerek aalzeae gurupları tespit edilir. 5000 kayıtlık bir kütük yaratılır. Her aalzeae gurubunun başlangıç kayıtlarında kontrol karakterine “S’ yazdırılır. ST* bilgi alanına da bir sonraki gurubun başlangıç kod nuaarası yazdırılır. Aşağıdaki prograa bu işlealeri yapan bir prograadır.

10 REH BOS STOK KüTüfiü YARATIR

20 DEFINT A-Z

30 OPEN “STOK.DAT’ AS »i LEN = 128

40 FIELD il, 1 AS KK*, 20 AS HI«, 25 AS OZ* , 2 AS BR*, 4 AS BF«,

2 AS AS*, 2 AS BS*, 2 AS ES*, 2 AS ST*,

2 AS YS*, 2 AS OY*, 8 AS TA*, 36 AS HAT*

50 B0*=* ” iINPUT “Kutuk kayit sayisini giriniz ı”,KS 55 M«HKÎ*(0)

60 FOR KN = 1 TO KS ‘5000 kayıttık STOK.DAT

70 LSET KK*«BÛ* ıLSET HI*=BQ* sLSET QZ*»BÖ* ıLSET BR*»BO* iLSET BF*«HKS*(0)

80 LSET AS*»H* sLSET BS*>U* iLSET ES MU ıLSET ST*»»* ıLSET Y8*«I5X* ıLSET OY ♦=XX» ıLSET TA*=B0* sLSET NAT*=BQ*

90 PUT il,KN tNEXT KN ‘kütüğü yaratılır.

100 KN*l

105 PRINT “Guruplar bitince kütük kayıt sayışını giriniz !!!”

110 INPUT “Bir sonraki gurup kodunu giriniz î’jöK 120 GET II,KN

130 LSET KK*=”S” îLSET ST*=HKl*(GK)

140 PUT II,KN :IF GK=KS THEN CLOSE II :END 150 KN=GK :GOTO 110

Bu prograa boş bir STOK.DAT veri kütüğü yaratır. Kütükte yalnız gurup kontrol karakterleri yüklüdür. Bundan sonraki işlealer KONTROL prograaı tarafından gerçekleştirilir. Kütüğe kayıtların girilaesi, stok kontrolü yapılacak aalzeaelerin belirlenaesi ve giriş/çıkış/düzaltae işlealeri KONTROL prograaı ile yapılır.

Pırlanıl ûcrıt Bordro programım iki ıııı aıacı vardır ■ Birinci aıacı bir l ılıt «»d* calilin aylıklı vı ytvıiyıli pırıonılin ücrıt bordroıunu hıııplayıp ıtandırt ttcrıt bordrosunu lunıaktır. İkinci aaacı pırsonıl ili ilgili biigilırin hır gün gSncillittiri lirik »örekli yıni tutulısaıdır. Fazla aesai hitabı bu prograaın dışındadır. Sıkil-19 da HİZMET ERBABI ÜCRET BORDRO örneği verilaistir.

Bordro üzerindeki sütunların hesabını sıra ile inceleyeli! :

OCRET

Personelin bürüt ücreti iki şekilde değerlendiril»ektedir : Aylıklı ve Yevaiyeli personel. Personelin aylığı veya yevaiyesi 1 nolu sütundadır.

CAL1STI61 GÜN

Fazla aesai dikkate alınaadığı için noraal günler değerlendirilecektir. Çalıştığı noraal günler 2 nolu sütundadır. AYLIK TUTARI 3 nolu sütundadır. Hesaplanışı aşağıda verilaistir: aylıklı personel için (3) = (d 1/30) * (21 yevaiyeli personel için (3) = (İM (2)

SOSYAL YARDIMLAR

YEMEK YARDIMI 4 nolu sütunda, YAKACAK YARDIMI 5 nolu sütundadır.

ÖDEMELER TOPLAMI

ÖDEMELER TOPLAMI i nolu sütundadır. Aşağıdaki foraüle göre hesaplanır :

(6) * (3) ♦ (4) t (5)

VERGİDEN MUAF KISIM

SİGORTA KESİNTİSİ (7) ve VERGİ İNDİRİMİ (8) vergiden auaftır.

(7) * 0.14 x (3)

Foraülü ile hesaplanır. Vergi indiriai herkes için 6000 TL dir.

MATRAH

Matrah 9 nolu sütundadır.

(9) * (6) – (7) – (8)

Foraülü ile hesaplanır.

6EL1R VER61S1

Gelir vergisi kesintisi aşağıdaki tabloya göre hesaplanır. 10 nolu sütunda gösterilaistir.

Gelir Vergisi Bareai Kesinti Yüzdesi

1 – 5 ailyon (dahil) X25

5-10 ailyon (dahil) 230

10-20 ailyon (dahil) 135

20 – 40 ailyon (dahil) X40

40 Bilyondan büyük X45

EZ K —

HATA KODLARI VE MESAJLARI

Hata kodlan lehçelere göre farklılıklar göstermektedir. Burada birçok lehçede kullanılan hata lesajların ın açıklasaları verilaistir s

1. NEXT NITHOUT FOR

NEXT deyiıi ile ilgili FOR deyiainin bulunmadığını belirtir. Değişkenleri ortak F0R-NEXT döngüsü kurulıalıdır.

2. SYNTAX ERROR

Hatalı diziliıde bir satırı belirtir. Parantez, virgül, noktalı virgül gibi noktalaıa işareti hatası olabileceği gibi hatalı yazılııs bir deyiı de olabilir.

3. RETURN HITHOUT SOSUB

RETURN deyiai ile ilgili. 80SUB deyisinin bulunmadığını belirtir. Alt prograılardan önce kullanılan STOP veya END deyiıi, alt prograılara yanlışlıkla girilıesini önler.

4. OUT OF DATA

READ deyisinin okuyacağı DATA deyişlerinde yeterli sayıda veri bulunmadığını belirtir.

5. İLLEGAL FUNCTION CALL

Ariteetik veya katar fonksiyonlarında belirtilen sınırlar dışında değişken kullanıldığını belirtir. Aşağıdaki duruşlarda da bu ıcsaj veriliri

– Eksi veya cok büyük üslü değer kullanılırsa

– Logaritıik fonksiyonlarda eksi veya sıfır değeri kullanılırsa

– SOR fonksiyonunda eksi değer kullanılırsa

* Taısayı olıayan bir değerin eksi kuvveti alınırsa

– Başlangıç adresi verilıeden USR fonksiyonu kullanılırsa

– Bir fonksiyon veya deyiıe uygun olıayan argüaan kullanılırsa.

6. OVERFLON 4

Değeri Basic’in gösterebileceği foraata göre büyük olan sayılar kullanılırsa bu lesaj verilir.

7. OUT OF NENORY

Çok uzun bir prograaı, çok sayıda FOR-NEKT döngüsünü veya alt prograaı belirtir.

CLEAR deyiıi ile bazı değişkenler silinerek yer kazandırılır.

8. UNDEFINED LINE NUHBER

Aranılan satır bulunaaadığı zaaan bu aesaj verilir.

9. SUBSCRIPT OUT OF RAN6E

Dizilerde DINENTION dışında değer kullanıldığı zaaan bu Msaj alınır.

10. ÛUBLICATE DEFINITION

]kı ayrı DİN deyiıi ile aynı devitkenin kullanıldığını belirtir.

11. 0IVISI0N BV ZERO

İslea içinde bir değerin sıfıra bölündüğünü belirtir.

12. ILLE6AL DIRECT

Koaut ortaaında kullanılaaıyan bir deyiain , koaut ortaaında kullanıldığını belirtir.

13. TYPE HISHATCH

Karakter katarının atanaası gereken bir yere sayısal bir değer atanırsa veya tersi islea yapılırsa bu aesaj verilir.

14. OUT OF STR1N6 BPACE

Basic, karakter değişkenleri için gerekli bilgi alanını, bellek alanının dışına tasana kadar artırır. Bu aesajla bellek alanının dışın tassa olduğu anlaşılır.

15. STRIN6 TDD LDN6

255 karakterden uzun veya beliritlenden uzun katar kullanıldığını bildirir.

16. STRİN6 FORNULA T00 COHPIEK

Bir karakter ifadesinin ya cok uzun olduğunu yada cok karaasık olduğunu belirtir. Parcalanaran basitlestirilaesi gerekir.

17. CAN’T C0NT1NUE

Hata sonucu duraus, isletil sistMi koautu ile durdurulauş veya aevcut olaayan bir prograaın CONT koautu ile devaa etaesi istenirse bu aesaj verilir.

18. UNDEFINED USER FUNCT10N

DEF FN deyiai ile tanıalanaaaıs bir fonksiyonun çağrıldığını belirtir.

19. NO RESUHE

Hata alt prograama girildiğini ve alt prograada RESUHE deyiainin bulunaadığını belirtir.

20. RESUHE NITHOUT ERROR

Bir hata alt prograama girilaeden RESUHE deyiai ile karşılaşıldığını belirtir.

21. UNPRINTABLE ERROR

Tanıaı verilaeyen bir hatanın oluştuğunu belirtir.

22. HİSSİING OPERAND

Bir ifade de operand eksikliği olduğunu belirtir.

23. LINE BUFFER OVERFLON

Satır ara belleğindi tısaa olduğunu belirtir.

24. DEVİCE TIKEOUT

Belirtilen aygıt ile o anda iletisia kurulaaadığmı bildirir.

25. DEVİCE FAUL!

Bir yazıcıda veya ara biriade donama hatası olduğunu belirtir.

26. FOR NITHOUT KEXT

FOR deyiai ile ilgili NCXT deyiainin bulunaadığını belirtir. FOR-NEÜT döngüsü kurulmalıdır.

27. OUT OF PAPER

Yazıcının kapalı olduğunu veya kağıdının bittiğini bildirir.

29. «HİLE NITHOUT NEND

NHILE deyiai ile ilgili HEND deyiainin bulunaadığını belirtir. Döngü taaaalanaalıdır.

30. HEND NITHOUT NHILE

NEND deyiai ile ilgili NHILE deyiainin bulunaadığını belirtir. Döngü taaaalanaalı

31-49. Aracındaki kodlar prograacı tarafından tanıalanan hatalar için kullanılabilir. Prograacı ERROR deyiainde, 31-49 arası kodlar kullandığı zaan aesaj olarak Minprintable error* çıktısı görüntülenir. ON ERROR deyiai kullanılarak bu kodlara tama verilebilir.

DI8K HATA KODLARI

50. FIELD OVERFLON

Ratgele erisiali kütüklerin FIELD tamamda belirtilen kayıt boyunun atılaası son veya OPEN deyiainde belirtilen kayıt boyunu gecen, FIELD tamamın kullanılaatı ı bu aesaj alınır.

51. INTERNAL ERROR

Donama arızasmın oluştuğunu belirtir. Disket okuaa sırasında olursa islee tekrı edilaelidir. Hata tekrarlarsa servis gerekir.

52. BAD FİLE NUHBER

İVEN deyiai ile acılaaaıs bir kütüğün, kütük nuearasmın bir deyia veya koautta kullanılaatı sonucu, Basic lehçesinin belirttiği sınırlar dışında kütük nuaarası kullanılırsa veya yanlış kütük tanıaı verildiği zaaan bu hata aesajı alınır.

53. FİLE NOT FOUND

Bulunulan disk veya disket kılavuzunda aranılan kütük bulunaadıği zaaan bu aesaj alınır. LOAD, KILL, NANE, FILEB, OPEN gibi koşutlar kullanılırken kitük bulunaaa hata oluşur.

. BAS FİLE NODE

Sıralı erisia için açılaıs bir kütükte PUT, 6ET veya LDF deyiıleri kullanılırsa, rasgele erisiıli bir kütük LOAD yapılırsa veya bir kütük O, 1, veya R kısaltıalanndan başka bir karakter ile açılıak istenirse bu hata oluşur.

. FİLE ALREADY OPEN

Daha önce açılaıs bir kütük »ıralı erisiıli çıktı kütüğü olarak tekrar acılıak istenirse veya KILI deyiıi ile silinıek istenirse bu hata oluşur.

UNPRINTABLE ERROR Herhangi bir tanııı yoktur.

DEVİCE 1/0 ERROR

Bir giriş veya cıkıs isleıi sırasında giris/cıkıs aygıtında oluşan bir hatayı belirtir.

FİLE ALREADY EIISTS

Isıi değistirilaek istenen bir kütüğe NANE koıutu ile verilecek yeni isıin, diskte bulunduğunu belirtir. Başka bir isiı verilıesi gerekir.

M. UNPRINTABLE ERROR

Herhangi bir tanısı yoktur.

DİSK full

Diskte veya diskette bos alan kalıadığını belirtir.

INPUT PAST END

Bu bir kütük sonu hatasıdır. Sıralı erisiıli bir kütüğün son kayıtından sonra INPUT deyiıi kullanılırsa bu hata oluşur. önleaek için EOF kontrolü yapılıalıdır.

BAD RECORD NUHBER

PUT veya 6ET deyişlerinde kullanılan kayıt nuıarasınm, Basic lehçesinde belirtilen sınırların dışında olduğunu bildirir, 0 veya 32767 den büyük olduğu zasan oluşur.

JAD FİLE NANE

Kütük islinin, Basic lehçesinde belirtilen geçerli kütük isai tanısına uyaadığını belirtir.

INPRİNTABLE ERROR Herhangi bir tanıaı yoktur.

IRECT STATENENT IN FİLE

ASCII kodunda saklanaıs bir kütük yüklenirken (LOAD veya CHAIN ile) prograa içinde satır nuaarasız bir satırın bulunduğunu belirtir. LOAD isleeine hata oluştuğu anda son verilir.

güncelleştirilecek.
. *)LL .

0,2,0,2,2,2,0,2,2,2

adiniz.

edilerek yapılır.

kullanılır.

Rate this post
Rate this post

Cevapla

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmelidir *

*