BASIC DEYİMLERİ
iyi «İtri AMAÇ, DİZİLİM (FORHAT), AÇMALAR, DİZİLİN ÖRMEKLERİ, LEHÇELER ve ÖRNEK LER baslıkları altında anlatılmıştır. Basic el kitaplarında kullanılan bu anlatım programcıya yapısal Basic’i öğretecektir.Ondan sonra bu kitap el kitabı olarakta labilmcektir. Yeni başlayanlara kolaylık sağlaması için deyimler değişik lehçelerin anları alınarak açıklanmaya çalışılmıştır. Dizilim kuralları acısından dünyada en kullanılan ve bugünkü lehçelerin kaynağı olan Microsoft BASIC-80 esas tır.
lümünde deyimlerin kullanılış amacı ve kısaca yapacağı işlem açıklanmıştır.
I bölümünde, Basic dili kurallarına göre deyimlerin nasıl yazılacağı ve neleri ıcağı anlatılmıştır. Dizilim içinde küçük harfle yazılmış bölümler programcı ıdan yazılacaktır. Büyük harfle yazılan sözcükler ise aynen göründüğü gibi :aktır. * < > ■ İŞARETLERİ ARASINA ALINAN SÖZCÜKLER İSTESE BA6LI SÖZCÜKLERDİR, jördükçe kullanılacak anlamındadır. Sona yazılan *…* üc nokta, kendisinden önce »lemanm istendiği kadar tekrar edilebileceğini göstermektedir. Dizilimde görülen (
* i ı sembolleri aynı yerinde ve sırasında olmalıdır. Dil kurallarını ve deyimlerin lini kısaca izah eden bir DİZİLİR KLAVUZU kitapçığı, kitabın ekinde verilmisltir. mcı Basic * i öğrendikten sonra sadece bu kitapçık ile deyimleri kullanarak program lecektir.
NALAR bölümünde deyimin uygulanışı, calısması ve fonksiyonu hakkında gerekli bilgiler istir.
apta dikkate alınan Basic lehçeleri ve aynı lehçeyi kullanan bilgisayar modelleri ■4 de anlatılmıştır. Hartaların lehçeleri aynı olmakla birlikte ‘version* lan az olabilir.
.ER bölümünde, diğer lehçelerin varBa HSBO’e göre ilave özellikleri veya farkları leye çalışılmıştır. Lehçelerdeki farklılıklar anlatılırken uygulaması tümüyle olmayan lmhcelerint değinilmemistir. Ancak EK-2 dm Tablo-4 deki Basic lehçelerinde kullanılan lirin tümü verilmiştir. Farklı Basic lehçesi kullanan programcılar gerekli tmeleri kendileri yapabilirler.
iyimin açıklamasının sonunda dizilim örnekleri veya program örnekleri verilmiştir, im örneklerinin akis diyagramları EK-4 te yer almıştır.
t NOT ı YENİ BAŞLAYANLARA, KENDİ BIL6ISAYARLERINDA KULLANILAN BASIC LEHÇELERİ İLE .1 AÇIKLAMALARI OKUMALARINI, BASICI ÖĞRENMEDEN DİĞERLERİNİ KESİNLİKLE OKUMAMALARI YE EDİLİR. BİLGİSAYARI OLHAYANALAR LEHÇELER BÖLÜMÜNÜ ATLAYABİLİRLER.
A-BASIC BURROUSHS ET-2000 (Kaynak-14)
6HBASIC (V.2.02) Epson PC Coaaadore PC-20 HP Vactra HB 3000 (az farklı) ve tüa PC’Ier (Kaynak-13)
BASICA (V.l.l) IBH-PC (Kaynak-4)
HSBASIC IV.5.28) Apricot Fel (Kaynak-1?)
H8X Canon Tosihba Vestel Spectra Video Sony Hoy Bit (Kaynak-iS)
HB8Û CPC-464 CPC-612B C-128 C-64 ATAR1-8001L SPECTRUH BUSINESS BASIC (Dartaouth EPSON HK-20 (Kaynak-3) AHSTRAD CPC-464 (Kaynak-6) AH8TRAD 6128 (Kaynak-16) Coaaadore 126 <Basic 7) (Kaynak-5) Coaaadore 64 (Basic 2) (Kaynak-5) ATARI 800XL (Kaynak-7) ZJI-6PECTRUH (Kaynak-17) Basic) (Kaynak-1)
1.2.1 AÇIKLAMA DEYİMLERİ
i. 1.6.2 di prograaın döküaan niteliği kızarımı için, prograaın bolü* bolü* acıklanaasını yararları anlatılautır. t»te REN deyiai bu ataç için kullanılır.
REM Deyimi
Ataç
Prograa içerisinde acıklayıcı notlar koyuya yarar. Prograaın kullanıcı veya prograaı tarafından kolayca anlaıılabilaeıini sağlar. Gerekli yerlerde kullanılarak prograaın akıı hakkında bilgi verilebilir.
fiilili!
REM <«cıkl*yıcı notlar>
türlü kullanılabilir karakterlerle açıklamalar yapılabilir. lamalar
program satırının sonunda sREH yazılarak açıklamalar yapılabilir ancak REN’den sonra « deyim yazılamaz. REH deyimi program listesinde görünmesine karşılık program dirken dikkate alınmaz. Bir işlem deyimi değildir.
reler
ic satırının sonunda ıREH yerine ( ‘ ) tek tırnak işareti yazılarak kullanılan lehçeler ı
9, &NBASIC, HSXf BASICA, HSBASIC, A-BASIC, BUSINESS BASIC, CPC-464, CPC-412B
»k Problem <1.1
A ile B sayılarını toplayıp C ye atayınız. Akı» diyagramı EK-4 te verilmiştir, gram ve Çıktısı ı
( Basla J
-1-
iki sayının toplamı programı
A»33.5
A*33.5 »REH 33.5 gercel sayısı A sayısal dejiskinine atanır
BM.S
8*4.5 *4.5 gerçtl sayısı B sayısal değişkenini atanır
Toplaaa isleai
C=A+B
C»A+B ‘A va B toplanır sonuç C ya atanır (■“)
60 PRINT C ’C nin dejeri ekranda görüntülenir
Ç DU R ^
70 STOP RUN
38
10 REH
20 LET
30 LET 40 REH
50 LET
1.1.3.2 de değişkenler bölûtönde, ATAHA illetinde yapılan acıklıaalardan da anlatıldı gibi ATAHA deyisi olarak LET deyiai kullanıltaktadır.
LET Deyimi
flaac
Bir ifadenin, değişkenin veya sabitin değerini bir değişkene ataaak için kullanılır. Dinlia
<LET> değişken » ifade
Değişken
Değilken isaidir. Karakter değişkeni, sayısal değişken veya indisli değilken isialeri olabilir.
İfade
Değeri değişkene atanacak olan ifadedir, ifade sabit, başka bir sayısal veya kurak’ değişkeni, tırnak içersinde karakter katarı veya indisli değişken olabilir. Aynı zat» da aritaetik ifade de olabilir. Ancak ifadenin tipi ile değişkenin tipi aynı olaalıdır.
Acıklatalar
Sağ taraftaki ifadenin değerini sol taraftaki değişkene atataya yarar. Bilinen cebir eşitliklerden az farklıdır. Surdaki ‘ 8 ‘ işareti, ifadenin değerini bul, bu değ değişkenin yerine koy (ata) anlaaındadır. LET sözcüğünün kul1 anıtı isteğe bağlıdır.
değişkendifade
seklinde de kullanılabilir, tfedenin tipi ile değişkenin tipi aynı oltadığı zaaan t ifadenin değeri bulunur, sonra değişkenin tipine dönüştürülerek ataaa yapılır.
Dizilit Örnekleri
10 LET A- 17.5 ‘17.5 değerini tek incelikli A değişkenine atar
20 LET BI* 5 ‘5 değerini BI taa sayı değişkenine atar
30 LET Ci812345678910,5 ‘çift incelikli gercel değeri, cif incelikli Cf ye atar 40 LET ¥$* ‘ANKARA* ‘ANKARA karakter katarını Yt karakter değişkenine atar 50 LET 1- A ♦ 9.6 ‘önce A+9.6*27.1 sonucu bulunur, bunu î değişkenine atar 60 BX* 19 ’19 tat sayı değeri D! tae sayı değişkenine atanır
70 E= 12A4 ’12A4 değeri tek incelikli E değişkenine atanır
Dönüştürülerek Ataaa Örnekleri
– Tek incelikli gercel sayıların taa sayıya dönüstürülıesi Örnek Probltt il.2
10 XX* 44.9 ‘44.9 tat sayıya dönüştürülür
20 YX* 257.3 ‘257.3 •
30 PRINT X,Y ‘ekranda X ve Y değerleri görüntülenir
RUN
45 257
inctlikli gercel (ayıların cift incelikli hale dönüştürültesi Problea :1.3
10 X* 6.43 ‘6.43 tek incelikli H e atanır
20 Yt* X ‘l in değeri çift incelikli hale dönüştürülür, Yt ye atanır
30 PRINT Yt,l ‘Y ve X ekranda görüntülenir
RUN
6.429999828338623 6.43
t incelikli gercel sayıların tek incelikli hele dönüstürülsesi Problea »1.4
10 X- 125.6789344# ‘cift incelikli değer tek inceliğe dönüştürülür ve X e atanır 20 PRINT l
m
125.6789
ilik incel i kİ teki sayıların illet sonuçlarının dönüştürültesi Problet s 1.5 10 X>123.6789344«/5.73 20 Y* 645.4/30.91 30 Zi=125.6789344#/5.73 40 PRINT X,Y,ZI RUN
21.9335 20.88673 22
değerler, içlerindeki en büyük incelikli değerin inceliğine çevrilir, sonra illet Ur. Sonuç soldaki değişkenin tipine dönüştürülür.
î» 3 ÇIKIŞ DEYÎMLERÎ
I bölüaünde çıkış üniteleri hakkında bilgi verilaisti. Basic bölütünde çıkış deyiti ak sadece PRINT deyiti anlatılacaktır.
PRINT Deyimi
ıları ekranda görüntülenıek için kullanılır, lil
PRINT <ifadeler listesi> <s> <,>
ifadeler listasi
‘isinde değişkenler, sabitler veya Basic ifadeleri bulunur. Bunlar birbirinden virgül, luk veya noktalı virgül ile ayrılırlar. Değişik kullanıl dizilişleri aşağıda iltiıtir. (Kaynak-111.
. in –
A. Liste içindeki ifadelerin birbirinden virgül ile ayrılsası durusunda Basic, satırı veya kayıtı 14 karakterlik dilişlere ayırır. Her değeri bir sonraki dilisin batına kaydeder.
Örnek Probles :1.6 10 LET A=5!
20 LET B*8.9!
30 LET C*=*ANKARA“
40 PRINT A,B-A RUN
5 3.9
B. İfadeler birbirinden noktalı virgül veya boşluk ile ayrılırsa, aralarında birer bosluk bırakılarak kaydedilirler. Artı değerlerden önce, ilave olarak bir boşluk daha kaydedilirken, eksi değerlerden önce ise işareti kaydedilir.
Örnek Problea s 1.6 (devasi
40 PRINT A^CIjZ.S.A-B RUN
5 8.699999 ANKARA 2.5 -3.899999
C. Karakter değişkeni ve katarlar noktalı virgül ile ayrılsışlarsa aralarında hic boşluk bırakılsa:.
Örnek Probles 11.6 (deveas) ı
40 PRINT A|C$î*İSTANBUL”
RUN
5 ANKARAİSTANBUL
D. İfadeler listesi noktalı virgül veya virgül ile son buluyorsa bir sonraki PRINT deyisinin sonuçları aynı satıra kaydedilir.
Örnek Probles »1.6 (devas)
I
t
40 PRINT A;
50 PRINT «iB-A RUN
5 ANKARA 3.9
E. İfadeler listesi bulunsayan PRINT, satır atlatsak veya bir kaydın bittiğini belirlesel için kullanılır.
l PRINT A;”İSTANBUL11 ) PRINT ) PRINT C$;B JN
J İSTANBUL »KARA 8.9
T yerine “?” işareti girilirse prograa listelendiği zaaan “? ” işareti yerinde PRINT üğü görülür <Kaynak-ll,4,i3,15).
r
76128
PRINT (ifadeler listesi) <)><,> iziliainde kullanılır. <,> ayıracı kullanıldığı zaaan Basic satırı veya kayıtı 13 arakterlik dilialere ayırarak yazar.
C-64
u Basic lehçelerinde, liste içindeki ifadeler virgül ile ayrılınca satır 10 arakterlik dilialere ayrılır. Her değeri bir sonraki diliain basın* kaydeder.
00KL
RİNT in kısaltılanı olarak “PR.” veya (?” ijareti kullanılabilir. Virgül!» :ullanıada satırdaki dilialerin kac karakter olacağı ‘P0KE201,bosluk sayısı* koautu le ayarlanır.
IH
‘RİNT AT deyiai U SPECTRUH’da kullanılır. “PRIHT AT satır-no,kolon-no” diziliainde tullanüır. Ekranın her hangi bir yerine yazdırabilaek için kullanılır, lalec lösterilen satır nuaarasındaki verilen kolona gider ve sonra gelen ifadeleri yazar, iatır-no (0-21), kolon-no (0-31) arasındadır.
PRINT AT 10,15}**”
teklinde kullanılır. SPECTRUN’da ifadeler virgül ile ayrılırsa ifadenin değeri latırın ortasına yazılır.
İS BASIC
PRINT < kolon no,sıra no > < ifadeler listesi >
Seklinde dizilia, ekranın her hangi bir noktasına yazdıraak için kullanılır. Kolon sıra nuaaraları verilerek yer secaek aüakündür. İfadeler listesi yukarıdaki ıcıklaaaların aynısıdır.
INPUT Deyimi ftıac
Ekrandan bilgi giraek için kullanılır. Prograa çalışırken, her hangi bir yerinden bilgi girişine yarar.
Dizili»
INPUT <}> <“açıklama”; > değişken <,de$i»kan> …
“açıklama”;
Birilecek verilerle ilgili karakter katarıdır. Hangi verilerin girileceği ve girilıı sıralarını aydınlatacak açıklasalar yapılabilir, isteğe bağlıdır.
i
INPUT sözcüğünün heaen arkasında noktalı virgül kullanılırsa ekranda satır atlasa al «a/
Takip eden ilk PRINT deyiainin sonuçları INPUT ile girilen verilerin bulunduğu satırd görüntülenir. Kullanılaaz ise satır atlanır.
deği»ken
Karakter değişkeni veya sayısal değişken isialeri olabilir. INPUT deyisinde en az bi değişken isainin bulunaası şarttır. Birden fazla değişken isai kullanılıyorsa virgül il bir birinden ayrılaalıdır. Ekrandan girilecek verilerin tipi ve sayısı ile değişke i sislerinin tipi ve sayısının aynı olaası şarttır.
Açıklasalar
Prograa çalışırken siste» INPUT deyisi ile karşılaştığı zaaan ekranda “?” işareti görülü ve veri girişi için beki eşeye baslar. Şayet “açıklasa’ yapılan ise ekranda w işaretinden önce açıklaaa görüntülenir ve veri girişi için bekieşeye batlar. Veriler girdikten sonra ENTER tuşuna basılır, Prograa çalmasına davsa «fer, ‘açıkla», katarından sonraki “j” yerine kullanılırsa, “?” işareti ekranda görünaez.
Girilen veriler sıra ile INPUT deyimindeki değişkenlere atanır. Birilecek veriler virg ile birbirinden ayrılaalıdır. Ekrandan girilecek karakter katarlan içerisinde vı-g veya bosluk yoksa çift tırnak kullanılaadan girilebilir (Kaynak-Ü).
Lehçeler
HBX,C-64,C-128
INPUT deyisinde belirtilen değişken sayısı kadar veri girilaezse sistea “??” iıar# ile sonraki veri veya verilerin girilaesini ister.
CPCm464 M2B
INPUT <1 aygıt-no><|X”ıcıklua*|> değişken <,değişken) …
Dizilisi kullanılır. Veri giriftinin belirtilen aygıttan yapıİtaatini sağlar.
SS BASIC
INPUT « c,r |> <LEN »mır) <*acıklatalar*> dersken <,devitken» …
< c,r > iılecin , veri girişi için ekranda gideceği yeri gösterıeye yarar, c iılecin gideceği kolonu, r gideceği satırı gösterir. Veri o noktadan girilir.
<tEN sınır), girilecek değişkenin kaç karakterinin dikkate alınacağını belirler.
SS BASIC,HSX,C-64,C-12B,SPECTRUH
Bu lehçelerde INPUT deyiaini takip eden <i> uygulatası yoktur.
BOOKL
<i> (‘açıklaaa11;) uygulaaaları yoktur. Sadece değişkenler vardır. *1.’ kısaltaası prograı dizenlenirken INPUT yerine geçer.
tUH
INPUT AT deyiti ile ekranın her hangi bir yerinden bilgi girişi yapılabilir. ‘PRINT AT satır-no, kolon-no’ dizilisinde kullanılır. Satır-no (0-21), kolon-no (0-31) arasındadır.
10 INPUT AT 10, isyankara” örneğinde 10. satır 15. kolondan ‘ankara’ karakter katarı girilir.
Problttltr
ktah virgül tiz kul i anıt i Probltt il.7
A»5.9 ile I değişkenlerinin çarpıtlarını bulunuz. Akıt diyagratı EK-4 tedir.
at ve Çıktısı :
_!_
A-5.9
10 LET A-5.9
\’K değerini
\ giriniz”,X
\-,-
20 INPUT “X değerini giriniz*; X
_ı_
B=A*X
RUN
II değerini giriniz
SiBteı veri girişi için beklemeye başlar, Veri firi idiictea sonra prograa kaldığı yerden devaa eder, j
X değerini giriniz? 19 A» 5.9 X* 10 A*X* 59 ok
10 sayısal sabit değeri ENTER tusu ile girilir. Sonuç PRINT deyisi ile alt satıra yazılır, b. Noktalı virgüllü kullanıl s Örnek Probles sİ.8
Y*a*bX eşitliğini a=3.7 , bM.O için X in değişik değerlerine güre çözen prograı yazınız. Akis diyagraıı EK-4 tedir.
Prograı ve Çıktısı :
C Basla )
10 REH Y*a+bx eşitliğinin prograııdır
*_
aa3.7 bM.O —j—
20 LET A*3.7 i BM.O 1
\”x değerini /
\giriniz*,X|
30 INPUT }*X değerini giriniz’, X
50 PRINT ’,Y**} Y
60 END m
RUN
X değerini giriniz 10,Y* 43.7 INPUT’u takip eden V , 50. satırdaki PRINT in icırijinin aynı satıra yazılışımı saflı? X değeri girildikten sonra prograı çalmasına devaı eder.
deyiti ile okunacak sayısal sabitler ve karakter katarlarını belirleaek için ıılır.
£
DATA sabit <,sabit> …
sabit
ıl sabit veya karakter katarlarıdır. Değişken isti veya ifade kullanılaaaz. Sayaısal er taasayı, ondalık kesirli, uslu, onaltı tabanlı veya sekiz tabanlı sayı irler. Karakter katarları içerisinde, virgül, noktalı virgül, iki nokta veya boşluk luyorsa çift tırnak içine ahnaadan kullanılabilirler (Kaynak-11,4,13).
nal ar
deyisi bir işlea deyisi değildir. Prograaın içerisinde herhangi bir yerde ıılabilir. teindeki sabitler birbirinden virgülle ayrılarak yazılır. Bir satıra lası halinde ikinci bir DATA deyiai kullanılır, DATA deyialerinin diziliş sıraları, deyişlerinin bunları istenilen sırada okuyabilaesi için önealidir. Bu konu READ inde açıklanacaktır.
la Örnekleri
10 DATA 2,10.7,2.63E+5,12345.67D+B
20 DATA 4789012.8901t,’ANKARA*,İSTANBUL
ci DATA deyiai ile, sırayla taa sayı, ondalık kesirli sayı, tek incelikli üslü sayı, incelikli üslü sayılar girilecektir. İkinci örnekte çift incelikli sayı ve iki adet ter katarı girilecektir. Bu verilerin belleğe girebilaesi için READ deyiai gerekir.
ler
ES8 BASIC
DATA < ni > sabit <,sabit) … diziliainde kullanılır. İleri Basic’e göre geliştirilaiş şeklidir. *nZ”, (n«l,2,3,4) DATA deyisindeki sabitlerin inceliklerini gösterir, n verilaediği zaaan sabitler ‘2-nard* inceliktedir. Bu konu ileri Basic bölüşünde anlatılacaktır (Kaynak-1).
READ Deyi mi.
deyiai, DATA deyisindeki değerleri okuyup, ilgili değişkenlerine ataaaya yarar, Jl
READ değişken <,değişken> …
dcegı»nen
Gerçek değerleri DATA deyi«inden okunacak sayısal değişken, karakter değişkeni veya indisli değişken ilişleridir. Değişkenlerin tipi ile onlara atanacak sabitlerin tipleri aynı olaalıdır.
READ deyişlerinin DATA deyişleri ile kullanılaası şarttır. READ deyisi, DATA deyi«indeki sabitleri, belirtilen değişkenlere birer birer sırayla atar. Bir READ deyiai birden faala DATA deyisine erişebilir. Bu duruada, DATA deyişlerine satır nusarası sırasına göre erişir. Aynı şekilde birden fazla READ deyiai, aynı DATA deyiaine erişirse ikinci READ , birincinin kaldığı yerden ataaaya devaa eder. DATA deyisindeki aynı değeri, birden fada READ deyisi okuyacak ise RESTORE deyiai kullanılır. (Bkz. RESTORE deyisi)
Örnek Probles ıl.9
Data deyişleri ile verilen verileri okusa prograaı.
Prograa ve Çıktısı >
Açıklasalar
10 REH n,Y,A»,TX,Bi,L$ değerlerini okuaa prograaı
20 READ XX,V,A»,TX,B*,L*
30 PRINT n,’Y;A#
♦0 PRINT Tİ;Bf;l$
50 DATA 2,10.7.263.40+4
60 DATA 65,678321.667891,” ANKARA1
70 STOP RUN
2 10.7 263. «DM 65 678321.66789 ANKARA
yi«indeki ilk üc değişkene 54 satır nuaarah DATA deyimindeki sabitler atanır, kalan ilkin» iıı 60 satır nmaralı deyisin sabitleri atanır, Her atamada değişken ve tipleri aynıdır.
roblea ıl.lO
■ta deyialeri ile okuaa yazaa prograaı. ve Çıktısı :
I PRINT “ADI”,”SOYADI’,’SİCİL NO1
I PRINT *—-
,» >.
> READ At,S*
‘DATA deyiainin ilk iki karakter sabitini okur
READ NOZ
‘DATA deyiainin okunaayan 3. taa sayı sabitini okur
PRINT Af,Sİ,NOZ DATA AHHET ORÇAN 2651
8T0P
N
SOYADI
SİCİL NO
NET
ORÇAN
2651
RESTORE Deyim± Aaac
Belirtilen satır nuaarasındaki DATA deyiainden itibaren, yeniden veri okuaaya başlanaasını sağlar. Prograaın her hangi bir yerinde kullanılabilir.
Dizilia
RESTORE <satır—no>
satır—no
Tekrar okunaası istenen DATA deyiainin satır nuaarasıdır. Satır-no kullanılaadığı zaaan prograadaki DATA deyialerinin birincisinden itibaren yeniden okuaaya başlanır.
Açıklasalar
Sıstea RESTORE deyiai ile karşılaştığı zaaan takip eden ilk READ deyiai, belirtilen satır nuaarasındaki DATA deyiainin birinci eleaanından okuaaya baslar. Satır-no verilaediği zaaan okuaaya, prograadaki birinci DATA deyiainin birinci eleaanından başlanır.
Örnek Problea si.il
Data deyiai ile okuaa yazaa prograaı Prograa ve Çıktısı s_
<T5T)
/oku x,y,z/
10 READ X,Y12 I ’60 satır-no lu DATA deyiaindeki ilk üç değer X,Y,Z ye atanır İm a,b,c I
—r—
20 READ A,B,C ‘70 satır-no lu DATA deyiaindeki ilk üç değer A,B,C ye atanır
Okuaaya 70.satırdan basla
30 RESTORE 70 ‘Okuaaya tekrar 70 satır-no lu DATA deyisinden başlanacağı
ı belirtilir
I OKU r,s,t /
40 READ R,S,T ’70 satır-no lu DATA deyiaindeki ilk üc değer R,S,T ye atanır
MiIıiıL/
50 PRINT X}Y;Z(A;B|C;R{S)T 60 DATA 5.5,10.1,9.2 70 DATA 11.1,12.2,13.3 80 STOP RUN
5.3 10.1 9.2 11,1 12.2 13.Î U.l 12.2 13.3
, bölüalerde öğrendiğiaiz gibi bir prograada, bir deyiain uygulaaası bittikten sonra edan deyiain uygulaaasına geçilir. Bazı prograalarda, şartlara göre prograaın değişik erine dallanaa düşünülebilir. İste KONTROL BEYİNLERİ prograadaki bu akın değiştirsek rla kullanılır. Bazen prograaın bir bölüaünün tekrar tekrar uygulanaatı (FOR … bazen de belirli aantıksal şartlara bağlı olarak akısın dallandınlaası (IF …THEN IE…), veya sartsız olarak dallandınlaası (SOTO …1 gerekebilir. (ON … SOTO …)
de sartlı kontrol deyialerinden birisidir. STOP ve END deyialeri prograalarm unı kontrol eden deyişlerdir, RUN ve CÖNT ise prograaın tekrar baslaaasını sağlayan ıl koautlarıdır.
GOTO Deyimi
sın akis sırasını, şartsız olarak değiştirip, satır nuaarası verilen deyiae dallanaa lasını sağlar.
I
GOTO satır—no
satır—no
aın içerisinde dallanılaası istenen satırın nuaarasıdır.
»»Ur
nuaarası verilen deyia bir REN veya DATA deyiai gibi islee deyiai değil ise, sonra ilk işlee deyiainden prograaa devaa edilir.
ve FOR-NEIT döngüsünün içine dallanaa yapılaaaz. Aynı sakilde bir alt prograaın UTINE) içine de dallanaa yapılaaaz.
İL
“BOTO A+30* diziliai kullanılabilir ancak tercih edilaez.
ise değin örneklerdeki akis diyagraslarında herhangi bir dallansa sözkonusu değildi, akis diyagrasalan idi. Prograada şartlı veya sartsız bir takıa dallanaaların ılacağı hissedilirse akis diyagraaı cizaek önea kazanır. Akis diyagraaı cizaek adaki akis yönü hatalarını ve aantık hatalarını önler. Bundan sonraki bölüşlerde a satırları arasında sadece dallanaaları gösteren akis diyagraaı parçaları çektir. Akis diyagraamın tüaü EK-4 te verilecektir.
Ptoblta s 1.12
Kenar uzunluğu bilinen 3 karenin alanını çözen prograa yazınız.
Çözüa Tekniği s
Bir adet kare olsa dallanaa gerektiraiyecekti, üç kare olunca her birisi için geri dönüşler yapılacaktır. Akif diyagraaı cizaekte yarar vardır.
Değişkenler t_
Karenin bir kenarı,ca (K)
Karenin alanı,caA2 (A)
Prograa ve Çıktısı :
10 REH Bu bir alan bulsa prograaıdır. İsai ALAN.
(j>-»20 READ K
30 PRINT ’^’iK, >REH Virgül ile son bulduğu için izleyen PRINT deyiai aynı satıra yazılır.
40 A*KA2
50 PRINT *ALAN8″5A
© «-~
60 SOTO 20 70 DATA 5,7,10 80 STOP RUN
K* 5 ALAN» 25
K» 7 ALAN» 49
K« 10 ALAN* 100
Out of DATA in 20
DATA ve REH deyialeri işlea deyiai olaadığı icın izleyen ilk işlea deyiai READ deyiaidir. Dallanaa sonucunda isİete READ deyiainden başlanır. READ deyiai ut defa DATA deyitini okur, değerler bitince prograa ‘Out of DATA in 20 ‘ uyarısı ile durur,
OIM – – – GOTO Deyimi
Aaaç
Verilen aritaetik ifadenin sonucuna göre prograaın başka yerlerine dallanabilae olanağı sağlar.
Oizilia
ON n GOTO satır-no <, satır—no>
n
Bir ta* sayı değişken veya aritaetik ifadedir, Aritaetik ifadenin sonucu taa sayı değişkene
dönüştürülür (yuvarla#a yapılısı).
»atır-na Prograaın icıriıind» dallanılacak ııtır nuaınlındır.
lıc.
»bileceği en büyük değer kadar değişik satıra dallanaa yapılabilir, n, O ile 255 bir değer olabilir, n in aldığı dağar listedeki hangi satıra dallanaa tını belirler. n»l ise üirinci satır nuaarasına, n*2 ise İkinciye dallanaa n İn değeri listedeki satır nuıarasından büyük ise islen takip eden deyiaden ilir.
oblea ı1,13
in değişik değerlerine karsa, Y değeri farklı eşitliklerle hesaplanMktadır, ağıda verilen eşitliklerden Y değerini hesaplayınız.
1<* X < 2 için Y «4,5*X+5 2<« X < 3 için Y »6 *X +8 3<s X < 4 için Y °9,2*X+12
tlirli şartlara göre değişik işlealer yapılacaktır, e halde dallanaa vardır. Akış yagraaı önealidir.
ıkniği s Değişkenler i
1-4 arasında bir sayı i X )
Fonksiyon sonucu ( Y )
ve Çıktısı >
0 REN X e bağlı Y eşitliklerini bulaa prograaı
0 REN Prograaın isai EŞİTLİK
0 INPUT *X değerini giriniz’|X
0 REH X e göre farklı eşitliklere git
W LET Y«4.S*X+3 70 SOTO 110 30 LET Y«4*X*B 70 SOTO 110 100 LET Y»9,2*X+12
110 PRINT “Y değeri»”jY 120 END RUN
X değerini giriniz? 2 Y değeri* 20 ok
Alil
Verilen ifadenin alacağı sonuca güre prograaın akis yönünü değiştiriri için kullanılır.
Dizili»
IF ifada THEN öneri deyimi <töneri deyimi> … veya
IF ifada SOTO satır-no
ifade
Basic ifadelerinden her hangi biri olabilir.
öneri deyimi
Herhangi bir Basic deyiai olabilir, “t* ile birbirinden ayrılaıs birden fazla deyia olabilir. Bir satır nuaarası da öneri deyiai olabilir.
Acıklaaalar
İfadenin sonucu, THEN sözcüğünden sonraki öneri deyialerinin islenip isimleyeceğini belirler. İfadenin sonucu D06RU ise veya SIFIR 0E6ÎL ise , THEN sözcüğünden sonraki öneri deyialeri islenir. 1.1.6.1 Prcgrılaıa Hantığı bölölündi verilin orjinal örneklerde bu deyiain işleyiş aantığı acık olarak anlatılıştır. Aynı tekilde ifadenin sonucu B06RU veya SIFIR DEŞİL isi isin SOTO dan sonraki satır nuaarasına dallandırılır. Şayet ifadenin sonucu YANLIŞ veya SIFIR ise, THEN veya SOTO sözcüğünden sonraki deyialer veya satır nuaaraları dikkate alınıaz, bir sonraki satırdaki deyiı islenir.
Bir Basic satırı sınırlı sayıda karakterden oluştuğu için ardı ardına öneri deyialeri yazılırken IF … THEN … deyiainin tülü bu sınırları geçmelidir. İKaynak-11,4,13,15)
Diziliı örnekleri
50 IF A>1! THEN C«AA2 >D*AA3 Bu örnekte A, 1 den büyük ise THEN den sonraki öneri deyialeri islenir. Değil ite izleyen satırdaki deyise geçer.
50 IF *>0.0 AND Y>0.0 THEN PRINT ‘İki»idi sıfırdan büyük*
X ve Y nin her ikisi de sıfırdan büyük ise aesaj yazılır. Değil ise izleyen satır nuaaralı deyiae geçilir.
50 IF A THEN 100 ‘A sıfır değilse 100 nolu satıra dallanılır
50 IF 8I»*EVET* B0T0 100 ’B$ karakter değişkeninin değeri EVET ise 100 nolu satıra
dallanılır
50 IF A<10,5) <0.0 THEN PRINT *A(10,5İ negatiftir* ‘A(10,5) ekti ise bu aeıaj
yazılır
50 IF Z-0.0 0R T<10 THEN V«Z*T ’Z sıfıra eti t veya T 10 dan küçükte Y«Z*T
hıtıplınır.
IEN dizilini kullanılaaz. Kullanılırsa THEN sözcüğü BOTO gibi işlea görür.
IF ifade 60T0 satır-no IF ifade öneri deyiai <\öneri deyiai) … lialeri kullanılır. İfadenin değeri sıfır değil veya doğru ise izleyen öneri ileri veya 60T8 deyiai islenir. 1c ice IF deyiai kullanılabilir. İfadeden sonra ı deyiai kullanılıyorsa LET autlaka yazılaalıdır.
IF A$,B$=C$ LET A*=’AL1″\8t=“HEHEO*\60TC 100
.»SPECTRUH
IF ifade THEN öneri deyiai <:öneri deyiai> liainde kullanılır.
iaa ı1.14
ıdan girilecek iki sayıyı birbiri ile karşılaştırıp büyüğünü ekrana görüntüleyen raa yazınız.
iği ı Değişkenler :
Birinci sayı (A)
İkinci sayı (B)
Çıktısı :
EH İki sayının büyüğünü bulaa prograaıdır. NPUT “Sıra ile A ve B yi gir*;A,B
F A > B THEN PRINT ‘A B den büyüktür* :6QT0 30
( B A dan
vbüyüktür/
‘RİNT ’B A dan büyüktür”
:nd
i ile A ve B yi gir? 29,13 den büyüktür
(X1er i Basic)
A«£
Verilen ifadenin alacağı sonuca göre THEN veya ELSE (teyitlerinden birinin uygulanaasına yarar. Bu bir İLER! BASIC deyiaidir.
Dizilia
IF ifade THEN öneri deyimi ELSE öneri deyimi veya
IF ifade GOTO satır-no ELSE öneri deyimi IF … THEN deyiaindeki dizilia acıklaaaları bu deyia içinde gectrlidir.
Acıklatalar
İfadenin sonucu D06RU (SIFIR DE61U ise THEN veya SOTO deyiai islenir, YANLIŞ (SIFIR) ise ELSE deyiai islenir. IF … THEN … ELSE in tüaü bir deyiadir. Birbirinden *9* ile ayrılarak art arda sıralanan öneri deyialeri kullanıldığı zaaan tüaü bir satıra sığmayabilir. Bu duruada ENTER tuşuna basılaadan boşluk tuşu ile alt satıra devaa edilaelidir. Ekran düzenleae bölüaünde bir deyiain birden fazla satırda devaa edebileceği belirtilmişti. Ancak bu satırlarda satır nuaarası bulunaaıalıdır.
İC ica birkaç IF…THEN…ELSE deyiai kullanılabilir.
Dizilia Örnekleri
10 IF A«B THEN C«AA2 ELSE C«A*3 A, B ye eşit ise C*AA2 islenir, deyil ise C*AA3 islenir ve izleyendik deyia ile devaa edilir.
50 IF B*«”EVET” THEN PRINT ‘Bitti’ ELSE SOTO 10 B$ karakter değişkeninin değeri EVET ise aesaj verir, değil ise 10 nolu satıra dallanır. 100 IF X>Y THEN PRINT “BÜYÜK” ELSE IF X<Y THEN PRINT “KüCüK” ELSE PRINT “EŞİT”
İC ice IF/THEN/ELSE örneğidir. K>Y ise BÜYÜK , X<Y ise KüCüK, XSY ise E51T aesajı verir.
Lehçeler
C-128
C-128 de ELSE sözcüğünden önce “:* işareti yazılarak kullanılır :
50 IF X>0 THEN PRINT “TANAH* i ELSE STOP diziliainde kullanılır.
Örnek Probleaı 1.14 (devaaı)
IF/THEN deyiaindeki problemi IF/THEN/ELSE kullanarak tekrar çözünüz.
Prograa ve Çıktısı :
10 REN tki sayının büyüğünü bulaa programıdır.
20 INPUT “Sıra ile A v» B yi gir”}A,B
30 IF A > B THEN PRINT *A B den büyüktür’
ELSE PRINT ‘B A dan büyüktür’
»40 STOP Dk RUN
Sıra ile A ve B yi gir? 25,13 A B den büyüktür
ı Problen 1.15
Bir buz pateni salonuna sporcuların girişi bazı şartlara bağlıdır. Yası 18 den küçük, 25 den büyük olanlar ile, ağırlığı 60 kg’ın üzerinde olanların piste zarar
vereceği düşünülerek giraelerine izin verilaeaektedir. Salonun girişine bir
bilgisayar yerlestirilaiştir. Her sporcu bilgisayarın sorularını klavyeden
cevaplayacak, ekrandan alacağı aesaja göre hareket edecektir. Bu prograaı bilgisayara yazınız.
’ia va Çıktısı t 10 REN Bu bir giriş kontrol prograaıdır. P. İsai KONTROL.
»20 INPUT ‘Yalınızı gıriniz’jYA 30 INPUT ‘Kilonuzu giriniz’}K6
40 IF K6 > &0 THEN PRINT ‘Kilonuz fazla 61REHEZSIN1Z’ ıBOTO 20
50 IF YA > 18 OR YA >25 THEN PRINT ‘Yasınız uygun değil GİREMEZSİNİZ* I60T020
Kilonuz r fazla gire-j THEN aezsiniz /
evet
hayır
ELSE PRINT ‘filREBÎLIRSlNIZ* (SOTO 20
60 STOP
MM
Yatının giriniz? 19 Kilonuzu giriniz? SS Yatınız uygun değil SIREHEZBÎNIZ Yivinizi giriniz? 20 Kilonuzu giriniz? 65 Kilonuz fazla GİREMEZSİNİZ Yalınızı giriniz? 22 Kilonuzu giriniz? 50 61REB1UR8IN1Z Yalınızı giriniz?
Yukarıdaki örnekte 50 nolu satır bir ekran satırına sığmaktadır. ENTER (RETURN)’e basıadan alt satıra devaı ediniz, deyiı bitincı ENTER’* basınız.
Her sporcu ekranda ‘Yasınızı Biriniz” ıııajını görecıktir. Problea öylı gerektirdiği için prograı durudan devaı ıdecektir.
f=-OR / İME X T Dvyimi
Aüsl
Bazı duruılarda bir gurup deyiıin istenildiği kadar, tekrar tekrar isiermesi gerekebilir, llleı tekrarı (döngü) bir kız yapılırsa bunu IF/THEN ve SOTO deyiılıri ile yapıak ■ûıkündür. Ancak döngü sayısı artınca F0R/NEXT bu islin kolaylık sağlar. FOR ve NEXT deyiılıri arasındaki tün dıyiılerin belirli sayıda islennsini sağlar.
Diziliı
FOR <döngü sayacı> “ x TO y <8TEP z>
ı
NEXT <döngü sayaçıX,döngü sayacı>…
döngü sayacı Sayıul değişken veya taı sayı değişken islidir.
M
Döngü sayacının başlangıç diğeridir. Taı sayı sabiti olabildiği gibi bir değişken isai viya bir aritaetik ifade de olabilir.
y
Döngü sayacının biti» değeridir. Taı sayı sabiti olabilıcıği gibi bir dığisken ini viya bir aritntik ifade d« olabilir.
STEP z
tyacının batiangıç değerinden itibaren kaçar kaçar artacağını belirler. Taı sayı bir değilken isai veya aritaetik ifade de olabilir.
ılar
N£XT deyialeri arasındaki diğer deyialer, sayacın başlangıç V değerinden ‘step* te len artışlarla *z* artarak, bitil *y* değerine kadar tekrar tekrar islenir. FOR ve yialerindeki döngü sayaç isialerinin aynı olaası gerekmektedir. Bilgisayarda islea tu tekilde olur : Döngü sayacı başlangıç, bitil ve artış değerlerini alınca, MEXT e kadarki ara deyialer islenir. NEXT deyiai, döngü sayacını verilen artış kadar ve islee FOR deyiainin altındaki deyi»den tekrar batlar. NEXT deyisine kadar islet der. Bu döngü, döngü sayacı bitiş değerinden büyük veya esit oluncaya kadar devaa NEXT deyisinde son bulur. İllete NEKT deyiainin altındaki deyiaden devaa edilir.
kullanılmadığı zaaan döngü sayacı birer birer artar. Artıt V değeri negatif ise *y* değerinin, başlangıç V değerinden küçük olması gerekir çünkü döngü sayacı sırada değişecektir. Döngü sayacı bitiş değerinden küçük olunca döngü son :tır.
z artı olduğu zaman x>y olamaz, z eksi olduğu zaaan x<y olamaz, ımda FOR/NEKT deyiai islenmeden atlanır.
•’ÖR I » 1 TO 20 STEP 2
4EXT I
ı örneğinde I, i den batiayarak 2 ter artışlarla 20 ye kadar artar. 21 olduğu zaaan t büyük olduğu için NEXT deyiminde biter. 1*21 olduğu zaman da ara deyimlerin iğine dikkat ediniz.
FOR I* 1 TO ft*5 STEP C
ı Örneğinde, V değerinde, aritmetik ifade kullanılaııtır. “z” değerinde ise sayısal M kullanılsııtır. A+5 in sonucu bitiş değeridir.
Oönnfl Kullanımı
programlarda döngü içersinde batka döngüler de gerekebilir, tç İçe bir cok döngü aak mümkündür. Bir döngüyü
—FOR …..
—HEXT …
ide gösterirsek, ic İçe döngüleri doğru ve yanlış şekliyle aşağıdaki şekilde ebilirizı
Doğru
ı
LC
Yanlış t
i isi”itli’
hr> t>;i 3 İ *• İSj^sö! j î? îsi‘
Şaki İd» de gösterildiği gibi döngüler birbirini keseıez. Ancak birden farla döngünün NEXT deyiai art arda geliyorsa, aşağıdaki gibi aynı satırda gösterilebilir:
NEXT 1 :
NEXT İ veya NEKT I,J,K
NEKT K :
Aşağıda iki değişik dizili» örneği veril aittin
FOR 1*1 TO 20
s
-FOR J*i TO 10
-FOR K*1 TO A+10
—NEXT K -MEXT i
-FOR A*B TO C STEP 2 j,>j :
j , ——–:
s
—FOR X*1Ö ro 1000 :
-FOR 1*1 TO 10 ı
S » * pJ I
IIP F.’ıîfM 1t.U W
-MEXT 1, X, A
te*:
-NEXT I
nıe
îl
GOTO deyiai ile FOR/NEXT döngüsünün dışına çıkılabilir, ancak dışardan için^,girile«ez. Aşağıdaki seaalarda doğru ve yanlı* tekilleri göster il «istir. Kaynak-U. .feahsM ■
/
s
V ! i
Doğru
-10 FOR I*…..
s
«
-60 SOTO 240
-90 NEXT
Yanlış
-10 FOR J*..,… ■
-40 LET D*C+B %
t
S
– 80 NEXT 1
U.‘ ıRiSîS-v •i pfcî’tı’ !*K s im i
\ »
V i ^240 YI-‘ANKARA” ı
\
\ 5 —110 SOTO 40
ı
İC İc* FOR/HEHT deyiai kullanılabilir. Bunların çalma »akli Kaynak-1 de lıtılaaktadır.
ıblaat 1.16
■ilen her hangi bir sayıya kadarki sayıların toplaamı veren bir prograa yazınız. w Çıktısı :
REH Verilen sayıya kadarki sayıların toplaalarını bulur. P. İsai TOPLAM.
INPUT ‘Bir sayı giriniz’;B
–
FOR 1*1 TO B LET T»W
K-B
-llıB
I>B
> MEXT I
PRINT iT0PUK»,jT ı STOP
İN
r sayı giriniz? 25 IPLM> 325
obleıde FOR/NEKT döngüsü için akis diyagraaı sekli görülaektedir. * 50 NEXT I” n berindeki diyagraa tüaü ile FOR/NEKT deyisine aittir.
obl«*> 1.17
r nufus sayıaı sırasında size 10 adet nufus sayıa belgesi verilaistir. Sizden bu ılgelerdeki evli ailelerin sayısını, toplaa çocuk sayısını ve en az bir lisan ilenlerin sayısını bulaanız isteniyor. Belgelerdeki sorulara verilen cevaplar Uğıdaki gibidir:
S.lı Evli aisiniz bekar aısınız (E/H) »E S.2: Çocuğunuz varat (E/H) :E
8.3ı Kac çocuğunuz var i2
S.4: Evde an az bir lisan bilen
kac kişi var (yoksa 0 yaz) il
Evli «ildirin topluı ■ 7 Toplaa çocuk sayısı = 14 Lisan bilenlerin toplaaı» il
aaı kodlarken 60T0 deyiai ile ileriye dallanaalarda satır nuaarası bilinaediği için bo» bırakılır sonra kodlanır. IF/THEN ve IF/THEN/ELSE deyişlerini kodlarken en uygun mtayı yapabilaek için, bu deyialerdeki ifadelerin seabolleri “=,<>,<,>,=<,=>* duruaa değiştirilebilir.
STOF> Deyi mi
at uygulatasım durdurur ve koaut ortasına döndürür. Koaut ortaaı 1.1.7.1 de :ılaı$tır.
iâ
STOP
lllllar
deyiai prograaın içinde herhangi bir yerde kullanılabilir. islet sırasında STOP deyiai tdüğü zaaan prograa o satırda durur ve satır nuaarasmı aesaj olarak verir. STOP deyiai :unda ‘Break in 50″ veya *ST0P AT 50* seklinde aesaj verir. Prograa her hangi bir |ü acaıs ise STOP deyiai ile bu kütükler kapanaaz. STOP deyiai daiaa Basic’i koaut ıına döndürür. Tekrar isleae başlatası için RUN veya CONT koşutlarının girilaesi kir.
END Deyim±
rat uygulaaasmı durdurur, acılaıs tüa kütükleri kapatır ve koaut ortaaına döndürür.
lii
END
UfpUr
raam her yerinde kullanılabilir, İslet sırasında END deyiai göründüğü zaaan prograa o rda durur, STOP deyiainde olduğu gibi herhangi bir aesaj veraez. Acılaıs tüa kütükleri tır ve koaut ortaama döndürür. END deyiainin kullanılta zorunluluğu yoktur. Prograa laaası bitince END deyiai olaasa dahi Basic koaut ortaama döner.
İla Örnekleri 10 IF A>B THEN STOP ELSE END iki duruada da prograa uygulaaası durur ancak END ile durursa acılaıs bütün kütükler tılır.
ı
50 GOTO 100 ı I
aı*£
Durdurulaus prograaı tekrar kaldığı yerden baslataak itin kullanılır.
Dizilia
CONT
flcıklaaalar
Prograa STOP ve END deyialeri ile veya klavyeden durdurulduğu zaaan CONT koautu ile kaldığı yerden devaa eder. Meri Basic yorumlayıcılarında prograa hata için duraus ise CONT koautu ile kaldığı yerden devaa ettirilebilir. CONT koautu STOP deyiai ile birlikte prograa içindeki hataları bulaak için kullanılır. STOP deyiai ile prograa belirli yerlerde durdurulup, PRINT koautu (satır nuaarasız olarak) ile ara sonuçlar alınıp kontrol edilir ve prograa CONT koautu ile devaa ettirilir. STOP deyiai ile durdurulaus prograada dizeniea* yapılırsa CONT koautu, işlevini yapaaz. 8T0P ile durdurulaus prograaın bütün değişken ve indisli değişkenlerinin değerleri son seklini korur.
Lehçeler
SPECTRUN
Bu lehçede yerine CONTINUE koautu kullanılır.
Örnek Problea» 1.18
axA2+bx+c=0 denkleainin köklerini bulan bir prograa yazınız, a, b ve c katsayıları, prograa girildikten sonra kökleri bulsun ve dursun. Kökleri PRINT koautu ile görüntüledikten sonra başka katsayılar için isleae devaa edecek şekilde tasarlayınız.
Cözüa Tekniği ı
Denklea t axA2 + bx + c ■ 0
-b+v/bA2-4ac
Kökleri ! xl=-
2a
-b-N/ bA2-4ac
x2«-
2a
bA2-4ac < 0 ise KÖKLERİ SANALDIR.
Prograa ve Çıktısı t
10 REH İkinci derece denkelaain köklerinin bulunaası. 20 REH Prograaın isai KOKBÜL.
(TV*30 INPUT ’Sıra ile A,B,C katııyılırını giriniî”|A,B,C 40 K«BA2-4»A*C
IF İC < O THEN PRINT ‘KÖKLER SANALDIR” sGOTO 30 U= (-B+K) / İ2*A>
X2= <-B-K)/(2*A)
STOP 60T0 30
‘i ile A,8,C katsayılarını giriniz? 5,7,10 KLER SANALDIR
‘a ile A,B,C katsayılarını giriniz? 2,34,20 tak in 80
INT *XI,X2=’jXi,X2 ,12- 962 -1030
UT
‘a ili A,B,C katsayılarını giriniz? s
jörüldüğü gibi birinci gurup katsayıların kökleri sanal çıkıyor ikinci gurup için buluyor. STOP deyisini görünce isleae ara verip koıut ortaama dönüyor. PRINT girince Basic XI, X2 değerlerini veriyor. Tekrar koaut ortaama dönüyor. CONT girince, *90 GOTO 30* deyiaini isledikten sonra basa dönüp devaa ediyor. Bu olduğu gibi prograaın belirli yerlerinde ara sonuçlar alınıp prograa bilir.
RUN Komu-tu
raa uygulaaasmı başlatır.
JN <satır-no> veya
JN kütük tanımı <,R> (bir ileri Basic dizil isidir)
satır-no
uygulasasına hangi satırdan başlanacağını belirten satır nuaarasıdır.
kütük tanımı <,R> lığı getirilip uygulanacak kütüğün tanıaıdır. R kullanıldığı zaaan bellekteki acık bırakılır.
Acıklaaalır
9u anı kadarki prograalar uygulamaya birinci satırdan batlatıaı* idi. RUN koautu ile istenirse prograa her hangi bir satırdan başlatılabilir ancak döngü içinden baslatılasaz.
RUN 50
koautu ile uygulaaa 50 inci satırdan başlatılır. RUN koautu ile başlayan prograadaki tüa değişkenler sıfırlanır.
HfcaHır
M980,G«BABIC,BASICA,HSBASIC,A-BASIC
Bu lehçelerde ikinci dizilia de kullanılır. RUN koautu ile uygulaaasına baslanaıs prograa ‘Cntrl+Break* tuşları ile durdurulabilir.
BUSINESS BASIC
Uygulansakta olan prograa ‘ESC* tutu ile durdurulur.
RUN kütük isai
vaya sadece “kütük isai* girilerek prograa uygulanabilir.
CPC-464,6128
RUN <aatır-no>
Diziliai ile birlikte RUN <*kütük isai*) diziliai de kullanılır, ikinci dizilia kullanıldığı zaaan adı verilen prograa kaset teypten belleğe yüklenir ve uygulanır. CPC-6128 de disketten yükleae yapılır ve uygulanır.
C-128
Birinci dizilia aynen kullanılır. İkinci dizilia atağıdaki gibidir:
RUN “kütük İMİ* < ,türücü-no><,yan bellek ünite-no)
sürücü-no
Uygulanacak prograaın hangi disk sürücüden alınacağını belirler. Yazılaazsa 0 kabul edilir.
yan bellek ünite-no
Birden fazla yan bellek ünitesi varsa bunların nuaarasıdır. Prograaın hangi yan bellek ünitesinden alınacağını belirler. Yazılaazsa 8 kabul eder.
ATARI-800M.
Birinci diziliş aynen kullanılır. İkinci diziliş aşağıdaki tekilde kullanılırı RUN ’DıYAZ.BAS*
Prograaı disketten yükler ve çalıştırır,
de eolatılan AÇIKLAMA Deyialeri prograacı ya yönelik acıklasaları içeren deyialer Ur Ve B-mc yorumlayıcısına yönelik olan, programsızda kullanacağıaız VERİLER!
hakkında yorualayıcıya bilgi veren deyialer vardır. İste bu deyişlere rt DEiifSıESU denir. Tanıtla deyialeri prograa uygulatası sırasında islenaezler (REH ;:Lıî, sadece yorualayıcıya veri hakkında bilgi verirler.
bölüşünde dizi deyiai olarak bilinen DM deyiai anlatılacaktır. Diğer tanıtla eri ileri Basic bölüşünde anlatılacaktır.
DIM Deyimi
tndisli değişkenin alabileceği aaksiaua eleaan sayısını tamalar. Ana bellekte o lükte yer ayırır.
İi
DIM indisli demişken <,indisli de$isken>…
indisli değişken
ili değişken ‘değişken (indisler)’ seklinde yazılır (Bkz.1.1.3.21.
inilir
ı sayısı yani boyut sayısı en fazla 255 olur. Her indisin en büyük değeri yani eleaan ıı en fazla 32767 olabilir. Bu sınırlar yorualayıcılara göre değişir. Dlfl deyiai ile ılaaa yapılaazsa Basic bu dizinin indisini 10 kabul eder. Bazı Basic lehçelerinde her nin ayrı ayrı DIH deyialeri ile tanıalanaası gerekir. DIH deyiai ile dizileri raam basında tanıaiaaak iyi bir alışkanlıktır. İndislerin en küçük değeri 0 (sıfır) ancak ‘ÜPTION BASE 1’ deyiai ile bir den başlatılabilir (Bkz.0PTI0Ü BASE deyisi), c dizi elemanlarına başlangıç değeri olarak sıfır verir.
‘ Yeni başlayanların önce 1.1.3.2 deki tHDISL! DE61SKEN isialeri bölüaünü bir ı daha okuaaları faydalı olacaktır.
ılia Örnekleri 10 DIH A(5,7),BfU0),K< J<2), 5),Y(L,H>
çeler
INESS BASIC
Bu lehçede DIH deyiai indisli değişkenin alacağı en büyük değeri belirlediği gibi değişkenlerin inceliklerini de belirleaekte kullanılır.
DIH 4l,D(2.3) Örnekte D dizisinin eleaanlannın 4 ’tıard* yer kaplayacağını tamalar. Kaynak-İ. tRI-B00XL
DIH deyiai ile tanıalanaadığı zaaan dizi işlevini yerine getirsaz.
flrnık Probluı 1.19
Elinizde bir A dizisi var. Dizinin eleaan sayısı 20 dir. Dizi el «ani arının içerisinde değişik değerler var. Bu dizi diğerlerinin en küçüğünü ve en büyüğünü
bulan bir prograa yazınız. Dizi değerleri DATA deyiai ile verilecektir.
Cozüı Tekniği :
AU9) dizisinin birinci eleaanı BüYüK ve KüCüK DEBER değişkenlerine atanacaktır. Bir sonraki eleaan büyük vt küçük değerlerle karşılaştırılacak, büyüklük duruauna güre büyük ve küçük değerlere yeni ataaalar yapılacaktır, veya bir sonraki eleaana girilecektir. Sizi bitince büyük ve kicük dığiskmlırindı, istenen dığerltr yır alacaktır.
Prograa vı Çıktısı t
10 REH Bu prograa bir dizinin en büyük ve en küçük değerini bulur. P. İsai ARAKA.
20 IIN A<20)
30 READ A(0) ‘A dizisinin birinci ıleaanı okunur.
40 LET BU*A<01 ‘1. ılıtan bu değişkene atanır.
30 LET KU«A(0> ‘1. ılıtan bu dsğiıkent atanır.
&0 REN Dizinin diğır elıtanılrının okunanı ıBBngi baılangıcı
70 FOR I»l TO 19 80 REAS A(I1
‘I ılf d&ngü baılangıcı * A dizilinin sonraki ılmnını okur
90 IF Ati) > BU THEN LET MMÜ) ıSOTO 110
100 IF A(I) < KU THEN LET KU>Ad)
(T)*ıto next i
120 PRINT ‘Büyük değir »*jBU
130 PRINT “Küçük dığır -‘|KU
140 DATA 10,29.2,7,13,43,9.9,12,13.1,3.3,3.1
190 MTA 4,11,14,40,42,17,33,23,14,15
160 STOP
İN
yük değer ■ 60 ıçük değer = 3.1
sıfır indisli eleaanı birinci elesandır. Her READ deyisi sırayla DATA deyisinden |er okur ve kaldığı yerden okusaya devaa eder. 90 ıncı satırda THEN’i izleyen . deyisinin dallanacağı satır nusarası sonradan yazılır. İ00 üncü satırda ise izleyen deyişlerde 6ÖT0 deyisine gerek yoktur. KU *A(!) deyisi islendikten sonra lir alt satırdan devaa edilecektir. 110 uncu satır döngü sonudur. Yukarıdaki GOTO in satır nusarası 110 dur.
roblesı 1.20
İr süperaarket reyonunda 10 cesit gıda saddesi bulunaaktadır. Her gıda iaddesine ir kod verilaiştir. Her aadde ile ilgili şu bilgileri içeren STOK LİSTESİ ulunaaktadır :
Kod-no, En az stok seviyesi (biria aiktar), En fazla stok seviyesi (biria siktar), Stok (b.a), Biria fiatı (TL/b.a), Sünlük satış (b.a). b.a * biria aiktar
«siyerin yanındaki bilgisayar ile, satış sırasında stok kontrolün otoaatik olarak apılaası istenaektedir. En az stok seviyesinin altına düşen «addeden en fazla stoğa ükselecek aiktarda depodan teain edilsesi için ekrana aesaj veraesi istenaektedir. iatı»ı yapılan aaddenin stok durusunun yenilenaesi ve her 100 sattı işiesinden «nra o ana kadarki topla* günlük sattım TL olarak ekranda gbrüntûlenaesi istenaektedir. Akıaa olunca ana bellekteki STOK LİSTESİ’nin ekranda görüntSlenaesi le bu bilgilerin ertesi gün klavyeden girilebilaesi için kağıda not edilaesi jsrekaektedir. Bilgisayarın yazıcısı ve teybi yoktur. Bilgisayar için bu STOK (0NTR01 prograaını yazınız.
Tekniği s
ı – STOK LİSTESİ’ni şu ana kadarki bilgileriaizle iki boyutlu dizi olarak düşünebiliriz.
ST(10,5)
dizinin tanıaıdır. Dizinin birinci indisi kod nuaarasını gösterir. Birinci indis (K)« Kod nuaarası (KN).
ST(K,1) 8 En az stok levyesi (b.a)
ST(K,2) * En fazla stok sevyesi (b.a)
ST(K,3) » Stok (b.a)
ST(K,4) » Biria fiatt BF (TL/b.a)
ST(K,5) = Bönlük satış (b.a) b ~ Her gıda aaddesi satışında stok değeri aşağıdaki foraüle göre yenilenin Stok(b.a) ■Stok(b.a)-Satış (b.a) c * Stok (b.a) < En az Stok Sev.(b.a) olduğu zaaan
Sipari»(b.a)«£n Fazla Stok Sev, (b.s)-Stok(b.a) foraülü ile sipariş aiktan bulunur.
d – Aksa» olunca prograaın durdurulabiİmi için sati9<b.a)*10000 değeri girilerek duraası sağlanabilir, e – Günlük Satı$fb.a>sGünlük Satışlb.a)-Satıs(b.a)
f – Toplaa 6ünlük Satış (TL)* Topla* Günlük Satıs<TL)*BF(TL/b.a)
g – Teyp ve yazıcı için deyialer öğrenilmediği için çıktılar ekrana görüntülenecektir. Veriler klavyeden girilecektir.
Prograa ve Çıktısı ı
10 REH Bu prograa bir stok kontrol prograaıdır.
20 REH Prograaın isai STOK.
30 PRINT “Günaydın*
40 PRINT “Kod No,*?*En Az 8S.,’j*En Fazla SS.,”**ST0»C,*,*BF,•;”Sun 1 ük Satı»’
[—(k”1,İÖ)
T
50 FOR K =1 TO 10 ‘K t 10 Döngü başlangıcı
60 INPUT KN.STİK’U.STtK^SHM^SnMitST^S)
i
K<*10
K>10
70 NEXT K
3 >-»80 INPUT *Kod no ve satışı biria aiktar olarak giriniz ı*;K,SA
G>
90 IF SA*10000 THEN GOTO 300 100 ST(K,3J«ST<K,3)-SA
110 IF ST(K,3) > ST(K,1) THEN 60T0 160 120 SP =ST(K,2) – ST(K,3)
130 PRINT “81PAR18 VAR”
140 PRJNT “Kod w’)K>*8ipırl» Hiktırı **|BP 150 6T(K,3)-BT(K,3)+6P 2>-»160 ST(KI5),ST(KI3)+SA 170 T8- T8 ♦ 8A * 8Î(K,4> ifiö MH
– il –
(D
^ evet
J*100 –
\ THEN
) IF J-İOO THEN PRINT “Topla* günlük satış (TL)=M;TS D SOTO 80
» PRINT “K.Ko “{‘E.Az SS’,*En Fazla SS,“,“Stok,8,“BF,8,*6ünlûk Satış”
O FOR K»1 TO 10 ‘K : 10 Döngü başlangıcı
3 PRINT K|STfK,l),ST(K,2),ST<K,3),ST<K,4),ST(K,5)
Û NEXT K ‘Kî 10 Döngü sonu
D PRINT “İYİ AKSAKLAR*
O STOP
itaydın
i No,En Az SS.,En Fazla SS.,ST0K,BF,6ûnlük Satış
1. 10, 20, 13,150.0, 30
2, 5, 10, 10,100, 12
3, 12, 20, 20,50, 2
«, 5, 10, 4,105, 10
5, H, 21, 21,95, t>
6, B, 20, 12,350, 5
h 25, 50, 35,150, 10
B, 13, 25, 23,50, 12
9, 17, 30, 30,175, 20
10, 8, 15, 10,100, 5
d no ve satışı biria aiktar olarak giriniz »? S,4 PARİS VAR
d No» 5 Sipariş Miktarı > 9 d no ye satışı biria aiktar olarak giriniz ı? 3,2 PARİS VAR
d No* 3 Sipariş Hiktan * 9 d no ve satışı biria aiktar olarak giriniz t? 7,10 d no ve satışı biria aiktar olarak giriniz t? 9,10 PARİS VAR
d No* 9 Sipariş Hiktan * 20
ıd no ve satışı biria aiktar olarak giriniz ı? 2,2
PARİS VAR
ıd No* 2 Sipariş Hiktan * 5
ıd no ve satışı biria aiktar olarak giriniz 😕 1,10000
K.No E.Az SS En Fazla SS, Stok, BF, 6ün 1
? 1 10 20 13 150.0 30
? 2 5 10 10 100 12
? 3 12 20 20 50 2
? 4 5 10 4 105 10
? 5 14 21 21 95 b
? & B 20 12 350 5
? 7 25 50 35 150 10
? B 13 25 23 50 12
? 9 17 30 30 175 20
? 10 B 15 10 100 5
iyi aksaklar
İleri Basic bölüaünde teyp ve diskete çıktı verae koautlan anlatılacaktır. Orada daha kapıuh stok kontrol problealeri verilecektir.
1.2.7 FONKSİYONLAR
Basic, progratcıyı sık kullanılan prograa parçacıkları yazaaktan kurtaraak için, ic ve dıı fonksiyon kullansa olanağı sağlar, tc fonksiyonlar derleyici veya yorumlayıcılar hazırlanırken geliıtirilaiılerdir. Dıı fonktiyonlar ise prograıcı tarafından tanıalanan, yalnız o prograa tarafından kullanılan fonksiyonlardır. Her iki fonksiyon türü de daha önce tanıtlanın prograı parçacıklarıdır. Fonksiyonlarla aynı iıİHi takrir tekrar uygulaaak tütkündür.
İc fonksiyonlara Basic Arıiv Fonksiyonları denir. Dıı fonksiyonlara ise Deyiı Fonksiyonlar denir.
1.2.7.1 ARŞİV FONKSİYONLARI
Arıiv fonksiyonları prograacının kul lamasına hazır fonksiyonlardır. Aynı fonksiyon her prograada tanıılaıaya gerek kalıadan kullanılabilir. Prograıcıya büyük kolaylık sağlarlar. Basic bölüıünün arıiv fonksiyonları değilken «FONKSİYON (ifade) genel dizilisi ile kullanılır, ‘değilken* i kutlamadan PRINT FONKSİYON (ifade) diziliıi ile de kullanılabilir.
ABS Fonksiyonu
Ataç
Bir ifadenin eutlak değerini verir, yani değer eksi ise artı yapar.
Dizilit
dıflivkın ■ ABS (ifada)
aaalar
ıngi bir aritaetik ifadenin değerini hesaplar, autla* değerini belirtilen değişkene
■1» frmii 10 LET A»-13 20 D- ABS (A+7)
30 PRINT D 40 EMİ RUN 6
SOR Fonksiyonu
iangi bir ifadenin kare kökünü alır.
İli
değişken = SOR (ifade)
ifade
iangi bir ariteetik ifade olabilir. Değeri sıfır veya sıfırdan büyük olaalıdır. ili* Orneâi • i
SO y – SOR (25)
60 Z * SfiR (Y*7)
ak Problea» 1.21
1 den 30 a kadarki sayıların kareköklerini tablo halinde veren bir prograı yazınız. Tablonun görünüşü aşağıdaki şekilde olacaktır.
KAREKöK TABLOSU
Sayı Karekökü Sayı Karekökü Sayı Karekökü
1 1 11 3…. 21 4……
2 1….. 12 3….. 22 4……
3 ı ıııı
4 ı ::::
»S ! I 1 1
10 3….. 20 4….. 30 S……
tüt Tekniği ı
Tabloda onarlı guruplar halinde satır satır yazılaası istendiği için, her gurubu ayrı tanıalııak gerekecektir. Her gurupta 10 eleaan bulunacaktır.
Prograı ve Çıktısı ı
10 REH Karekök tablosu progratıdır.
20 REH Prograaın isai KAREKOK
30 PRINT ‘ KAREKOK TABLOSU*
♦0 PRINT *Sayı*,’Karekök*,
50 PRINT *Sayı’f*Karek6k”,
60 PRINT *Sayı*,*KarBkök*
70 FOR 1=1 TO 10 80 LET B1*S8R(I)
90 LET B2*S8R(I+10)
100 LET B3sS6R(I+20)
110 PRINT l,81,IH0tB2,I+20;B3
120 NEXT I
130 STOP
Ok
RUN
Sayı Karekök KAREKOK TABLOSU Sayı Karekök SayıKarekök
l 1 11 3.316625 21 4.5B2576
2 1.414214 12 3.464102 22 4.690416
3 1.732051 13 3.605551 23 4.795832
4 2 14 3.741657 24 4.898979
5 2.236068 15 3.872984 25 5
6 2.44949 16 4 26 5.09902
7 2.645751 17 4.123106 27 5.196153
a 2.828427 18 4.242641 28 5.291503
9 3 19 4.358899 29 5.385165
10 3.162278 20 4.472136 30 5.477226
8 X İM Fonksiyonu
Aai£
Bir acının sinüsünü hesapluak için kullanılır.
Dizilia
d»$isken ■ SIN (ifada)
ifada
Aritaatik ifadedir. Aritaetik ifadenin değeri radyan cinsinden olaalıdır. Dereceyi radyaı Civiraek için PI/180 ile carpaak yeterlidir.
Acıkiaaalar
8IN (ifade) değeri tek incelikli olarak hesaplanır ve değitkene atanır.
ttrntfti
PI» 3.141593
DE* 45 ‘Acı derece emindendir
SO«SIN (DE*PI/180) ‘Açı radyana çevrilerek girilir
PRINT SO
M
7071068
6128,ATARİ-B00XI
lehçelerdi DE6 ve RAD koautları, ifadenin değerinin derece veya radyan cinsinden ■asını saflar. Belirtileezse radyan cinsinden olacaktır.
DES
PRINT SIN (34)
.5591929
COS Fonksiyonu
m kosinüsünü hesaplasak için kullanılır.
■Oisken * COS (ifade)
İ!L
siyonundaki ifade tanıaı ve acıklaaalar COS fonksiyonu için de gecerlidir. Orneâi
ı PI * 3.141593 ı DE – 135
ı 80 «COS (DE*P1/180) ‘Acı radyana çevrilerek verilir
I PRINT SO İN
7071068
’6128,ATARI-800XL
ı lehçelerde DE6 ve RAD koautları, ifadenin değerinin derece veya radyan cinsinden iaasını sağlar.
DE8
PRINT C0S(34)
.829037573
TAN Fonksiyonu
Ataç
Bir acının tanjantını hesaplasak için kullanılır.
Dizilia
de§iken = TAN (ifada)
Acıklaaalar
SIN fonksiyonundaki tamalar TAN fonksiyonu için de geçerlidir.
Dizilia Ornefii
10 PI *3.141593 20 DE »45
30 RD “DE»PI/180 ‘Acı radyana çevrilir.
40 PRINT TANIRDI ‘Tanjantı hesaplanır ve yazdırılır.
RUN
l
Lehçeler
CPC-464, 6128, ATARI-800IL
DES ve RAD koautları, ifedenin değerinin derece veya radyan olaasını sağlar.
DES
PRINT TAN(45)
1
ATN Fonksi yonu
Aa»c
Bir değerin arctanjantını bulaak için kullanılır.
Dizilia
dıjivktn ■ ATN (ifada)
ifada
Herhangi bir aritaetik ifadedir. Değerinin arctanjantı alınacaktır.
deği«kan
Biriai radyan olan tek incelikli bir değişkendir. talİMriK.
İfadenin değerinin arctanjantı alınır. Sonucu radyan cinsindendir. Tek incelikli değişkene atanır. Değişkenin değeri -PI/2 ile +PI/2 arasındadır. Dereceye ceviraek için 1S0/P1 ile c>rpaak gerekir.
Uı Örneği 10 PI-3.141593 20 AOl 30 RD*ATN(AC)
40 SQ*RDH80/PI 50 PRINT SO RUN 45
1İ1L
•464,6128 f ATARI-800XL DE6 ve RAD koautları, ifadenin değerinin derece veya radyan cinsinden oltasını sağlar. Belirtileezse radyan değerini verir.
0E6
PRINT ATN(l)
45
ek Probleıı 1.22
Şekildeki gibi A, 8, C kenarları ve B acısı ile tanıılanıı» bir dik üçgen vardır. Bu, 4 bilineeyenli dik üçgenin 2 bilinmeyeni verildiği zaean diğer iki bilinmeyeni hesalayan genel asach bir prograı yazınız.
zül Tekniği :
önce $u forıulieri hatırlayalı! :
B A
Sin 8 *————Cos 8 ——
C C
Tan 8 = ——
A
AA2+BA2* CA2
4 değişkenden 2 sinin değeri verileceğine göre, bu foreüllerdeR hangisi ücüncüyü veriyorsa o foreül islerlik kazanacaktır.
rograı ve Çıktısı :
10 REH Bu prograı herhangi bir dik üçgenin kenarlarını ve bir acısını hesaplar.
20 REN Prograıın isıi DIKUC6EN.
30 PRINT “Bilinıeyen değer yerine sıfır giriniz. C > A ve B olaalıdır”
40 INPUT ‘Sıra ile Q,A,B,C yi giriniz*|8,A,B,C 50 LET PI-3.141393
60 IF Q»Û THEN SOTO 170 70 REN G> O dallanaası 80 RDa8*P1/180 90 23=9IN(RD)
100 Z2»CQS(R0)
110 Z3aTAN(RD)
120 IF A*0 AND B*0 THEN B=C*Zt ıA*C«Z2 :GOTO 280
evet
C«B/I1
ft*B/Z3
KD
130 IF A*0 THEN OB/Z1 tfiOTO 140 B»A*Z3 150 C-A/Z2 160 SOTO 280 )™»17Q REN 0>0 daliınmı
190 IF B=0 THEN B=S8R(CA2-AA2) :60T0 260 200 RD*ATNIB/A)
210 ZI«S1N(RD>
220 CSB/Zl 230 fl*RD*lS0/Pl 240 GOTO 280 250 A»SQR<CA2-BA2>
260 R0*ATN(B/A)
270 0«RD*1B0/PI
280 REH Yazdırıa bölüaü
290 PRINT *fl**5fl},A*,|Aj*B«*;Bj*Cs,5C
300 STOP
Ok
RUN
Bilinaeyen değer yerin» sıfır giriniz. C > A ve B olaalıdır Sıra ile B,A,B,C yi giriniz. 0,15,0,20 8» 41.40962 A» 15 B« 13.22876 O 20
EXP Fon ksiyonu
deki bax fonksiyonunu hesaplaaaya yarar, i»
d»0i»kBn «EXP <if«d«) aaalar
herhangi bir aritaetik ifade olabilir. eAx = 2.7l8282Ax anlaaındadır. Fonksiyon 1262 nin x inci kuvvetini alçak için kullanılır. Ancak x, 87.3365 den büyük olaaaz. ık-11.
ili Mi,
10 LET Ab15 20 PRINT EXP(ft>
RUN
3269016
1İİL
,H8BASIC,A-BASIC IK-87.3365 olaalıdır.
)8IC, BASICA X<»88.02969 olaalıdır,
lt<«145.062B6 olaalıdır.
I—OG Fonksi yonu
Aaac
Herhangi bir değerin e tabanına göre doğal logaritaasını hesaplar.
Dizili»
değişken = LOB (ifade) ftcıkla«alar
İfadenin değeri sıfırdan büyük olaalıdır. Aritaetik ifadedir. Cebirdeki ln(x) *loge(x) deyialeri ile işlevi aynıdır. On tabanına göre değerini bulaak için ln(10)’a böl»ek gerekir. Kaynak-11.
Dizilia Orneai
10 E*2.7182819 20 A=LÖ6(E)
30 PRINT A RUN
1
ok
PRINT LOB <15/6.2)
.8835009
LBhceler
SPECTRUH
değişken = LN (ifade) diziliai kullanılır.
Örnek Problea» 1.23
Aşağıda verilen fonksiyonu çözen bir prograa yazınız, a, b, c ve x değerleri ekrandan girilecektir.
Y = atin Xö *eCK
Prograa ve Çıktısı :
10 REH Y* a • İn ( xAb I * ba( c « x ) fonksiyonunu çözer 20 REH Prograaın isai FÜNKS.
30 INPUT “a«”|A 40 INPUT “b**iB 50 INPUT ’f’jC 60 INPUT *x«*jX 70 IF X«0 THEN STOP SO ZK06(XAB)
90 Z2*EXP(C*X)
100 Y«A*Z1*Z2
110 PRINT *Y»jYj”X«’|X
120 S0T0 60
M
? 10 ? 0.5 ? 1.5 ? 3
494.4694 l* 3 ? 4
2796.354 X» 4
? 5
14549.65 X» 5
? 9
8013458 X» 9 ? 11
1.756545E+08 X» 11
70
•ak in 70
3B10-CL00 Fonk»iyonu
una görı logaritaa alaak için kullanılır.
eğitken * LOGİO (ifade) …….CPC-464,6128
e0i»ken – CLOG (ifade) ……..ATARI-800KL
ılır
ı değeri sıfırdan büyük olaalıdır. Yukarıdaki belirtilin lehçelerde kullanılır. Örneği
(INI LOGİO (9999)
1.99995657 HNT CLOG (9999)
1.999957
I İM T Fonksiyonu
»ayıları taı sayıya cevirıek için kullanılır.
legisken « INT (ifade)
ik ifadenin diğeri taı sayıya dönüştürülüp değişkene atanır. İfadenin dığıri artı ir kısıı taıııen atılır (yuvarlanın). Değeri eksi iu autlak diğerce büyük olan ı değeri yuvarlanır.
_A
Dizilia Crntfti
10 LET A=17.65
20 PRINT INT (A) ‘Kesir kısıı atılır.
RUN
17
ok
PRINT INT (-3.25) ‘Ondalık kesrin değerine bakılaaksızın, sutlak
değeri büyük, en yakın taa sayıya yuvarlanır. -3 oleaz.
TABi Fonksi yonu
Aaac
Ekrana veya herhangi bir çıkış anütesine bilgi gönderirken islecin veya yazıcı kafanın n inci pozisyona atlaaasını sağlar.
Dizilia
PRINT TAB (I)
I
0 ile 255 arasında bir değer alabilir.
Açıklasalar
Yalnız PRINT, LPRİNT, PRİNTI deyialeri ile kullanılır. PRINT deyieindeki değişken veya karakter katarları arasında kullanılabilir. Değişkenin değeri I. pozisyondan itibaren yazılır. TAB ile belirtilen pozisyon geride kalsıs ise islet bir sonraki satırın n. pozisyonuna atlar.
Dizilia Örnekleri
10 PRINT TAB(5);’AD-SOYAD* j TAB120)}’SEHIR’
20 READ At.B*
30 PRINT TAB(5)|A*}TAB(20);BI 40 DATA ‘TURSUT BESEVLl’,’ANKARA’
50 DATA ‘AHHET CELEBİ’,’İSTANBUL’ ‘DATA bitince prograa durur.
60 SOTO 20 RUN
AD-SOYAD ŞEHİR TURGUT BESEVLl ANKARA AHNET CELEBİ İSTANBUL
ok
Lehçeler
NB)(,C-64,C-12B
TAB ile belirtilen pozisyon gır i de kılın İsa, bu TAB iptal edilir, iılecin pozisyonu değiniz.
– Al *
ak Proble»; 1.24
ö.20 deki probleıi bir kere okuyunuz. Bu reyonun stoğundaki 10 çeşit gıda aaddesinin hır gün tonundaki parasal delerlerinin toplasını bulan prograı yazınız. Parasal diğerin kuru» hanesi atılacaktır.
Stok-no Parasal Değeri
1 12500 TL
2 5000 TL
3 t : >
10 7525 TL
TOPLAM ?????? TL
Sabahleyin klavyeden dizi girildikten sonra bu işleıler yapılacaktır. İstenirse 0.20 deki prograıa devaı «dilebilir.
:üı Tekniği ı
0.20 deki STOK LİSTESİ dizisini burda bir kere daha göreliı :
ST(K,J) K*Stok nusarası veya dizinin 1. indisi J*Dizinin yatay eleıanları ST(K,U* En az stok seviyesi (b.ı)
ST(K,2)> En fazla stok sıviyısi (b.ı)
STIK,3)« Stok (b.ı)
ST(K,4)« Biriı fiatı (TL/b.ı)
ST(K,5)> Sünlük satıs (b.ı)
Bu probleıde bizi ST(K,3) ve ST(K,4> eleıanları ilgilendirıektedir.
ograı ve Çıktısı ı
10 REH Bu prograı bir stok kontrol prograııdır.
20 REH Prograaın isıi STOK.
30 PRINT “Herkese Sunaydın’
40 PRINT “Kod No*jTAB(10)5″En Az SS.”}TAB(20)j’E.Fazla SS*jTAB(31)}’ST0K*5TAB(40)j *BF* j TAB(50);*Gttnlük S*
50 FOR K =1 T0 10 ‘K : 10 Döngü başlangıcı
60 INPUT KN,ST<K,Ü,ST(K,2),ST<K,3),ST<K,4),ST{K,5)
70 NEXT K
71 PRINT TAB(IO) “Kod No* TAB(20) ‘PARASAL DE6ER”
72 FOR K*1 T0 10 ‘Döngü başlangıcı, sayaç K
73 PD=INT(ST(K,3)*ST(K,4)) ‘Kesirli kısıı atılır taa sayı değeri PD ye atanır.
74 TD»TD+PD
75 PRINT TAB(10) K TAB(20) PD
76 NEKT K
77 PRINT TAB(10) “TOPLAH” TAB(20) TD
78 STOP
80 INPUT ‘Kod no ve satışı biria aiktar olarak giriniz ı’}K,SA
90 IF SAa10000 THEN GOTO 300
100 ST<K,3)*ST<K,3)-SA
110 IF 8T(K,3) > ST(K,1) THEN GOTO 160
120 SP aST(K,2) – STİK,3)
130 PRINT ’81PAR1S VAR”
140 PRINT “Kod noa’jKj’Sipariş «iktarı «’}SP 150 ST(K,3)*8T(K,3)+SP 160 ST(K,5)=ST(K,5Î+SA 170 T8« TS + SA * ST<K,4>
180 J»J+1
190 IF J*100 THEN PRINT ‘Toplaa günlük satış İTL)=’;TS 200 GOTO 80
300 PRINT “K.Ko »j’E.Az 88′,’En Fazla 88, VStok,’,’BF,’,’Günlük Satış’ 310 FOR K*1 TO 10 ‘K i 10 Döngü başlangıcı
320 PRINT KjSTfK,!}tST(Kt2> fST(K,3)fST(K,4>fST(K,5}
330 NEXT K ’K : 10 Döngü sonu
340 PRINT MYİ AKŞAMLAR’
350 STOP
Ok
RUN
Herkese Sunaydın
Kod No,En Az 8S.,En Fazla S3.,ST0K,BF,6ünlük Satış
? I, ıo, 20, 13,150.0, 30
? 2, 5, ıo, 10,100, 12
? 3, 12, 20, 20,50, 2
?4, 3, 10, 4,105, 10
?5, 21, 21,95, 6
?*, 8, 20, 12,350, 5
?7. 25, 50, 35,150, 10
?8, 13, 25, 23,50, 12
? 9, 17, 30, 30,175, 20
? 10, 8, 13, 10,100, 5
Kod No PARASAL DEĞER
1 1950
2 1000
3 1000
4 420
5 1995
6 4200
7 5250
8 1150
9 5250
10 1000
TOPLAN 23215
– li .
RND Fonksiyonu
1 arasında rastgele bir sayı üretir. Herhangi bir değişkene atar veya kendisi bir ken gibi kullanır.
ia
de$isken 0 RND <(X)>
<X>
değeri, sayı üretilecek RASGELE SAYILAR DİZİSİNİN başlangıç noktasını belirler. X>0 )u zaaan veya X kullanılıadığı zaaan RND(X), RASGELE SAYILAR DİZİSİNDEN her defada «nraki sayıyı verir, X<0 olduğu zaaan RASGELE SAYILAR dizisinin sırası değişir. Her ’ X<0 değeri kullanılırsa, dizinin başlangıç noktası da her sefer değişecektir, ıcı RND(XI in vereceği değerler farklı sırada olacaktır. Dizilia örneğine bakınız, olursa RND(X) her seferinde aynı sayıyı verecektir. X yerine RAOONZIE <n) fonksiyonu inanılabilir.
laaalar
ilen sayılar 0 ile 1 arasındadır. Aaaca uygun değişik aralıkta sayılar elde edebilaek aşağıdaki foraülâ kullanabiliriz. 0 – n aralığında sayılar üretaek için;
INT $RNDt(n+l» 0 ve n dahil INT (RNDtn+l) 1 ve n dahil ülleri kullanılabilir. Bu foraülda X in kullanılaadığına dikkat ediniz.(Kaynak-4,11,13)
ili» Örneği 10 FOR J-l TO 4
20 PRINT RND(J); ’Jt>0j rasgele sayılar dizisinden her defada bir
sonrakini verir
30 NEXT J 40 PRINT
50 A«RND<-3} ’KOj R.S. dizisinin başlangıcı değişir
60 FOR M T0 4
70 PRINT RNDIJlj ’X>0; R.S. dizisinden her defada bir sonrakini verir
80 NEXT i 70 PRINT
100 AsRND(-3) ‘X<0; R.S. dizisinin başlangıcı değijir
110 FOR J*1 T0 4
120 PRINT RNDU); ‘X>0j R.S. dizisinden her defada bir sonrakini verir
130 NEXT J
140 PRINT
150 PRINT RNDfOlj
RUN
.7151002 .683111 .4821425 .9992938 .2677991 8.733116E-02 7.081251E-02 .8175731 .2677991 8.733116E-02 7.0812311-02 .8175731
.817573
örnekte X»-3 verildiği zuın R.S. dizisinin baılangıcı değisaistir. Ancak 100. satırda X a takrir -3 verildiği için çıktının 2. va 3. satırlarında alda adilin rasgele sayıların aıraıı aynı olauıtur. ISO. satırda X*0 olduğu için en son verilen rasgele sayının aynısı tekrarl anan tır.
Lehçeler C-64,C-128
X*0 olduğu zaaan aistaain saatine bağıılı olarak aayı üretir.
ATARI-800XL
X in değarinin öneıi yoktur.
SPECTRUH
“RND” diziliaindı kullanılır. X kullanılmaz.
RANDOMIZE Dayimi
Aaac
RAS6ELE SAYILAR DlZtSl’nin başlangıç noktasını balirleatya yarar.
Dizilia
RANDOMIZE <ifad«>
ifad*
Taasayı, taa sayı değişken veya sonucu tu sayı olan bir aritaetik ifade olabilir. Değeri -32768 ile 32767 arasında değilir.
Acıklaaalar
İfade kullanılaadığı zaaan Basic ifadenin yerini gıcıcık bir taı sayı ister. Bu sayı girildiktin sonra RAMİMİZE deyiei çalışır. Sistnin saati RAUOHIZE deyiıine değer olarak girilebilir iKaynak-4).
Dizilia flraaai
10 INPUT “RANDOHIZE için bir taı sayı gir”;*
20 RANDOMIZE N 30 FOR I>1 TO 4 40 PRINT !NT(RND*6+i}|
50 NEXT I RUN
RANDOMIZE için bir taı sayı gir 72345 6 5 12
Bu örnekte bilgisayara zar attırılaaktadır. 1 ile 6 arasında rasgele sayı üretir. Hır RUN
dan sonra RAS6ELE SAYI DİZİSİ’nin, girilen değişik N sayıları İle başlangıç noktası
değişir.
lehçeler
BUSINESS BASIC
İfadenin sonucu sıfır olduğu zııın liıtıı saatinin değerini alır.
CPC-464,6120
■RMDOHIZE TİME” dizilişindi de kullanılabilir.
• H •
»} 1-25
»yara toto oynatan bir prograa yazınız. Bütün taçlarda 3 eşit ihtiaal dikkate :aktır. Sonuç ekrana ıac sıra nuıaraları ve 10 kolon toto verecek şekilde lenecektir.
{i i
rın hepsinde 3 ihtilalin gelse şansı eşit olduğuna göre 0,1,2 değerleri le elde edilebilir.
C ve 10 kolon aynanacağma göre. TU6,10) iki boyutlu dizi sonuçları saklayıp tleyeceğiıiz toto tabloıuz olabilir.
Çıktısı s
:fl 10 Kolon toto oynatan EH Prograaın isai TGTO.
IH 1(20,10)
0R 1=1 T0 16 NPUT * X*
•mm
0R J*1 T0 10 IX»1NT(RND*(2+1)) rıı,j)»AZ NEKT i NEXT I
REN Yazdırıa btilüıü FOR 1*1 T0 16 PRINT I)’.flAC “1 ı FOR J*İ T0 10 ı PRINT Td.J);
) NEXT 3
I PRINT ) NEXT I ) STOP
M
a ? 6
m ? 6
!* ? 6
,« ? 345
I» ? 8456
!■ ? 345
X» ? 654
<- ? 21
X» ? 345
X* ? 076
1
bir prograsdır.
‘X > 0, R. Sayılar dizisinde her defada bir sonrakini verir.
‘0,1,2 sayılarını rastgele üretir.
‘Hac sıra numaralarını yazdırır ‘Aynı satıra yan yana 10 kolon sıralar ‘Sonraki aac için satır atlatır
X» ? 56 X- ? 43 X« ? 678 X» ? 543 X» ? 34 X® ? 56
1 .HAC 2 1 2 1 0 1 1 0 2 0
2 .HAC 9 2 1 1 0 2 0 1 1 1
3 .HAC l 2 2 1 2 0 1 1 2 0
4 .HAC 2 2 0 1 0 0 0 1 2 0
5 .HAC 2 2 0 0 2 d 0 1 0 1
6 .HAC 1 1 2 2 2 2 0 1 2 1
7 .HAC Z 2 0 0 0 2 0 2 0 0
8 .HAC 0 0 0 0 0 1 0 2 0 0
9 .HAC 0 0 2 0 0 0 l 1 0 1
10 .HAC 0 0 1 0 1 2 0 2 0 1
11 .HAC 0 2 1 2 2 2 2 0 0 0
12 .HAC 0 1 1 1 1 2 2 l 1 2
13 .HAC 0 0 1 l 0 1 1 0 0 1
14 .HAC 1 0 1 l 1 0 0 2 1 1
15 .HAC 0 1 1 2 1 0 1 2 1 2
16 .HAC 2 0 1 1 0 0 1 0 1 0
1.2.7.2 DEYİM FONKSİYONLAR
Deyia fonksiyonlar prograacı tarafından prograa içerisinde önceden tanımlanarak istenildiği kadar kullanılabilen, yalnız bir deyiaden oluşan prograa parçacıklarıdır.
DEF FİM Dayimi
Prograacı tarafından belirlenen bir fonksiyonu isialendiraeye ve tanıalaaaya yarar.
Dizilia
DEF FNisim <(bilinaeyenler listesi)) = fonksiyon tanısı
FN& seni
Prograacının fonksiyona verceği değişken isaidir. Sayısal değişken veya karakter değişken isialeridir. Bosluk bırakaadan FH’i takip etaelidir.
bilinmeyenler listeni Fonksiyon içerisindeki bilinaeyen değişkenlerin listesidir. Fonksiyon çağrıldığı zaaan değerleri fonksiyon içindeki değişkenlere atanır. Bilinaeyenler birbirinden virgüllerle ayrılaalıdır. Bilinaeyen isialeri prograaın bir batkı yerindeki değişken itişleri ile aynı olabilir. Onları etkilemezler.
fonksiyon tanımı
aritaetik ifade olabileceği gibi karakter ifadeleri de olabilir. Fonksiyonun tipini ulyonun isei belirler. Fonksiyonun tanıaı bir satır ile sınırlıdır ancak bazı ;ı]#rd» çok satirli olabilir.
»ııvanun Canrılaası FNİııi (bilineeyenler listesi! ilini ile çağrılır. Fonksiyon tanıalandıktan sonra prograaın her hangi bir yerinde bu ilia ile kullanılabilir. Bilinaeyenlerin sayısı, tipi ve sırası tanıaındakinin aynısı ilidir. Bilinaeyenlerin değilken isialeri aynı olaayabilir.
ünalar
kalyonun tipi ile fonksiyon isainin tipinin aynı olaası şarttır. Fonksiyon içerisinde unan bir değişken bilinaeyenler üstesinde buiunaayabilir. 0 zaaan değişkenin değeri ksiyon çağrıldığı andaki değerdir. Fonksiyon cağnlaadan önce autlaka DEF FN deyiai tanıalanealıdır. (Kaynak-11,4,13,19,14).
İli» frnrti
10 DEF FHR(Y>® 2#Y»Z-C/3 i t
100 B»BM*FMR(IH
Ürkekteki 6=B+4*FNR<I)-« ile 6»B+4«<2WZ-C/3)-H
ı sonucu verir. Fonksiyon çağrılırken bilinaeyen değişkenin isai 1 olarak girilaistir. (ksiyon hesaplanırken I, Y ye atanır ve sonuç FNR(I) nin yerine kullanılır.
IttilL
IINEB8 BASIC
Fonksiyonun isai ve bilinaeyenler, tek harf olaalıdır. FNA dan FNZ ye kadar iıia verilebilir. Fonksiyonlar karakter ifadeleri olaaazlar.
>4, C-128
Bilinaeyenler listesinde sadece bir bilinaeyene aüsade edilir.
:CÎRUH
Fonksiyonun isei bir harf ve tipini belirten seabollerle tanıalanır. Yalnız bir bilinaeyene aüsade edilir.
leh Problea: 1.26
On değişik dairenin alanını hesaplayan bir prograa yazınız. Her döngüde dairenin yarıçapı ekrandan girilecektir.
ı3a Tekniği :
Her döngüde dairenin alan foraâlünü kullanacağıaız için onu fonksiyon olarak tanıalayabiliriz.
.u.
Prograı ve Çıktısı ı
5 REH Daire alanı hesaplayan programdır. P. isai ALAN. 10 PI» 3.141 20 DEF FNA(R>«PI*RA2 30 FOR 1*1 TO 10 40 INPUT ‘Rs’jR
50 PRINT *R«*jR|* ALAN«*jFNA<R)
60 NEXT I 70 STOP Ok RUN R»? 5
Ra 5 ALAN* 78.525
R»? 10
R« 10 ALAN* 341.1 R>? 345
Ra 345 ALAN» 373857.5 R»? 5.333
R» 5.333 ALAN» 89.33284 R«? 2
R« 2 ALAN- 12.564 R»? 4.567
R- 4.567 ALAN- 65.51338 ı :
5
— Bir ev bilgisayarınız var, kolay ve pratik bir yöntemle Basic mi öğrenmek istiyorsunuz?
— Kendi bilgisayarınızın Basic lehçesini iyi biliyorsunuz başka Basic lehçelerini mi merak ediyorsunuz?
— Ev tipi bilgisayarınızdan sonra bir PC Basic lehçesine mi geçmek istiyorsunuz?
— Bir mikrobilgisayarda çalışıyorsunuz ve Basic el kitabı mı arıyorsunuz?
— Basic lehçelerinin bir karşılaştırılmasını mi görmek istiyorsunuz?
— Bulduğunuz bir Basic programım kendi makinanıza mı uyarlamak istiyorsunuz?
— beri Basic lehçesinide mi öğrenmek istiyorsunuz?
İşte bu sorularınıza olumlu cevaplan A’dan Z’ye Basic ve İleri Basic kitabı size sağlayacaktır. Kitapta dikkate aknan lehçeler aşağıda verilmiştir:
MS80 (Microsoft BASIC – 80)
A-BASIC BURROUGHS ET-2000
GVVBASIC (V.2.02)
BASICA (V.l.l) MSBASIC (V.5.28)
MSX
Epson PC Commadore PC-20 HPVectra HB 3000 (az farklı) vetümPC’ler
IBM-PC
Aprlcot Fel
Canon
Toıihba
Veıtal
Spectra Video Sony Hot Bit
MS80 EPSON HX-20
CPC-464 AMSTRADCPC4M
CPC-6128 AMSTRAD CPC-6128
C-128 Commadora 121 (Basic 7)
C-M Comm«donM(Bıulc2)
KNk YAYINEVİ
wmrtR \kjjswpit \py\cm
* V** kullanıla» lahçalarf* yapııat latlc
* Kalaydan totm d«ylm mproMam •ıralaması
* Hat <Uylmd* rilılllm ftmüfll
* çtıum lahnitl İla 90 ttmafc problem
* ı «Unlan pro»f»m tranıfar olanağı
5 ısl
— Bir ev bilgisayarınız var, kolay ve pratik bir yöntemle Basic mi öğrenmek istiyorsunuz?
— Kendi bilgisayarınızın Basic lehçesini iyi biliyorsunuz başka Basic lehçelerini mi merak ediyorsunuz?
— Ev tipi bilgisayarınızdan sonra bir PC Basic lehçesine mi geçmek istiyorsunuz?
— Bir mikrobilgisayarda çalışıyorsunuz ve Basic el kitabı mı arıyorsunuz?
— Basic lehçelerinin bir karşılaştırılmasını mi görmek istiyorsunuz?
— Bulduğunuz bir Basic programım kendi makinanıza mı uyarlamak istiyorsunuz?
— İleri Basic lehçesinide mi öğrenmek istiyorsunuz?
İşte bu sorularınıza olumlu cevaplan A’dan Z’ye Basic ve İleri Basic kitabı size sağlayacaktır. Kitapta dikkate aknan lehçeler aşağıda verilmiştir:
MS80 (Microsoft BASIC – 80)
A-BASIC BURROUGHS ET-2000
GVVBASIC (V.2.02)
BASICA (V.l.l) MSBASIC (V.5.28)
MSX
Epson PC
CommadorePC-20
HPVectra
HB 3000 (az farklı)
vetümPC’ler
IBM-PC
AprlcotPel
Canon
Toıihba
Vettal
SpectraVideo Sony Hot Bit
MS80 EPSON HX-20
CPC-464 AMSTRADCPC4M
CPC-6128 AMSTRAD CPC-6128
C-128 Commadora 121 (Basic 7)
C-M Commadora 64 (BmIc 2)