You are on page 1of 362

METİNLER ©: Kemal Yarcı - Orhan öztürk /YÜCE• reklam/yayım/dağıtım a.ş.

SAYFA DÜZENİ ©: PUBLIKA" iletişim hizmetleri ltd.şti.


Bu kitabın Türkiye'deki tüm yayım hakları ''YÜCE" reklam/yayım/dağıtım a.ş."ye aittir. Bu kitap,
5846 sayılı yasa uyarınca kısmen ya da tamamen basılamaz, mikrofilme çekilemez, dolaylı
dahi olsa kullanılamaz; teksir, fotokopi veya başka bir teknikle çoğaltılamaz; bilgisayarlarda,
dizgi makinalarında işlenebilecek bir ortama aktarılamaz.


ÖNEMLİ NOT: Bu kitapta yer alan tüm yöntemler, devre ve programlar, patent durumu göz
önünde bulundurulmadan verilmiştir. Bunlar sadece öğretim amacına yöneliktir ve lisans
sahibinin izni olmadan profesyonel amaçlarla kullanılamaz.
Bu kitaptaki bütün devreler ve teknik bilgiler, yazar tarafından büyük bir özenle hazırlanmıştır.
Buna rağmen, olabilecek çeşitli hatalar ve baskı hataları bütünüyle önlenmiş sayılamaz. Bu
nedenle, yayınevi ve yazar, herhangi bir hatalı bilgi dolayısıyla oluşabilecek sonuçlara karşı
garanti vermediklerini ve hukuki sorumluluk kabul etmediklerini belirtirler. Kitapta gördükleri
hataları bildirecek okuyuculara, yazar ve yayınevi şimdiden teşekkür ederler.


Bu kitabın metinlerini Kemal Yarcı ve Orhan Öztürk yazdı, dil ve imlô incelemesini Nilay H.
Yarapsan, grafik tasarımını Zafer Bengi, baskıyı tavaslı matbaacılık (İstanbull, ciltlemeyi
savaş ciltevi yaptı.


Baskı: Eylül 2003

111 ..
N !~m~~~m/dağıtım a.ş.
Nato Caddesi, No: 23, Kat: 3,
www.literaturtr.com
ISBN 975-411-089-1
kitabın adı : bilgisayar uygulamaları 2
Seyrantepe 34418 İSTANBUL
TELEFON : (0212) 279 16 07 yazanlar : kemal yarcı, orhan öztürk
(0212) 279 94 10 düzenleme : yüce a. ş.
(0212) 279 10 26 (PBX) baskı : tavaslı matbaacılık (2003)
TELEFAKS : (0212) 279 18 64
E-MAIL : yuce@literaturtr.com cilt : savaş ciltevi
f(orkma, sönmez bu şafaklardayüzen al sancak;
Sönmeden yurdumun üstünde tüten en son ocak.
O benim milletimin yıldızıdır, parlayacak;
O benimdir, o benim milletimindir ancak.

Çatma; kurban olayım,çehreni ey nazlıhilal!


Kahraman ırkıma bir gül! Ne bu şiddet, bu celal?
Sana olmaz dökülen kanlarımız sonra helal...
Hakkıdır, Hakk'a tapan, milletimin istiklal!

Ben ezelden beridir hür yaşadım,hür yaşarım.


Hangi çılgın bana zincir vuracakmış? Şaşarım!
Kükremiş sel gibiyim, bendimi çiğner, aşarım.
Yırtarım dağları , enginlere sığmam, taşarım .

A
t t
Garbın afakını sarmışsa çelik zırhlı duvar,

ISTII<LAL Benim iman dolu göğsüm gibi serhaddim var.


Ulusun, korkma! Nasıl böyle bir imanı boğar,
"Medeniyet!" dediğin tek dişi kalmış canavar?

MARŞI Arkadaş! Yurduma alçakları uğratma, sakın.


Siper et gövdeni, dursun bu hayasızca akın .
Doğacaktır sana va'dettiği günler Hakk'ın ...
Kim bilir, belki yarın, belki yarından da yakın .

Bastığın yerleri "toprak!" diyerek geçme, tanı:


Düşün altındaki binlerce kefensiz yatanı .
Sen şehit oğlusun, incitme, yazıktır, atanı:
Verme, dünyaları alsan da, bu cennet vatanı.

J~m bu cennet vatanın uğruna olmaz ki feda?


Şüheda fışkıracak toprağı sıksan şüheda!
<:anı, cananı,
bütün varımı alsın da Huda,
Etmesin tek vatanımdan beni dünyada cüda.

Ruhumun senden, İlahi, şudur


ancak emeli:
Değmesin mabedimin göğsüne namahrem eli.
Bu ezanlar-ki şahadetleri dinin temeli-
Ebedi yurdumun üstünde benim inlemeli.

Q zaman vecd ile bin secde eder -varsa-taşım,


Her cerihamdan, İlahi, boşanıp kanlı yaşım,
Fışkırır ruh-i mücerred gibi yerden na'şım ;
O zaman yükselerek arşa değer belki başım .

Dalgalan sen de şafaklargibi ey şanlı


hilal!
Olsun artık dökülen karılarımın hepsi helal.
Ebediyyen sana yok, ırkıma yok izmihlal:
Hakkıdır, hür yaşamış, bayrağımın hürriyet;
Hakkıdır, Hakls'a tapan, milletimin istiklal!

Mehmet Akif ERSOY


••
ATAlliRl~ün
.- . .
GENÇLIGE HITABESI
8y Tüık Gençliği!
Birinci vazifen, Türk İstiklalini, Türk
Cumhuriyetini, ilelebet, muhafaza ve müdafaa
etmektir. Mevcudiyetinin ve istikbalinin yegane temeli
budur. Bu temel, senin, en kıymetli hazinendir.
İstikbalde dahi, seni, bu hazineden mahrum etmek ;
isteyecek, dahili ve harici, bedhahların olacaktır. Bir ':
gün İstiklal ve Cumhuriyetini müdafaa mecburiyetine
düşersen, vazifeye atılmak için, içinde
bulunacağın vaziyetin imkan ve şeraitini
düşünmeyeceksin! Bu imkan ve şerait,
çok namüsait bir mahiyette tezahür
edebilir. İstiklal ve Cumhuriyetine
kastedecek düşmanlar, bütün dünyada
emsali görülmemiş bir galibiyetin
mümessili olabilirler. Cebren ve hile ile
aziz vatanın, bütün kaleleri zaptedilmiş,
bütün tersanelerine girilmiş, bütün
orduları dağıtılmış ve memleketin her
köşesi bilfiil işgal edilmiş olabilir. Bütün
bu şeraitten daha elim ve daha vahim
olmak üzere, memleketin dahilinde,
iktidara sahip olanlar gaflet ve dalalet ve
hatta hlyanet içinde bulunabilirler. Hatta
bu iktidar sahipleri şahsi menfaatlerini, müstevlilerin
siyasi emelleriyle tevhit edebilirler. Millet, fakr-ü
zaruret içinde harap ve bitap düşmüş olabilir.
EY TÜRK İSTİKBALİNİN EVLADI! İşte, bu ahval ve
şerait içinde dahi, vazifen; Türk İstiklal ve
Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret,
damarlarındaki asil kanda, mevcuttur!
...
nsozElli

Endüstri Meslek Liseleri ve Teknik Lise müfredatına uygun olarak


hazırlanmış bu kitap, Basic Programlama Dili ile Excel Hesap
Tablosu uygulamasını anlatmaktadır.

Program yazımında çok daha ileri düzeyde derleyiciler -


yorumlayıcılar bulunmasına karşın, programlama kavramının
öğretilmesinde BASIC yine popülaritesini koruyor. Diğer
programlama dillerini öğrenmenin yolu BASIC'ten geçiyor.

Bu kitapta, BASIC Programlama Dili'nin yanında temel


programlama teknikleri de anlatılmaktadır. Ayrıca BASIC
bölümünün son ünitesi tamamen elektronikle uğraşanlara tahsis
edilmiştir. Elektronik devre analizlerinin yapıldığı programlarla,
bilgisayar portlannı kontrol eden programları son ünitede
bulacaksınız.

BASIC bölümü, program merkezli olarak tasarlanmıştır. Her konu


bol örnek programla açıklanmıştır.

Kitabın ikinci bölümü Excel Hesap Tablosu uygulamasına


ayrılmıştır. Bu bölümü okuyacakların Windows işletim sistemini
bildikleri farzedilmiştir.

Kemal YARCI
ÖNSÖZ
Bu kitap Endüstri Meslek Liseleri Elektronik Bölümü' nün müfredatı
temel alınarak hazırlanmıştır.
Kitapta konular en basit ve en anlaşılır örneklerle anlatılmıştır.Bazı
o·kullarımızda teknik donanım eksikliği de gözönüne alınarak ; konular
anlatılırken adım adım açıklanmış ve gerekli şekiller mümkün olduğunca
orjinal programdan getirilmiştir.
Excel hakkında hiçbir fikri olmayan bir kullanıcı dahi, sadece bu kitabı
okumakla, kendi başına programa girip; birçok işini yardımsız yapabilecek
seviyeye gelebilir.
Kitapta geçen örnekler, en çok işe yarayacak şekildedir.Bu örneklerden
esinlenerek; kullanıcının kendi amaçlarına uygun çalışma sayfalarını
oluşturması mümkündür.
Kitapta müfredata uygunluk, sadelik, kolay anlaşılır olmak ön plana
alınmıştır ve hazırlanırken gerekli özen gösterilmiş olmasına rağmen gözden
kaçan hatalar olabilir.Okuyucular bu hataları şahsen veya mektupla
bildirdikleri takdirde memnuniyet duyacağım . Kitabın tüm okuyuculara
faydalı olmasını dilerim.

Tülay DİRLİK
Kemal YARCI - Orhan ÖZTÜRK

Elektronik Bölümleri için

programlama dili

içindekiler

BASIC
1- Basic sisteminin tanıtımı ............................................................. 1
2- Basic değerleri - Sabitler, değişkenler ve isim atama ................ 7
3- Basic programlamaya giriş ........................................................ 15
4- Algoritma ve akış diyagramları ................................................. 39
5- Dallanma ve karşılaştırma deyimleri ........................................ 43
6- Döngü düzenleme ..................................................................... 57
7- İndisli değişkenlerin işletimi, diziler.. ....................................... 69
8- Standart fonksiyonlar ................................................................ 79
9- Ekran düzenleme ve printerden çıktı alma ............................ 101
10- Sıralama ve arama işlemleri .................................................. 109
11- Altprogramlar (subroutine) ................................................... 119
12- Data (veri) dosyası oluşturma ............................................... 133
. 13- Basic'te grafik ........................................................................ 175
14- Basic'te ses üretme ................................................................ 195
15- Bilgisayar portlarının kontrolu .............................................. 199
Ek 1: Hata mesajları ..................................................................... 217
Ek 2: ASCII kodlar tablosu .......................................................... 221

EXCEL ............ ,.............................................................................. 225


ÜNİTE 1
BASIC SiSTEMiNiN TANITIMI

A~ BASIC PROGRAMININ YÜKLENMESİ VE


DOS ORTAMINA ÇIKIŞ

BASIC ismi (Beginner's All-purpose Symbolic lnstruction Code) kelimelerinin


baş harflerinden türetilmiştir. BASIC programlama dili 1964 yılında Amerika Bir-
leşik Devletlerinde Dort Mouth Koleji öğretim üyeleri Thomas Kurtz ve John Ke-
meny tarafından geliştirilmiştir.
BASIC, bugün dünyada en yaygın olarak bilinen ve kullanılan programlama di-
lidir. Bilgisayarcı olup BASIC bilmeyen kişi yoktur. Yine çeşitli mesleklerden ki-
şiler bilgisayar kullanmaya başladıklarında ilk olarak BASIC öğrenmek istemekte-
dirler. Bunun sebebi şunlardır:

1- BASIC, öğrenilmesi çok kolay olan bir programlama dilidir. Uzmanlık gerek-
tirmez.
2- Program yazımı kolaydır.
3- Birçok makina (bilgisayar) BASIC yüklü olarak satılmaktadır. (ROM BASIC).
4- Matematiksel işlem yeteneği bütün ihtiyaçlara cevap verecek niteliktedir.

Bu kitapta GWBASIC interpreter (yorumlayıcı) anlatılmıştır. GWBASIC yo-


rumlayıcısına ait komutların tümü IBM BASIC ve BASICA yorumlayıcıları için de
geçerlidir.
GWBASIC programının çalıştırılması için, içinde GWBASIC programı bulu-
nan disket A veya B sürücüsüne takılır ve GWBASIC yazılarak ENTER tuşuna ba-
sılır.

A:\> GWBASIC <ENTER>


Eğer C sürücüsünde (yani harddiskte) GWBASIC programı varsa ve burada ça-
lışmak isteniyorsa da o zaman C: \> promptundan sonra GWBASIC yazılıp ENTER
tuşuna basılması gerekir.

C:\> GWBASIC <ENTER>


BASIC SİSTEMİNİN TANITIMI

Herhangi bir sürücüden GWBASIC programı çalıştırıldığında ekrana yukarıda


görülen editör gelecektir. ·
BASIC programından çıkıp DOS'a dönülmek istendiğ i nde ise SYSTEM yazıp
ENTER tuşuna basılması gerekir. SYSTEM komutu BASIC ortamından kesin olarak
ç ıkılıp DOS'a dönülmesini sağ lar.
BASIC ortamından geçici olarak çıkılmak isteniyorsa SHELL yazılıp ENTER tu-
şuna basılması gerekir. Bu durumda BASIC'den geçici olarak çıkılmış olur. Tekrar
BASIC ortamına dönmek için EXIT yazıp ENTER tuşuna bas ılmalıdır.

8- BASIC KOMUT, DEYİM VE


STANDART FONKSİYON TANIMLARI

BASIC ya da başka bir programlama dilini öğrenirken bu kelimelerle sık s ık kar-


ş ılaşılır. Bu bölümde
bu kelimelerin tanımları yapılacaktır .

KOMUT : RUN, RENUM, SAVE, LOAD, LIST gibi program ın işletimiyle (yani
programın yüklenmesi, kaydedilmesi, ça lıştırılması) ilgili kelimeler komut olarak
adlandırılırlar. Bunlar genellikle BASIC programının içinde yer almazlar ve direkt
modda (yani satır numarasız olarak) kullanılırlar.

DEYİM : PRINT, INPUT, LOCATE gibi program içinde yer alan ve programda

2
BASIC SİSTEMİNİN TANITIMI

bir görevleri olan kelimeler DEYİM olarak adlandırılırlar. Az. önce de belirttiğimiz
gibi genellikle (hemen hemen her zaman) program içinde yer alırlar ve bu nedenle
başlarında bir satır numarası bulunur. Ayrıca FOR, NEXT, WHILE, WEND, IF,
THEN, ELSE .. gibi program içinde çeşitli yapıların oluşturulmasında kullanılan ke-
limeler de DEYiM olarak adlandırılabilir.

STANDART FONKSİYON : Standart fonksiyonlar bir değer üreten BASIC


kelimeleridir. Uretilen değer sayısal (sc:ıyı özelliği taşıyan) ya da alfanümerik
(harf ya da harf kombinasyonu) olabilir. Orneğin SIN fonksiyonu parametre olarak
verilen bir açının değerini üretir. Daha sonra bu değer başka bir komut tarafından
görüntülenebilir ya da programda başka şekilde kullanılabilir. FIX fonksiyonu ise
kesirli bir sayının tamsayı bölümünü üretir. Diğer bazı standart fonksiyonlar da
şunlardır : COS, TAN, LEFT$, RIGHT$, MID$.
Standart fonksiyon ile fonksiyon arasındaki fark. şudur : Bir fonksiyon BASIC
programlama dilinde tanımlı ise STANDART FONKSiYON olarak anılır. Buna kar-
şılık prograı:ncı tarafından yazılmış ve daha sonra kullanılmışsa bu fonksiyon sade-
ce FONKSiYON olarak anılır. Az önce ismini verdiklerimizin tümü STANDART
FONKSİYON'dur.
Kimi BASIC kelimeleri hem deyim hem de standart fonksiyoo olarak kullanılabi­
lir. Bunlara en iyi örnek TiME$ kelimesidir. TiME$, fonksiyon olarak kullanıldı­
ğında sistemin saatini okur ve kullanmamıza (örneğin görüntülememize) imkan sağ­
lar. Şimdi TIME$'ın standart fonksiyon olarak kullanılışını görelim

100 CLS
110 PRINT TIME$
999 END

Bu program çalıştırıldığında TiME$ fonksiyonu sistemden saati okur ve bu de-


ğer PRINT tarafından görüntülenir.
Şimdi de sistemin saatini düzeltmek istediğimizi varsayalım. Örneğin saatler l
saat ileri alındığında sistemin saatinde bir düzeltme yapma gereği ortaya çıkar.
Bu durumda TiME$ bir deyim olarak kullanılacaktır.

100 CLS
110 TIME$="08:00:00"
999 END

Bu program çalıştırıldığında sistemin saati (yani bilgisayarın içindeki dijital


saat) 08'e ayarlanır. Dikkat edilirse burada saat okunmamış aksine ayar yapılmış­
tır. Aynı kelimenin hem fonksiyon hem de deyim olarak kullanılabildiği birkaç ör-
nek daha vardır. Örneğin DATE$ da böyledir. Sistemden tarihi okursanız standart
fonksiyon olarak kullanmış olursunuz. Buna karşılık sistemin tarihinde değişiklik
yapmak isterseniz DATE$ bir deyim olarak kullanılacaktır.

3
BASIC SİSTEMİNİN TANITIMI

Standart fonksiyonların kullanılmasındaki en önemli nokta şudur : Bir standart


fonksiyon hiçbir zaman,_tek başına kullanılamaz. Bir deyim ya da komut ise tek ba-
şına da kullanılabilir. Orneğin CLS bir deyimdir ve tek başına (yani sadece CLS
yazılarak) kullanılabilir. Fonksiyonlar ise bir değer ürettikleri için ya bir ~eğişke­
ne değer aktarmak suretiyle ye da bir deyim aracılığıyla kullanılırlar. Orneğin
INT(x) şeklindeki fonksiyon x sayısının tamsayı değerini üretir. Buna göre INT
fonksiyonu ya ürettiği değeri bir değiş~~ne aktaracaktır ya da ürettiği değer bir
başka deyim tarafından kullanılacaktır. Ornekler :

100 CLS
110 A=INT(34.7)
120 PRINT A
999 END

Bu programda 11 O nolu satırda INT fonksiyonunun ürettiği değer A değişkeni­


ne aktarılmıştır. Şimdi inceleyeceğimiz programda ise INT fonksiyonunun ürettiği
değer doğrudan doğruya görüntülenmektedir.

100 CLS
110 PRINT INT(34.7)
999 END

Buna göre bir standart fonksiyon hiçbir şekilde tek başına yazılamaz. Örneğin
şimdi inceleyeceğimiz program yanlıştır :

100 CLS
110 INT(34.7)
999 END

Görüldüğü gibi 1 1O nolu satırda INT fonksiyonu tek başına yazılmıştır. Üretti-
ği değer ne bir değişkene aktarılmış ne de başka bir deyim aracılığıyla kullanıl­
mıştır. Bu program çalıştırıldığında Syntax Error (Yazım hatası) mesajı görüntüle-
nir.

ÖNEMLİ NOT : Bu anlattıklarımıza rağmen şunu da bilmekte fayda var ki,


uygulamada KOMUT, DEYİM ve STANDART FONKİYON kelimeleri titizlikle kul-
lanılmamaktadır. Genellikle her üçü de KOMUT olarak adlandırılmaktadır. Bu ki-
tapta da bunların tümünü ifade etmek üzere KOMUT kelimesinin kullanıldığına
rastlayabilirsiniz.

4
BASIC SİSTEMİNİN TANITIMI

C- BASIC KARAKTER SETİ

Bilgisayar klavyesinde bulunan harf, rakam ve özel işaretlere karakter denir.


Örneğin 'A', 'w', 'b', '*', '/' işaretleri birer karakterdir. BASIC programı yazılır­
ken bu karakterlerden bazıları kullanılacaktır. BASIÇ programının yazılmasında
kullanılan karakter topluluğuna BASIC KARAKTER SETi denir.

BASIC karakter setinde şu karakterler bulunmaktadır :

1- Sayısal karakterler: 0-9 arasındaki rakamlar (O, 1, 2, 3, 4, 5, 6, 7, 8, 9).

2- Alfabetik karakterler : İngiliz alfabesinde bulunan A-Z arasındaki büyük ve


küçük harfler. Bu harfler arasında Ç, ç, G.ğ, Ş, ş, Ö, ö, Ü, ü, İ, ı harfleri bulun-
mamaktadır. yani BASIC komut, deyim ve fonksiyonlarının yazımında bu h~rfler
yer alamaz. Oğrencilerimizin en çok yanlış yaptıkları konu da şu olmaktadır. lngi-
liz alfabesinde 'İ' ve 'ı' karakterleri bulunmamaktadır. Oysa Türkçede bu karakter-
lerin hem büyük hem de küçük şekilleri vardır. İngilizce'de ise 'ay' olarak telaffuz
edilen harf büyük yazılırsa 'I', küçük yazdırsa da 'i' olarak yazılmaktadır. Buna
göre komut, deyim ve ifadelerde 'İ' ve 'ı' harfleri kullanılamaz. Bunların yerine 'I'
ve 'i' kullanılmalıdır. Örneğin PRİNT yanlış, PRINT doğrudur. Küçük harfle yazı­
lırken ise Prınt yanlış, Print doğrudur. Şimdi de bazı yanlış ve doğru yazım şekil­
lerini listeliyoruz :

YANLIŞ DOGRU

PRİNT PRINT
Prınt Print
LİST LIST
Lıs t Lis t
İN PUT INPUT
DİM DIM
Dım Dim

Yeri gelmişken hemen belirtelim ki f?.rogramda 11 11 k~rakterleri arasına yazılan


yazılarda .bu sınırlamalar geçersizdir. Orneğin PRINT "iyi günler" komutu geçerli-
dir çünkü 1 ve ü harfleri " 11 karakterleri içinde yer almıştır. Buna göre " " karak-
terleri arasında serbestçe bütün karakterler kullanılabilir.

3 - Özel karakterler : Klavyedeki harfler ve rakamlar dışındaki işaretler özel


karakterler olarak adlandırılırlar. BASIC programlarının yazılmasında kullanılan

5
BASIC SİSTEMİNİN TANITIMI

özel karakterler şunlardır :

+ * / \
? $ > <
>= <= < >

D- DiREKT MODUN KUllANllMASI


Bu modda komutlar hemen çalışır. Herhangi bir satır numarası verilmez. Bir
program yazılması gerekmeyen hesaplamalarda DIRECT mod kullanılır. Örneğin:

Ok
PRINT 3*5 <ENTER>
15
Ok

Burada 3 ile 5 çarpılıp sonuç hemen görüntülenmiştir. Ok mesajı, BASIC'in


herhangi bir komutu veya programı yerine getirmeye hazır olduğunu gösterir.

E- ENDİREKT MODUN KUllANILMASI


Burada, verilen komutların bir program halinde yazılması ve çalıştırılması söz
konusudur. Bunun için komutlar satır numarası alır. Yazılan programların daha son-
ra da çağrılmak üzere diskete veya harddisk'e kaydedilmesi mümkündür.

100 PRINT 3*5 <ENTER>


RUN <ENTER>
15
Ok

6
ÜNİTE

BA§IC DEGEHLEHi
SABiTLEH~ DEGiŞKENLEH ve
iSiM ATAMA

A- BASIC DEGERLERİ
BASIC programı tarafından kullanılan, işlenen ve üretilen bilgilere Basic de-
ğerleri denir. Bu bilgiler iki türlü olabilir :

l - Sabit türü bilgi


2 - Değişken türü bilgi

Sabit türü bilgiler program içinde değişikliğe uğramazlar. Sabit türü bilgiler sa-
yısal ya da alfanümerik olabilir. Alfanümerik tipi sabitler " " karakterleri arasında
yer alır. Değişken türü bilgiler ise program içinde değişikliğe uğrayabilecekleri
gibi programın her çalıştırılmasında da farklı olabilirler. Değişken türü bilgiler de
sayısal ya da alfanürnerik olabilir. Şimdi sırasıyla sabit ve değişken türü bilgileri
inceleyeceğiz.

DEGİŞKEN VE SABİT İSİMLERİYLE İLGİLİ KURAUAR

1- BASIC programlama dilinde değişken veya sabit isimleri İngiliz alfabesinde-


ki harfler ve 0-9 arasındaki rakamlardan oluşur.
2- Değişken adları minimum l, maksimum 40 karakterden oluşur. Ancak çok
uzun değişken adları kullanılması tavsiye edilmez.
3- Değişken adının ilk karakteri mutlaka harf olmalıdır. Diğer karakterler harf
veya rakam olabilir.
4- Değişken adında boşluk bulunamaz.
5- BASIC programlama dilinde kullanılan komut isimleri, değişken adı olarak
kullanılamaz.

7
BASIC DEGERLERİ

Değişken adının en sağında:


% karakteri varsa, bu tamsayı tipi bir değişkendir.
! karakteri varsa, bu tek duyarlıklı gerçel sayı değişkendir.
# karakteri varsa, bu çift duyarlıklı gerçel sayı değişkendir.
$ karakteri varsa, bu string tipi bir değişkendir. ·

Değişken adının en sağında, yukarıdaki karakterlerden hiçbirisi yoksa, bu de-


ğişken bilgisayar tarafından tek duyarlıklı gerçel sayı değişken olarak işlem görür.

B- SABiTLER
Program içersinde değerleri sabit olan ifadelerdir. Sabitler, sayısal ve alfasa-
yısal sabitler olarak iki gruba ayrılırlar.

1- Sayısal sabitler:
Sayısal sabitler 0-9
arasındaki rakamların kombinasyonundan oluşurlar. Bu sa-
yılar, duruma göre +, - işaretlerini ve ayraç karakteri olarak . (nokta) içerebilir-
ler.
Tek duyarlıklı gerçel sayılar, noktadan sonra 7 basamak, çift duyarlıklı gerçel
sayılar ise noktadan sonra 15 basamak hassasiyetindedirler.
Aşağıda, çeşitli sayısal sabit örnekleri görülmektedir.

15 Tamsayı tipi sabit


3.14159 Tek duyarlıklı gerçel sayı sabit
-35.68 Tek duyarlıklı gerçel sayı sabit
1.5673333334 Çift duyarlıklı gerçel sayı sabit

2- Alfosayısal (string) sabitler:


Alfasayısal (string) tipi sabitler, " " (çift tırnak) içersinde yazılırlar. Bir alfa-
sayısal sabit, maksimum 255 karakterden oluşabilir. Aşağıda, alfasayısal (string)
sabit örnekleri görülmektedir.

"TUZLA"

"AHMET"

"l 5"

8
BASIC DEGERLERİ

c- DEGİŞKEN DEGERLERİ
DEGİŞKEN ADI ÖRNEKLERİ
l'-0 Tek duyarlıklı gerçel sayı tipi değişken
SUM! Tek duyarlıklı gerçel sayı tipi değişken
NUM% Tamsayı tipi değişken
TOPLAM# Çift duyarlıklı gerçel sayı tipi değişken
AD$ String tipi değişken

GEÇERSİZ DEGİŞKEN ADI ÖRNEKLERİ


l NO Rakamla başladığı için geçersizdir.
SONUÇ Türkçe karakter (ç harfi) kullanıldığı için geçersizdir
AD SOYAD$ Boşluk karakteri bulunduğu için geçersizdir.

Aşağıdaki tabloda, çeşitli tiplerdeki değişkenlerin alabilecekleri minimum ve


maksimum değerlerle, bellekte kapladıkları alanlar görülmektedir.

Değişken tipi Minimum değer Maksimum değer Bellekte kapladığı


alan

Tamsayı -32768 32767 2 Byte

Tek duyarlıklı -231 231- l 4 Byte


gerçel sayı

Çift duyarlıklı -263 263_1 8 Byte


gerçel sayı

String tipi Maximum 255 karakter Her karakter için bir


Byte.

String tipi değişkene bir harf aktarılabileceği gibi, maksimum olarak 255 karak-
ter de aktarılabilir.
Tamsay'ı tipi değişkenlere -32768 ile 32767 arasındaki tamsayılar aktarıla­
bilir. Kesirli sayılar aktarılamaz.
Tek ve çift duyarlıklı gerçel sayı değişkenlere ise yukarıdaki tabloda belirtilen
sınırlar arasındaki fam veya kesirli sayılar aktarılabilir.

9
BASIC DEGERLERİ

DEGİŞKENLERE DEGER ATAMA İŞLEMİ

BASIC programlama dilinde, değişkenlere değer atanmasında = operatörü kulla-


nılır. Bu operatörün sol tarafından değişken adı, sağ tarafından ise bu değişkene
atanan değer yer alır.

A = 5
AD$ "AHMET"

Yukarıdaki birinci örnekte A değişkenine 5 sayısı aktarılmış, AD$ değişkenine


de "AHMET" stringi aktarılmıştır. Bu işlemlerden sonra bilgisayarın belleğinde
aşağıdaki düzenleme oluşur.

A 5
A$ "AHMET"

Herhangi bir değişkene ardarda birden fazla değer aktarıldığında, değişkenin


içinde en son aktarılan değer bulunur, önceki değerler silinir. Örneğin;

B= 3
B=5
Yukarıdaki işlemlerde B değişkeninin içine önce 3 daha sonra ise 5 sayısı ak-
tarılmıştır. Sonuçta 3 sayısı silinir ve değişkenin içinde 5 sayısı bulunur.
Bir değişken, sayaç olarak kullanılarak, içersindeki değere başka bir değer de
eklenebilir.

A=3
A=A+l

Bu işlemlerde ilk önce A değişkenine 3 sayısı atanmıştır. İkinci satırda ise


A=A+I işlemiyle, A değişkeninin içindeki sayı (3), 1 ile toplanarak sonuç yine A
değişkenine atanmıştır. Sonuçta, A değişkeninin içinde 4 sayısı oluşur.

10
BASIC DEGERLERİ

İLK BASIC PROGRAMIMIZ


Şimdi de ilk BASIC programımızı yazıp çalıştıralım.

100 A=5
110 PRINT A
999 END

RUN
5

BASIC programlama dilinde her satıra bir satır numarası verilir. Satır numarala-
rı tamsayı olmak zorundadır. En küçük satır numarası l, en yüksek satır numarası
da 65529 olabilir. Bu arada kalmak şartıyla istenilen bir sayı ilk satır numarası
olarak tayin edilebilir ve artış miktarı serbestçe seçilebilir. Geleneksel olarak ar-
tış miktarı l O olarak alınmaktadır ancak bu yönde bir zorunluluk yoktur. Satır nu-
maralarının l O'ar (veya daha fazla) olarak arttırılmasının bir yararı, sonradan ara-
ya yeni satırlar ilave etme imkanı vermesidir.
Yukarıdaki programa gelelim. l 00 nolu satırda A değişkenine 5 sayısı atan-
mıştır. 11 O nolu satırda ise PRINT komutu kullanılarak A değişkenindeki sayı ek-
randa görüntülenmiştir. Programın en son satırı en yüksek numarayı taşımalıdır.
999 nolu satırdaki END komutu programı sona erdirir. Ancak bu satırın numarası­
nın 999 .. olma zorunluluğu yoktur. Programdaki en büyük numaralı satır olması ye-
terlidir. Orneğin bu programda en son satıra, 120 numarası da verilebilirdi. An-
cak, yine geleneksel olarak en son satırlara 99, 999, 9999 gibi numaralar veril-
mektedir.
BASIC programlama dilinde yazılan programlar, en düşük numaralı satırdan
başlamak üzere sırayla satır satır çalışırlar.
Yukarıdaki programda herhangi bir dallanma (programın akış yönünün değişmesi)
olmadığı için en son satırda END komutunun kullanılması zorunluluğu da yoktur.
Ancak biz yine de bütün programlarda END komutunu kullanmayı tercih edeceğiz.

D- OPERATORlER
Operatörler, aritmetiksel işlemlerin yapılmasında ve program akış yönünün de-
ğiştirilmesinde kullanılacak şart önermelerinin oluşturulmasında kullanılırlar. Ope-
ratörler 3 grupta toplanabilir:
1- Aritmetiksel operatörler
2- İlişkisel operatörler
3- Mantıksal operatörler

Şimdi sırasıyla bu operatör tiplerini inceleyelim.

i1
BASIC DEGERLERİ

ARİTMETİKSEL OPERATÖRLER
BASIC programlama dilinde; aritmetiksel işlemler aritmetiksel operatörler vası­
tasıyla gerçekleştirilirler. Aşağıda, BASIC programlama dilinde kullanılan aritme-
tiksel operatörler ve işlevleri görülmektedir.

İŞLEM Operatör Örnek Sonuç


Toplama + 5+3 8
Çıkarma 5-2 3
Çarpma * 5*4 20

İŞLEM Operatör Örnek Sonuç


Bölme / 5/2 2.5
Tamsayı bölme \ 5/2 2
Üs alma A 5A2 25

Bir aritmetiksel işlemde birden fazla operatör kullanıldığında, işlemlerin hangi-


sinin önce hangisinin sonra yapılacağı sorusu karşımıza çıkar. Aşağıdaki tabloda,
aritmetiksel operatörlerdeki öncelik sırası görülmektedir.

Operatör İşlem Öncelik Sırası İşlem Yönü


A
Üs alma En önce Soldan sağa
*, /, \ Çarpma, bölme Soldan sağa
+ - 1 Toplama, çıkarma En sonra Soldan sağa

Buna göre, birden fazla operatörü olan işlemlerde, önce üs alma, daha sonra
çarpma ve bölme, en sonra da toplama ve çıkarma işlemleri yapılacaktır. Eğer ay-
nı işlem sırasında bulunan operatörler varsa (örneğin çarpma ve bölme) bu durumda
önce soldaki işlem yapılacak daha sonra da sağa doğru işlemler gerçekleştirilecek­
tir.
ÖRNEK:
3+5*2 = ?

Yukarıdaki ifadede öncelikle 5*2 işlemi gerçekleştirilir, bulunan sayı 3 ile


toplanır. Çünkü çarpma işleminin toplama işlemine göre önceliği vardır.

ÖRNEK:
7+5-2 =?
Bu işlemde ise, toplama ve çıkarma işlemleri aynı öncelik sırasında bulunduğu
için soldan itibaren önce iki sayı toplanır, bulunan sayıdan 2 çıkarılır.

12
BASIC DEGERLERİ

NOT: Bazı işlemler, parantez içine alınarak öncelik sırası değiştirilebilir. Bu


durumda ise parantez içindeki işlem öncelikle tamamlanır.

ÖRNEK:
7*(5+2)=?

Bu örnekte 5+2 işlemi parantez içersinde olduğu için öncelikle gerçekleştiri­


lir, daha sonra da bulunan sayı 7 ile çarpılır.

İLİŞKİSEL OPERATÖRLER

İlişkisel operatörler iki değer arasındaki büyüklük, küçüklük veya eşitlik ilişki­
sinin bulunmasında kullanılırlar.
Karşılaştırılan değerler sayısal olabileceği gibi alfasayısal da olabilir. Karşı­
laştırma işlemi sonucunda, önermenin doğru veya yanlış oluşuna göre TRUE (Doğ­
ru) veya FALSE (Yanlış) sonucu üretilir.
Aşağıdaki tabloda, ilişkisel operatörler ve kullanım yerleri görülmektedir.

Operatör İşlem Örnek Sonuç

= Eşittir 5=5 TRUE (Doğru)


5=3 FALSE (Yanlış)
"Ali"="Ali" TRUE (Doğru)
"Ali"="Veli" FALSE (Yanlış)

<> Eşit değildir 5<>8 TRUE (Doğru)


5<>5 FALSE (Yanlış)
"Ali"<>"Ali" FALSE (Yanlış)
"Ali"<>"Veli" TRUE (Doğru)

> Büyüktür 5>3 TRUE (Doğru)


5>7 FALSE(Yanlış)
uAu>ııBn FALSE (Yanlış)
nBn>ııArı
TRUE (Doğru)
"Bekir">"Ali" TRUE (Doğru)

< Küçüktür 5<8 TRUE (Doğru)


5<2 FALSE (Yanlış)
"A"<nBn TRUE (Doğru)
"Ali"<"Bekir" TRUE (Doğru)
"Bekir"<"Ali" FALSE (Yanlış)

13
BASIC DEGERLERİ

Operatör İşlem Örnek Sonuç

>=,=> Büyük veya 8>=5 TRUE (Doğru)


eş ittir 8>=8 TRUE (Doğru)
"Ali"<"Bekir" TRUE (Doğru)
"Bekir"<"Ali" FALSE (Yanlış)

<=,=< Küçük veya 5<=3 TRUE (Doğru)


eş ittir 5<=5 TRUE (Doğru)
8<=5 FALSE (Yanlış)
ııA"<==llBll TRUE (Doğru)
"Ali"<="Bekir" TRUE (Doğru)
"Bekir"<="Ali" FALSE (Yanlış)

MANTIKSAl OPERATÖRLER

Mantıksal operatörler, birden fazla ilişkisel operatörün birlikte kullanılmasında


bağlaç görevi yaparlar. Mantıksal operatörler kullanılarak, birden fazla şartın al-
ternatif ya da kümülatif olarak önerilmesi sağlanabilir.
BASIC programlama dilinde NOT, AND ve OR bağlaçları mantıksal operatör
olarak kullanılırlar. Aşağıdaki tabloda mantıksal operatörler görülmektedir.

Operatör İşlem Örnek Sonuç

NOT Değil NOT (3=5) TRUE (Doğru)


NOT (3=3) FALSE (Yanlış)
NOT ("A"="A) FALSE (Yanlış)
NOT ("A="B") TRUE (Doğru)

AND Ve 3=3 AND 5=5 TRUE (Doğru)


3=3 AND 5=8 FALSE (Yanlış)
"A"="A" AND 3=3 TRUE (Doğru)
5>3 AND 2> l TRUE (Doğru)

OR Veya 3=3 OR 5=2 TRUE (Doğru)


3=5 OR 8=4 FALSE (Yanlış)
ııArı==uAn OR ııBıı==nCu TRUE (Doğru)
8>2 OR 3>6 TRUE (Doğru)

Tabloda da görüldüğü gibi mantıksal operatörler kullanılarak yapılan önermele-


rin sonucunda da TRUE (Doğru) veya FALSE (Yanlış) değerleri üretilmektedir.

14
ÜNİTE

BASIC PHOGHAMLAMA YA GiHiŞ

A-LET, PRINT, RUN, NEW, CLS, REM, SAVE, MKDIR, FILES, CD1
RD, INPUT, DELETE, lOAD DATA, .READ, RESTORE,
1

UNE INPUT, AUTO KOMUT ve DEYiMLERi

lET KOMUTU
BASIC programlama dilinde, değişkenlere değer atama işlemlerinde LET komutu
da kullanılabilir. LET komutunun kullanılması, BASIC'in ilk versiyonlarında zorun-
lu idi. Ancak şimdi kullanılan yeni versiyonlarda, değişkenlere değer atama işlem­
lerinde LET komutunun kullanılması zorunlu değildir. Bununla birlikte, LET komutu-
nun kullanılması konusunda bir örnek verilmesini de uygun gördük. Aşağıdaki prog-
ramda LET komutu kullanılarak A ve B değişkenlerine değerler atanmaktadır.

100 LET A=45


110 LET B=35
120 C=A+B
130 PRINT "TOPLAM=" ;C
999 END

RUN
TOPLAM =80

Bu programda l 00 nolu satırda LET A=45 komutuyla A değişkenine 45 sayı­


sı, 11 O nolu satırda da LET B=35 komutuyla B değişkenine 35 sayısı atanmıştır.
LET komutunun diğer kullanım şekilleri aşağıda listelenmektedir.

LET A$ = "EKRAN" A$ değişkenine "EKRAN" stringi atanıyor.

LET A = 5 * 3 A değişkenine 5 * 3 ifadesi (yani 15 sayısı) atanıyor.


LET A = A+ l A değişkenini tuttuğu sayıya l eklenerek sonuç yine A
değişkenine atanıyor.

15
BASIC PROGRAMLAMAYA GİRİŞ

PRINT KOMUTU
PRINT komutu değişken, sabit ve ifadelerin ekranda görüntülenmesi amacıyla
kullanılır. PRINT komutunun sintaksı aşağıdaki gibidir.

PRINT değişken/sabit/ifade

PRINT komutu kullanılarak sadece bir değişken/ sabit/ifade görüntülenebilece-


ği gibi birden fazla değişken, sabit veya ifade de görüntülenebilir. Bu son durum-
da, görüntülenen değişken, sabit veya ifadelerin aralarında "," (virgül) veya ";"
(noktalı virgül) karakteri yer almalıdır. Aşağıdaki örneklerde PRINT komutunun çe-
şitli kullanımları görülüyor.

PRINT A A değişkeninin içindeki sayı görüntüleniyor.


PRINT 5 5 sabiti görüntüleniyor.
PRINT "BİLGİSAYAR" "BİLGİSAYAR" sabiti görüntüleniyor.
PRINT 3*5 3* 5 ifadesi görüntüleniyor.
PRINT A;5;3*5 A değişkeninin içindeki sayı, 5 sabiti ve 3* 5 ifade-
si birlikte görüntüleniyorlar. Bu parametrelerin arala-
rında ";" karakteri bulunduğu için değerler birer ka-
rakter aralıklı olarak görüntülenir.
PRINT A,5,3*5 Bu durumda ise parametreler arasında "," karakteri bu-
lunduğu için her değer kendi solundaki değerin bulun-
duğu ekran bölgesinden bir sonraki ekran bölgesinde
görüntülenir. Her ekran bölgesi 14 karakterden oluş­
maktadır.

ÖRNEKLER:
PRINT komutu yalnız başına (parametresiz) kullanılırsa bir satır boşluk bırakır.

100 PRINT "TUZLA"


110 PRINT
120 PRINT "TEKNİK"
999 END

RUN

TUZLA

TEKNİK

Her PRINT komutu bilgiyi ayrı bir satıra yazar. Eğer PRINT komutu bulunan sa-

16
BASIC PROGRAMLAMAYA GİRİŞ

tırın sonunda ";" (noktalı virgül) karakteri kullanılırsa, kürsör bir alt satıra inmez
ve yeni PRINT komutu bilgiyi öncekinin bittiği yerden itibaren yazdırır. Aşağıda­
ki örnekleri inceleyelim:
100 PRINT "T"
110 PRINT ııu"
120 PRINT ıızıı

130 PRINT ııLıı

140 PRINT "An


999 END

RUN
T
u
z
L
A

100 PRINT "Tıı;


110 PRINT "U .. ;
120 PRINT ıızıı;
130 PRINT "L";
140 PRINT "Aıı
RUN
TUZLA

Yukarıdaki programların ilkinde PRINT komutu bulunan satırlarda~ sonra herhan-


gi bir işaret kullanılmadığı için her harf ayrı bir satıra yazılmıştır. ikinci program-
da ise her PRINT satırından sonra ";" (noktalı virgül) karakteri bulunduğu için harf-
ler yanyana yazılmıştır.

REN UM
BASIC programının satır numaralarının değiştirilmesi amacıyla kullanılır. Prog-
ramın bellekte yüklü olması gerekir.

RENUM <ENTER>

RENUM komutu, yukarıdaki şekliyle kullanıldığında programın ilk satır numara-


sı 1O olur ve artış miktarı 1O olacak şekilde diğer satırlar da numaralanır.

RENUM 1000, 10, 50 <ENTER>

Bu durumda ise 1O numaralı satırın numarası 1000 olur ve artış miktarı 50


olacak şekilde diğer satırlar da numaralanır.

17
BASIC PROGRAMLAMAYA GİRİŞ

RUN
Bellekte veya disket ya da harddiskte bulunan bir programı çalıştırmak için kul-
lanılan komuttur. O anda bellekte bulunan bir programı çalıştırmak için RUN ya-
zıp ENTER tuşuna basmak yeterlidir. Sadece F2 fonksiyon tuşuna basılarak da bel-
lekteki program çalıştırılabilir. Bu durumda ENTER tuşuna basmaya gerek yoktur.
Disket veya harddiskte bulunan bir BASIC programını çalıştırmak için ise RUN
komutunun yanında çalıştır~!mak istenen programın adının yazılması ve ENTER tu-
şuna basılması gereklidir. Orneğin diskette bulunan TOPLAM adlı BASIC programı
çalıştırılmak istendiğinde:

RUN "TOPLAM" <ENTER>

komutu yazılmalıdır.

NEW
Bellekteki (RAM) programı ve değişkenleri siler. Yeni bir program yazmaya baş­
lamadan önce NEW komutu kullanılarak bellek temizlenmelidir. Bu komut ayrıca
açık olan bütün dosyaları da kapatır.

cıs
Bu komut ekranı siler ve kürsör'ü l. satır, l. sütuna konumlandırır.

KEY OFF
Editörün en alt satırında bulunan komut yazılarının silinmesini sağlar.

KEYON
Editörün en alt satırındaki komut yazılarının tekrar görüntülenmesini sağlar.

KILL
Disket veya harddiskte bulunan bir dosyayı silmek için kullanılır. Örneğin dis-
kette bulunan TOPLAM.BAS adlı programı silmek için:
KILL "TOPLAM.BAS" yazıp ENTER tuşuna basmak yeterlidir. Silinmek istenen
program, diskette mevcut değilse file not found mesajı görüntülenir.

REM
BASIC programlama dilinde, progra_mın çeşitli yerlerinde açıklamalar yapmak
amacıyla REM komutu kullanılır, REM, lngilizce REMARK (Açıklama, yorum) keli-
mesinin ilk üç harfinden meydana gelmiştir. REM komutu ile başlayan satırlar
programın çalıştırılması sırasında INTERPRETER tarafından atlanır yani işleme kon-
maz. Bu satırlar sadece program hakkındaki açıklayıcı bilgi vermek amacıyla kul-
lanılırlar. REM komutu yerine, tek tırnak (') işareti de aynı işlevi görmek üzere kul-
lanılabilir.

18
BASIC PROGRAMLAMAYA GİRİŞ

10 REM TOPLAMA İŞLEMİ YAPAN PROGRAM


20 ' YAZAN ORHAN ÖZTÜRK

Yukarıdaki örnekte l O nolu satırda REM komutu kullanılarak, 20 numaralı satır­


da ise " ' " (tek tırnak) karakteri kullanılarak çeşitli açıklamalar yapılmıştır. Her iki
satır da, interpreter tarafından atlanır ve diğer komutlara geçilir.
Bazen de programda yine okunmayı kolaylaştırmak amacıyla bölümler arasında
boşluk bırakılır. Buralarda satır numarasından sonra sadece REM yazısı veya " ' "
(tek tırnak) işareti kullanılır.
Aşağıdaki program, klavyeden girilen bir sayının karesini hesaplamakta ve so-
nucu görüntülemektedir. Programda REM komutu da kullanılarak çeşitli açıklamalar
yapılmıştır.

100 REM BU PROGRAM KLAVYEDEN GİRİLEN SAYININ


110 REM KARESİNİ HESAPLAR
120 REM
130 REM ***YAZAN KEMAL YARCI***
140 REM *** 14/5/1993 ***
150 REM
160 CLS
170 INPUT "BİR SAYI GİRİNİZ=",S
180 K=S"2
190 PRINT "SAYI=";S,"KARESİ=";K
999 END

RUN
BİR SAYI GİRİNİZ = 5 <ENTER>
SAYI =5 KARESİ = 25

SAVE
Bilgisayar'ın belleğinde (RAM) bulunan bir program diskete veya harddiske kay-
detmek amacıyla kullanılır. Program diskete veya harddiske kaydedilirken bir prog-
ram ismi verilir. Program ismi en fazla 8 karakterden oluşur ve yine en fazla 3 ka-
rakterden oluşan bir uzantı alabilir. Basic dilinde yazılmış bir program kaydedilir-
ken herhangi bir uzantı verilmediği taktirde otomatik olarak BAS uzantısını alır.

SAVE "TOPLAM" <ENTER>

Yukarıdaki komut çalıştırıldığında, editörde yüklü bulunan BASIC programı


TOPLAM.BAS adı altında diskete veya harddiske kaydedilir.
Bir program diskete veya harddiske kaydedilirken disket veya harddiskte aynı
adı taşıyan bir program mevcut ise bu program silini.r yerine yeni program gelir.
Herhangi bir sürücüde çalışırken, program başka bir sürücüye de kaydedilebilir.
Bu durumda, programın kaydedileceği disket hangi sürücüdeyse o sürücü adının

19
BASIC PROGRAMLAMAYA GİRİŞ

belirtilmesi gerekir.

SAVE "B: TOPLAM" <ENTER>

Bu durumda, TOPLAM.BAS adlı program B sürücüsündeki diskete kaydedilir.

Bir BASIC programını ASCll kodunda kaydetmek amacıyla A parametresi kulla-


nılır.

SAVE "Programismi", A <ENTER>

Yukarıda görülen yazım sonucunda, basic programı ASCll kodunda kaydedilmiş


olur. Bu durumda bu program DOS tarafından tanınacağı gibi, başka programlarla
birleştirilmesi de mümkün olur.
SAYE komutu kullanılarak, programlar korumalı olarak da saklanabilir. Bu du-
rumda P parametresi kullanılır.

SAVE "Program ismi", p <ENTER>

Korumalı olarak kaydedilen bir BASIC programının listesi alınamaz. Liste alın­
mak istendiğinde illegal function cali mesajı görüntülenir. Bu şekilde kaydedilen
programlar çalıştırılabilir. Koruma etkisi sonradan ortadan kaldırılamaz. Yani bir
program korumalı olarak kaydedilmişse bir daha o programın listenmesi mümkün ol-
maz.

CONT
Bir BASIC programının çalışması CTRL-BREAK tuşlarına basılarak sona erdirile-
bilir. CONT komutu, programın kaldığı yerden çalışmaya devam etmesini sağlar.
F5 fonksiyon tuşu da bu işlevi yerine getirebilir.

EDIT
~.ellekte bulunan programın belli bir satırını ekrana getirmek amacıyla kullanı­
lır. Orneğin bir programın 160 numaralı satırını görmek ya da düzeltmek amacıy­
la ekrana getirmek istediğimizde:

EDIT 160 <ENTER>

komutu çalıştırılmalıdır.

FILES
En çok kullandığımız komutlardan birisidir. Disket veya Harddiskte bulunan
programların isimlerinin görüntülenmesini sağlar. DOS'taki DIR komutunun işlevini

20
BASIC PROGRAMLAMAYA GİRİŞ

yerine getirir.
FILES <ENTER> biçiminde kullanılırsa disket veya harddiskteki bütün program-
ların isimleri görüntülenir. Aşağıda da FILES komutunun diğer kullanım biçimleri
açıklanmaktadır.

FILES "*. BAS" <ENTER> Sadece uzantısı BAS olan programların


isimleri listelenir.
FILES "A *. *" <ENTER> Sadece ismi A ile başlayan programlar lis-
telenir.
FILES "C:" <ENTER> C sürücüsündeki bütün programlar listele-
nir.
FILES "B: *.BAS" <ENTER> B sürücüsündeki diskette bulunan BAS
uzantılı programlar listelenir.
FILES "TOPLAM. BAS" <ENTER> TOPLAM. BAS adlı programın adı görüntü-
lenir. Eğer böyle bir program mevcut de-
ğilse file not found hata mesajı görüntü-
lenir.

FILES komutunun tüm kullanımlarında, aranan özelliklerde dosya mevcut değil­


se file not foı.md hata mesajı görüntülenir.

MERGE
Disk veya harddisk'e ASCll formunda kaydedilmiş olan bir programı, bellekte
yüklü bulunan bir program ile birleştirmek amacıyla kullanılır.
Örneğin DENEME adlı programı TOPLAM adlı program ile birleştirmek için ön-
ce DENEME adlı program ASCll formunda diskete kaydedilir:

SAVE "DENEME", A <ENTER>

Daha sonra da TOPLAM adlı program LOAD komutu ile belleğe yüklenir.

LOAD "TOPLAM" <ENTER>

Şimdi, bellekte TOPLAM adlı program var.

MERGE "DENEME" <ENTER>

Yukarıdaki komut çalıştırıldığında disketteki DENEME adlı program, bellekteki


TOPLAM adlı programa eklenmiş olur. Birleştirme işleminin disket veya harddiske
yansıtılabilmesi için programın son halinin kaydedilmesi gerekir.

21
BASIC PROGRAMLAMAYA GİRİŞ

Önemli not: MERGE komutu kullanılarak birleştirilecek olan programlarda satır


numaraları farklı olmalıdır. Bunun için gerekiyorsa, programlardan birisinin satır
numaraları RENUM komutuyla değiştirilir.

INPUT KOMUTU

INPUT komutu klavyeden bilgi girişlerinde kullanılan komuttur. Girilen bilgi


INPUT komutuna parametre olarak verilen değişkene atanır.

10 INPUT A
RUN
? 5 <ENTER>

INPUT komutu yukarıdaki biçimde kullanıldığında, bir soru işareti görüntülene-


rek bir bilgi girişi yapması istenir. Yukarıdaki örnekte, girilen sayısal bilgi A de-
ğişkenine atanır.
Alfa sayısal (string) tipi bilgi girişlerinde ise INPUT komutuyla beraber alfasa-
yısal (string) tipi değişken kullanılmalıdır.

10 INPUT AD$
RUN
? TUZLA <ENTER>

Bu örnekte ise ? işaretinden sonra yazılan TUZLA stringi AD$ değişkenine ak-
tarılmıştır.
Aşağıdaki programda, klavyeden iki sayı girilmekte, bu sayılar toplandıktan
sonra da sonuç görüntülenmektedir.

100 CLS
110 INPUT A
120 INPUT B
130 C=A+B
140 PRINT
150 PRINT "A=" ;A
160 PRINT "B=" ;B
170 PRINT
180 PRINT "TOPLAM=";C
999 END

RUN
? 5
? 4
A=5

22
BASIC PROGRAMLAMAYA GİRİŞ

B = 4
TOPLAM =9
Bu programda 100 nolu satırdaki CLS komutu, ekranı silerek kürsörü sol üst kö-
şeye konumlandırmaktadır. 11 O ve 120 nolu satırlar ise klavyeden girilen sayıla­
rı A ve B değişkenlerine aktarırlar. 140 ve 170 nolu satırlardaki PRINT komutla-
rı, sonuçların görüntülenmesi sırasında birer satırlık boşluk meydana getirirler.
INPUT komutu sadece değişken adı ile birlikte kullanıldığında ekranda bir soru
işareti belirir. Bu durum kullanıcının ne yapması gerektiği konusunda tereddüt et-
mesine yol açabilir. Bu nedenle INPUT komutu genellikle kullanıcıya yönelik bir
mesaj vererek yazılır. Aşağıdaki örneklerde INPUT komutunun bir mesajla (prompt)
kullanılması görülüyor.

10 INPUT "Bir sayı giriniz"; A


RUN
Bir sayı giriniz?

Bu durumda, kullanıcı ne yapması gerektiğini kolayca anlayabilecektir. Yukarı­


daki örnekte mesajdan sonra yine soru işareti görüntülenmektedir. Soru işareti ye-
rine başka bir işaretin görüntülenmesi isteniyorsa " " (çift tırnak) içindeki mesaj-
dan sonra, görüntülenmesini istediğimiz işaret yazılır ve değişkenin solunda yer
alan ";" (noktalı virgül) karakteri yerine "," (virgül) karakteri yazılır.
Başka deyişle ";" yerine "," kullanıldığında 11 ? 11 (soru işareti) ortadan kalkar. Ör-
nekler:

10 INPUT "Bir sayı giriniz=", A


RUN
Bir sayı giriniz =

10 INPUT "Bir sayı giriniz>", A


RUN
Bir sayı giriniz >

Şimdi inceleyeceğimiz programda klavyeden girilen iki sayı toplanarak sonuç


görüntülenmektedir. Giriş işlemlerinde kullanıcıya mesajlar verilerek ne yapmala-
rı gerektiği belirtilmiştir.

100 CLS
110 INPUT "BIRINCİ SAYIYI GİRİNİZ=" ,A
12 o INPUT İKİNCİ SAYIYI GİRİNİZ=" B
il I

130 C=A+B
140 PRINT
150 PRINT "A=" ;A
160 PRINT "B=" ;B

23
BASIC PROGRAMLAMAYA GİRİŞ

170 PRINT
180 PRINT "TOPLAM=" ;C
999 END

RUN
BİRİNCİ SAYIYI GİRİNİZ = 5 <ENTER>
İKİNCİ SAYIYI GİRİNİZ = 6 <ENTER>

A =5
B =6
TOPLAM = 11

Klavyeden girilen iki sayının farkını bulan program:

100 CLS
110 INPUT "BIRINCİ SAYIYI GİRİNİZ=",A
120 INPUT "İKİNCİ SAYIYI GİRİNİZ=",B
130 C=A-B
140 PRINT
150 PRINT ııA=ıı ;A
160 PRINT "B=" ;B
170 PRINT
180 PRINT "FARK=" ;C
999 END

RUN
BİRİNCİ SAYIYI GİRİNİZ = 8 <ENTER>
İKİNCİ SAYIYI GİRİNİ.Z = 3 <ENTER>

A =8
B = 3

FARK = 5

Klavyeden girilen iki sayıyı çarpan program:

100 CLS
110 INPUT "BİRİNCİ SAYIYI GİRİNİZ=" ,A
120 INPUT "İKİNCİ SAYIYI GİRİNİZ=",B
130 C=A*B
140 PRINT
150 PRINT "A=" ;A
160 PRINT "B=" ;B

24
BASIC PROGRAMLAMAYA GİRİŞ

170 PRINT
180 PRINT "ÇARPIM=";C
999 END

RUN
BİRİNCİ SAYIYI GİRİNİZ = 4
İKİNCİ SAYIYI GİRİNİZ = 3

A =4
B =3
ÇARPIM = 12

Klavyeden girilen birinci sayıyı, ikinci sayıya bölen program:

100 CLS
110 INPUT "BİRİNCİ SAYIYI GİRİNİZ=" ,A
120 INPUT "İKİNCİ SAYIYI GİRİNİZ=",B
130 C=A/B
140 PRINT
150 PRINT A= ;A
11 11

160 PRINT B= ;B
11 11

170 PRINT
180 PRINT USING "BÖLÜM=###.##";C
999 END

RUN
"· BİRİNCİ SAYIYI GİRİNİZ = 15
İKİNCİ SAYIYI GİRİNİZ = 4

A = 15
B = 4

BÖLÜM= 3.75

Bir değişkene birden fazla değer aktarıldığında önceki değerler silinir, değiş­
ken, en son aktarılan değeri muhafaza eder. Aşağıdaki program bu durumu göster-
mektedir.

100 A=5
110 A=8
120 PRINT "A=" ;A
999 END

25
BASIC PROGRAMLAMAYA GİRİŞ

· RUN
A =8
Bu programda l 00 nolu satırda A değişkenine 5 sayısı atanıyor. 11 O nolu sa-
tırda ise yine aynı değişkene 8 sayısı atanıyor. 120 nolu satır aracılığıyla A de-
ğişkeninin tuttuğu sayı görüntülendiğinde, 8 sayısının bulunduğunu görüyoruz.
Yani ilk atanan 5 sayısı silinmiş yerine ikinci atanan 8 sayısı gelmiştir.
BASIC programlama dilinde, sayısal değişkenlere herhangi bir değer atanma-
mışsa, bu değişkenlerin içinde 0 sayısı bulunur. Aşağıdaki program bu durumu gös-
termektedir.

100 PRINT A
110 PRINT B
999 END

RUN
0
0

Bu programda A ve B değişkenlerine herhangi bir değer atanmaksızın bu değiş­


kenler görüntülenmiştir. Her ikisinin içinde de 0 sayısı vardır.
Alfasayısal (string) tipi bir değişkene herhangi bir değer aktarılmadığı taktirde
ise bu değişkenlerin içinde boşluk karakteri bulunur. Görüntülenme durumunda,
herhangi bir şey görülemez.
Bir değişkenin içindeki bir değer, bu değişken aracılığıyla diğer bir değişkene
de aktarılabilir.

Örnek:

100 A=5
110 B=A
120 PRINT "A=" ;A
130 PRINT "B=" ;B
999 END

A=5 A 5

26
BASIC PROGRAMLAMAYA GİRİŞ

RUN
A = 5
B =5
Bu programda önce A değişkenine 5 sayısı atanmış, daha sonra da 1 1O nolu
satırdaki B = A komutuyla, A değişkeninin içindeki sayı B değişkenine aktarılmış­
tır. aktarma işlemi sırasında A değişkeninin içindeki sayı kaybolmaz. Yani bu iş­
lem bir tür kopyalama işlemidir.

STRİNGLERİN BİRBİRİNE EKLENMESi

+ operatörü, stringlerin birbirine eklenmesinde de kullanılabilir.

Örnek program:

100 A$="TUZLA"
110 B$=" TEKNİK"
120 C$=" LİSESİ"
130 D$=A$+B$+C$
140 PRINT D$
999 END

RUN
TUZLA TEKNİK LİSESİ

Bu programda A$, B$ ve C$ stringleri + operatörüyle birbirine eklenmiş ve so-


nuç D$ değişkenine aktarılarak görüntülenmiştir.

DAİRENİN ALANINI HESAPLAYAN PROGRAM

Şimdi inceleyeceğimiz programda, dairenin yarıçapı klavyeden girilmekte ve


alan hesaplanarak görüntülenmektedir.

100 'BU PROGRAM YARIÇAPI GİRİLEN


110 'DAİRENİN ALANINI HESAPLAR
120 1

130 INPUT "DAİRENİN YARIÇAPINI GİRİNİZ >",R


140 PI=3.14159
150 ALAN=PI*RA2
160 PRINT "DAİRENİN ALANI=" ;ALAN
999 END

RUN

27
BASIC PROGRAMLAMAYA GİRİŞ

DAİRENİN YARIÇAPINI GİRİNİZ > 3


DAİRENİN ALANI = 28.27431

İŞÇİ ÜCRETLERİNİ HESAPLAYAN PROGRAM

Aşağıdaki programda, işçinin adı, soyadı, kaç saat çalıştığı ve saat ücreti klav-
yeden girilmekte, hak edilen ücret hesaplanarak görüntülenmektedir.

100 'İŞÇİ ÜCRETİNİ HESAPLAYAN PROGRAM


110 '
120 CLS
130 INPUT "ADINIZI GİRİNİZ =",AD$
140 INPUT "SOYADINIZI GİRİNİZ =",SOY$
150 INPUT "ÇALIŞMA SAATİNİZİ GİRİNİZ =",es
160 INPUT "SAAT ÜCRETİNİZİ GİRİNİZ =",SU
170 '
180 UCRET=CS*SU
190 PRINT
200 PRINT AD$, SOY$
210 PRINT "============================="
220 PRINT "TOPLAM ÜCRETİNİZ = ";UCRET;" TL .. "
999 END

RUN
ADINIZI GİRİNİZ : Ahmet
SOYADINIZI GİRİNİZ : Can
ÇALIŞMA SAATİNİZİ GİRİNİZ : 20
SAAT ÜCRETİNİZİ GİRİNİZ : 40000

Ahmet Can

TOPLAM ÜCRETİNİZ : 800000 TL.

Bu programda kullanılan değişkenler ve tuttukları değerler aşağıda listelenmiş­


tir.

AD$ İşçinin adı


SOY$ İşçinin Soyadı
es Çalışma saati
SJ Saat ücreti
ÜCRET Toplam ücret

28
BASIC PROGRAMIAMAYA GİRİŞ

DELETE
Bellekte yüklü bulunan programın belli satırlarını silmek amacıyla kullanılır.

DELETE 50 <ENTER> Programın 50. satırı silinir.

DELETE -50 <ENTER> Programın ilk satırından 50. satıra kadar olan bö-
lümü (50. satır dahil) silinir.

DELETE 50- <ENTER> Programın 50. satırından, sonuna kadar olan bölü-
mü (50. satır dahil) silinir.

DELETE 120-160 <ENTER> Programın 120. satırı ile 160. satırı arasındaki
bölümü ( 120. ve 160. satırlar dahil) silinir.

MKDIR

Yeni bir dizin oluşturmak için kullanılır. Dizine geçerli bir isim verilmesi gere-
kir. Sürücü tanımlaması yapılmazsa yeni dizin aktif sürücüde oluşur. Şimdi incele-
yeceğimiz program aktif sürücüde "ABC" adlı bir dizin oluşturur.

100 CLS
110 MKDIR "ABC"
999 END

Bu program çalıştırıldığında aktif sürücüde ABC adlı bir dizin oluşur. Daha
sonra FILES komutuyla (ya da DOS ortamındayken DIR komutuyla) ABC adlı dizi-
nin oluşturulduğunu görebilirsiniz.
MKDIR "A:ABC"
Komutu bu şekilde yazarsak hangi sürücüde olursak olalım ABC dizini A sürü-
cüsünde oluşur.
MKDIR "C:ABC"
Komut bu şekilde yazıldığı taktirde ise ABC dizini C sürücüsünde (yani hard-
diskte) oluşur.

CHDIR

Mevcut bir dizine girmekte kullanılır. Şimdi inceleyeceğimiz program çalıştırıl­


dığında, daha önce oluşturduğumuz ABC dizininin içine girilir.

29
BASIC PROGRAMLAMAYA GİRİŞ

100 CLS
11 O CHDIR "ABC 11
120 END

Komut bu şekliyle kullanıldığında aktif sürücüdeki ABC dizinine girilmiş olur.


Aktif sürücü dışında bir sürücüdeki dizine girmek için sürücü tanımı da gereklidir.
CHDIR 11 C:ABC 11

Komut bu şekilde kullanılırsa, aktif sürücü ne olursa olsun C sürücüsündeki (ya-


ni harddiskteki) ABC adlı dizine girilir.
CHDIR 11 A:ABC 11

Bu kullanımda ise aktif sürücü ne olursa olsun A sürücüsüne takılı olan disket-
teki ABC dizinine girilir.
CHDIR komutu bir dizinden çıkmak amacıyla da kullanılır.
CHDIR " .. 11

Bu durumda daha önce girilmiş olan alt dizinden çıkılır.

RMDIR

RMDIR komutu mevcut bir dizini yok etmek amacıyla kullanılır. Yok edilecek
dizinin içinde herhangi bir program ya da başka altdizin olmamalıdır. Aksi taktir-
de program hata mesajı verir. Şimdi inceleyeceğimiz program daha önce oluşturul­
muş olan ABC dizinini yok eder.

100 CLS
110 RMDIR 11 ABC 11
999 END

MKDIR ve CHDIR komutlarının anlatılması sırasında sürücü tanımlanmasıyla il-


gili olarak yapılan açıklamalar RMDIR komutunda da geçerlidir.

LINE INPUT

INPUT komutuyla yapılan girişlerde virgül ( , ) kullanıldığında Redo From Start


(yeniden giriş yapınız) hata mesajı görüntülenir. Buna göre INPUT kor:rıutu virgüllü
girişleri kabul etmemektedir. Oysa bazı bilgilerde virgül bulunabilir. Orneğin ad-
resimizin aşağıdaki gibi olduğunu varsayalım :
Bahar sokak, No 22
Görüldüğü gibi bu adreste virgül bulunmaktadır. Bu durumda LINE INPUT komu-
tu kullanılmalıdır. LINE INPUT komutu ENTER tuşuna basılana kadar girilen ve en
fazla 255 karaktere kadar bilgileri bir değişkene aktarır. Girilen karakterler ara-
sında virgüller de bulunabilir. Şimdi inceleyeceğimiz programda LINE INPUT ko-

30
BASIC PROGRAMLAMAYA GİRİŞ

mutu kullanılmıştır.

100 CLS
110 LINE INPUT "Adresinizi giriniz : ",A$
120 PRINT A$
999 END
Run
Adresinizi gırınız Bahar sokak, No 22 <ENTER>
Bahar sokak, No 22

Görüldüğü gibi adresteki virgül ayracı da bilgisayar tarafından kabul edilmek-


tedir. Eğer bu programda LINE INPUT yerine INPUT komutu kullanılsaydı program
hata mesajı verirdi.

LOAD
Disket veya harddiskte bulunan bir programın belleğe yüklenmesi amacıyla kul-
lanılır.

LOAD "TOPLAM" <ENTER>


Yukarıdaki komut çalıştırıldığında TOPLAM.BAS adlı BASIC programı belleğe
yüklenmiş olur. LOAD komutu kullanılarak belleğe yeni bir program yüklendiğin­
de, bellekte daha önceden mevcut olan program ve değişkenler silinir.
Aktif sürücü dışındaki bir sürücüde bulunan bir programı belleğe yükJemek iste-
diğimizde, programın bulunduğu sürücü adının da tanımlanması gerekir. Orneğin:

LOAD "C:PROGl" <ENTER>


komutu, C sürücüsündeki PROG l .BAS adlı programı belleğe yükleyecektir.
LOAD komutu kullanılarak belleğe yüklenmek istenen program disket veya
harddiskte mevcut değilse file not found mesajı görüntülenir.
LOAD komutu, R parametresiyle birlikte kullanıldığında, belleğe yüklenen
program hemen çalışır. Bu durumda RUN komutunu kullanmaya gerek yoktur.
LOAD "TOPLAM", R <ENTER>
Yukarıdaki komut çalıştırıldığında, TOPLAM.BAS adlı program, belleğe yükle-
necek ve hemen çalışacaktır.

READ - DATA KOMUTU

Program içersinde, değişkenlere sabit bilgiler atayan komuttur. DATA satırında


yer alan sabit bilgiler, READ satırında yer alan değişkenlere atanır. Değer atama

31
BASIC PROGRAMLAMAYA GİRİŞ

işlemi programın çalıştırılması sonucunda kendiliğinden olur.

READ Değişken 1, Değişken 2, Değişken 3

DATA Bilgil, Bilgi2, Bilgi3

READ komutu, mutlaka DATA Komutuyla birlikte kullanılmalıdır. DATA satırı,


programın herhangi bir yerinde bulunabilir. Yani READ satırıyla DATA satırının
alt alta bulunma zorunluluğu yoktur.
READ satırında en az bir değişken, DATA satırında da en az bir bilgi yer alma-
lıdır. READ ve DATA satırlarında birden fazla değişken ve bilgi varsa, bunlar bir-
birlerinden virgül ( , ) karakteriyle ayrılırlar. READ satırındaki değişkenlerin sayı­
sı, DATA satırındaki bilgilerin sayısına eşit olmalıdır.
Aşağıdaki programda READ-DATA komutu kullanılmıştır.

100 READ A,B,C


110 PRINT A,B,C
120 DATA 5, 3, 6
999 END

RUN
5 3 6

Bu program çalıştırıldığında DATA satırındaki l. bilgi olan 5 sayısı, READ sa-


tırındaki l. değişken olan A değişkenine aktarılmıştır. Aynı şekilde 2. sıradaki
bilgi 2. sıradaki değişkene, 3. sıradaki bilgi de 3. sıradaki değişkene aktarılmış­
tır.

READ A, B, C

DATA 5, 3, 6

READ ve DATA deyimleri birden fazla satırda da yer alabilir. Ancak bu durum-
da da değişkenlerin sayısıyla bilgilerin sayısı birbirine eşit olmalıdır.
Şimdi inceleyeceğimiz programda bir READ satırına karşılık, bilgiler birden
fazla DATA satırında yer almıştır.

100 READ A,B,C,D


110 PRINT A,B,C,D
120 DATA 7,3,5
130 DATA 8

32
BASIC PROGRAMLAMAYA GİRİŞ

999 END

RUN
7 3 5 8

Bu programda READ satırındaki 4 değişkene karşılık, 120 numaralı DATA satı­


rında 3 bilgi, 130 numaralı DATA satırında ise l bilgi yer almıştır, değişkenler­
le bilgiler aşağıdaki gibi eşleşir.

READ A, B, C, D

DATA 7, 3, 5

DATA 8

Alfasayısal (string) tipi bilgilerin READ-DATA komutuyla değişkenlere aktarıl­


masında ise, string tipi bilgi 11 11 (çift tırnak) içinde yazılmalı, bu bilginin aktarıla­
cağı değişken ise alfasayısal (string) tipi değişken olmalıdır.
Şimdi inceleyeceğimiz programda string tipi bilgilerin değişkenlere aktarılması
görülmektedir.

100 READ A$,B$,C


110 PRINT A$,B$,C
120 DATA "BİLGİSAYAR 11 1 "EKRAN 11 1 486
999 END

RUN
BİLGİSAYAR EKRAN 486

Bu programda, BİLGİSAYAR stringi A$ değişkenine, EKRAN stringi B$ değiş­


kenine, 486 sayısı da C değişkenine aktarılmaktadır.
READ satırındaki değişkenlerin sayısının DATA satırındaki bilgilerin sayısına
eşit olması gerektiğini belirtmiştik. Değişkenlerin sayısının bilgilerin sayısına eşit
olmaması durumu iki şekilde ortaya çıkar:

1- Bilgilerin sayısı değişkenlerin sayısından fazla ise:


READ A, B, C
DATA 15, 20, 25, 30

Bu durumda 15 sayısı A değişkenine, 20 sayısı B değişkenine, 25 sayısı ise


C değişkenine aktarılır. 30 sayısı ise hiçbir değişkene aktarılmaz. Bu durumda
herhangi bir hata meydana gelmez, program çalışır.

33
BASIC PROGRAMLAMAYA GİRİŞ

2- Değişkenlerin sayısı, bilgilerin sayısından fazla ise:

READ A, B, C
DATA 5, 3
Bu durumda 5 sayısı A değişkenine , 3 sayısı da B değişkenine aktarıl ır. C de-
ğişkeninin okuyacağı bilgi bulunmadığı için ekrana OUT OF DATA hata mesajı gö-
rüntülenir ve programın ça lı şması durur.
Aşağıdaki programda, bir değişkenler bir READ satırında, bilgiler ise üç DATA
satırınd a verilmektedir.

100 READ A,B,C,D


110 PRINT A,B,C,D
120 DATA 34
130 DATA 55,27
140 DATA 70 ;.

999 END

RUN
34 55 27 70

Bu programda READ satırındaki A değişkeni ilk DATA satırındaki 34 sayısını,


B değişkeni ikinci DATA satırındaki 55 sayısını, C değişkeni yine ikinci DATA
satır ındaki 27 sayısını, D değişkeni ise üçüncü DATA satırındaki 70 sayısını
okur.
READ satırlarının da birden fazla olması mümkündür. Aşağıdaki programda üç
READ satırındaki değişkenler bir DATA satırında ver ilmiş olan bilgileri okumakta-
dırlar .

100 READ A,B


110 READ C
120 READ D
130 PRINT A,B,C,D
140 DATA 25,15,55,45
999 END

RUN
25 15 55 45

Birinci READ satı rındaki A değişkeni DATA satırındaki 25 sayısını, B değişke­


ni 15 sayısını, ikinci READ satırındaki C değişkeni 55 sayısını, üçüncü READ sa-
tırı ndaki D değişkeni ise 45 sayıs ı nı okur.
DATA satırındaki bilgilerin tekrar okutulabilmesi için RESTORE komutu kullanı­
lır .

34
BASIC PROGRAMLAMAYA GİRİŞ

RESTORE KOMUTU

Daha önce, READ-DATA komutlarını incelerken, RESTORE komutu kullanılarak,


DATA satırındaki bilgilerin tekrar okunabileceğinden söz edilmişti. Aşağıdaki ör-
nekte, RESTORE komutunun kullanışı görülüyor.

100 READ A,B,C


110 DATA 10,20,30
120 DATA 40,50
130 READ D,E
140 PRINT "ÖNCE"
150 PRINT "A= n ;A
160 PRINT ııB= .. ;B
170 PRINT "C= ıı ;C
180 PRINT "D= ıı ;D
190 PRINT .. E= ";E
200 PRINT
210 RESTORE
220 READ D,E
230 PRINT "SONRA"
240 PRINT ııA= u;A
250 PRINT ı•B= .. ;B
260 PRINT "C= ";C
270 PRINT "D= ";D
280 PRINT "E= ";E
999 END

RUN

ÖNCE

A=lO
B=20
C=30
D=40
E=50

SONRA

A=lO
B=20
C=30
D=lO
E=20

35
BASIC PROGRAMLAMAYA GİRİŞ

Bu programda önce, 100 nolu satırdaki READ komutuyla, 11 O nolu DATA satı­
rındaki bilgiler A, B, C değişkenleri ne aktarılır. 130 nolu READ komutuyla da
120 nolu DATA satırındaki bilgiler D ve E değişkenlerine aktarılır. 21 O nolu sa-
tırdaki RESTORE komutu, 220 nolu satırdaki READ komutunun, 11 O nolu DATA sa-
tırındaki ilk iki bilgiyi okumasını sağlar.
RESTORE komutu, satır numarası belirtilmeden kullanılırsa, en küçük numaralı
DATA satırındaki bilgiler aktif hale gelir. (Yani, RESTORE komutundan sonra çalı­
şan READ komutu, en küçük numaralı DATA satırındaki bilgileri okur). Yu karı da in-
celediğimiz programda, RESTORE komutu, satır numarası belirtilmeden kulla nılmış­
tır .

RESTORE komutu, satır numarası belirtilerek kullan ıldığında ise (bu satır numa-
rası bir DATA satırına ait olmalıdır) o satırdaki bilgiler aktif hale gelir, yan i RES-
TORE komutundan sonra çalışan READ komutu, satır numarası bildirilen DATA satı­
rındaki bilgileri okur.
Aşağıdaki programda RESTORE komutu, satır numarası belirtilerek kullanılmı ş­
tır .

100 READ A,B,C


110 DATA 100 ,200
120 DATA 300,400,500
130 PRINT "ÖNCE"
140 PRINT "A= u;A
150 PRINT "B= " ;B
160 PRINT "C= ıı ;C
170 RESTORE 120
180 READ A,B,C
190 PRINT
200 PRINT "SONRA"
210 PRINT "A= ıı ;A
220 PRINT "B= " ; B
230 PRINT .. c= ";C
999 END

RUN

ÖNCE

A=lOO
B=200
C=300

SONRA
A=3 00

36
BASIC PROGRAMLAMAYA GİRİŞ

B=400
C=SOO

NAME
Bu komut, disket veya harddiskte bulunan bir programın adını değiştırmek ama-
cıyla kullanılır.

NAME "PRl .BAS" AS "PR2 .BAS"

Eski isim Yeni isim


Yukarıdaki komut çalıştırıldığında diskette veya harddiskte bulunan PR 1. BAS
adlı programın adı PR2.BAS olarak değişir.

AUTO
Satır numaralarını otomatik olarak yazdırmak için AUTO komutu kullanılır. Baş­
langıç satır numarası ve artış miktarı belirtilmeksizin sadece AUTO yazılıp ENTER
tuşuna basılırsa, ilk satır numarası 1O olacak bundan sonraki satır numaraları da
1O'ar artarak devam edecektir. CTRL-BREAK tuşlarına basılarak AUTC komutunun
etkisi sona erdirilir.
AUTO komutu, ilk satır numarası ve artış miktarı belirtilerek de kullanılabilir.
Bu durumda AUTO komutu:

AUTO başlangıç, artış

biçiminde yazılır. Örneğin:

AUTO 100, 1O şeklindeki bir yazımdan sonra ilk satır numarası 100, artış
miktarı ise 1O olur.

KEY
BASIC editörünün en alt satırında çeşitli komutlar ve bu komutların hangi fonk-
siyon tuşlarıyla (HOT KEYS) çalıştırılacakları yazılıdır. Örneğin en alt satırda en
solda 1 LIST ifadesi yer alıyor. Bu demektir ki klavyedeki F1 tuşuna basılırsa
LIST komutu ekrana yazılacaktır. Soldan ikinci sırada ise 2 RUN" yazısı vardır.
Buna göre F2 tuşuna basıldığında editördeki program çalışır. RUN yazısının sağın­
daki ·· işareti ENTER tuşunu temsil eder yani bu durumda F2 tuşuna basıldıktan
sonra ENTER tuşuna da basılmasına gerek yoktur. KEY komutu BASIC editörün en
alt satırındaki fonksiyon tuşlarına yeni tanımlamalar yapılmasını sağlar. KEY ko-
mutu aşağıdaki gibi kullanılır.

KEY n, "ifade"

37
BASIC PROGRAMLAMAYA GİRİŞ

Örneğin , F 1 fonksiyon tuşuna basıldığında ekrana FILES yazılması için :

KEY 1, "FILES" yazılıp ENTER tuşuna basılması gerekir. Bu durumda Fl tuşu­


na basıldığında Editörde FILES yazılacaktır. Bundan sonra ENTER tuşuna basılırsa
da disketteki dosyaların adları görüntülenir.
Eğer F1 tuşuna basıldığında bir daha ENTER tuşuna basılmasına gerek olmaksı­
zın disketteki program isimlerinin listelenmesini istiyorsak:
KEY 1, "FILES+CHR$ ( 13) yazıp ENTER tuşuna basmalıyız. Bu durumda ise Fl-
LES komutu ENTER ilaveli olarak F1 fonksiyon tuşuna bağlanmış olur. CHR$( 13),
ENTER tuşunu temsil eder. ·
Yukarıdaki örnekten hareket edilerek bütün fonksiyon tuşlarına yeni görevler
bağlanabilir .

38
ÜNİTE

AL60HiTMA ve
AHIŞ DiYA6HAMLAHI

A- ALGORİTMA HAZIRLAMA

Bir bilgisayar programının yazılması üç aşamalı bir işlemdir. Bunlar:


1- Girişe uygulanacak ve çıkıştan alınmak istenen bilgilerin tanımlanması.
2- Yapılacak işin işlem basamaklarının (ALGORITHM) ve/veya akış diyagra-
mının (FLOW CHART) çıkarılması.
3- Bu işlem .~asamaklarının veya akış diyagramının, herhangi bir programlama
dilinde (Orneğin BASIC, PASCAL veya C) ifade edilmesi. Bu işleme, prog-
ramın kodlanması da denir.
Herhangi bir işi yapacak olan programın yazılmasından önce, bu programın iş­
leyeceği verilerin ve elde edilmek istenen sonucun tanımlanması gerekir.
Örnek olanak, bir işçinin aylık ücretinin hesaplanmasında, işçinin o ay kaç
saat çalıştığı ve net. saat ücreti, bilgisayara girilmesi gereken bilgilerdir. Bilgisa-
yar bu bilgileri (VERi) kullanarak işçinin o ay alacağı ücreti hesaplayacaktır. He-
saplama işleminde kullanılması gereken formül de programda yer alacaktır.
Yapılacak olan işin algoritmasının çıkarılması ve akış diyagramının çizilmesi,
özellikle uzun programlarda, programcıya büyük kolaylıklar sağlar. Aşağıda, bir
işçinin aylık ücretini hesaplama işleminin algoritması sıralanmıştır.
1- İşçinin kaç saat çalıştığını giriniz.
2- Net saat ücretini giriniz.
3- Çalışılan saat ile net saat ücretini çarpınız.

Programcının, yazdığı programın yapacağı işlem hakkında bilgi sahibi olması


gerekmektedir. Elbette, bilgi sahibi olması gerekir derken, derinlemesine bilgiden
bahsetmiyoruz. Ancak, örneğin bir muhasebe programı yazacak olan bir programcı­
nın, muhasebecilik konusunda temel bir fikir sahibi olması şarttır.
Akış diyagramları da, özellikle programlama dillerindeki bazı temel yapıların
(örneğin döngüler, dallanmalar) öğrenilmesini kolaylaştırdıkları gibi, uzun ve karı-

39
ALGORİTMA ve AKIŞ DİYAGRAMLAR!

şık programların yazılmasını ve analizini de kolaylaştırırlar.

B- AKIŞ DİYAGRAMLAR! SEMBOLLERİ

Aşağıda, bazı temel akış diyagramı sembolleri verilmiştir.

( BAŞLA ) Programın başlangıcı

/ 7 Giriş - Çıkış işlemi

Hesaplama veya değişkenlere değer


aktarma işlemi
1 1

- Şartlı dallanma işlemi

Döngü (loop)
1 1 1 1

o Bağlantı noktası

Yazıcıya (printer'e) çıkış

( DUR ) Programın sonu

40
ALGORİTMA ve AKIŞ DİYAGRAMLARI

Aşağıda, çeşitli programlara ait akış diyagramları çizilmiştir.

1- Klavyeden girilen iki sayıyı toplayıp sonucu ekranda görüntüleyen progra-


mın akış diyagramı

Programın başlangıcı

Klavyeden iki sayı gir ve bu sayıları a


ve b değişkenlerine aktar.

Bu iki sayıyı topla, sonucu C


değişkenine aktar.

c c değişkenindeki sayıyı ekrana yaz.

Programın sonu.

2- Klavyeden girilen sayının negatif ya da pozitif olduğunu bulan programın


akış diyagramı

Programın başlangıcı

Klavyeden bir sayı gir ve bu


sayıyı x değişkenine aktar.

evet x sayısının sıfırdan küçük olup


olmadığına bak.

x sayısını sıfırdarı küçükse


ekrana "NEGATiF",• sıfıra eşit
"NEGATİF"
ya dqsı.fırdan büyükse de ekrana
"POZiTiF" yaz.

DUR Programın sonu.

41
ALGORİTMA ve AKIŞ DİYAGRAMLAR!

3- l 'den l O'a kadar olan sayıları ekrana yazan programın akış diyagram ı

Programın başl angıcı

i =o i değişkenine O sayısını aktar.

i = i + 1 i değişkenin içindeki sayıyı l


arttır.

~/7 i değişkeninin içindeki sayıyı ekrana


yaz .

evet i değişkeninin içindeki sayı l O'dan


küçükse, bu sayıyı l arttırarak
işlemlere devam et. Sayı, l O'a
eşitse progra mı bitir.

DUR Programın sonu.

Programın akış diyagramı, herhangi bir programlama dilinde (Örneği n BASIC,


PASCAL veya C) kodlanır .

42
ÜNİTE 5
DALLANMA ve . .
KAHŞILAŞTIHMA DEYIMLEHI

. .
A- GOTO DEYiMi
GOTO komutu, BASIC dilinde en çok kullanılan komutlardan birisi olup, prog-
ram kontrolunun bulunduğu noktadan, numarasıyla tanımlanan bir satıra dallanma-
sını sağlar.

GOTO Satır numarası

Bu örnekte program kontrolu, satır numarası ile tanımlanan satıra gider. Satır
numarası, GOTO komutunun bulunduğu satırdan daha önce gelen satırlardan biri-
ne ait olabileceği gibi, sonra gelen satırlardan birine de ait olabilir.

10
20
30 GOTO 10
40
50
Bu örnekte, program kontrolu 30 nolu satırdan 1O nolu satıra gitmektedir.
10
20
30 GOTO 60
40
50
60
70
Bu örnekte ise, program kontrolu 30 nolu satırdan 60 nolu satıra geçmektedir.

GOTO komutu, şartsız olarak kullanılabilece8i gibi, IF komutundan sonra veri-


len bir şarta bağlı olarak da kullanılabilir.

43
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

10
20
30 IF A=5 THEN GOTO 60
40
50
60
70

Yukarıdaki örnekte, GOTO komutu A=5 olması şartına bağlanmıştır. Buna göre
A=5 ise program kontrolu 60 nolu satıra geçecek, aksi halde 40 no'lu satırdan
itibaren normal akışına devam edecektir. .
Aşağıdaki programda, vergi iadesi hesaplanmaktadır. Bir önceki programdan
farklı olarak, burada, bir kişiye ait vergi iadesi hesaplandıktan sonra, kullanıcıya
devam etmek isteyip istemediği sorulmakta, kullanıcı devam etmek istediğinde (
"E" veya "e" harfine bastığında) program yeniden başa dönerek diğer bir kişiye ait ·
vergi iadesini hesaplamaktadır. Kullanıcı, devam etmek istediği sürece program
çalışır .

100 'BU PROGRAM ÇALIŞANLARIN VERGİ


110 'İADELERİNİ HESAPLAR
120 1

13 O CLS : KEY OFF


140 PRINT
150 INPUT "ADINIZI GİRİNİZ .. . .. . . . .... >" ,AD$
160 INPUT "SOYADINIZI GİRİNİZ ......... >",SOY$
170 INPUT "NET MAAŞINIZI GİRİNİZ .. ... . >", NM
180 INPUT "FATURA TOPLAMINI GİRİNİZ .. . >", FT
190 1

200 IF FT>NM THEN NM=FT


210 IF FT<=60000! THEN VI=FT* . l
220 IF FT>60000! AND FT<=l20000! THEN VI=6000+(FT-60000!) * .2
230 IF FT>l20000! AND FT<=200000! THEN VI=l8000+(FT- 120000!) *. 12
240 IF FT>200000! THEN VI=27600+(FT-200000!)* . 05
250 1

260 PRINT
270 PRINT "ADI : ";AD$
280 PRINT "SOYADI :";SOY$
290 PRINT "MAAŞI :";NM;ıı TL.
il

300 PRINT "FATURA : ıı ;FT; u TL.


il

310 PRINT "VERGİ İADESİ ;VI;" TL.


: 11
il

320 PRINT
330 PRINT "DEVAM ETMEK İSTİYOR MUSUNUZ (E/H) >";
340 C$=INPUT$(1)
350 PRINT
360 IF C$="E " OR C$="e" THEN GOTO 140
999 END

44
DAllANMA ve KARŞllAŞTIRMA DEYİMLERİ

Bu programda 360 nolu satırda, GOTO komutu kullanılarak, kontrolun tekrar


140 nolu satıra geçmesi sağlanmaktadır.

İKİNci DERECEDEN DENKLEM ÇÖZÜMÜ

İkinci dereceden bir bilinmeyenli denklemler ax2 + bx+c = O şeklinde genel-


leştirilebilir. x bilinmeyeninin iki kökü bulunur ve bunlar xı ve x2 olarak adlandı­
rılır. Bu kökler:

-b~
xı=------
2a

-b--Jb 2 -4ac
X2 = 2a

Formülleriyle hesaplanır.

b2 - 4ac değeri O'dan küçükse X'in gerçek kökleri yoktur.

b2 - 4ac değeri O'a eşitse xı ve x2 kökleri birbirine eşittir.

Aşağıdaki programda, klavyeden a,b ve c değerleri girildiğinde xı ve x2 kökleri


hesaplanmaktadır.

100 'BU PROGRAM İKİNCİ DERECEDEN


110 'BİR BİLİNMEYENLİ DENKLEMLERİN
120 'KÖKLERİNİ HESAPLAR
130 '
140 CLS:KEY OFF
150 INPUT "A DEGERİNİ GİRİNİZ =" ,A
160 INPUT "B DEGERİNİ GİRİNİZ =il,B
170 INPUT "C DEGERİNİ GİRİNİZ =. ,c
180 '
190 PRINT
200 IF B"2-4*A*C<O THEN PRINT "GERÇEK KÖKLER YOK":GOTO 999
210 IF B"2-4*A*C=0 THEN PRINT "KÖKLER BİRBİRİNE EŞİT .. "
220 Xl=(-B+SQR(B"2-4*A*C))/2*A
230 X2=(-B-SQR(B"2-4*A*C))/2*A
240 PRINT "Xl=" ;Xl
250 PRINT "X2=" ;X2
999 END

45
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

RUN

A DEGERİNİ GİRİNİZ =1
B DEGERİNİ GİRİNİZ = -5
C DEGERİNİ GİRİNİZ =3

x1 4.302776
X2 O. 6972224

8- IF..THEN ..GOTO

IF .. THEN .. GOTO yapısında IF ile THEN kelimeleri arasında verilmiş olan şart
gerçekleşirse program akışı GOTO kelimesinden sonra yazılan satır numarasına
gider.

100
110
120
130 IF A=2 THEN GOTO 110
140
150

Bu programda 130 numaralı satırda A değişkeninin içindeki sayı 2 ise kontrol


tekrar l l O nolu satıra dönecektir. A değişken indeki sayı 2 değilse program kont-
rolu 140 numaralı satıra geçer ve böylece devam eder.

Kontrol, IF ..THEN ..GOTO yapısıyla daha sonraki bir noktaya da gönderilebi-


lir.

100
110
120
130 IF A=2 THEN GOTO 160
140
150
160
170

Bu durumda A değişkenindeki sayı 2 ise 140 ve 150 numaralı satırlar hiç ça-
lı şmadan kontrol 160 numaralı satıra geçecektir. A değişkenindeki sayı 2 'den
farklı ise l 30 numaralı satırdan sonra program normal yoluna devam eder.

46
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

A=2 ise satırların çalışma sırası A<>2 ise satırların çalışma sırası

100 100
110 110
120 120
130 130
160 140
170 i 50
160
170

IF •.THEN •• ElSE YAPISI

IF şart önermesi THEN komutl ELSE Komut2

Bu yapıda, IF kelimesinden sonra gelen şart önermesi DOGRU (TRUE) ise Ko-
mut l, YANLIŞ ise de Komut2 çalışacaktır. Yani önerme DOGRU ise THEN keli-
mesi ile ELSE kelimesi arasındaki komut, YANLIŞ ise de ELSE kelimesinden sonra
gelen komut çalışacaktır.

100 INPUT "BİR SAYI GİRİNİZ > ,A 11

110 IF A>=O THEN PRINT POZİTİF SAYI ..


11 11 ELSE PRINT "NEGATİF SAYI .. 11

999 END

RUN

BİR SAYI GİRİNİZ > 4 <ENTER>

POZİTİF SAYI

Program çalıştırıldığında, pozitif bir sayı girildiği taktirde THEN kelimesiyle


ELSE kelimesi arasındaki komut, negatif bir sayı girildiğinde ise ELSE kelimesin-
den sonraki komut çalışır.

IF KOMUTU

IF komutu, bir veya birden fazla şartın gerçekleşmesine bağlı olarak bir veya
birden fazla komutun çalışmasını sağlar.

47
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

Aşağıdaki şekilde IF komutunun akış diyagramı görülmektedir.

j
doğru

yanlış

KOMUT

Aşağıda, IF komutunun sintaksı görülmektedir.

IF Şart THEN komut


Buradaki şart, değişken, sabit veya ifade olabilir. Şart, bir önerme olacak şekil­
de kurulur. Şart önermesi doğru (TRUE) ise THEN kelimesinden sonra gelen komut
çalışır. Şart önermesi yanlış (FALSE) ise THEN kelimesinden sonra gelen komut ça-
lışmaz, program kontrolu bir alttaki satıra geçer.
Program kontrolu, IF komutuyla karş ılaştığında, IF kelimesinden sonra verilen
şart önermesinin doğru olup olmadığını kontrol eder. Şart önermesi DOGRU (TRUE)
ise THEN kel imesinden sonra gelen komut çalışır. Şart önermesi YANLIŞ (FALSE)
ise THEN kelimesinden sonra gelen komut çalışmaz, bir alt satırdaki komut çalışır.
Aşağıdaki programda IF komutu kullanılarak, klavyeden girilen bir sayının ne-
gatif, sıfır ya da pozitif bir sayı olup olmadığı bulunarak sonuç görüntülenmekte-
dir.

100 INPUT "BİR SAYI GİRİNİZ > ",A


110 IF A<O THEN PRINT "NEGATİF BİR SAYI GİRDİNİZ .. "
120 IF A=O THEN PRINT "SIFIR GİRDİNİZ .. "
130 IF A>O THEN PRINT "POZ İTİF BİR SAYI GİRDİNİZ .. "
999 END

RUN
BİR SAYI GİRİNİZ > 8 <ENTER>
POZİTİF BİR SAYI GİRDİNİZ ..

48
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

l 00 nolu satırın çalışmasıyla, klavyeden girilen sayı A değişkenine atanır.


Klavyeden 8 sayısını girdiğimizi kabul edelim. Bu durumda A değişkeninin içinde
8 sayısı vardır. 11 O nolu satırda, IF komutundan sonra A<O önermesi yer almıştır
8<0 önermesi YANLIŞ (FALSE) olacağı için bu satırda bulunan THEN komutundan
sonraki komut çalışmayacak ve program kontrolu 120 nolu satıra geçecektir. 120
nolu satırdaki IF komutundan sonra A=O önermesi yer alıyor. 8=0 önermesi de
YANLIŞ (FALSE) olduğu için bu satırdaki THEN kelimesinden sonra gelen komut
da çalışmayacak ve kontrol 130 nolu satıra geçecektir.
130 nolu satırda, IF kelimesinden sonra A>O önermesi yapılmıştır. 8>0 öner-
mesi DOGRU (TRUE) olduğu için, bu satırdok_i .THE.N kelimes.ind~n. sonra yazılı
olan PRINT komutu çalışacak ve ekrana "POZiTiF BiR SAYI GiRDiNiZ .. " yazdıra­
caktır.
Şart önermeleri sadece sayısal değil, alfasayısal (string) tipi ifadelerle de ku-
rulabilir. Şimdi inceleyeceğimiz programda, klavyeden girilen harfe göre dallanma
işlemi yapılmaktadır.

100 INPUT "BİR HARF GİRİNİZ>" ,A$


110 IF A$="A" THEN PRINT "A HARFİNİ GİRDİNİZ .. "
120 IF A$="B" THEN PRINT "B HARFİNİ GİRDİNİZ .. "
130 IF A$="C" THEN PRINT "C HARFİNİ GİRDİNİZ .. "
999 END
RUN
BİR HARF GİRİNİZ > B
B HARFİNİ GİRDİNİZ ..

Bu program çalıştırıldığında, klavyeden B harfinin girildiğini kabul edelim. Bu


durumda A$ değişkenine B harfi atanacaktır. Böylece, sadece 120 nolu satırdaki
IF kelimesinden sonra gelen A$="B" önermesi DOGRU (TRUE) olacağı için bu satır­
daki THEN kelimesinden sonra yazılı olan PRINT komutu çalışacaktır. l l O ve
130 nolu satırlardaki önermeler YANLIŞ (FALSE) olacakları için bu satırlardaki
PRINT komutları çalışmayacaktır.

BİRDEN FAZLA ŞARTTAN OLUŞAN ÖNERMELER


IF Komutundan sonra gelen önerme birden fazla şarttan oluşuyorsa, bu şartlar
birbirine AND veya OR bağlaçlarıyla bağlanır.

AND BAGl.ACI
Birden fazla şartın aynı anda gerçekleşmesinin arandığı durumlarda, bu şartlar
birbirine AND bağlacıyla bağlanır.

IF A<S AND A>l THEN ...

49
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

Bu örnekte A<5 ve A> 1 önermeleri AND bağlacıyla birbirine bağlanmıştır.


Böylece, THEN kelimesinden sonra gelen komutun çalışabilmesi için. A değişken in-
deki sayının 5'den küçük ve l 'den büyük olması gerekmektedir.

IF A=O AND AD$ = "AHMET" THEN ...

Bu örnekte de, A=O ve AD$="AHMET" şartlarının her ikisi de DOGRU old uğu
taktirde THEN kelimesinden sonra gelen komut çalışacaktı r .
Aşağıdaki programda, Dijital Elektronik devrelerinde kullanılan iki girişl i VE
kapısının girişlerine gelen değerlere göre çıkışında bulunan değer bulunmakta ve
görüntülenmektedir.

100 'VE KAPISININ FONKSİYONLARINI


110 'GÖRÜNTÜLEYEN PROGRAM
120 1

130 CLS :KEY OFF


140 INPUT "X DEGERİNİ GİRİNİZ (1/0) >" ,x
150 INPUT "Y DEGERİNİ GİRİNİZ (1/0) >", y
160 1

170 IF X=O AND Y=O THEN Z=O


180 IF X=O AND Y=l THEN Z=O
190 IF X=l AND Y=O THEN Z=O
200 IF X=l AND Y=l THEN Z=l
210 1

220 PRINT
230 PRINT "X GİRİŞİ u ;X

240 PRINT "Y GİRİŞİ ";Y


250 PRINT
260 PRINT "Z ÇIKIŞI ";Z
999 END

RUN

X DEGERİNİ GİRİNİZ (1/0)>1 <ENTER>


Y DEGERİNİ GİRİNİZ (1/0) > O <ENTER>

X GİRİŞİ 1
Y GİRİŞİ o

Z ÇIKIŞI o

50
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

OR BAGLACI

Birden fazla şartın herhangi biri veya birkaçının gerçekleşmesinin arandığı du-
rumlarda, bu şartlar birbirine OR bağlacıyla bağlanır.

IF A=l OR B=5 THEN ....

Bu örnekte, A= l ve B=5 önermelerinden herhangi birisi (veya her ikisi) DOG-


RU olduğunda THEN kelimesinden sonra gelen komut çalışacaktır. Her iki önerme
de YANLIŞ ise THEN kelimesinden sonra gelen komut çalışmaz.
Aşağıdaki programda da, Dijital Elektronik devrelerinde kullanılan iki girişli
VEYA kapısının girişlerine uygulanan değerlere göre çıkışında bulunan değer bu-
lunmakta ve görüntülenmektedir.

100 'VEYA KAPISININ FONKSİYONLARINI


110 'GÖRÜNTÜLEYEN PROGRAM
120 '
130 CLS:KEY OFF
140 INPUT "X DEGERİNİ GİRİNİZ (1/0) >" ,x
150 INPUT "Y DEGERİNİ GİRİNİZ (1/0) >ıı ,y
160 '
170 IF X=O OR Y=O THEN Z=O
180 IF X=O OR Y=l THEN Z=O
190 IF X=l OR Y=O THEN Z=O
200 IF X=l OR Y=l THEN Z=l
210 '
220 PRINT
230 PRINT "X GİRİŞİ ";X
240 PRINT "Y GİRİŞİ ıı ;Y
250 PRINT
260 PRINT "Z ÇIKIŞI ";Z
999 END

RUN

X DEGERİNİ GİRİNİZ (1/0) >1


Y DEGERİNİ GİRİNİZ (1/0) > o

x GİRİŞİ 1
Y GİRİŞİ o
Z ÇIKIŞI 1

51
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

BİR SATIRDA BİRDEN FAZLA KOMUTUN YER ALMASI

BASIC programlama dilinde, bir satırda birden fazla komut yer alabilir. Bu du-
rumda, komutlar birbirinden ":" (iki nokta üstüste) karakteriyle ayrılırlar.

Örnek l :

100 PRINT "TUZLA" : PRINT "TEKNİK" PRINT "Lİ S ESİ"

RUN
TUZLA
TEKNİK
LİSESİ

Burada l 00 nolu satırda üç adet PRINT komutu yer almıştır. Bu komutlar peş­
peşe çalış ır. Komutların arasında : karakteri bulunduğuna dikkat ediniz .

Örnek 2:

10 A=5 B=3 PRINT A, B

RUN
5 3

Bu programda da l O nolu satırda A=5, B=3 ve PRINT A, B komutları yer al-


maktadır.
BASIC programlama dilinde, bir satırda en fazla 255 karakter bulunabilir. Sa-
tırların yazımında bu özelliğe dikkat edilmelidir.
Aşağıd aki program, doğum tarihi girilen kişinin kaç yıl, kaç ay ve kaç gün ya-
şadığını hesaplamaktadır.

100 'BU PROGRAM KAÇ YIL, KAÇ AY VE KAÇ GÜN


110 'YAŞAMIŞ OLDUGUNUZU HESAPLAR
120 1

130 INPUT "BUGÜNKÜ GÜNÜ GİRİNİZ >" , BG


140 INPUT "BUGÜNKÜ AYI GİRİNİZ >" , BA
150 INPUT "BUGÜNKÜ YILI GİRİNİZ >",BY
160 PRINT
170 INPUT "DOGDUGUNUZ GÜNÜ GİRİNİZ >",DG
180 INPUT "DOGDUGUNUZ AYI GİRİNİZ >",DA
190 INPUT "DOGDUGUNUZ YILI GİRİNİZ >", DY
200 1

210 E1 BG<DG TREN GBG=BG BG=BG+30 BA=BA-1 ELSE GBG=BG


220 IF BA<DA TREN GBA=BA BA=BA+12 GBY=BY : BY=BY-1 ELSE GBA=BA
23 0 YG=BG- DG

52
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

240 YA=BA-DA
250 YY=BY-DY
260 PRINT
270 PRINT "DOGUM GÜNÜNÜZ ";DG; "-";DA;"-" ;DY
280 PRINT "BUGÜNÜN TARİHİ ";GBG; "-" ;GBA; "-" ;GBY
290 PRINT
300 PRINT "BUGÜNE KADAR" ;YY;" YIL," ;YA;" AY," ;YG;" GÜN YAŞA:JINIZ .. "
999 END

RUN

BUGÜNKÜ GÜNÜ GİRİNİZ > 30


BUGÜNKÜ AYI GİRİNİZ > 7
BUGÜNKÜ YILI GİRİNİZ > 1993

DOGDUGUNUZ GÜNÜ GİRİNİZ > 9


DOGDUGUNUZ AYI GİRİNİZ >11
DOGDUGUNUZ YILI GİRİNİZ > 1956

DOGUM GÜNÜNÜZ : 9-11-1956


BUGÜNÜN TARİHİ: 30-7-1993

BUGÜNE KADAR 36 YIL, 8 AY, 21 GÜN YAŞADINIZ ..

İDEAL KİLOYU HESAPLAYAN PROGRAM

Sağlıklı .bir kişinin kilosu, boy uzunluğu ve cinsiyeti göz önüne alınarak hesap-
lanabilmektedir. Şimdi inceleyeceğimiz programda, kişinin boyu (cm olarak) ve
cinsiyeti klavyeden girilmekte ve ideal kilosu belirlenmektedir.

100 'İDEAL KİLOYU HESAPLAYAN PROGRAM


110 1

120 INPUT "BOYUNUZU CM. OLARAK GİRİNİZ >",B


130 INPUT "YAŞINIZI GİRİNİZ >", Y
140 INPUT "CİNSİYETİNİZİ GİRİNİZ (E/K) >",C$
150 IF C$="E" OR C$="e" THEN IK=(B-lOO+Y/10)*.9
160 IF C$="K" OR C$="k" THEN IK= (B-lOO+Y/10) *. 8
170 PRINT
180 PRINT "İDEAL KİLONUZ >";IK
999 END

RUN

BOYUNUZU CM. OLARAK GİRİNİZ > 180 <ENTER>


YAŞINIZI GİRİNİZ > 37 <ENTER>

53
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

CİNSİYETİNİZİ GİRİNİZ (E/K} > E <ENTER>

İDEAL KOLUNUZ > 75.33

VERGİ İADESİNİ HESAPLAYAN PROGRAM

Devlet, çalışanların yaptıkları alışverişlerde ödedikleri vergilerin bir kısmını


iade etmektedir. Çalışanlar, her ay sonunda, topladıkları faturalarla devlete baş­
vurarak belli bir oranda vergi iadesi almaktadırlar. Toplanan fatura m iktar ı, m aaşı
geçtiği taktirde, en fazla, maaş kadar fatura toplandığı kabul edilmektedir. Başka
deyişle fatura toplamının , maaşı geçen kısmı geçersizdir.

Vergi iadesinde aşağıdaki oranlar uygulanır.

FATURA TOPLAM! İADE ORANI


0 - 60000 TL. %10
60001-120000 TL. %20
120001-200000 Ti. %12
200000 TL.den fazlası %5

Buna göre, örneğin 50000 TL. fatura toplayan bir k işi bu miktarın % 1O'u ka-
dar, yani 5000 TL. vergi iadesi alacaktır.
70.000 TL. lık fatura toplayan bir kişi ise, bu m i ktarın 60000 l i ra l ı k kısmı
için %1O' dan 6000 TL, 10000 liralık kısmı için ise %20 den 2000 TL. olmak
üzere toplam 8000 TL. vergi iadesi alacaktır.
Aşağıdaki program, çalışanların maaş miktarını ve fatura toplamını gözönüne
alarak, hak ettikleri vergi iadesi miktarını hesaplamaktad ır .

100 'BU PROGRAM ÇALIŞANLARIN VERGİ


110 'İADELERİNİ HESAPLAR
120 '
130 CLS :KEY OFF
140 INPUT "ADINIZI GİRİNİZ .... .. . ... . . >" ,AD$
150 INPUT "SOYADINIZI GİRİNİ Z .. . . . . ... >",SOY$
160 INPUT "NET MAAŞINI Z I GİRİNİZ .. . . .. >", NM
1 7o INPUT "FATURA TOPLAMINI GİRİNİZ . .. >" FT
I

180 '
190 IF FT>NM THEN NM=FT
200 IF FT<=60000! THEN VI=FT* . l
210 IF FT>60000! AND FT<=l20000! THEN VI=6000+(FT-60000!} *.2
220 IF FT>l20000! AND FT<=2000 00 ! THEN VI=lSO OO+ (FT-120000!} *.12
230 I F FT>200000! THEN VI =27600 +(FT- 200000!) * . 05
240 '
250 PRINT

54
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

260 PRINT "ADI : ";AD$


270 PRINT "SOYADI :";SOY$
280 PRINT "MAAŞI :";NM; 11 TL."
290 PRINT "FATURA : 11 ;FT; 11 TL."
300 PRINT "VERGİ İADESİ : 11 ;VI;" TL. 11
999 END

RUN
ADINIZI GİRİNİZ > ORHAN <ENTER>
SOYADINIZI GİRİNİZ > ÖZTÜRK <ENTER>
NET MAAŞINIZI GİRİNİZ > 5000000 <ENTER>
FATURA TOPLAMINIZI GİRİNİZ > 4000000 <ENTER>

ADI : ORHAN
SOYADI : ÖZTÜRK
MAAŞI : 5000000 TL.
FATURA : 4000000 TL.
VERGİ İADESİ : 217600 TL.

Yukarıdaki programda 60000, 120000 gibi sayıların sağındaki (!) işareti, bu


sayıların tek duyarlıklı gerçel sayı olduklarını gösterir. Bu işaretlerin konulması
zorunlu değildir.

SÖZLÜK PROGRAMI

Aşağıdaki program, klavyeden girilen İngilizce kelimenin Türkçe karşılığını ve-


rip, o kelimeyi bir cümle içinde kullanmaktadır.

100 'İNGİLİZCEDEN TÜRKÇEYE SÖZLÜK PROGRAMI


110 1

120 CLS:KEY OFF


13 O INPUT "İNGİLİZCE KELİMEYİ GİRİNİZ >", K$
140 READ A$,B$,C$
150 IF A$="" THEN PRINT "ARADIGINIZ KELİME SÖZLÜKTE YOK":GOTO 190
160 IF A$=K$ THEN PRINT A$:PRINT B$:PRINT C$:GOTO 190
170 GOTO 140
180 PRINT
190 INPUT "DEVAM ETMEK İSTİYOR MUSUNUZ (E/H) >",CEV$
200 IF CEV$="E" OR CEV$="e" THEN RESTORE:GOTO 130
210 END
220 DATA "BOOK","KİTAP","I LIKE READING BOOKS"
230 DATA "WINDOW", "PENCERE", "OPEN THE WINDOW PLEASE"
240 DATA "WHITE","BEYAZ","I OFTEN WEAR WHITE SHIRTS"

55
DALLANMA ve KARŞILAŞTIRMA DEYİMLERİ

2.50 DATA "BLUE" "MAVI" "SKY IS BLUE


I I il

260 DATA "","",""


RUN
İNGİLİZCE KELİMEYİ GİRİNİZ > WINDOW <ENTER>
WINDOW = PENCERE
OPEN THE WINDOW PLEASE
DEVAM ETMEK İSTİYOR MUSUNUZ (E/ H)>

Bu programdaki DATA satırlarına 250. satırdan itibaren yeni kelimeler eklene-


rek, daha çok kelimelerin karşılıkları sözlüğü ilave edilebilir.

56
ÜNİTE

DÖN6V DVZENLEME

A- DÖNGÜLER (LOOP)
Değişkenler, akış kontrolu ve döngüler, bir programlama dilinin temel taşları­
dır. Döngüler, bir veya bir grup işlemin belirli bir sayıda veya belirli bir şarta
bağlı olarak tekrarlanmasını sağlar.
Örneğin, ekrana l O kez "BİLGİSAYAR" yazdırmak istiyoruz. Döngüler olma-
saydı, programda 1O tane PRINT komutu kullanmamız gerekecekti. Hele, işlemin
l 00-200 kere tekrarlanması gerektiği durumlarda, işimizin ne kadar zor olduğu
daha iyi anlaşılır. Döngüler, bizi bu zorluklardan kurtarıyor.

GOTO KOMUTUYLA KURULAN DÖNGÜLER

GOTO komutuyla kurulan döngülerde, bir değişken, sayaç olarak kullanılır ve


bu değişkendeki sayı belli bir miktar arttırılır ya da azaltılır. Değişkendeki sayı
belli bir miktara ulaşıncaya kadar döngü devam eder.
Aşağıdaki programda, l 'den l O'a kadar olan sayılar tek tek ekrana yazdırılmak­
tadır.

100 'BU PROGRAM l'DEN 10'A KADAR


110 'SAYILARI EKRANDA GÖRÜNTÜLER
120 I=O
130 I=I+l
140 PRINT I
150 IF I<lO GOTO 130
999 END

RUN
1
2
3
4
5

57
DÖNGÜ DÜZENLEME

6
7
8
9
10

Yukarıdaki programda, I değişkeni sayaç olarak kulla nılmıştır. l 20 nolu satır­


daki I=O komutu kullanılarak sayaç başlangıçta sıfırlanır . (Aslında BASIC program-
lama dilinde bütün sayısal değişkenlerin ilk değeri otomatik olarak s ı fırdır. Ancak
geleneksel olarak sıfırlama işlemi yapılmaktadır). Daha sonra, 130 nolu sa tırda, I
değişkeninin değeri l arttırılıyor. 140 nolu satırda, PRINT I komutuyla, I değiş­
kenindeki sayı görüntülenmiştir. 150 nolu satırda , I değ i şken in deki say ının
l O' dan küçük olup olmadığı kontrol ediliyor. Bu sayı l O'dan küçük olduğu taktir-
de GOTO komutu ile 130 nolu satıra geri dönülür. Böylece, I değişkenindeki sa-
yı l O oluncaya kadar l 30 ve 140 nolu satı rlarda ki işlem ler tekrarlanır .
Ş imdi inceleyeceğ imiz programda ise O ile l 00 arasındaki çift sayılar ekrana
yazd ırılmaktadır.

100 'BU PROGRAM l'DEN lO'A KADAR


110 'SAYILARI EKRANDA GÖRÜNTÜLER
120 I=O
130 I=I+2
140 PRINT I.,
150 IF I <lOO GOTO 130
999 END

Bu program çalıştırıldığında , O ile l 00 arasındaki çift sayılar ekranda görün-


tülenir. Sayaç olarak kullanılan I değişkeninin 2'şerli arttırıldığına dikkat edin iz.
140 nolu satırda PRINT I ; yazıld ı ğı için (nokta lı virgüle dikkat), sayılar ekrana
yanyana yazılır .
GOTO komutu ile ilgili bir de hatırlatmamız var. GO ve TO kelimeleri b iti şik
yaz ıl ab il eceği gibi, aralıklı da yazıla bilir. Her iki yazım şe kli de d oğrudu r .
GOTO 130
GO TO 130

Yukarıdaki iki yaz ım şekli de doğrudur. Ara lı klı yazımda GO ve TO kel imeleri
arasında l karakterl ik boşlu k bu lu nma l ı d ır .

B- FOR / NEXT DEYİMİ İLE DÖNGÜ DÜZENLEME


FOR NEXT döngüsü, BASIC programlama dilinde en sık kullanılan döngüdür.
Öyle ki, hemen hemen her programda FOR NEXT döngüsü kull an ılma ktadır . Aşağ ı­
da, FOR NEXT döngüsünün sintaks ı görülmektedir.

58
DÖNGÜ DÜZENLEME

FOR ilkdeğer TO sondeğer

tekrarlanan blok

NEXT değişken

FOR kelimesinden sonra, bir sayısal değişkene ilk değer atanır. Sayısal değiş­
ken, herhangi bir değişken adı olabilir, ancak uygulamada geleneksel olarak 1, J, K
harfleri kullanılmaktadır.

FOR I=l TO 5

NEXT I

Yukarıdaki örnekte, döngü 1 değişkeni t0rafından kontrol edilmektedir. Bu ne-


denle, bu değişkene KONTROL DEGIŞKENI denir. Burada kontrol değişkeninin ilk
değeri 1, son değeri ise 5'tir. FOR ile NEXT kelimeleri arasındaki bölüm 5 kez
çalışır. Yani 1 değişkeni her seferinde 1 artarak 5 oluncaya kadar aradaki blok
tekrarlanır.
Aşağıdaki programda, FOR NEXT döngüsü kullanılarak 1 ile 1O arasındaki sa-
yılar ekrana yazılmaktadır.

100 FOR I=l TO 10


110 PRINT I;
120 NEXT I
999 END

RUN
1 2 3 4 5 6 7 8 9 10

Bu programda, 1 kontrol değişkenine ilk değer olarak 1 atanmış, son değer ola-
rak da 1O sayısı tesbit edilmiştir. Buna göre FOR ile NEXT kelimeleri arasındaki
11 O nolu satır 1O kez çalışacaktır. 1 değişkeninin değeri her defasında 1 artmak-
tadır.

FOR ilk değer TO son değer STEP artış miktarı


Tekrarlanan blok
NEXT Değişken

FOR NEXT döngüsünde artış miktarı tanımlanmamışsa, kontrol değişkeni döngü-


nün her çalışmasında 1 artar. Ancak, FOR NEXT döngüsünde STEP komutu kullanı­
larak artış miktarı değiştirilebilir.

59
DÖNGÜ DÜZENLEME

Örnek 1:

FOR I 1 TO 10 STEP 2

tekrarlanan blok

NEXT I

Yukarıdaki örnekte, kontrol değişkeninin değeri, her defasında 2 artmaktadır.

Örnek 2:

FOR J= 2 TO 6 STEP 0 . 5

tekrarlanan blok

NEXT J

Burada ise, kontrol değişkeninin değeri, her defasında 0.5 artar. Buna göre, ar-
tış miktarı, kesirli sayı olarak da tanımlanabilmektedir.

Örnek 3:

FOR !=10 TO 1 STEP - 1

tekrarlanan blok

NEXT I

Kontrol değişkeni azalan bir biçimde de tanımlanabilir. Bu örnekte, STEP -1


olarak tayin edildiğinden, kontrol değişkeni 1, 1O'dan başlamak üzere birer azala-
rak 1 sayısına gelinceye kadar döngü devam eder.

100 FOR I=l TO 3 STEP . 1


110 PRINT I;
120 NEXT I
999 END

Bu program çalıştırıldığında 1 değişkeni 1 den başlamak üzere her defasında


0.1 aratarak 3'e kadar bütün değerleri ( 3 dahil) tek tek alır ve bu arada döngü
çalışarak PRINT 1 komutuyla 1 nın bütün değerleri ekrana yazılır .

60
DÖNGÜ DÜZENLEME

ÇAR.PiM TABLOSUNUN ÇIKARILMAS!

Aşağıdaki programda FOR NEXT döngüsü kullanılarak 6'1ar çarpım tablosu çıka­
rı im ıştır.

100 'BU PROGRAM ALTILAR ÇARPIM CETVELİNİ ÇIKARIR


110 '
120 FOR I=l TO 10
13 O PRINT I ; " * 6 = " ; I * 6
140 NEXT I
999 END

RUN
1*6 = 6
2*6 = 12
3*6 = 18
4*6 = 24
5*6 = 30
6*6 = 36
7*6 = 42
8*6 = 48
9*6 = 54
10*6 = 60

ASCll KOD TABLOSUNU ÜRETEN PROGRAM

Bilgi~.ayarın klavyesindeki bütün tuşların ASCll kodunda sayısal karşılıkları


vardır. Orneğin "A" tuşunun ASCll kodundaki karşılığı 65 sayısıdır.
Klavyede bazı tuşlar 1, diğer bazı tuşlar ise 2 karakter genişliğindedir. Örne-
ğin fonksiyon tuşları (Fl, F2, F3 .. ), hareket tuşları (----?, 1;--, İ, t) iki kodlu tuşlar­
dır. Yani bunlar iki karakter genişliğindedir. Buna karşılık A, 5, b ... gibi harf ve
sayı tuşları ise 1 karakter genişliğindedir.
İki kodlu tuşların hepsinde ilk (yani soldaki) karakter "null " karakteridir. Bu ka-
rakterin ASCll kodu O'dır. Bu tuşlar birbirinden ikinci (yani sağdaki karakter vası­
tasıyla ayrılır.
ASC komutu, herhangi bir tuşun ASCll karakterini üretir.
ASC ("A") A karakterinin ASCll kodunu üretir.
ASC ("c") c karakterinin ASCll kodunu üretir.

Aşağıdaki program klavyedeki tuşların ASCll kodlarını üretip görüntüler.

100 'BU PROGRAM KLAVYEDE BASILAN TUŞLARIN


110 'ASCII KARŞILIKLARINI ÜRETİR

61
DÖNGÜ DÜZENLEME

120 '
130 CLS
140 PRINT "TUŞ", "ASCII"
15 O PRINT " ", "
160 PRINT
170 A$=INKEY$
180 IF A$="" THEN GOTO 170
190 G=LEN(A$)
200 IF G=2 THEN A$=RIGHT$(A$,l)
210 PRINT A$,ASC(A$)
220 GOTO 170
230 END

RUN

TUŞ ASCII

A 65
c 67

Bu programın çalışmasının durdurulması için CTRL-BREAK tuşlarına bas ı lm as ı


gerekir.

Programda kullan ılan INKEY$ komutu, klavye tamponunu sürekli kontrol ederek
herhangi bir tuşa basılıp basılmadığını kontrol eder.

170 A$ = INKEY$
180 IF A$ = "" THEN GOTO 170

Yukarıdaki iki satı r INKEY$ komutunun ça lı şmas ın ı gösteriyor. 170 nolu sa tır­
da A$ = INKEY$ komutuyla klavye tamponu kontrol edilmektedir. Klavyede her-
hangi bir tuşa basılmadığı müddetçe, tamponda (buffer). " " (null string) karakteri
bulunacağından 180 nolu satır vasıtasıyla kontrol yine 170 nolu satıra gönderi-
lir ve klavyede herhangi bir tuşa basılıncaya kadar bu işlem devam eder.
Herhangi bir tuşa basıldığı taktirde, kontrol 190 nolu satına inecektir. Bu sa-
tırda bulunan G = LEN (A$) komutuyla basılan tuşun koç karakterden meydana
geldi ği bulunur ve bu sayı G değişkenine aktarıl ır.
G d eğ i ş kenine l sayısı aktar ılmı şsa basılan tuş tek karakter genişliğinde bir
tuş demektir. G değişkenine 2 sayı sı aktar ıldı ğ ı taktirde ise, basılan tuş iki karak-
ter genişliğinde demektir. Bu durumda A$ = RIGHT$(A$, l) komutuyla sağdaki ka-
rakter A$ değişkenine aktar ılır. Tek karakterli tuşlarda bu i ş lem yap ıl maz . Daha
sonra do 21 O nolu satır aracılığıyla , basılan tuş ve ASCll kodu görüntüleni r.
İki karakterli tuşlara, ÖZEL TUŞLAR denir. Örneğin yukarı ok (İ). aşağ ı ok (.!..) ,
PgUp, Ese ... gibi tuşlar özel tuşlardır .

62
DÖNGÜ DÜZENLEME

Daha önce de belirtildiği gibi özel tuşların iki kodu vardır ve bu tuşlar ikinci
(yani sağdaki) kodları vasıtasıyla birbirinden ayrılırlar. Örneğin yukarı ok (İ) tuşu
iki kodludur ve sağdaki karakterinin ASCll kodu 72 dir. 72 sayısı aynı zamanda
"H" harfinin de ASCll kodudur. Peki "H" harfine mi yoksa yukarı ok tuşuna mı ba-
sıldığını nasıl anlayacağız? Cevap basit: Basılan tuş tek karakterli ve kodu 72
ise "H" tuşuna basılmıştır. Tuş iki karakter genişliğinde ve sağdaki kod 72 ise yu-
karı ok (İ) tuşuna basılmış demektir. O halde, her şeyden önce LEN komutu kulla-
nılarak, basılan tuşun kaç karakterden oluştuğu tesbit edilmelidir.
Şimdi inceleyeceğimiz programda, klavyedeki bazı özel tuşların ASCll kodları
üretilmektedir.

IF B=75 THEN PRINT


IF B=77 THEN PRINT
IF B=73 THEN PRINT
IF B=71 THEN PRINT
IF B=79 THEN PRINT
IF B=81 THEN PRINT
IF B=82 THEN PRINT

RUN

PgUp TUŞUNA BASTINIZ


Ese TUŞUNA BASTINIZ
YUKARI OK TUŞUNA BASTINIZ

Bu programın çalışmasını durdurmak için CTRL-BREAK tuşlarına basılmalıdır.

100 'BU PROGRAM KÜÇÜK HARFLERLE GİRİLEN


110 'CÜMLELERİ BÜYÜK HARFE ÇEVİRİR
120 1

130 CLS
140 INPUT "CÜMLEYİ GİRİNİZ :",C$
150 K=LEN(C$)
160 IF K=O THEN GOTO 330

63
DÖNGÜ DÜZENLEME

170 S$= " "


180 FOR I=l TO LEN(C$)
190 K$=MID$(C$,I,1)
200 KOD=ASC (K$) .
210 IF KOD>96 AND KOD<123 THEN B$=CHR$(KOD-32) ELSE B$=K$
220 S$=S$+B$
230 NEXT I
240 1

250 'BÜYÜK HARFE ÇEVRİLDİ


260 1

270 CLS
280 PRINT "GİRİLEN CÜMLE : ";D$
290 PRINT
3 OO PRINT "OLUŞAN CÜMLE : " ; S$
310 PRINT
320 GOTO 140
330 CLS
999 END

RUN
tuzla teknik lisesi

GİRİLEN CÜMLE : tuzla teknik lisesi


OLUŞAN CÜMLE: TUZLA TEKNİK LİSESİ

Klavyedeki küçük harflerle büyük harflerin ASCll kodlar birbirinden farklıdır .


Örneğin "A" harfinin ASCll kodu 65, "a" harfinin ASCll kodu ise 97 'dir. "B" harfi-
nin ASCll kodu 66, "b" harfinin ASCll kodu ise 98'dir. Bir harfin büyük harf ka-
rakteri ile küçük harf karakterinin ASCll karşılıkları arasındaki fark 32 dir.

Örnek
D
11
~ 68
11

"d" ~ l 00 (68+32)

Yukarıda incelediğimiz programda bu özellikten yararlanılarak klavyeden giri-


len küçük harfle yazılmış cümleler büyük harfe çevrilmektedir.
Şimdi inceleyeceğimiz program, l ile l 00 arasında ki sayıları toplama ktadır.

100 'BU PROGRAM 1 İLE 100 ARASINDAKİ


110 'SAYILARIN TOPLAMINI HESAPLAR
120 1

13 O TOPLAM= O
140 FOR I=l TO 100
150 TOPLAM=TOPLAM+I
160 NEXT I
170 1

64
DÖNGÜ DÜZENLEME

180 PRINT "SAYILARIN TOPLAMI=";TOPLAM


999 END
RUN
SAYILARIN TOPLAMI = 5050

Aşağıdaki programda, o· ile 90· arasındaki açıların sinüs, kosinüs ve tanjant


değerleri hesaplanarak görüntüleniyor. Bu programda da FOR NEXT döngüsü kulla-
nılmıştır.

100 'BU PROGRAM 10 İLE 90 DERECE


110 'ARASINDAKİ AÇILARIN SİNÜS,
120 'KOSİNÜS VE TANJANTLARINI HESAPLAR
130 '
140 CLS
150 PRINT TAB(lO); "AÇI" ;TAB(18); "SİN" ;TAB(33); "COS" ;TAB(47); "TAN"
160 PRINT TAB(lO); "===" ;TAB(18); "===" ;TAB(33); "===" ;TAB(47); "==="
170 PRINT
180 K=3.14159/180
190 FOR I=lO TO 60 STEP 5
200 S=SIN(I*K)
210 C=COS(I*K)
220 T=TAN(I*K)
230 PRINT TAB(9);I;TAB(l8)
240 PRINT USING"#.######";S;
250 PRINT TAB(33);
260 PRINT USING #.#####";C;
11

270 PRINT TAB(47);


280 PRINT USING "#.#####";T
290 NEXT I
999 END

Bu program çalıştırıldığında açıların sinüs, kosinüs ve tanjant değerleri görün-


tülenir.
Aşağıdaki programda FOR NEXT döngüsü kullanılarak A$ değişkenine her defa-
sında bir adet "*" karakteri eklenmiş ve görüntüleme yapılmıştır.

100 A$=ıı 11

110 FOR I=l TO 10


120 A$=A$+"*"
130 PRINT A$
140 NEXT I
999 END

RUN
*
**
***

65
DÖNGÜ DÜZENLEME

****
*****
******

C- WHILE-WEND DEYİMİ İLE DÖNGÜ DÜZENLEME


Aşağıda, WHILE-WEND döngüsünün sintaksı görülüyor.

WHILE Şart

- - - - - - - Tekrarlanan komutlar

WEND

WHILE kelimesinin yanında belirtilen şart DOGRU (TRUE) ise WH ILE kelime-
siyle WEND kelimesi arasında yer alan komut veya komutlar ça lı şır. Kontrol
WEND kelimesine geldiğinde, tekrar WHILE kelimesinin yer aldığ_ı sa tıra döner
ve şartın doğru olup olmadığı yeniden kontrol edilir, şart yine DOGRU ise komut-
lar yine çalış ır . Şart yanlış olduğu ta kti rde, WEND kelimesinden sonra gelen sa-
tır çal ı şır, yani döngüden çıkıl ır .

100 I=l
110 WHILE !<10
120 PRINT I
130 I =I+l
140 WEND
999 END

RUN
1
2
3
4
5
6
7
8
9

Yukarıdaki programda, WHILE kelimesinin yan ında k 1O şartı öngörüldüğü


için, 1 değişken indeki sayı 1O' dan küçük olduğ u müddetçe 120 ve 130 nolu sa-
tırlar tekrarlanarak ça l ışır. 130 nolu satı r her ça lı ştı ğında 1 değişkeninin değe ri 1
arttırılmaktadır . 1 değişken indeki değer 1O olduğ unda döngü sona erer.

66
DÖNGÜ DÜZENLEME

Aşağıdaki program, klavyeden girilen bir cümleyi, her satırda bir karakter arttı­
rarak yazar.

100 '*****BU PROGRAM KLAVYEDEN GİRİLEN*****


110 '*****CÜMLEYİ HER SATIRDA BİR KARAKTER*****
120 '*****ARTTIRARAK GÖRÜNTÜLER*****
13 o 1

140 INPUT "CÜMLEYİ GİRİNİZ>", C$


150 L=LEN(C$)
160 IF L=O THEN GOTO 999
170 PRINT
180 FOR I=l TO L
190 M$=MID$(C$,1,I)
200 PRINT M$
210 NEXT I
220 1

230 PRINT
240 GOTO 140
999 END
RUN
CÜMLEYİ GİRİNİZ > TUZLA TEKNİK <ENTER>
T
TU
TUZ
TUZL
TUZLA
TUZLA
TUZLA T
TUZLA TE
TUZLA TEK
TUZLA TEKN
TUZLA TEKNİ
TUZLA TEKNİK

TRON
Editördeki program çalıştırılmadan önce TRON yazılıp ENTER tuşuna basılırsa
(veya sadece F7 fonksiyon tuşuna basılırsa) programın çalışan komutlarının satır
numaraları ekrana yazılır.

TROFF
Bu komut TRON komutunun etkisini ortadan kaldırır. F8 fonksiyon tuşuna bası­
larak da aynı sonuç alınır.

67
DÖNGÜ DÜZENLEME

68
ÜNİTE

iNDiSLi DEGiŞHENLEHiN
iŞLETiMi~ niziLEH

A- DIM DEYİMİ
Kural olarak, bir değişken herhangi bir anda sadece bir tane değer tutabilir.
Değişkene yeni bir değer aktarıld~ğında, önceki değer silinir yerine yeni değer ge-
lir. Bu tip değişkenler, BASiT DEGIŞKENLER olarak adlandırılmaktadır.
Basit değişkenlere örnekler:
A, AD$, S, B$
Bu değişkenler, basit değişken olup herhangi bir anda sadece bir değer tutabi-
lirler.
İndisli değişkenler ise bir isim altında, birden fazla değer tutabilirler. İndisli
değişkenlere, DİZİ DEGİŞKENLER de denilmektedir.
İndisli değişkenler DIM komutuyla tanımlanır. DIM, DIMENSION (boyut) keli-
mesinin ilk üç harfinden oluşmuştur. DIM kelimesinden sonra değişken adı ve bu-
nun yanında parantez içinde indis numarası yer alır. İndisli değişkenlerde, bellek-
te indis numarasının bir fazlası kadar sayıda alan ayrılır. Bu alanlarc, indisli de-
ğişkenin elemanları denir ve her eleman ayrı bir indis numarasıyla tar:ımlanır.

DIM A (5)

Değişken İndis
adı numarası

A(5)
Yukarıdaki tanımlamadan sonra,
bilgisayarın belleğinde A değişkeni A(O)

için yandaki gibi bir alan ayrılır. A(l)


A(2)
A(3)
A(4)
A(5}

69
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

İndisli değişkenlerde, ilk elemanın indis numarası sıfırdır. Son indis numarası
ise, indisli değişkenin tanımlanmasında parantez içinde belirtilen numaradır. Buna
göre DIM A(5) tanımı yapıldığında, A indisli değişkeni 6 elemandan oluşur. A de-
ğişkeni, her elemanında bir sayı olmak üzere, aynı anda 6 tane sayı tutabilir.
İndisli değişkenler, alfasayısal (string) tipinde de tanımlanabilirler.

DIM AD$ (5)

Bu tanımlamadan sonra bellekte oluşan düzenleme:

AD$(5)
AD$(0)
AD$(1)
AD$(2)
AD$(3)
AD$(4)
AD$(5)

AD$ değişkeni , her elemanda bir tane olmak üzere 6 tane alfasayısa l (string)
ifadeyi tutabilir.
Bir indisli değişkenin elemanlarına, değişken adı ve o elemanın indis numara-
sıyla ulaşılır.

A(3)

A(O) +- A(O) adlı eleman


A(l)
A(2) +- A(2) adlı eleman
A(3)

İndisli değişkenin tanımı sırasında, indis numarası sabit sayı olarak verilebile-
ceği gibi, değişken olarak da verilebilir.

DIM 8( 20) ~ indis numara s ı sabit sayı olarak verilmiş .

Aşağıdaki örnekte ise, indis numarası değişken aracılığıyla tanımlan mıştır .


10 INPUT "öğrenci sayısını giriniz:", N
20 DIM A (N)

70
iNDİSlİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

Bu örnekte, N değişkenine girilen sayı, A indisli değişkeninin indis numarası­


nın tanımlanmasında kullanılmıştır.
İndisli değişkenin elemanlarının tanımlanmasında da sabit sayı, değişken veya
ifade kullanılabilir.

Örnek:

A(5)

A( 0) I=2 olduğunda:

A ( 1)
A ( 2) ~ A(I)
A(3) ~ A(I+l)
A(4)
A(5)

Örneğin, 1 değişkenine 2 sayısı atanmış olsun. Bu durumda A(I), A(2) elema-


nını tanımlayacaktır. A(I+l) iseA(3) adlı elemanı tanımlar.
Bir indisli değişken, belli indis numarasıyla tanımlandıktan sonra, bütün ele-
manlarının kullanılması zorunluluğu yoktur.

Örnek:

DIM B (20)

Bu durumda 21 elemanlı bir indisli değişken tanımlanmıştır. Programda, bu ele-


manların tümü kullanılabileceği gibi, yalnızca ilk l O tanesi veya son 5 tanesi de
kullanılabilir. Ancak, bellekte lüzumsuz olarak fazla yer kaplamaması için ihtiyaç
kadar eleman tanımlamakta fayda vardır.
Not: Eleman sayısı l O veya daha az ise, bu dizi değişkenlerin DIM komutu ile
tanımlanmalarına gerek yoktur.

B- OPTION BASE DEYİMİ


İndisli değişkenlerde ilk eleman numarasının O olduğu daha önce belirtilmişti.
DIM komutundan önce OPTION BASE komutu kullanılarak, ilk elemanın indis nu-
marası 1 olarak tanımlanabilir.

10 OPTION BASE 1
20 DIM A (5)

71
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

Bu durumda, A indisli değişkeni 5 elemanlı olur ve ilk elemanın indis numarası


l 'dir.

A{5)

A(l)
A(2)

A{3)
A(4)

A(5)

İndisli değişkenin tanımlandığı DIM komutunun bulunduğu satır, birden fazla


çal ı ştırıldığı taktirde "Duplicate definition" hata mesa j ı verilir.

Şimdi inceleyeceğ imiz programda, N dizi değişkenine l O tane sayı a ktarılmak­


ta ve bu sayılar görüntülenmektedir.

100 DIM N(lO)


110 FOR I=l TO 10
120 READ N(I)
130 NEXT I
140 FOR I=l TO 10
150 PRINT N{I);
160 NEXT I
170 END
180 DATA 23,87,54,12,8,70,48,35,59,60

RUN
23 87 54 12 8 70 48 35 59 60

Bu program ça lıştırıldı ğ ında, ilk FOR N EXT döngüsündeki READ N(I) komutu
aracılığıyla, DATA satırındaki bilgiler, N değişkeninin elemanlarına aktarılır .

N{lO)

N(O)
N (l) 23 N{6) 70
N(2) 87 N(7) 48
N(3) 54 N(8) 35
N(4) 12 N(9) 59
N(5) 8 N(lO) 60

72
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

Programdaki 1 kontrol değişkeni, 1 ile 1O arasındaki değerleri aldığı için N(O)


elemanına herhangi bir değer aktarılmamıştır. Bu durumun geçerli olduğunu daha
önce belirtmiştik.

MAKSİMUM SAYIYI BULAN PROGRAM

Bilgisayarların en önemli özelliklerinden bir tanesi, arama işlemlerini çok hızlı


olarak gerçekleştirebilmeleridir. Örneğin, bir dizi sayı içersinde, en büyük olan
sayıyı bulmak istediğimizi düşünelim. Sayılar 5-6 tane olsa mesele yok. Ancak
örneğin 1000 tane sayı içinde en büyük olanını bulmak için epey çaba harcama-
mız gerekeceği açıktır. Bilgisayarlar, bizi bu zorluktan kurtarıyor. Aşağıdaki prog-
ramda, klavyeden girilen 5 tane sayıdan en büyük olanı bulunup görüntülenmekte-
dir.

100 DIM A(S)


110 FOR I=l TO 5
120 PRINT I;". SAYIYI GİRİNİZ >";
130 INPUT "" ,A(I)
140 NEXT I
150 MAX=A(l)
160 FOR I=2 TO 5
170 IF A(I)>MAX TREN MAX=A(I)
180 NEXT I
190 PRINT
200 PRINT "EN BÜYÜK SAYI .. ;MAX
999 END

RUN

1. SAYIYI GİRİNİZ > 3


2. SAYIYI GİRİNİZ > 5
3. SAYIYI GİRİNİZ > 9
4. SAYIYI GİRİNİZ > 2
5. SAYIYI GİRİNİZ > 7

EN BÜYÜK SAYI = 9

120 ve 130 nolu satırlarda PRINT ve INPUT komutlarının birlikte kullanımı


söz konusudur. 1. sayıyı giriniz, 2. sayıyı giriniz ... mesajlarında l, 2, 3, .. sa-
yılarının yazılabilmesi için bu kullanım yolu seçilmiştir. INPUT komutundan sonra
gelen " " karakteri, "," (virgül) karakterini kullanarak (?) soru işaretinin görüntülen-
mesi önlemek amacıyla konulmuştur.

Programın çalıştırılmasından sonra, ilk önce klavyeden girilen 5 sayı sırasıyla


A( 1), A(2), A(3), A(4) ve A(5) elemanlarına aktarılır.

73
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

A(5)

A(O) MAX
A(l) 3 ITJ
A(2) 5
A(3) 9
A(4) 2
A(S) 7

Bundan sonra, A( l) elemanındaki sayı, en büyük kabul edilerek MAX değ iş keni­
ne aktarılır. ( 150 nolu satır). Daha sonra A(2) elemanından başlama k üzere sıray­
la bütün elemanlardaki sayılar, MAX değişkenindeki say ıyla karşılaştırılır. Eğer
elemandaki sayı, MAX değişkenindeki sayıdan büyükse, o sayı MAX değ i şke nine
aktarılır. Böylece, döngünün sonuna ge lindiğ inde , elemanlarda bulunan sayıların
en büyüğü. MAX değişkenine aktarılmış olur.

MİNİMUM SAYIYI BULAN PROGRAM

Minimum sayı da aynı teknikle bulun ur. Aradaki tek fark 170 nolu satı rda >
operatörü yerine < operatörünün kullanılmasıdır.

100 DIM A(5 )


110 FOR I=l TO 5
120 PRINT I;". SAYIYI GİRİNİ Z >";
130 INPUT "" ,A(I)
140 NEXT I
150 MIN=A(l)
160 FOR I=2 TO 5
170 IF A(I )<MIN THEN MIN=A (I)
180 NEXT I
190 PRINT
20 0 PRINT "EN KÜÇÜK SAYI ";MIN
999 END

RUN
1. SAYIYI GİRİNİZ > 5
2. SAYIYI GİRİNİZ > 2
3. SAYIYI GİRİNİZ > 9
4. SAYIYI GİRİNİZ > 4
5. SAYIYI GİRİNİZ > 6

EN KÜÇÜK SAYI : 2

74
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

İKİ BOYUTLU İNDİSLİ DEGİŞKENLER

İndisli değişkenler iki ve daha fazla boyutlu olarak da tanımlanabilirler. Maksi-


mum boyut sayısı 255 olabilir. Buna karşılık, uygulamada en fazla 2 veya 3 bo-
yutlu diziler kullanılmaktadır.

DIM A (3,4)

sütun satır

Bu tanımlamadan sonra, A dizi değişkenine bellekte aşağıdaki alan ayrılır.

A(3, 4)

A(O, 0) A(0, 1) A(O, 2) A(0,3) A(O, 4)


A(l, O) A(l,l) A(l,2) A(l,3) A(l,4)
A(2, O) A(2, 1) A(2,2) A(2,3) A(2,4)
A(3, O) A(3,l) A(3, 2) A(3, 3) A(3, 4)

İki boyutlu inqisli değişkenlerde, satır ve sütun boyutları virgül karakteriyle


birbirine ayrılır. Ornek:

DIM B (5,6)

· İki boyutlu indisli değişkenler, alfasayısal (string) tipinde de tanımlanabilirler.


Örnek:

AD$ (5,7) ~ İki boyutlu alfasayısal tipi indisli değişken.

Aşağıdaki programda A ve B matrisleri toplanarak C matrisi elde edilmektedir.

100 '****İKİ BOYUTLU DİZİLERE ÖRNEK PROGRAM****


110 1

120 DIM A(3,4),B(3,4),C(3,4)


130 FOR I=l TO 3
140 FOR J=l TO 4
150 READ A(I,J)
160 NEXT J
170 NEXT I

75
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

180 '
190 FOR I=l TO 3
200 FOR J=l TO 4
210 READ B(I,J)
220 NEXT J
230 NEXT I
240 '
250 FOR I=l TO 3
260 FOR J=l TO 4
270 C(I,J)=A(I,J)+B(I,J)
280 NEXT J
290 NEXT I
300 '
310 CLS:KEY OFF
320 PRINT "A l<T_ATRİSİ"
330 PRINT
340 FOR I=l TO 3
350 LOCATE I+2,l
360 FOR J=l TO 4
370 PRINT A(I,J);
380 NEXT J
390 NEXT I
400 '
410 PRINT:PRINT
42 O PRINT "B MATRİSİ"
430 PRINT
440 FOR I=l TO 3
450 LOCATE I+8,l
460 FOR J=l TO 4
470 PRINT B(I,J);
480 NEXT J
490 NEXT I
500 '
510 PRINT :PRINT
520 PRINT "C MATRİSİ"
530 FOR I=l TO 3
540 LOCATE I+l4,1
550 FOR J=l TO 4
560 PRINT C(I,J);
570 NEXT J
580 NEXT I
590 '
600 DATA 2,1,3,4,2,3,3,1,4,2,4,1
610 DATA 3,l,4,2,1,3,2,4,1,3,4,2
999 END

76
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

Bu program çalıştırıldığında aşağıdaki işlemi yapmaktadır.

A MATRİSİ B MATRİSİ C MATRİSİ


2 1 3 4 3 1 4 2 5 2 7 6
2 3 3 1 1 3 2 4 3 6 5 5
4 2 4 1 1 3 4 2 5 5 8 3

A ve B matrislerinin elemanları, 600 ve 61 O nolu DATA satırlarından okun-


maktadır. C matrisinin elemanları, A ve B matrislerinin elemanlarının toplamlarıy­
la elde edilir.
Örneğin C ( 1,2) elemanı A( 1,2) elemanıyla, B( 1,2) elemanının toplanmasıyla
bulunur.

77
İNDİSLİ DEGİŞKENLERİN İŞLETİMİ, DİZİLER

78
ÜNİTE8
STANDART FONKSiYONLAH

A- ABS, INT, FIX, SIN, CQS, TAN, ATN, ~OG, SQR, CDBl,
CSGN, HEX$, RND ARiTMETiK FONKSiYONLAR!

ABS

Sayısal bir ifadenin mutlak değerinin üretilmesinde kullanılır. Şimdi inceleye-


ceğimiz programda ABS fonksiyonu kullanılmıştır.

100 CLS
110 A=35. 4
120 B=-35.4
130 PRINT ABS(A)
140 PRINT ABS(B)
999 END

Run

35.4
35.4

Negatif bir sayının mutlak değeri işaretten arınmış değer olarak ortaya çıkmak­
tadır.

INT FONKSİYONU

INT fonksiyonu, parametre olarak verilen kesirli bir sayının sadece tamsayı
kısmını üretir. Yuvarlama işlemi yapmaz.

INT (x)

Yukarıdaki yazımda, X kesirli sayısının tamsayı kısmı üretilir. Örnek program:

79
STANDART FONKSİYONLAR

100 X=l2.67
110 Y=45.12
120 PRINT INT (X)
130 PRINT INT(Y)
999 END

RUN

12
45

CINT FONKSİYONU

CINT fonksiyonu, parametre olarak verilen sayının tamsayı kısmını üretir. Ke-
sirli kısım 0.5 veya daha büyükse yuvarlama işlemi yapar.

CINT (x)

Yukarıdaki yazımda, X kesirli sayısının tamsayı kısmı üretilir.

Şimdi incelenecek olan programda CINT fonksiyonu kullanılmıştır.

100 X=12.49
110 Y=12. 5
120 PRINT CINT(X)
130 PRINT CINT(Y)
999 END

RUN
12
13

Çıkıştan da görüldüğü gibi 12.49 sayısına karşılık 12 sayısı, 12.5 sayısına


karşılık olarak da 13 sayısı üretilmiştir. 12.49 sayısının kesirli kısmı .5 'den kü-
çük olduğu için yuvarlama işlemi yap ılmamış, 12 .5 sayısında ise yuvarlama işle­
mi yap ılmıştır .

FIX FONKSİYONU

Kesirli sayıların sadece tamsayı bölümlerini üretir. Yuva rlama yapmaz.

100 CLS
110 PRINT FIX(34.12)

80
STANDART FONKSİYONIAR

120 PRINT FIX(34.99)


130 PRINT FIX(-34.67)
999 END

Run

34
34
-34

SIN FONKSİYONU

Bu fonksiyon bir açının sinüs değerini üretir. Sin fonksiyonunda parametre ola-
rak verilecek açının değeri radyan cinsinden verilmelidir. Açının değeri derece
cinsinden verilmişse, önce radyana çevrilmelidir. Derece ile radyan arasındaki
ilişki aşağıdaki gibidir.

360. = 2n radyan

Buna göre:

l. = 2n / 360
l 0 = 1t / ı 80

n: sayısı 3. 14 159 olarak alınabilir.


Buna göre derece cinsinden verilen açı değeri (3.14159/180) ifadesi ile
çarpılırsa, bu açının radyan cinsinden karşılığı bulunmuş olur.
Aşağıdaki programda, klavyeden girilen açının sinüsü hesaplanıp görüntülen-
mektedir.

100 'BU PROGRAM KLAVYEDEN GİRİLEN


110 'AÇININ SİNÜSÜNÜ HESAPLAR
120 1

130 INPUT "AÇIYI GİRİNİZ = ",A


140 RADA=A*(3.14159/180}
150 B=SIN(RADA)
160 '
170 PRINT "AÇININ SİNÜSÜ= ";B
999 END

RUN
~AÇIYI GİRİNİZ 60 <ENTER>
AÇININ SİNÜSÜ = .866025

81
STANDART FONKSİYONLAR

Bu programda 130 nolu satır aracılığıyla, girilen açı değeri A değişkenine


atanmıştır. 140 nolu satırda ise A değişkenindeki değer 3. 141 59/ 180 ifade-
siyle çarpılmış ve açının değeri radyona çevrilerek RADA değişkenine a ktarılmış­
tır . B=SIN (RA DA) komutuyla da RADA değişkeninindeki açının sinüsü hesaplan-
mış ve sonuç B değişkenine atanmıştır. 170 nolu satırda , açının sinüs değeri gö-
rüntülenmektedir.

COS FONKSİYONU

Bir açının kosinüs değerini üretir. Açı radyan cinsinden verilmelidir.


B= COS(x)
Yukarıdaki şekilde kullanılan COS fonksiyonu X açıs ı nın kosinüs değerini üre-
tecektir. Açı derece cinsinden ise önce radyana çevrilmeli sonra da COS fonksi-
yonuna parametre olarak veri lmelidir.
Aşağıdaki örnekte, klavyeden girilen açının kosinüsü hesaplanıp sonuç görüntü-
lenmekted ir.

100 'BU PROGRAM KLAVYEDEN GİRİLEN


110 'AÇININ KOSİNÜSÜNÜ HESAPLAR
120 '
130 INPUT "AÇIYI GİRİNİZ = ",A
140 RADA=A* (3 .14159 /180 )
150 B=COS(RADA}
160 '
17 O PRINT "AÇININ KOSİNÜSÜ = " ; B
999 END

RUN
AÇIYI GİRİNİZ 45 <ENTER>
AÇININ KOSİNÜSÜ = . 707107 2

TAN FONKSİYONU

Radyan cinsinden verilen bir açının tanjant değerini üretir.


B = TAN(x)
Yukarıdaki yazımda X aç ı s ının tanjant değeri üretilip B değişkenıne a ktarılır. X
açısı radyan cins inden verilmelidir. Derece cinsinden verilen bir açının tan j antı
hesaplanmak isteniyorsa önce açının değeri radyana çevrilmelidir.
Şi mdi inceleyeceğimiz ö rnekte, klavyeden girilen a ç ı nın tanjantı hesa pl a nı p
görüntülenmektedir.

82
STANDART FONKSİYONLAR

100 'BU PROGRAM KLAVYEDEN GİRİLEN


110 'AÇININ TANJANTINI HESAPLAR
120 '
130 INPUT "AÇIYI GİRİNİZ = ",A
140 RADA=A*(3.14159/180)
150 B=TAN(RADA)
160 1

170 PRINT "AÇININ TANJANTI ";B


999 END

RUN
AÇIYI GİRİNİZ 60 <ENTER>

AÇININ TANJANTI = 1.732048

ATN FONKSİYONU

Tanjantı girilen bir açının kaç radyan olduğunu bulur. Açı derece cinsinden is-
teniyorsa radyan cinsinden bulunan değeri 180/3.14 ile çarpmak gerekir.

100 CLS
110 INPUT "Açının tanjantını giriniz :",A
120 B=ATN(A)
130 PRINT B*l80/3.14
999 END

Run

Açının tanjantını giriniz 1


45

Bilindiği gibi 45 derecelik açının tanjantı l 'dir. Bu programda 1 girilmiş 45


derece bulunmuştur. 120 nolu satırda açı radyan cinsinden bulunarak elde edilen
değer B değişkenine aktarılmış, 1 30 nolu satırda ise dereceye çevrilerek görüntü-
lenmiştir.

LOG FONKSİYONU

Bir sayının e tabanına göre logaritmasını hesaplar.

100 CLS
110 INPUT "Sayıyı giriniz>",S
120 A=LOG(S}

83
STANDAR1 FONKSİYONLAR

13 O PF.INT S ; " sayısının logaritması "; A


999 END

Run

Sayıyı giriniz >2


2 sayısının logaritması = 0.6931471

Görüldüğü gibi bu fonksiyon n tabanlı logaritmayı hesaplamaktadır. 1O tabanlı


logaritmayı hesaplamak için ise bulunan sayıyı log( 1O) değerine bölmek gerekir.
Şimdi inceleyeceğimiz program klavyeden girilen sayının 1O tabanına göre loga-
ritmasını hulur.

100 CLS
110 INPUT "Sayıyı giriniz>", S
120 A = Log (S) / Log(lO)
130 PRINT S ; " sayısının 10 tabanına göre logaritması ";A
999 END

Run

Sayıyı giriniz >1000


1000 sayısının 10 tabanına göre logaritması = 3

Yani 1O sayısının üzerine 3 konursa (üs olarak) 1000 sayısı bulunur. Üssün
bulunması işlemi logaritma işlemidir.

SQR FONKSİYONU

SOR komutu, parametre olarak verilen sayının karekökünü üretir.

SOR (X) ~ X sayısının karekökü üretilir.

Şimdi inceleyeceğimiz program, 1 ile 1O arasındaki sayıların kareköklerini he-


sa pi ayarak görüntüler.

100 'BU PROGRAM 1 İLE 10 ARASINDAKİ


110 'SAYILARIN KAREKÖKLERİNİ ÜRETİR
120 '
130 PRTNT "SAYI KAREKÖKÜ"
140 Pi. ~NT "======================="
150 FOR I=l TO 10
160 PRINT I,SQR(I)

84
STANDART FONKSİYONLAR

170 NEXT I
999 END

RUN

SAYI KAREKÖKÜ

1 1
2 1.414214
3 1.732051
4 2
5 2.236068
6 2.44949
7 2.645751
8 2.828427
9 3
10 3.162278

CDBL FONKSİYONU

Sayısal bir değeri çift duyarlıklı sayısal değere çevirir.

100 CLS
110 PRINT (22/7)
120 PRINT CDBL (22/7)
999 END

Run

3.142857
3.142857074737549

CDBL fonksiyonu 22/7 sayısını (bu pi sayısıdır) çift duyarlıklı sayıya çevir-
miştir. 120 nolu satırda çevirme ve görüntüleme işlemi birlikte yapılmaktadır.

CSNG FONKSİYONU

Çift duyarlıklı sayıyı tek duyarlıklı sayıya çevirir.

100 CLS
110 A#=95.3421815679#
120 B=CSNG(A#)
130 PRINT "Çift duyarlıklı =" ;A#

85
STANDART FONKSİYONLAR

140 PRINT "Tek duyarlıklı =";B


999 END

Run

Çift duyarlıklı = 95.3421815679


Tek duyarlıklı = 95.34218

HEX$ FONKSİYONU

HEX$ komutu, sayıların hexadesimal cinsinden karşılıklarını üretir. Hexadesi-


mal sistemde sayılar 16 tabanlı olarak yazılırlar.
HEX$ (55) ~ 55 sayısı hexadesimal formatta üretilir.

Şimdi inceleyeceğimiz program l den 20'ye kadar sayıların oktal ve hexadesi-


mal karşılıklarını üretip görüntüler.

100 CLS:KEY OFF


110 PRINT TAB (20); "DEC" ;TAB (3 O); "OCT"; TAB ( 40); "HEX"
120 PRINT TAB(20); "===" ;TAB(30); "===" ;TAB(40); "==="
130 FOR I=l TO 20
140 PRINT TAB(20);I;TAB(30);0CT$(I);TAB(40);HEX$(I)
150 NEXT I
999 END

RUN

DEC OCT HEX


--- ---
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 10 8
9 11 9
10 12 A
11 13 B
12 14 c
13 15 D
14 16 E
15 17 F
16 20 10
86
STANDART FONKSİYONLAR

17 21 11
18 22 12
19 23 13
20 24 14

R.ND KOMUTU

RND komutu O ile arasında rasgele (RANDOM) bir sayı üretir.

100 FOR I=l TO 5


11 O PRINT RND
120 NEXT I
999 END

RUN

0.1213501
0.651861
0.8688611
0.7297625
0.798853

Yukarıdaki program çalıştırıldığında, 11 O nolu satırdaki RND komutu 5 kez ça-


lışacak ve rasgele 5 sayı üretecektir. Sayılar O ile l arasındadır. Program tekrar
çalıştırıldığında yine aynı sayılar üretilip görüntülenir.

Aşağıdaki program, l ile 6 arasında değişen rasgele 5 sayı üretir.

100 CLS
110 FOR I=l TO 5
120 PRINT INT(RND*6)+1,
130 NEXT I
999 END

RUN

3 6 5 5 1

Program tekrar çalıştırılırsa yine aynı sayıların üretildiği görülecektir. Bu du-


rumun önüne geçmek için RANDOMIZE komutu kullanılır.

87
STANDART FONKSİYONLAR

·8- RANDOMIZE KOMUTU


Bu komut, rasgele sayı üretecinin her defasında farklı bir sayıdan başlamasını
sağlar. RANDOMIZE komutu, programın başında (yani RND komutundan önce) yer
almalıdır.
RANDOMIZE komutu parametresiz (yalnız başına) kullanılırsa, klavyeden bir
sayı girilmesini ister. Girilmesi gereken sayı tamsayı cinsinden olmalıdı r.

RANDOMIZE komutu parametresiz kullanıldığında:

Random number seed (-32768 to 32767)?

mesajı görüntülenerek belirtilen sınırlar arasında bir tamsayı girilmesi istenir.

Örneğin ile 6 arasında 5 tane rasgele sayı üretip görüntüleyelim.

100 CLS
105 RANDOMIZE
110 FOR I=l TO 5
120 PRINT INT{RND*6)+1,
130 NEXT I
999 END

RUN

Random number seed (-32768 to 32767) ? 9 <ENTER>

1 4 3 2 4

Bu program tekrar çalıştırıldığında bu defa farklı sayılar üretilecektir.

RUN

Random number seed (-32768 to 32767 ) ? 2 <ENTER>

4 5 1 1 3

Programın çalışması sırasında "Random number seed" mesaiı olmaksızın rasgele


sayıların üretilmesi için RANDOMIZE komutu TIMER ile birlikte kullanılır .
Aşağıdaki program, her ça lıştırılı şında rasgele 5 tane sayı üretir.

100 CLS
105 RANDOMIZE{TIMER)
110 FOR I=l TO 5
120 PRINT INT{RND*6)+1,
130 NEXT I
999 END

88
STANDART FONKSİYONLAR

RUN
2 5 5 4 1

RUN
1 3 2 4 5

RUN
2 5 4 2 3

Programda, RANDOMIZE komutu TIMER ile birlikte kullanıldığı için "Random


number seed" mesajı oluşmaz. Rasgele sayı üreteci, başlangıç değerini otomatik
olarak TIMER'den alır.

C-CHR$, INKEY$, STRING$, SPACE$, ASC, INPUTSı lEFT$,


RIGHT$, MID$, INSTR, VAl, STRS, TAB, LEN, DATE$, TiME$
FONKSiYONLAR!

CHR$ FONKSİYONU

ASCll kodu verilen karakteri üretir. ASCll kodlar tablosu kitabın sonunda ek
olarak verilmiştir.

CHR$(n)

Bu yazım sonucunda, ASCll kodu n olan karakter üretilir.

100 PRINT STRING$(20,CHR$(65))


999 END

RUN
AAAAAAAAAAAAAAAAAAAA

65 sayısı "A" karakterinin ASCll kodudur. Buna göre CHR$(65) komutuyla A


karakteri üretilmiştir. 20 sayısı da A karakterinin 20 tane üretileceğini gösterir.

Aşağıdaki program ise ikili yatay çizgi üretip görüntüler.

100 PRINT STRING$(20,CHR$(205))


999 END

89
STANDART FONKSİYONLAR

RUN

205 sayısı "=" karakterinin ASCll kodudur. Bu karakterden 20 tane üreti lerek
ikili yatay çizgi elde edilmiştir .

Pek çok programda ekranda text modunda, çizgilerden oluşan şekiller old uğunu
ve yazıların buralara yazılarak düzenli bir görünüş elde edildiğini biliyoruz . Şim­
di inceleyeceğimiz programda, çizgi karakterlerinin ASCll kodları kullan ılarak ek-
rana şeki l çizilmektedir.

100 CLS
110 LOCATE 5,20
120 PRINT CHR$(201);
130 FOR I=l TO 40
140 PRINT CHR$(205);
150 NEXT I
160 PRINT CHR$(187)
170 FOR I=l TO 10
180 LOCATE I+5,20
190 PRINT CHR$(186);SPACE$(40);CHR$(186)
200 NEXT I
210 LOCATE 16 , 20
220 PRINT CHR$(200);
230 FOR I=l TO 40
240 PRINT CHR$(205 ) ;
250 NEXT I
260 PRINT CHR$(188)
999 END

RUN

Örneğin 20 l sayısı " n- " (sol üst köşe) karakterin in ASCll kodudur. CHR$
(20 l) komutuyla bu karakter üretilmektedir. 205 say ısı ise "=" (ikili yatay çizg i)
karakterinin ASCl l kodudur FOR NEXT döngüsü yard ımıyla CHR$ (205) komutu
40 kez ça lı ştırılarak yanyana 40 adet "=====================" ka rakte-

90
STANDART FONKSİYONLAR

ri üretilip görüntülenmekte ve böylece üstteki çizgi "=" elde edilmektedir. l 87


sayısı " 11 " (sağ üst köşe) karakterinin ASCll karşılığıdır. CHR$ ( l 87) komutu bu
karakteri üretir. Şekildeki dikey çizgilGr ise 190 nolu satır tarafından üretilmiştir.
SPACE$ komutu parantez içinde verilen sayı kadar boşluk karakteri meydana geti-
rir.

INKEY$ FONKSİYONU

Klavyede herhangi bir tuşa basılıp basılmadığını kontrol eder. Genellikle bir
döngü ile kontrol edilerek programın akışını herhangi bir tuşun baslımasına kadar
durdurma işleminde kullanılır. Klavyede herhangi bir tuşa basılmamışsa '"' (null
string) üretir.

100
110
120 A$=INKEY$
130 IF A$="" THEN GOTO 120
140
150

Bu program çalıştırıldığıda kontrol 120 nolu satıra geldiğinde klavyede her-


hangi bir tuşa basılıp basılmadığı kontrol edilir. Hiçbir tuşa basılmamışsa A$ de-
ğişkenine "" aktarılmıştır. Böylece 130 nolu satır aracılığıyla tekrar 120 nolu sa-
tıra dönülür. Klavyede herhangi bir tuşa basılana kadar döngü devam eder. Her-
hangi bir tuşa basılırsa kontrol 140 nolu satıra geçer.

100 CLS
110 FOR I=l TO 10
120 PRINT I
130 PRINT "Devam etmek için herhangi bir tuşa basınız .. "
140 A$=INKEY$
150 IF A$="" THEN GOTO 140
160 NEXT I
999 END

Bu program çalıştırıldığında l ile l O arasındaki sayıları tek tek görüntüler.


Ancak her sayıdan sonra bir tuşa basılması mesajını görüntüler ve tuşa basılana
kadar bekler.

91
STANDART FONKSİYONLAR

STRING$ FONKSİYONU

Bir karakterin n sayıda üretilmesi amacıyla kullanılır.

STRING$ (n, "c")

Yukarıdaki yazım sonucu C karakteri n sayıda üretilir

100 PRINT STRING$ ( 10 , "*")


999 END

RUN
**********

Bu programda "*" karakteri 1O adet üretilip görüntülenmektedir.

SPACE$ FONKSİYONU

Belirli sayıda boşluk karakteri üretmek için kullanılır. SPACE$(n) biçiminde ya-
zılır ve n sayıda boşluk üretir. Örneğin A$=SPACE$(4) şeklindeki yazım sonunda
4 tane boşluk karakteri üretilerek A$ değişkeni ne aktarılır . Şimdi inceleyeceğimiz
programda SPACE$ fonksiyonu ku lla nılm ı ştır.

100 CLS
110 FOR I=l TO 10
120 A$=SPACE$(I)
130 LOCATE I,5
140 PRINT A$ ; "TUZLA" ;A$; "TUZLA"
150 NEXT I
999 END

Bu program çalıştırıldığına aynı satırdaki TUZLA yazıları giderek sağa kayacak


ve birbirinden uzaklaşacaktır. Çünkü A$ değişkenindeki boşluk sayısı her defas ın­
da artmaktadır.

ASC FONKSİYONU

Bir karakterin ASCl l kodunu üretir. X=ASC(A$) biçiminde yazılır . A$ birden


fazla karakterden oluşuyorsa sadece ilk karakterin ASCll kodu üretilir.

100 CLS
110 X=ASC( "T")

92
STANDART FONKSİYONlAR

120 PRINT "T harfinin ASCII kodu ";X


999 END

Run
T harf inin ASCII kodu 84

INPUT$ FONKSİYONU

INPUT$ (n) biçiminde yazılır ve klavyeden n sayıda karakterin girilmesini sağ­


lar. Giriş sırasında basılan karakterler ekranda görüntülenmezler. n sayıda karak-
tere basıldıktan sonra ENTER tuşuna basılmaksızın kontrol bir alttaki satırına ge-
çer.

100 A$=INPUT$(1)
110 PRINT A$
999 END
RUN
A

Bu program çalıştırıldıktan sonra A tuşuna basıldığını kabul edelim. Tuşa basıl­


dığı anda herhangi bir görüntüleme olmayacak ve A tuşunun ardından ENTER tuşu­
na basılması gerekmeyecektir. INPUT$ ( l) komutunda parantez içinde yer alan l
sayısı, sadece 1 karakterlik girişe izin verildiğini gösterir. A tuşuna basıldıktan
sonra ENTER tuşuna basılmasına gerek yoktur. INPUT$ (n) komutu mutlaka Alfasa-
yısal tipi bir değişkenle birlikte kullanılır.

Alfasayısal değişken = INPUT$(n)

Bu komutun çalıştırılması sonucunda girilen karakter (veya karakterler), = işare­


tinin sol tarafındaki alfasayısal değişkene atanır.

Şimdi inceleyeceğimiz programda ise klavyeden 5 karakterlik bilgi girişi yapıl­


masına izin verilmektedir.

100 A$=INPUT$(5)
110 PRINT A$
999 END

RUN
abcde

Programın çalıştırılması sırasında tuşlara basma anında basılan tuşların görün-


tülenmediğine dikkat ediniz. Görüntüleme işlemi PRINT komutu aracılığıyla yapıl­
maktadır.

93
STANDART FONKSİYONLAR

LEFT$ FONKSİYONU

Bu fonksiyon, bir stringin soldan itibaren belirli sayıda karakterini üretir.


LEFT$ (A$,n)
Bu komutla, A$ stringinin soldan itibaren n sayıda karakteri üretilir.
Aşağıdaki programda LEFT$ fonksiyonu kullanılmıştır.

100 A$="BİLGİSAYAR"
110 PRINT LEFT$(A$,5)
999 END

RUN
BİLGİ
Bu program, BİLGİSAYAR kelimesinin soldan itibaren 5 karakterini üretip gö-
rüntülem iştir.

RIGHT$ FONKSİYONU

RIGHT$ fonksiyonu, bir stringin sağdan itibaren beli rli sayıda karakterini üre-
tir.
RIGHT$ (A$, n)
Bu komutla, A$ stringinin sağdan itibaren n sayıda karakteri üretilir.
Aşağıdaki programda RIGHT$ fonksiyonu kullanılmıştır.

100 A$="BİLGİSAYAR"
11 O PRINT RIGHT$ (A$, 5)
999 END

RUN
SAYAR

Yukarıdaki programın ça lıştırılması sonucunda, BİLGİSAYAR stringinin sağdan


itibaren 5 karakteri üretilerek görüntülenm i ştir .

MID$ FONKSİYONU

Yazım ı;

MID$ (A$, n,m)

94
STANDART FONKSİYONLAR

Bu fon_~siyon, A$ stringinin baştan n. karakterinden itibaren m sayıda karakteri-


ni üretir. Ornek program aşağıda görülmektedir.

100 A$="BİLGİSAYAR"
110 PRINT MID$(A$,6,3)
999 END

RUN

SAY

Bu program çalıştırıldığında, BİLGİSAYAR kelimesinin baştan 6. harfinden iti-


baren 3 harf üretilip görüntülenir.

INSTR FONKSİYONU

INSTR fonksiyonu bir stringde, belirli bir karakterin baştan kaçınca sırada oldu-
ğunu bulur.

INSTR ("TUZLA", "L") 4 sayısı üretilir, çünkü "L" harfi baştan 4. sırada
INSTR ("TEKNİK", "E") 2 sayısı üretilir, çünkü "E" harfi baştan 2. sırada.

Eğer string içinde, aranılan karakterden birden fazla varsa ilkinin sıra numarası
üretilir.

INSTR ("ANNE", "N") 2 sayısı üretilir, çünkü ilk "N" harfi soldan 2. sırada

Eğer, string içinde aranılan karakter yoksa, O sayısı üretilir.


INSTR ("BİLGİSAYAR", "N") O sayısı üretilir, çünkü "N" harfi yok.

Örnek program:

100 A$="ABCDE"
110 X=INSTR(A$, "A")
120 PRINT X
130 X=INSTR(A$, "C")
140 PRINT X
150 X=INSTR(A$, "G")
160 PRINT X
999 END

RUN
1
3
o
95
STANDART FONKSİYONLAR

VAL FONKSİYONU

Alfanümerik bir sabit veya değişkendeki sayısal değeri bulur. X = VAL(A$) bi-
çiminde yazılır ve A$ değişkenindeki alfanümerik sabitteki sayısal değeri bulur.

100 CLS
110 X=VAL ( "A35GHB")
120 Y=VAL("l")
130 Z=VAL( "345"}
140 PRINT X
150 PRINT Y
160 PRINT Z
170 PRINT Z+4
999 END

Run
o
1
345
347

Alfanümerik sabitteki ilk karakter alfabetik ise (yani bir harf ise) VAL fonksiyo-
nu O değerini üretir.

STR$ FONKSİYONU

Sayısal bir değeri alfanümerik bir değere dönüştürür. VAL fonksiyonunun tersi-
ni yapar. A$=STR$(X) biçiminde yazılı r. Bu durumda X sayısı alfanümeriğe çevri-
lerek sonuç A$ değişkenine aktarılır.

100 A$ =STR$(123}
110 PRINT A$
120 PRINT A$+2

Bu program çalıştırıldığında 120 nolu satırda Type mismatch hata mesajı ve-
rir. Çünkü A$ 'da 123 sayısı alfanümerik değer olarak bulunmaktadır ve toplama
işlem ine konu olamaz.
Aşağıdaki programda, FORNEXT döngüsü kullanılarak, 1 'den 9'a kadar sayılar,
alfasayısal tipe çevrilerek yanyana görüntülenmiştir. STR$ komutu, sayısal ifade-
yi string tipine çevirir.

100 A$=""
110 FOR I =O TO 9

96
STANDART FONKSİYONLAR

120 A$=A$+STR$(I)
130 PRINT A$
140 NEXT I
999 END

RUN

o
01
012
0123
01234
012345
0123456
01234567
012345678
0123456789

TAB FONKSİYONU

TAB fonksiyonu stringlerin ekrana belli bir aralıkta yazılmasını sağlar. Genel-
likle PRINT komutuyla birlikte kullanılır.

PRINT TAB (x) ;

Yukarıdaki kullanımda PRINT komutunun yazdıracağı string ekranın X. sütunun-


dan itibaren yazılır. Ekran 80 sütundan meydana gelmektedir.

PRINT.TAB (10); "BİLGİSAYAR"

Yukarıdaki yazıma göre, BİLGİSAYAR kelimesi ekranın 10. sütunundan itiba-


ren yazılacaktır.
100 'BU PROGRAMDA STRİNG TİPİ İFADE
110 'FORMATLI OLARAK YAZDIRILMIŞTIR
120 A$="BİLGİSAYAR"
130 B$="PRINTER"
140 PRINT TAB(20);A$;TAB(35);B$
999 END

RUN

BİLGİSAYAR PRINTER

97
STANDART FONKSİYONLAR

Bu program çalıştırıldığında, BİLGİSAYAR kelimesi ekranın 20. sütunundan,


PRiNTER kelimesi ise 35. sütunundan itibaren yazılacaktır.

LEN FONKSİYONU

LEN fonksiyonu, parametre olarak verilen bir alfasayısal (string) ifadenin kaç
karakterden oluştuğunu (yani uzunluğunu) bulur.
LEN (X$)
Yukarıdaki yazım sonucunda X$ stringinin kaç karakterden oluştuğu bulunur.

Örnek:

100 PRINT LEN ("EKRAN")


RUN
5

EKRAN kelimesi 5 karakterden oluştuğu için sonuçta 5 sayısı üretilmiş ve gö-


rüntülenmiştir. Aşağıdaki programda da LEN fonksiyonu kullanılmıştır.

100 A$="KLAVYE"
110 PRINT LEN(A$)
999 END

RUN
6

KLAVYE kelimesi 6 harften oluştuğu için, 6 sayısı üretilmiş ve görüntülenmiş-


tir.

TiME$ FONKSİYONU

"Saat : Dakika : Saniye" formatında zamanı üreten fonksiyondur. Ayrıca komut


olarak kullanılıp yeni zaman tanımlanabilmesini de sağlar.
10 PRINT TIME$
RUN
02:42:19

Yukarıdaki kullanımda, TiME$ fonksiyonu, bilgisayarın hafızasında kayıtlı bu-


lunan zamanı okumuş ve PRINT komutu aracılığıyla zaman görüntülenmiştir.

02:42:19

98
STANDART FONKSİYONLAR

Saat Dakika Saniye

TiME$ fonksiyonu, komut olarak kullanılarak yeni bir zaman tanımı da yapıla­
bilir. Örneğin hafızadaki saat yanlış olduğundan doğru saat tanımı yapılmak iste-
nebilir. Bu durumda TiME$ komutu aşağıdaki gibi kullanılacaktır:

10 TIME$="04:45:20"
RUN

Yukarıdaki komut çalıştırıldığında, sistemin saati yeniden tanımlanmış olur.

04:45:20

Saat Dakika Saniye

Şimdi inceleyeceğimiz programda, TiME$ fonksiyonu kullanılmıştır.

PR41
100 CLS
110 PRINT TIME$
999 END

RUN
02:50:49

DATES FONKSİYONU

"Ay : Gün : Yıl" formatında, günün tarihini üreten fonksiyondur. Ayrıca komut
olarak kullanılıp yeni bir tarih tanımlanabilmesini de sağlar.

10 PRINT DATE$
RUN
07-30-1993

Yukarıdaki kullanımda, DATE$ fonksiyonu, bilgisayarın hafızasında kayıtlı bu-


lunan tarihi okumuş ve PRINT komutu aracılığıyla günün tarihi görüntülenmiştir.

07-30-1993

Ay Gün Yıl

DATE$ fonksiyonu, komut olarak kullanılarak yeni bir tarih tanımı da yapılabi-
1i r.

99
STANDART FONKSİYONLAR

10 DATE$ = "08-15-1993"
RUN

Bu durumda, bilgisayarın hafızasına yeni tarih 08-15-1993 olarak yazılmış


olur.

08-15-1993

Ay Gün Yıl

Aşağıdaki programda, DATE$ fonksiyonu kullanılarak günün tarihi sistemden


okunmuş ve PRINT komutu aracılığıyla da görüntülenmiştir.

100 CLS
110 PRINT DATE$
999 END

RUN
07-30-1993

100
•@
EH.BAN DlJZENLEME -ve
PHINTEHDEN ÇHHTI ALMA

A-PRINT USING KOMUTU


Özellikle hesaplama işlemlerinde, kullanılan ve elde edilen sayısal sonuçların
ekranda belli bir düzen içersinde görüntülenmesi, arzu edilen hususlardandir. BA-
SIC programlama dilinde, sayıların belli bir formatta görüntülenmesinde PRINT
USING komutu kullanılır.
PRINT USING komutunun yanında çifttırnak ( " " ) içinde verilen ti (diyez) ka-
rakterleri, sayıların hangi formatta görüntüleneceğini tanımlar.

10 PRINT USING " ###. ##" i 125. 352


RUN
125.35

Yukarıdaki komut çalıştırıldığında, sayının tam kısmı 3 basamakta, kesirli kısım


ise 2 basamakta görüntülenir.

"###.##"
Tamsayı kısmı Kesirli kısmı

10 PRINT USING "####.###"; 1256.4589

RUN
1256.459

Yukarıdaki örnekte ise 1256.4589 sayısının tam sayı kısmı 4 basamakta, ke-
sirli kısmı ise 3 basamakta görüntülenmiştir. Kesirli kısmın görüntülenmesinde yu-
varlama işlemi yapılmıştır.

####.###
Tarnsayı kısmı Kesirli kısmı

101
EKRAN DÜZENLEME ve PRİNTERDEN ÇIKTI ALMA

10 PRINT USING "##.##"; 14.4862


RUN
14.49

## . ##

Tamsayı kısmı Kesirli kısmı

B- LOCATE DEYiMi
Kürsörü, ekranın tanımlanan satır ve sütununa konumlandırmakta kullanı l ır. LO-
CATE komutunun sintaksı aşağıdaki gibidir.

LOCATE Satır no, Sütun no

LOCATE komutu iki parametre alır. Bu parametrelerden birincisi sa tı r, ikincisi


ise sütun numarasıdır. Ekran, 25 satır, 80 sütundan oluşmaktadır.

10 LOCATE 15, 25
20 PRINT "BİLGİSAYAR"
99 END

Yukarıdaki program çalıştırıldığında , 1O nolu satırdaki LOCATE komutu , kürsö-


rü ekranın 15. satır, 25. sütuna konumlandırılır ve Bİ LGİSAYAR kelim esini bu
noktadan itibaren yazdırır.

PROGRAMLARA ŞİFRE VERİLMESİ

Bazı profesyonel programlarda, programın çalıştırı l ması kullanı c ının doğ ru şif­
reyi girmesi şartına bağlanmıştır . Aşağıdaki programda , şifrenin nasıl veri ldiği
gösterilmektedir.

100 CLS
110 LOCATE 12,20 : PRINT "ŞİFREYI G İ RİNİZ **** **"
120 LOCATE 10,38
130 A$=INPUT$ (6)
140 IF A$="BOLTON" THEN LOCATE 18,20:PRINT "ŞİFREYI BİLDİNİZ" : GOTO 999
150 LOCATE 18,20:PRINT "YANLIŞ ŞİFRE ... "
999 END

RUN

102
EKRAN DÜZENLEME ve PRİNTERDEN ÇIKTI ALMA

ŞİFREYİ GİRİNİZ: * * * * *

ŞİFREYİ BİLDİNİZ

Bu program çalıştırıldığında, ekrana önce ŞİFREYİ GİRİNİZ: * * * * * * me-


sajı gelecektir. 6 adet * karakteri şifrenin 6 karakterden oluştuğunu gösterir. Kul-
lanıcı sırayla 6 tane tuşa basar ve ENTER tuşuna basmasına gerek olmaksızın bu
6 karakter A$ değişkenin~ aktçırılı_r. ~u. programdaki şifre BOLTON kelimesidir.
Doğru şifre girildiğinde ŞiFREYi BiLDiNiZ yazısı görüntülenecek, yanlış şifre gi-
rildiğinde ise YANLIŞ ŞİFRE mesajı verilecektir. Bu tip bir şifre programı, isteni-
len programın başına eklenerek programların ancak doğru şifreyi bilen kişilerce ça-
lıştırılabilmeleri sağlanabilir.

C- COLOR DEYiMi
Text modunda, zemin, çerçeve ve yazı renklerini tanımlar.

COLOR yazı rengi, zemin rengi, çerçeve rengi

Yukarıda da görüldüğü gibi COLOR komutu 3 parametre alabilir. Şimdi, bu pa-


rametreleri inceleyelim.

Yazı rengi: Ekrandaki yazının rengini belirleyen parametredir. 0-31 ara-


sı değerler alabilir.

Zemin rengi : Yazının yazıldığı zeminin rengini belirler, 0-37 arası değer­
ler alabilir.

Çerçeve rengi: Ekranın etrafına belirlenen renkte bir çerçeve çizer, 0-15
arası değerler alabilir.

Her üç parametrenin birden kullanılma zorunluluğu yoktur. Örneğin sadece baş­


taki iki parametre kullanılabilir.

COLOR yazı rengi, zemin rengi

Bu kullanıma göre, ekrana çerçeve çizilmeyecektir, çünkü çerçeve rengi ile il-
gili parametre verilmemiştir.

103
EKRAN DÜZENLEME ve PRİNTERDEN ÇIKTI ALMA

Aşağıdaki tabloda, renklerin sayısal karşılıkları verilmektedir.

RENK KOD RENK KOD

Siyah o Parlak mavi 9


Mavi 1 Parlak yeşil 10
Yeşil 2 Parlak turkuaz 11
Turkuaz 3 Parlak kırmızı 12
Kırmızı 4 Parlak pembe 13
Pembe 5 Sarı 14
Kahverengi 6 Parlak beyaz 15
Beyaz 7
Gri 8

Yazı rengi parametresinde, renk koduna 16 sayısı eklenirse o renkteki yazının


yanıp sönmesi (blink) sağlanır.
Orneğin kırmızı rengin kodu 4'tür. 4+ 16 yani 20 sayısı, kırmızı renkli yazı­
nın yanıp sönmesini sağlar.
Şimdi· inceleyeceğimiz program, renklerle ilgili bir gösteri programıdır. CO-
LOR komutunun parametreleri, iç içe FOR-NEXT döngüleriyle değiştirilmektedir.

100 '*****RENKLERLE İLGİLİ GôSTERİ PROGRAMI*****


110 1

120 CLS
130 FOR I=l TO 7
140 FOR J=l TO 15
150 FOR K=l TO 31
160 COLOR K,I,J
170 CLS
180 LOCATE 12,30
190 PRINT "BİLGİSAYAR"
200 FOR M=l TO 1000
210 NEXT M
220 NEXT K
230 NEXT J
240 NEXT I
999 END

Bu program çalıştırıldığında ekranda çerçeve, zemin ve BİLGİSAYAR yazısının


renkleri sürekli olarak değişir. Programda, tanımlı olan bütün renkler kullanılmış­
ı ı r.
200 ve 21 O nolu satırlardaki döngü, sadece belirli bir sürenin geçmesini (ge-
cikme) sağlayan döngüdür. Bu tip döngüler Sahte Döngü (DUMMY LOOP) olarak
adlandırılırlar. Çünkü gecikme sağlanması dışında, tekrarlanan herhangi bir komut
yoktur.

104
EKRAN DÜZENLEME ve PRİNTERDEN ÇIKTI ALMA

COLOR KOMUTUNUN DİGER KUU.ANIMLARI

COLOR komutunun üç parametre olabileceği daha önce belirtilmişti. Ancak bu


parametrelerin hepsinin verilmesi zorunluluğu yoktur. Verilmeyen parametrenin
yeri boş bırakılarak, COLOR komutu l veya 2 parametreyle de çalıştırılabilir.

COLOR 2, l Burada yazı rengi yeşil, zemin rengi ise mavi olarak ta-
nımlanmıştır. Çerçeve parametresi yer almadığı için çerçe-
ve çizilmez.

COLOR 4,,2 Bu örnekte, yazı rengi kırmızı olarak tesbit edilmiştir. İkin­
ci parametrenin yeri boş bırakıldığı için zemin rengi siyah
olarak kalmaya devam edecektir. Çerçeve ise yeşil renkte
tanımlanmıştır.

COLOR , l ,4 Bu durumda, zemin rengi mavi, çerçeve rengi ise kırmızı


olacaktır. İlk parametrenin (yazı rengi) yeri boş bırakıldığı
için, yazılar default renk olan beyaz renkte yazılacaktır.
COLOR ,,2 Bu örnekte, ilk iki parametrenin yeri boş bırakıldığı için
yazı ve zemin renkleri default değerlerde kalacaktır (Yazı
rengi beyaz, zemin rengi siyah). Çerçeve rengi ise yeşil
olarak tesbit edilmiştir.

COLOR 7,0,0 Bu komutla bütün parametreler default değerlere döndürü-


lür. (Yazı rengi beyaz, zemin siyah ve çerçeve yok).

D- WIDTH DEYİMİ
Ekranda ve yazıcıda (printer) bir satırda yer alabilecek karakter sayısını belir-
lemekte kullanılır. Ekran genişliği için iki seçenek vardır. Bunlar 40 ve 80 sayı­
larıdır.

WIDTH 40 Ekranda bir satırda 40 karakterin yer olmasını sağlar.

WIDTH 80 Ekranda bir satırda 80 karakterin yer almasını sağlar.

WIDTH "LPTl: ", 75 Yazıcının bir satıra 75 karakter yazmasını sağlar.

Örnek program :

100 CLS
110 WIDTH 40
120 PRINT "BİLGİSAYAR"

105
EKRAN DÜZENLEME ve PRİNTERDEN ÇIKTI ALMA

130 PRINT "Bir tuşa basınız .. "


140 A$=INKEY$
150 IF A$="" THEN GOTO 140
160 WIDTH 80
170 PRINT "BİLGİSAYAR"
999 END

Bu program çalıştırıldığında ilk BİLGİSAYAR yazısının harfleri daha büyük


olacaktır. Çünkü ekranda bir satırda yer alan karakter sayısı 40 olarak tanımlan­
mıştır. İkinci BİLGİSAYAR yazısı ise normal karakterlerle yazılacaktır. Herhangi
bir tanımlama yapılmadıkça ekran genişliği 80 karakterdir. (Yani default değer
80'dir).

UST
Bellekte yüklü bulunan programın ekranda görüntülenmesi amacıyla kullanılır.
LIST yazıp ENTER tuşuna basıldığında bellekteki program ekranda görüntülenir.
Sadece LIST yazılarak ENTER tuşuna basıldığında programın tümü listelenecek-
tir. BASIC editöründe ekran 24 satırdan oluştuğu için 24 satırı aşan programların
listelenmesinde son 24 satır ekranda görüntülenir, diğer satırlar ise yukarı doğru
kayarak görüntüden çıkar.
LIST komutunu çeşitli parametrelerle kullanılarak, programın belirli yerlerinin
listelenmesi de mümkündür. Aşağıda, LIST komutunun çeşitli parametrelerle kulla-
nılması görülmektedir:

LIST 50 <ENTER> Programın yalnızca 50. satırı görüntülenir.


LIST l 00-160 <ENTER> l 00. ve 160. satır dahil tüm aradaki satırlar gö-
rüntülenir.
LIST 50- <ENTER> 50. satır dahil programın sonuna kadar olan bölü-
mü listelenir.
LIST -50 <ENTER> Programın ilk satırından 50. satıra kadar olan bö-
lümü listelenir. (50. satır dahil).

lllST
Bellekte yüklü bulunan programın yazıcıya (Printer) listelenmesi amacıyla kul-
lanılır. LLIST komutunun tüm özellikleri LIST komutu ile aynıdır.

LLIST <ENTER> Programın tümü yazıcıya listelenir.


LLIST 50 <ENTER> Sadece 50. satır yazıcıya listelenir.
LLIST l 00-160 <ENTER> l 00. ve 160. satırlar dahil tüm aradaki satır­
lar yazıcıya listelenir.

106
EKRAN DÜZENLEME ve PRİNTERDEN ÇIKTI ALMA

LLIST 50- <ENTER> 50. satır dahil programın sonuna kadar olan
bölümü yazıcıya listelenir.
LLIST -50 <ENTER> Programın ilk satırından 50. satıra kadar olan
bölümü yazıcıya listelenir.

LPRINT KOMUTU

Şimdiye kadar işlediğimiz programlarda, çıkış cihazı olarak hep ekran kullanıl­
dı. Yani elde edilen değerler hep ekranda görüntülendi. LPRINT komutu ise değiş­
ken, sabit ve ifadelerin yazıcıya (printer) yazdırılmasında kullanılır. LPRINT ko-
mutunun kullanımı aynı PRINT komutunda olduğu gibidir. LPRINT komutuyla yazı­
cıya birtakım değerler yazdırılmak istendiğinde, yazıcı (printer) bilgisayara bağlı
ve açık durumda olmalıdır.

100 A$="BİLGİSAYAR"
110 B=25
120 LPRINT A$
130 LPRINT B
999 END

Bu program çalıştırıldığında BİLGİSAYAR kelimesi ve 25 sayısı yazıcıya


(printer) yazdırılır.

107
10
§JIHALAMA ve
ABAMA iŞLEMLEHi

A- SIRALAMA İŞLEMLERİ
SAYll.AR.IN SIRAlANMASI

Sayıların, büyükten küçüğe veya küçükten büyüğe doğru sıralanmasında kulla-


nılan programcılık tekniklerinden bir tanesi BUBBLE SORTING (Kabarcık sıralama)
metodudur. Bu metotta iç içe iki adet döngü kullanılır. Dıştaki döngü, dizi dE'.ğiş­
kenin ilk elemanından başlar ve sondan bir önceki elemana kadar devam eder. içte-
ki döngü ise, dış döngü kontrol değişkeninin bir fazla değerinden başlar ve dizinin
son elemanına kadar devam eder.
Üstteki sayılar tek tek, kendilerinden sonra gelen diğer sayılarla karşılaştırıla­
rak büyüklüğe göre yer değiştirme işlemi yapılır.
Şimdi inceleyeceğimiz programda, klavyeden girilen l O tane sayı, BUBBLE
SORTING metoduyla büyükten küçüğe doğru sıralanmaktadır.

100 'BU PROGRAM KLAVYEDEN GİRİLEN SAYILARI


110 'BÜYÜKTEN KÜÇÜGE DOGRU SIRALAR
120 1

130 OPTION BASE 1


140 DIM A(lO)
150 CLS:KEY OFF
160 FOR I=l TO 10
170 PRINT I;". SAYIYI GİRİNİZ>";
180 INPUT "" ,A(I)
190 NEXT I
200 '
210 FOR I=l TO 9
220 FOR J=I+l TO 10
230 IF A(I}<A(J} TREN SWAP A(I),A(J}
240 NEXT J
250 NEXT I
260 '
270 PRINT

109
SIRALAMA ve ARAMA İŞLEMLERİ

280 FOR I=l TO 10


2 9O PRINT A( I )
300 NEXT I
999 END

RUN

GİRİNİZ > 56
1. SAYIYI
2 . SAYIYI GİRİNİZ > 25
3 . SAYIYI GİRİNİZ > 9
4 . SAYIYI GİRİNİZ > 47
5. SAYIYI GİRİNİZ > 12
6. SAYIYI GİRİNİZ > 3
7 . SAYIYI GİRİNİZ > 97
8 . SAYIYI GİRİNİZ > 40
9. SAYIYI GİRİNİZ > 14
10. SAYIYI GİRİNİZ > 37

97
56
47
40
37
25
14
12
9
3

Sıralamadan önce Sıralamadan sonra


A(lO) A(lO)
56 97
25 56
9 47
47 40
12 37
3 25
97 14
40 12
14 9

110
SIRALAMA ve ARAMA İŞLEMLERİ

Aşağıdaki program ise, klavyeden girilen sayıları küçükten büyüğe doğru sıra­
lar.

100 'BU PROGRAM KLAVYEDEN GİRİLEN SAYILARI


110 'KÜÇÜKTEN BÜYÜGE DOGRU SIRALAR
120 1

130 OPTION BASE 1


140 DIM A(lO)
150 CLS:KEY OFF
160 FOR I=l TO 10
170 PRINT I;". SAYIYI GİRİNİZ>";
180 INPUT "" ,A(I)
190 NEXT I
200 1

210 FOR I=l TO 9


220 FOR J=I+l TO 10
230 IF A(I}>A(J} THEN SWAP A(I},A(J)
240 NEXT J
250 NEXT I
260 1

270 PRINT
280 FOR I=l TO 10
290 PRINT A(I}
300 NEXT I
999 END

Bu programda da BUBBLE SORTING metodu kullanılmıştır.

STRINGLERİN SIRAl.ANMASI

BASIC programlama dilinde, Alfasayısal (String) tipi ifadeler arasında da bü-


yüklük-küçüklük ilişkisi vardır. Örneğin:

"B" > "A" ~ TRUE (DOGRU)


"C" < "D" ~ TRUE (DOGRU)
"CELAL" > "AHMET" ~ TRUE (DOGRU)

Stringlerin karşılaştırılmasında önce ilk harflere bakılır. İlk harfler aynı ise
ikinci ve sırasıyla daha sonraki harflere bakılarak değerlendirme yapılır.

100 'BU PROGRAM KLAVYEDEN GİRİLEN İSİMLERİ


110 'ALFABETİK SIRAYA DİZER
120 1

130 DIM AD$(10}


140 CLS:KEY OFF

111
SIRALAMA ve ARAMA İŞLEMLERİ

150 '
160 FOR I=l TO 10
170 PRINT !;". İSMİ GİRİNİZ >"o f

180 INPUT "",AD$ (I)


190 NEXT I
200 '
210 FOR I=l TO 9
220 FOR J=I+l TO 10
230 IF AD$(I)<AD$(J) TREN GOTO 270
240 GEC$=AD$(I)
250 AD$(I)=AD$(J)
260 AD$(J)=GEC$
270 NEXT J
280 NEXT I
290 '
300 PRINT
310 FOR I=l TO 10
320 PRINT AD$(I)
330 NEXT I
999 END

RUN
1. İSMİ GİRİNİZ > SUAT
2. İSMİ GİRİNİZ> KEMAL
3. İSMİ GİRİNİZ> ORHAN
4. İSMİ GİRİNİZ > AHMET
5. İSMİ GİRİNİZ > SALİH
6. İSMİ GİRİNİZ >ALİ
7. İSMİ GİRİNİZ> EMİN
8. İSMİ GIRINIZ > CELAL
9. İSMİ GİRİNİZ > ZEKERİYA
10. İSMİ GİRİNİZ >OSMAN

AHMET
ALİ
CELAL
EMİN
KEMAL
ORHAN
OSMAN
SALİH
SUAT
ZEKERİYA

Aşağıdaki programda ise, öğrencilerin aldıkları notlara göre sıralama yapılmak­


tadır. Notlar, büyükten küçüğe doğru sıralanmış, isimlerde de notlara bağlı olarak

112
SIRALAMA ve ARAMA İŞLEMLERİ

yer değiştirmiştir.

100 'BU PROGRAM ÖGRENCİLERİN ADLARINI


110 'ALDIKLARI NOTA GÖRE SIRALAR
120 '
130 DIM AD$(10),PUAN(l0)
140 CLS:KEY OFF
150 '
160 FOR I=l TO 10
170 PRINT I;". ÖGRENCİNİN ADINI GİRİNİZ >". 1

180 INPUT "",AD$ (I)


190 PRINT I;". ÖGRENCİNİN NOTUNU GİRİNİZ >" i
2 OO INPUT " " , PUAN ( I )
210 NEXT I
220 '
230 FOR I=l TO 9
240 FOR J=I+l TO 10
250 IF PUAN{I)>PUAN{J) THEN GOTO 300
260 SWAP PUAN(I),PUAN(J)
270 GEC$=AD$(I)
280 AD${I)=AD${J)
290 AD$(J)=GEC$
300 NEXT J
310 NEXT I
320 '
330 PRINT
3 4O PRINT "ADI PUANI"
350 PRINT "=================="
360 FOR I=l TO 10
370 PRINT AD${I),PUAN(I)
380 NEXT I
999 END

8- SWAP İŞLEMİ
İki değişkende bulunan değerlerin birbirine aktarılması işlemi ise iki şekilde
yapılır:

1- Üçüncü bir değişken kullanılması:

A değişkeninde 5, B değişkeninde ise 8 sayısının bulunduğunu düşünelim. A


değişkenindeki 5 sayısının B değişkenine, B değişkenindeki 8 sayısını ise A de-
ğişkenine aktarmak istediğimizde üçüncü bir değişkenin (örneğin C değişkeni) geçi-
ci olarak kullanılmasına gerek vardır.
Burada önce A değişkeninin içindeki sayı C değişkenine aktarılarak kaybolması
önleniyor. Daha sonra da B değişkenindeki sayı A değişkenine aktarılıyor. Daha

113
SIRALAMA ve ARAMA İŞLEMLERi

sonra da C değişkenindeki sayı (yani A değişkeninin ilk değeri) B değişkenine ak-


tarılarak işlem tamamlanmış oluyor.
Aşağıdaki programda, A ve B değişkenlerinin içlerindeki değerler birbirlerine
aktarılmıştır.

100 A=15
110 B=80
120 PRINT "DEGİŞİMDEN ÖNCE .. "
130 PRINT A= 11 ;A, 11 B= 11 ;B
11

140 PRINT
150 C=A
160 A=B
170 B=C
180 PRINT "DEGİŞİMDEN SONRA .. •
190 PRINT 11 A= 11 ;A 1 11 B= 11 ;B
999 END

RUN
DEGİŞİMDEN ÖNCE ..
A=15 B = 80

DEGİŞİMDEN SONRA ..
A=80 B=15

2- SWAP komutu kullanılarak:

SWAP komutu, parametre olarak verilen iki değişkenin içindeki değerleri birbi-
rine aktarır.

SWAP A,B

Bu komutun çalıştırılması sonucu A değişkeninin değeri B değişkenine, B değiş­


keninin değeri ise A değişkenine aktarılmış olur.
Aşağıdaki programda SWAP komutu kullanılarak A ve B değişkenlerindeki de-
ğerler yer değiştirmiştir.

100 A=50
110 B=60
120 PRINT "DEGİŞİMDEN ÖNCE .. "
13 O PRINT "A=" ; A, "B=" ; B
140 PRINT
150 SWAP A,B
160 PRINT "DEGİŞİMDEN SONRA .. "
170 PRINT "A=" ;A, "B=" ;B

114
SIRALAMA ve ARAMA İŞLEMLERİ

999 END

RUN
DEGİŞİMDEN ÖNCE ..
A=50 B = 60

DEGİŞİMDEN SONRA ..
A=60 B=50

.. . . .
C- BASIC PROGRAMLAMA DiLiNDE ARAMA iŞLEMLERi:

Arama işlemleri bilgisayar programcılığında en çok yapılan işlemlerdir. Şimdi


inceleyeceğimiz programda l O öğrencinin numarası, adı, semti ve telefonu FqR -
NEXT döngüsünde yer alan READ satırı ile dizi değişkenlere okutulmaktadır. Oğ­
rencilere ilişkin bilgiler programın en alt bölümündeki DATA satırlarında yer al-
maktadır.

100 'BU PROGRAM NUMARAYA GÖRE ARAMA İŞLEMİ YAPAR


110 '
115 CLS : KEY OFF
120 DIM N0(20) , AD$ (20) , SEMT$ (20) , TEL$ (20)
130 FOR I=l TO 10
140 READ NO(I) , AD$(I) , SEMT$ (I) TEL$(I)
1

150 NEXT I
160 '
170 INPUT "Aradığınız öğrencinin numarasını giriniz >",ARA
180 FOR I=l TO 10
190 IF ARA=NO(I) THEN GOTO 220
200 NEXT I
210 GOTO 270
220 B=l
230 PRINT "Numarası : ";NO(I)
240 PRINT "Adı : ";AD$ (I)
250 PRINT "Semti :";SEMT$(I)
260 PRINT "Telefonu : ";TEL$ (I)
270 PRINT
280 IF B=O THEN PRINT "Bu numaralı bir kişi yok .. "
290 PRINT
300 INPUT "Devam etmek istiyor musunuz (E/H) >",C$
310 IF C$="E" OR C$="e" THEN B=O : PRINT : GOTO 170
320 END

115
SIRALAMA ve ARAMA İŞLEMLERİ

330 DATA 1 , SERGEN , BEŞİKTAŞ , 1234565


340 DATA 2 , TUGAY , GALATASARAY , 3214322
350 DATA 3 , RIDVAN , FENERBAHÇE , 2345321
360 DA'rA 4 , ALPAY 1 LEVENT, 2345321
370 DATA 5 , MEHMET , ETİLER , 4323451
380 DATA 6 , OGUZ , BOSTANCI , 2343213
390 DATA 7 , AYKUT , ERENKÖY , 3242532
400 DA.TA 8 , RÜŞTÜ , GÖZTEPE , 2645214
410 DATA 9 , RECEP , BEYKOZ , 2345241
420 DATA 10 , FEYYAZ , MODA , 3553425

Bu program çalıştırıldığında hangi numaralı öğrencinin arandığı sorulur. Öğren­


cilere 1 ile 1O arasında numaralar verilmiştir. Bu numaralardan birisi girildiği
taktirde ilgili öğrenciye ilişkin bilgiler görüntülenir. Programdaki B değişkeni ara-
nan bilginin bulunup bulunmadığını gösterir. Aranan bilgi varsa B değişkeni 1 ol-
maktadır. Normal değeri ise O' dır. B=O durumunda "Bu numaralı bir kişi yok .. " me-
sajı görüntülenir.

Şimdi de bu programda bazı değişiklikler yaparak isme göre arama yapan prog-
ramı inceleyelim.

100 'BU PROGRAM İSME GÖRE ARAMA İŞLEMİ YAPAR


110 '
115 CLS : KEY OFF
120 DIM N0(20} , AD$(20) , SEMT$(20} , TEL$(20}
130 FOR I=l TO 10
140 READ NO(I} , AD$(I} , SEMT$(I) , TEL$(I)
150 NEXT I
160 '
170 INPUT "Aradığınız öğrencinin adını giriniz >",ARA$
180 FOR I=l TO 10
190 IF ARA$=AD$(I) THEN GOTO 220
200 NEXT I
210 GOTO 270
220 B=l
23 O PRINT "Numarası : "; NO ( I}
240 PRINT "Adı : ";AD$ (I)
250 PRINT "Semti :";SEMT$(I}
260 PRINT "Telefonu :";TEL$(I)
270 PRINT
280 IF B=O THEN PRINT "Bu isimde bir kişi yok .. "
290 PRINT
300 INPUT "Devam etmek istiyor musunuz (E/H} >",C$

116
SIRALAMA ve ARAMA İŞLEMLERİ

310 IF C$="E" OR C$="e" THEN B=O : PRINT : GOTO 170


320 END
330 DATA 1 1 SERGEN BEŞİKTAŞ
I 1234565
I

340 DATA 2 , TUGAY , GALATASARAY , 3214322


350 DATA 3 I RIDVAN ' FENERBAHÇE 2345321I

360 DATA 4 I ALPAY LEVENT, 2345321


I

370 DATA 5 , MEHMET , ETİLER 4323451


1

380 DATA 6 , OGUZ , BOSTANCI , 2343213


390 DATA 7 , AYKUT , ERENKÖY , 3242532
400 DATA 8 , RÜŞTÜ , GÖZTEPE , 2645214
410 DATA 9 , RECEP , BEYKOZ , 2345241
420 DATA 10 FEYYAZ ' MODA
I 3553425
I

Bu programda, önceki programa göre temel değişiklik 170 ve 190 numaralı sa-
tırlarda yapılmıştır. Diğer değişiklikler programın çalışmasına etkili olmayan sade-
ce programın yeni fonksiyonuna uygun mesajların yazılması şeklindeki değişiklik­
lerdir. Orneğin 280 nolu satırdaki "Bu numaralı bir kişi yok .. " mesajı "Bu isimde
bir kişi yok .. " şeklinde değiştirilmiştir.

Kitabın "DATA DOSYASI OLUŞTURMA" adlı bölümünde de bazı arama program-


ları yer almaktadır.

117
SIRALAMA ve ARAMA İŞLEMLERİ

118
ÜNİTE il
ALT PH06HAMLAH (Subroutine)

A- AlTPROGRAM KAVRAMI
Daha önceki bölümlerde incelediğimiz programlar, genellikle kısa ve bütünsel
bir yapıya sahip programlardı. Uzun programların yazılması ve/veya bazı program
parçalarının tekrar tekrar çalıştırılmaları gerektiğinde altprogramlar (Subprogram-
subroutine) gündeme gelir.
Adının da çağrıştırdığı gibi altprogram, esas programın bir parçasıdır. Altprog-
ram, belli bir işi yapan bir program parçasıdır ve esas programın herhangi bir nok-
tasında, kontrol altprograma aktarılarak altprogram çalıştırılır. Altprogram çalıştık­
tan sonra, kontrol tekrar esas programın alt programı çağıran noktasına geri döner.
Kontrolün, esas programdan altprograma gönderilmesine 11 altprogramın çağrılması 11
denir. Bir altprogram, programın birkaç yerinde çağrılıp kullanılabilir. Altprogramı
çağıran esas programa 11 ana program 11 (main program) denir.
Aşağıdaki şekilde, bir altprogramın ana program tarafından çağrılıp kullanılma­
sı görülmektedir.

Ana
program

Altprogramı çağıı

Altprogram

RETURN

Altprogramı çağır ~
1-----'------t / -----

119
ALTPROGRAMLAR

Altprogramların ikinci bir kullanım alanı da, uzun programların, mantıksal bü-
tünlük gösteren parçalara bölünüp, bu parçaların altprogramlar şeklinde yazılması­
dır. Uzun programların, parçalar (altprogramlar) halinde yazılması programların ka-
rışıklığını önler, programın yazımını ve anlaşılmasını kolaylaştırır. Bir programın
üç işlem yaptığını düşünelim. Bu işlemleri yapan bölümlerin her biri altprogram
şeklinde yazılırsa hem işimiz kolaylaşır hemde hata yapma ihtimali azalır. Aşağı­
daki şekilde de, bir programın altprogramlar biçiminde yazılması görülüyor.

Ana
program

Altprogram1 Altprogram2 Altprogram3

Bir altprogram, başka altprogramları da çağırabilir.

Ana
program

Altprogram 1'i
çağır ~
ı-------+\ ~.------.
Altprogram
1

Altprogram2'yi
çağır
-----. Altprogram

~
2

RETURN

RETURN

120
ALTPROGRAMLAR

B-ALTPROGRAM KOMUT ve DEYİMLERİ


GOSUB VE RETURN KOMUTLAR!

GOSUB komutu, kontrolu ana programdan altprograma gönderir. GOSUB komu-


tunun yanında, altprogramın ilk satırının numarası yer alır.

Örnek:
100
110
120
130 GOSUB 1000
140
150
160
170
1000 REM ALTPROGRAM BURADA BAŞLIYOR
1010
1020
1030
1040 RETURN

Bu örnekte, anaprogramda yer alan GOSUB 1000 komutu ile kontrol 1000 no-
lu satırdan başlayan altprograma gönderilir. Altprogramda bulunan RETURN komutu
ise kontrolu altprogramdan, ana programda GOSUB komutundan bir sonraki komuta
gönderir. Yukarıdaki örnekte, RETURN komutu, kontrolu ana programın 140 nolu
satırına gönderir. ·
Altprogram, yukarıdaki örnekte olduğu gibi herhangi bir şarta bağlı olmaksızın
çağrılabileceği gibi, bir şarta bağlı olarak da çağrılabilir.

Örnek:
100
110
120 IF A=2 THEN GOSUB 500
130
140
150
500 REM ALTPROGRAM
510
520
530
540 RETURN

121
ALTPROGRAMLAR

Bu örnekte, ana programın çalışması sırasında A=2 şartı gerçekleştiği taktirde


kontrol 500 nolu atırdan başlayan altprograma geçer.
Her altprogramda en az bir tane RETURN komutunun yer alması gerektiği daha
önce belirtilmişti. Normal olarak, her altprogramın en son satırında bir RETURN
komutu bulunmalıdır. Bununla birlikte, alt programın diğer bir (veya birkaç) nokta-
sında da şarta bağlı olarak RETURN komutları kullanılabilir.

Örnek:
100
110
120
130
140 GOSUB 1000
150
160
1000 REM ALTPROGRAM
1010
1020
1030 IF B=l THEN RETURN
1040
1050
1060 RETURN

Bu örnekte, altprogram çalışırken B= l şartı gerçekleşirse kontrol l 030 nolu


satırdan ana programa döner. B= l şartı gerçekleşmediği taktirde ise kontrol
l 060 nolu satırdan ana programa döner.
GOSUB komutuyla altprograma gelindikten sonra RETURN komutu kullanılmaz­
sa, "Gosub withöut return" hata mesajı görüntülenir.
Şimdi inceleyeceğimiz programda GOSUB komutu kullanılarak altprogram çağ­
rılmaktadır.

100 CLS
110 GOSUB 1000
120 PRINT
130 PRINT "ALT PROGRAMDAN ANA PROGRAMA GERİ GELİNDİ .. "
140 END
1000 PRINT "ALT PROGRAMA GELİNDİ .. "
1010 RETURN

RUN
ALT PROGRAMA GELİNDİ ..
ALT PROGRAMDAN ANA PROGRAMA GERİ GELİNDİ ..

122
ALTPROGRAMLAR

Bu programda, altprogram l 000 nolu satırdan başlıyor. Ana programın l l O


nolu satırındaki GOSUB l 000 komutuyla, kontrol altprograma aktarılmakta ve
altprogr?mın ilk satırındaki PRINT komutu aracılığıyla ekrana "ALTPROGRAMA
GELiNDi. ." yazdırılmaktadır. l Ol O nolu satırdaki RETURN komutu da, kontrolu
ana programın 120 nolu satırına aktarır. Ana programdaki l 30 nolu satırda bulu-
nan _PRINT ko_mutu aracılığıyla ekrana "ALT PROGRAMDAN ANA PROGRAMA
GERi GELiNDi .. " yazdırılır. 140 nolu satırdaki END komutuyla programın çalış­
ması sona erdirilmektedir. Eğer bu satırdaki END komutu kullanılmasaydı kontrol
tekrar 1000 nolu satıra geçer ve altprogram tekrar çalışırdı. Kontrol un otomatik
olarak altprograma geçmesinin önlenmesi bakımından ana programın sonunda END
komutunun kullanılması zorunludur.

o • • •

C- AlTPROGRAMlARIN BiRLEŞTiRiLMESi

MENÜ PROGRAM!

Profesyonel programlarda genellikle kullanıcıya birbirinden farklı işlemleri kap-


sayan bir menü sunulur ve kullanıcı istediği işlemi seçerek gerçekleştirir. Bu tip
programlama "Menü programları" denir.
Şimdi inceleyeceğimiz örnekte kullanıcıya (operatör) Toplama, Çıkarma, Çarp-
ma, Bölme ve Çıkış seçenekleri sunulmaktadır. Kullanıcı hangi işlemi seçerse o iş­
lem gerçekleştirilmektedir.

100 'ALTPROGRAMLARLA İLGİLİ ÖRNEK PROGRAM


110 '
120 CLS:KEY OFF
130 INPUT "BİRİNCİ SAYIYI GİRİNİZ >ıı ,A
140 INPUT "İKİNCİ SAYIYI GİRİNİZ > .. ,B
150 PRINT
160 PRINT "MENÜ"
170 PRINT "=========="
180 PRINT "1 -TOPLAMA"
190 PRINT "2-ÇIKARMA"
200 PRINT "3-ÇARPMA"
210 PRINT "4-BÖLME"
215 PRINT "5-ÇIKIŞ"
220 PRINT
230 INPUT "TERCIHIZI GİRİNİZ(l/2/3/4/5)>",T
240 IF T=l THEN GOSUB 1000
250 IF T=2 THEN GOSUB 2000
260 IF T=3 THEN GOSUB 3000
270 IF T=4 THEN GOSUB 4000
280 IF T=S THEN GOSUB 5000
290 GOTO 120
1000 '*****TOPLAMA YAPAN ALTPROGRAM*****

123
ALTPROGRAMLAR

1001 PRINT "A=";A


1002 PRINT "B=" ;B
1005 C=A+B
1010 PRINT "TOPLAM=";C
1011 PRINT
1012 PRINT "devam etmek için herhangi bir tuşa basınız .. "
1013 Z$=INPUT${1)
1020 RETURN
2000 '*****ÇIKARMA YAPAN ALTPROGRAM*****
2005 C=A-B
2006 PRINT "A=" ;A
2007 PRINT "B=" ; B
2010 PRINT "FARK=" ;C
2011 PRINT
2012 PRINT "devam etmek için herhangi bir tuşa basınız .. "
2013 Z$=INPUT${1)
2020 RETURN
3000 '*****ÇARPMA YAPAN ALTPROGRAM*****
3010 C=A*B
3011 PRINT "A=";A
3012 PRINT "B=" ;B
3020 PRINT "ÇARPIM=";C
3021 PRINT
3022 PRINT "devam etmek için herhangi bir tuşa basınız .. "
3023 Z$=INPUT${1)
3030 RETURN
4000 ' *****BÖLME YAPAN ALTPROGRAM* ****
4010 C=A/B
4011 PRINT "A=" ;A
4012 PRINT "B=" ;B
4020 PRINT "BÖLÜM=" ;C
4021 PRINT
4022 PRINT "devam etmek için herhangi bir tuşa basınız .. "
4023 Z$=INPUT$(1)
4030 RETURN
5000 '*****PROGRAM ÇIKIŞI*****
5010 PRINT
5020 INPUT "PROGRAMDAN ÇIKMAK İSTİYOR MUSUNUZ(E/H)>";CEV$
5030 IF CEV$="E" OR CEV$="e" THEN SYSTEM
5040 RETURN

RUN

BİRİNCİ SAYIYI GİRİNİZ >9 <ENTER>


İKİNCİ SAYIYI GİRİNİZ > 5 <ENTER>

124
ALTPROGRAMLAR

MENÜ

1- TOPLAMA
2- ÇIKARMA
3- ÇARPMA
4- BÖLME
5- ÇIKIŞ

TERCİHİNİZİ GİRİNİZ (1/2/3/4/5} > 2 <ENTER>

A=9
B=5
FARK=4

devam etmek için herhangi bir tuşa basınız ..

Programı çalıştırdığımızda önce klavyeden iki sayı girmemiz istenir. Bu sayılar


girildikten sonra ekranda bir menü görüntülenir. Bu menüde, TOPIAMA, ÇARPMA,
ÇIKARMA, ÇARPMA VE ÇIKIŞ seçenekleri vardır. Daha sonra tercihimizin ne ol-
duğu sorulur. 2 nolu seçeneği (yani ÇIKARMA işlemini) seçtiğimizde 250 nolu
satırdaki GOSUB komutu aracılığıyla 2000 nolu satırdaki çıkarma altprogramı
çağrılır ve çıkarma işlemi gerçekleştirilir.
Her menüde bir ÇIKIŞ seçeneği mutlaka yer almalıdır. Kullanıcı 5 nolu çıkış
seçeneğini seçtiğinde, 5000 nolu satırdan başlayan altprogram çalışır ve bu altp-
rogramda bulunan SYSTEM komutu çalışarak, kontrolu BASIC ortamından DOS orta-
mına aktarır yani programın çalışması sona erer.

IŞIKLI MENÜ PROGRAM!

Birçok profesyonel programda, ekranda ışıklı menü (Pull-Down) denilen düzenle-


melerin yapıldığını biliyoruz. Bu programlarda menü seçeneklerinin bir tanesinin
üzerinde ışıklı bar bulunmakta ve hareket tuşları (~,f--,1',J..) aracılığıyla ışıklı bar
diğer seçeneklere de kaydırılabilmektedir. Işıklı bar herhangi bir seçeneğin üzerin-
deyken ENTER tuşuna basılırsa, o seçenek seçilmiş olur.
Şimdi inceleyeceğimiz programda, ekranda ışıklı menü oluşturulmaktadır.

100 CLS:KEY OFF


110 LOCATE 6,26:PRINT CHR$(201);STRING$(25,205);CHR$(187)
120 FOR I=l TO 11
130 LOCATE I+6,26:PRINT CHR$(186);STRING$(25,32);CHR$(186)
140 NEXT I
150 LOCATE I+6,26:PRINT CHR$(200);STRING$(25,205);CHR$(188)
160 LOCATE 8,27:PRINT STRING$(25,205)
170 LOCATE 7,33:COLOR 0,7:PRINT "ANAM EN Ü":COLOR 7,0

125
ALTPROGRAMLAR

180 FOR I=l TO 4


190 READ BAS$(I)
200 NEXT I
210 DATA "KAYIT GİRİŞİ " , "KAYIT ARAMA
","DE~İŞİKLİK ","ÇIKIŞ
220 LOCATE 9,27:COLOR 0,7:PRINT BAS$(1) :COLOR 7,0
230 LOCATE 11,27:PRINT BAS$(2)
240 LOCATE 13,27:PRINT BAS$(3)
250 LOCATE 15,27:PRINT BAS$(4)
260 I=l
270 A$=INKEY$
280 IF A$="" TREN 270
290 IF RIGHT$(A$,l)="P" AND I=l TREN I=2:LOCATE 9,27:PRINT BAS$(1):
LOCATE 11,27:COLOR 0,7:PRINT BAS$(2) :COLOR 7,0:GOTO 270
300 IF RIGHT$(A$,l)="P" AND I=2 TREN I=3:LOCATE 11,27:PRINT BAS$(2):
LOCATE 13,27:COLOR O, 7:PRINT BAS$(3) :COLOR 7,0:GOTO 270
310 IF RIGHT$(A$,l)="P" AND I=3 TREN I=4:LOCATE 13,27:PRINT BAS$(3):
LOCATE 15,27:COLOR 0,7:PRINT BAS$(4) :COLOR 7,0:GOTO 270
320 IF RIGHT$(A$,l)="P" AND I=4 TREN LOCATE 15,27:PRINT BAS$(4) :GOTO
220
321 IF RIGHT$(A$,l)="H" AND I=l TREN I=4:LOCATE 9,27:PRINT BAS$(1):
LOCATE 15,27:COLOR 0,7:PRINT BAS$(4) :COLOR 7,0:GOTO 270
322 IF RIGHT$(A$,l)="H" AND I=4 TREN I=3:LOCATE 15,27:PRINT BAS$(4):
LOCATE 13,27:COLOR 0,7:PRINT BAS$(3) :COLOR 7,0:GOTO 270
323 IF RIGHT$(A$,l)="H" AND I=3 TREN I=2:LOCATE 13,27:PRINT BAS$(3):
LOCATE 11,27:COLOR 0,7:PRINT BAS$(2) :COLOR 7,0:GOTO 270
324 IF RIGHT$(A$,l)="H" AND I=2 TREN I=l:LOCATE 11,27:PRINT BAS$(2):
LOCATE 9,27:COLOR 0,7:PRINT BAS$(1) :COLOR 7,0:GOTO 270
330 IF I=l AND A$=CHR$(13) TREN GOSUB 1000
331 IF I=2 AND A$=CHR$(13) TREN GOSUB 2000
332 IF I=3 AND A$=CHR$(13) TREN GOSUB 3000
333 IF I=4 AND A$=CHR$(13) TREN GOSUB 4000
334 RESTORE:GOTO 100
340 END
1000 CLS
1010 PRINT "BİRİNCİ TERCİH SEÇİLDİ"
1020 B$=INPUT$(1)
1030 RETURN
2000 CLS
2010 PRINT "IKINCİ TERCİH SEÇİLDİ"
2020 B$=INPUT$(1)
2030 RETURN
3000 CLS
3010 PRINT "ÜÇÜNCÜ TERCİH SEÇİLDİ"
3020 B$=INPUT$(1)
3030 RETURN
4000 CLS
4010 PRINT "DÖRDÜNCÜ TERCİH SEÇİLDİ"

126
ALTPROGRAMLAR

4020 B$=INPUT$(1)
4030 RETURN

RTJN

ANAMENÜ

KAYIT ARAMA
DEGİŞİKLİK

ÇIKIŞ

Bu programda kullanılan komutların tümü daha önceden açıklanmıştı. Bizim için


yeni olan tek şey ış.ıklı bar. Prog~amdaki COLOR 0,7 komutuyla herhangi bir seçe-
neğin BEYAZ ZEMiN üzerine SiYAH YAZ! ile yazılması sağlanmaktadır. COLOR
komutunun parametreleri değiştirilerek çeşitli renklerde menüler oluşturulabilir.

ON GOTO KOMUTU

Burada, ON kelimesiyle GOTO kelimesinin arasında verilen değişkenin değe­


rine bağlı olarak, kontrol bir satıra gönderilir.
ON N GOTO 500, 600, 700
Yukarıdaki örnekte N değişkeninin değeri ise kontrol 500 nolu satıra, 2 ise
600 nolu satıra, 3 ise 700 nolu satıra gider.
ON X GOTO 100, 200, 300, 400
Bu örnekte ise x değişkeni 1 olursa kontrol l 00 nolu satıra, 2 olursa 200 no-
lu satıra, 3 olursa 300 nolu satıra, 4 olursa da 400 nolu satıra geçecektir. Aşa­
ğıdaki programda ON GOTO komutu kullanılarak, kullanıcının tercihine göre,
klavyeden girilen açının sinüsü, kosinüsü veya tanjantı hesaplanıp görüntülenmek-
tedir.

100 'BU PROGRAMDA ON GOTO YAPISI KULLANILMIŞTIR


110 1

120 INPUT "AÇIYI GİRİNİZ>" ,A


130 RADA=A*(3.141596/180)
140 PRINT
150 PRINT "MENÜ"
160 PRINT "

127
ALTPROGRAMLAR

170 PRINT "1-SİNÜS"


180 PRINT "2-KOSİNÜS"
190 PRINT "3-TANJANT"
200 PRINT
210 INPUT "TERCIHINIZI GIRINIZ>" ,T
220 ON T GOTO 300,400,500
300 PRINT
310 PRINT "AÇI=" ;A
320 PRINT "SİNÜSÜ=";SIN(RADA)
330 PRINT
340 GOTO 120
400 PRINT
410 PRINT "AÇI=" ;A
420 PRINT "KOSİNÜSÜ=";COS(RADA)
430 PRINT
440 GOTO 120
500 PRINT
510 PRINT "AÇI=" ;A
520 PRINT "TANJANTI=";TAN(RADA)
530 PRINT
540 GOTO 120
RUN

AÇIYI GİRİNİZ > 60 <ENTER>

MENÜ

1- SİNÜS
2- KOSİNÜS
3- TANJANT

TERCİHİNİZİ GİRİNİZ > 2

AÇI: 60

KOSİNÜSÜ : .5

Program çalıştırıldıktan sonra tercihimiz sorulduğunda 2 sayısını girelim. Kont-


rol 400 nolu satıra gidecektir. Çünkü GOTO komutundan sonra yer olan paramet-
relerin 2.si 400'dür. Eğer 1 sayısını girmiş olsaydık, kontrol; GOTO komutundan
sonra yer alan parametrelerin birincisine (yani 300 nolu satıra) aktarılacaktı.
Aşağıdaki programda da, klavyeden girilen sayıya göre TARİH veya SAAT gö-
rüntülenmektedir.

100 '*****BU PROGRAMDA ON GOTO YAPISI KULLANILMIŞTIR*****


110 1

128
AlTPROGRAMLAR

120 PRINT "Tarih için 1, saat için 2 tuşuna basınız ... "
130 T=VAL(INPUT$(1))
140 ON T GOTO 150,180
150 PRINT "Tarih: ";DATE$
160 PRINT
170 GOTO 120
180 PRINT "Saat:";TIME$
190 PRINT
200 GOTO 120

RUN

Tarih için 1, saat için 2 tuşuna basınız .. 2


Saat : 02:45:15

Programda INPUT$ komutuyla giriş yapıldığı için 1 veya 2 sayısına basıldık­


tan sonra ENTER tuşuna basılmaz. VAL komutu alfasayısal formatta girilen sayıyı,
sayısal formata çevirir. 1 sayısı girilirse, kontrol GOTO komutundan sonra birin-
ci sırada yer alan 150 nolu satıra gider. 2 sayısı girildiğinde ise, kontrol, GO-
TO komutundan sonra ikinci sırada yer alan 180 nolu satıra gider.

FONKSİYONLAR
Fonksiyon kavramını cebirden biliyoruz. y=f (x) fonksiyonu, bağımsız değişken
olan X'in aldığı çeşitli değerlere göre Y değerini üretir.
BASIC programlama dilinde tanımlı olan (SIN, COS, HEX$ gibi) standart fonk-
siyonlar dışında, programcı tarafından da fonksiyon tanımlanabilir. Bu fonksiyon-
ları, standart fonksiyonlardan ayırmak için, bunlara KULLANICI TARAFINDAN
TANIMLANAN FONKSİYONLAR denir.
Kullanıcı tarafından tanımlanan fonksiyonlar, DEF FN kelimeleri ve bir fonksi-
yon adıyla tanımlanır.

Örnek:

DEF FN A(X) = 2*X

Yukarıda tanımlanan fonksiyon, programın herhangi bir yerinde çağrılarak kul-


lanıldığında, fonksiyona gönderilen X değerinin iki katı üretilir (2*X).
Bir fonksiyon, programın başında tanımlandıktan sonra, programın herhangi bir
(veya birden fazla) yerinde çağrılarak kullanılabilir.

129
ALTPROGRAMLAR

Aşağıdaki programda, R(R) fonksiyonu tanımlanarak, çeşitli yarıçaplarda daire-


lerin alanları, bu fonksiyon aracılığıyla hesaplanmaktadır.

100 KEY OFF


110 DEF FNR(R)=3.141593*R*R
120 READ R
130 DATA 2,4,6,8,0
140 IF R=O THEN GOTO 999
150 ALAN=FNR(R)
160 PRINT "YARIÇAP ;R, "ALAN
il I = ";ALAN
170 GOTO 120
999 END

RUN

YARIÇAP 2 ALAN = 1256637


YARIÇAP 4 ALAN = 50.26549
YARIÇAP 6 ALAN = 113. 0974
YARIÇAP 8 ALAN = 201.062

Bu programda, fonksiyon l l O nolu satırda tanımlanmıştır. Fonksiyon, yarıça­


pın karesiyle (R*R), Pi sayısını çarpmaktadır. Bilindiği gibi, bu dairenin alan for-
mülüdür.
150 nolu satırda ALAN = FNR (R) komutuyla, fonksiyon çağrılmıştır. Parantez
içindeki R değişkeniyle fonksiyona aktarılan yarıçapa göre, alan hesaplanmakta-
dır.
Fonksiyona değer değişkenler aracılığıyla gönderilebileceği gibi sabit sayılar
aracılığıyla da gönderilebilir.
Aşağıdaki programda, çeşitli fonksiyonlar tanımlanmış ve bu fonksiyonlara de-
ğişkenler ve sabit sayılarla değerler aktarılmıştır. Fonksiyonlar, bu değerleri kul-
lanarak fonksiyon değerini üretir.

100 '*****FONKSİYONLARA ÖRNEK PROGRAM*****


110 1

120 DEF FN SQ(X)=X*X


130 PRINT FN SQ(4)
140 X=6
150 PRINT FN SQ(X)
160 Y=7
170 PRINT FN SQ(Y)
180 PRINT
190 DEF FN NM(X,Y)=2*X+Y
200 PRINT FN NM(l0,20)
210 X=7

130
ALTPROGRAMLAR

220 Y=B
230 PRINT FN NM{X,Y}
240 PRINT FN NM(Y,X}
999 END

RUN

16
36
49

40
22
23
120 nolu satırda SQ(X) = X*X fonksiyonu tanımlanmıştır. 130 nolu satırda
ise SQ fonksiyonu 4 değeriyle kullanılır. Fonksiyon 4 sayısının karesini almakta-
dır.
140 nolu satırda, bir X değişkenine 6 değeri aktarılmış, 150 nolu satırda da
SQ fonksiyonu 6 parametresiyle çağrılmıştır.
190 nolu satırda bulunan NM fonksiyonu, iki parametreli olarak tanımlanmış­
tır. 190 nolu satırdaki NM fonksiyonu 200 nolu satırda l O ve 20 sayıları gön-
derilerek kullanılmıştır. l O sayısı X değ işlerine, 20 sayısı ise Y değişkenine gi-
der. Bu sayılar 2* X+Y formülündeki X ve Y değerlerinde kullanılır ve üretilen
sonuç 200 nolu satırdaki PRINT komutu aracılığıyla görüntülenir.
230 ve 240 nolu satırlarda ise yine ayrı fonksiyona (NM) değişkenler aracılı­
ğıyla iki değer aktarılmıştır.

131
ALTPROGRAMLAR

132
ÜNİTE 1
BATA (veri) DOSYASI OLlJŞTlJH1':1A

A- DATA DOSYAlARININ ANAHATlARI

Bilgisayarların, insanoğluna sağladığı en büyük kolaylık, çok büyük miktarda


bilgileri depolayabilmeleri ve istenildiği anda bu bilgileri büyük bir süratle kulla-
nıma sunabilmeleridir.
Şimdiye kadar incelediğimiz programlarda, klavyeden girilen veya bilgisayar
tarafından üretilen bilgiler, programın çalışması sona erince ya da bilgisayar ka-
patılınca derhal silinirler. Bu bölümde inceleyeceğimiz dosyalar (FiLE) ise, bilgi-
leri kalıcı olarak muhafaza ederler. Dosyalara kaydedilen bilgiler daha sonra çağ­
rılarak kullanılabilir, değiştirilebilir veya silinebilir. Dosyalardaki bilgiler, diske-
te veya harddiske yüklenir. Dosyalara bazı kitaplarda "kütük" adı da verilmektedir.
lngilizcede dosya kavramını. belirtmek üzere kullanılan "File" kelimesinin tam kar-
şılığı Türkçedeki "Dosya" kelimesidir. Gerçekten de programcılık kavramı olarak
kullandığımız "Dosya", büro ve işyerlerinde kullanılan mukavva dosyalara çok ben-
zer. Her iki dosya da bilgi saklama amacıyla kullanılır, her iki dosyadaki bilgiler
istenildiği zaman dosya açılarak okunabilir, değişiklik yapılabilir, silinebilir, ye-
ni bilgiler ilave edilebilir. Bu nedenle bu kitapta "Dosya" adının kullanılması da-
ha uygun görülmüştür.

PROGRAM DOSYASI ~ VERi DOSYASI

Daha önceki bölümlerde, Basic dilinde yazdığımız programların diskete veya


harddiske kaydedildiklerini biliyoruz. Başka bir programlama dilinde (örneğin PAS-
CAL, C) yazılmış programlar da diskete veya harddiske kaydedilebilirler. Herhan-
gi bir programlama dilinde yazılmış ve disket ya da harddiske kaydedilmiş prog-
ramlara, PROGRAM DOSYASI adı verilir.
Biz ise bu bölümde, program dosyalarını değil, VERİ DOSYALARl'nı inceleye-
ceğiz. Bir program aracılığıyla, klavyeden girilen v:a/veya bilgisayar programı
tarafından üretilen bilgilerin tutulduğu ortamlara VERi DOSYALAR! adı verilir.
Bundan sonraki bölümlerde DOSYA kelimesi, VERİ DOSYALAR! kavramına işa­
ret edecektir.

133
DATA DOSYASI OLUŞTURMA

BASIC programlama dilinde iki tip dosya vardır.


1- Sıralı dosyalar
2- Rasgele erişimli (Random) d~syalar
Hangi tip olursa olsun bir VERi DOSYASI üzerinde aşağıda listelenen işlemler
yapılabilmelidir.

1- Yeni bilgilerin KAYDEDİLMESİ


2- Mevcut bilgilerin OKUNMASI
3- Mevcut bilgilerin D9ZELTİ~ESİ. veya DEGİŞTİRİLMESİ
4- Mevcut bilgilerin SiLiNEBiLMESi . .
5- Mevcut bilgilerin EKRAN veya YAZICIYA LiSTELENMESi

Bütün bu işlemlere 1/0 (Giriş/Çıkış) işlemleri denir.

DOSYA ADI (FILENAME)

En az l, en çok 8 karakter uzunluğunda olabilen dosya adı, dosyanın fiziki ya-


pısının adıdır:. BASIC dilinde yazı)mış programlara verilen adlarla aynı sınırlama­
lara tabidir. Orneğin burada da, lngiliz alfabesinde bulunmayan karakterler kulla-
nılamaz. Herhangi bir zorunluluk olmamakla birlikte, dosya adı olarak, dosyanın
içine yazılacak bilgileri çağrıştıracak bir adın seçilmesi yararlı olacaktır. Orne-
ğin, bir okuldaki öğrencilere ait bilgilerin kaydedileceği bir dosyaya, OKUL adı
verilebilir. Bu dosyaya MASA adının verilmesi her ne kadar geçerli olsa da, için-
deki bilgileri çağrıştırmayacağından pek uygun düşmeyecektir.

DOSYA ADI UZANTISI (FILENAME EXTENSION)

Dosya adı uzantısı kullanılması zorunlu değildir. Ancak en az l, en fazla 3


karakterden oluşan bir uzantı verilebilir. Tekrarlayalım, uzantı verilmesi tamamen
isteğe bağlıdır yani dosya adı uzantısız olabilir.
Uzantıda, İngiliz alfabesindeki harfler (A ... Z), rakamlar (0 ... 9) ve diğer bazı
özel karakterler (örneğin -,/,\ gibi) kullanılabilir. Üç karaktere kadar olmak şartıy­
la, uzantının seçimi de serbesttir. Ancak uygulamada İngilizce DATA (Veri) keli-
mesinin ilk üç harfi (DAT) uzantısı tercih edilmektedir. Çünkü DATA, Veri veya
Bilgi anlamına gelmektedir. Böylece DAT uzantısı verilerek, dosyanın VERİ DOS-
YASI olduğu vurgulanmaktadır.
Dosya adı ile uzantısı, birbirlerinden nokta (.) karakteriyle ayrılırlar.

Aşağıda, bazı örnek dosya adları belirtilmiştir.

1- Okul öğrencileri hakkındaki bilgilerin kaydedildiği dosya: OKUL. DAT

134
DATA DOSYASI OLUŞTURMA

2- Kişilere ait telefon numaralarının kaydedildiği dosya : REHBER.DAT


3- Banka müşterilerine ait bilgilerin kaydedildiği dosya: BANKA.DAT
Şimdi de sırasıyla, BASIC programlama dilinde kullanılan dosya tiplerini ince-
leyelim.

B- SIRAU DOSYALAR (SEQUENTIAL f ILES)


Sıralı dosyalarda, bilgiler dosyaya sırayla kaydedilir. Ve kaydedilen bilgilerin
en sonuna EOF (End of File-Dosya sonu) işareti konulur. Dosya sonu işareti, (EOF),
ekranda görüntülenemeyen özel bir işarettir. Aşağıdaki şekilde sıralı dosyanın ya-
pısı görülüyor.
VERİ DOSYASI

SIRALI KAYITLAR

Dosya sonu -- -- --
işareti ---. e

Sıralı dosyalarda giriş/ çıkış işlemleri aşağıdaki komutlar aracılığıyla gerçek-


leşti ri 1 i r.

OPEN
WRITE #, PRINT #
EOF ()
INPUT #
CLOSE #

Bu komutlara ilaveten, dosyadan bilgi silinmesi ve değiştirilmesi işlemleri sıra­


sında KILL ve NAME komutları da kullanılmaktadır.

OPEN KOMUTU

Dosyanın açılması işleminde kullanılan komuttur. Bu komut iki türlü kullanılabi-


1 i r:
OPEN "OKUL.DAT" FOR OUTPUT AS #1

135
DATA DOSYASI OLUŞTURMA

veya
OPEN "0", #1, "OKUL.DAT"

Yukarıdaki yazımlardan herikisi de aynı işlemi yapar. Şimdi birinci yazım şek­
lini ele alarak OPEN komutunun sintaksını inceleyelim.

OPEN "OKUL.DAT" FOR OUTPUT AS #1

Dosya adı Açılış Mantıksal birim numarası


modu

Bu yazımda, OPEN, FOR ve AS kelimeleri sabittir. Şimdi de Dosya adı, Açılış


modu ve Mantıksal birim numarasını inceleyelim.

DOSYA ADI: Daha önce incelemiştik. 8 karaktere kadar bir isim ve


isteğe bağlı olarak en fazla 3 karakterden oluşan bir
uzantıdan meydana gelir.

AÇILIŞ MODU: Dosyanın açılma amacını tanımlar. Sıralı dosyalar 3


modda açılabilir.

1- OUTPUT MODU: Bir sıralı dosyanın, disket veya harddisk üzerinde ilk
defa oluşturulmasında kullanılır. Dosya, OUTPUT mo-
dunda açıldığında yazıcı kafa (dosyaya bilgi yazan ay-
gıt), dosyanın başına konumlanır. Disket veya harddisk-
te mevcut olan bir dosya, OUTPUT modunda açılırsa,
içindeki bilgiler silinmiş olur.

Örnek:

OPEN "REHBER.DAT" FOR OUTPUT AS # 1

Yukarıdaki komut çalıştırıldığında, disket veya harddisk-


te REHBER. DAT adlı bir veri dosyası oluşturulur ve ya-
zıcı kafa bu dosyanın en başına konumlanır.

2- INPUT MODU: Disket veya hardiskte mevcut bir sıralı dosyanın içinde-
ki bilgileri okumak için, dosyanın okuma modunda açıl-
. masında kullanılır. INPUT modunda açılarak içindeki
bilgiler okunan dosyadaki bilgiler silinmez. Bir sıralı
dosyanın INPUT modunda açılabilmesi için, o dc:~yanın
diskette veya harddiskte mevcut olması gerekir. Ornek:
OPEN "REHBER.DAT" FOR INPUT AS #2

136
DATA DOSYASI OLUŞTURMA

Bu komut kullanıldığında, disket veya harddiskte mevcut


bulunan REHBER.DAT adlı veri d,osyası, içinden bilgi
okumak amacıyla açılır.

3- APPEND MODU: Disket veya harddiskte mevcut bir sıralı dosyanın, yeni
bilgiler eklemek amacıyla açılmasında kullanılır. Mev-
cut bir dosya, APPEND modunda açıldığında, yazıcı ka-
fa dosyada daha önceden mevcut olan bilgilerin sonuna
konumlanır. Böylece yeni girilen bilgiler, önceki bilgi-
lere eklenmiş olur.
Daha önceden mevcut olmayan bir dosya, APPEND mo-
duyla açıldığında bu dosya disket veya harddiskte oluş­
turulur. Yani, yeni bir dosyanın OUTPUT modunda açıl­
ması işlemi gerçekleşir.

Örnek:

OPEN "REHBER.DAT" FOR APPEND AS # 2

Bu komut çalıştırıldığında, disket veya harddiskte daha


önceden mevcut olan REHBER.DAT adlı dosya, bilgi ek-
lemek amacıyla açılır. Bu komut çalıştığında disket ve-
ya harddiskte REHBER.DAT adında bir dosya mevcut de-
ğilse, REHBER.DAT adında yeni bir dosya oluşturulur.

MANTIKSAL BİRİM NUMARASI:


Bellekle dosya arasındaki haberleşme kanalının numara-
sıdır. 1,2 veya 3 olabilir. Bir dosya açılırken hangi
numara kullanılmışsa, dosya açık olduğu sürece, bilgi
alışverişinde aynı kanal numarası kullanılır.
BASIC programlama dilinde aynı anda en fazla 3 veri
dosyası açılabilir. Aynı anda açık olan dosyaların man-
tıksal birim numaralarının farklı olması şarttır.

Örnek:

OPEN "REHBER.DAT" FOR OUTPUT AS # 1


OPEN "OKUL.DAT" FOR APPEND AS # 3
OPEN "SAYI. DAT" FOR OUTPUT AS # 2

Yukarıda, REHBER.DAT dosyasının mantıksal birim nu-


marası l, OKUL.DAT dosyasının 3, SAYl.DAT dosyası­
nın mantıksal birim numarası ise 2'dir. Uç dosya da
açık durumdadır. Herhangi bir dosyaya giriş/ çıkış işle-

137
DATA DOSYASI OLUŞTURMA

mi yapılacakken o dosyaya ait mantıksal birim numarası


kullanılmalıdır.
Farklı dosyalar aynı anda açılırken, aynı mantıksal bi-
rim numarası kullanılamaz. Örneğin:

10 OPEN "REHBER.DAT" FOR APPEND AS #1


20 OPEN "OKUL.DAT" FOR INPUT AS #1

Her iki dosya da l mantıksal birim numarasıyla açıldığı


için "file already OPEN" hata mesajı görüntülenir.

WRITE # KOMUTU

Açık olan bir yeri dosyasına bilgi yazılması amacıyla kullanılır.

WRITE #n, değişken veya değişkenler

Bu yazımda n, dosyanın açılması sırasında kullanılan mantıksal birim numarası­


na eşit olmalıdır. Örneğin, dosyanın açılması sırasında mantıksal birim numarası
olarak 2 kullanılmışsa, bu dosyaya WRITE kelimesi kullanılarak bilgi yazarken de
n sayısı 2 olmalıdır.

Örnek:

10 OPEN "REHBER.DAT" FOR OUTPUT AS #1


20 A=5
30 WRITE #1,A
40 CLOSE #1

Burada REHBER.DAT dosyası açılırken mantıksal birim numarası olarak l tanım­


landığı için, WRITE komutunda da l sayısı kullanılmıştır.
WRITE # komutundan sonra yazılı olan değişkenin tuttuğu değer dosyaya kay-
dedilir. WRITE # satırında birden fazla değişken yer almışsa, bu değişkenler bir-
birinden virgül (,) karakteriyle ayrılmalıdır. Yukardaki örnekte A değişkeninin tut-
tuğu 5 sayısı dosyaya yazılır.

WRITE #1, A,B,C

Bu örnekte ise A,B,C değişkenlerinde bulunan değerler dosyaya yanyana kay-


dedilir.
WRITE # komutu kullanılarak bir dosyaya bilgi yazılabilmesi için o dosyanın
OUTPUT veya APPEND modunda açılmış olması gerekir.

138
DATA DOSYASI OLUŞTURMA

PRINT # KOMUTU
PRINT # komutu da açık olan bir veri dosyasına bilgi yazmakta kullanılır.
PRINT # komutu kullanılarak dosyaya yazılan bilgilerin okunmasında bazı prob-
lemlerle karşılaşılabilir. Çünkü PRINT # komutuyla bilgilerin dosyaya yazılmasın­
da, bilgiler arasında otomatik olarak ayırdedici karakterler kullanılmaz. Bu zorluk-
ların tümünden kurtulma yolu, dosyaya bilgi yazılması işlemlerinde WRITE # ko-
mutunun kullanılmasıdır.

INPUT # KOMUTU

Veri okumak amacıyla (INPUT modunda) açılmış olan bir veri dosyasından bilgi
okumak amacıyla kullanılır.
INPUT #1, A, B
Bu komut çalıştırıldığında veri dosyasındaki ilk bilgi A değişkenine, onun ya-
nındaki bilgi ise B değişkenine aktarılır. Dosya sonuna gelindiği halde INPUT #
komutuyla dosyadan bilgi okunmak istenirse hata mesajı verilir. Bunun önüne geç-
mek için, dosya sonuna gelinip gelinmediği INPUT # komutundan önce mutlaka
kontrol edilmelidir.

EOF 0 KOMUTU
Dosyadaki bilgilerin sonuna gelinmişse TRUE, aksi halde FALSE değerini üreten
bir fonksiyondur. EOF () fonksiyonu, INPUT # komutundan önce kullanılmalıdır.
EOF fonksiyonunun yanındaki parantez içinde, kontrolu yapılan veri dosyası­
nın mantıksal birim numarası yazılır.

Örnek:

EOF (1)

Bu kullanımda, mantıksal birim numarası l olan dosyanın kontrolu yapılmakta­


dır. EOF () fonksiyonunun kullanılabilmesi için, dosyanın açık durumda olması ge-
rekir.

CLOSE # KOMUTU

Açık olan bir dosyanın kapatılmasında kullanılır. Bir dosya herhangi bir amaçla
açılıp kullanıldıktan sonra mutlaka kapatılmalıdır.
Bir dosya CLOSE # komutuyla kapatıldıktan sonra, programın başka bir yerinde

139
DATA DOSYASI OLUŞTURMA

herhangi bir amaçla tekrar açılabilir.


CLOSE # 1
Yukarıdaki komut, mantıksal birim numarası 1 olan dosyayı kapatır.
CLOSE #1, #2
Bu komut ise, mantıksal birim numaraları 1 ve 2 olan dosyaları kapatır.
CLOSE komutu mantıksal birim numarası belirtilmeksizin kullanıldığında ise, o
anda açık olan bütün dosyaları kapatır.

CLOSE

Bu komut, o anda açık olan bütün dosyaları kapatacaktır.

Şimdi de OPEN komutunun diğer kullanım formunu görelim:

OPEN "O", #1, "OKUL.DAT"

Açılış Mantıksal Dosya adı


modu birim
numarası

OPEN komutunun bu formda kullanımında, dosya ilk defa oluşturulurken açılış


modu olarak "O" harfi kullanılır. "O" harfi OUTPUT kelimesine karşılık olmaktadır.

Örnek:

OPEN "O", #2, "OKUL.DAT"

Bu komut çalıştırıldığında, "OKUL.DAT" dosyası disket veya harddiskte oluştu­


rulur. #2 parametresi, dosyanın mantıksal birim numarasının 2 olduğunu gösterir.
Yukarıdaki komutun diğer yazım formundaki eşdeğeri ise şöyledir:

OPEN "OKUL.DAT" FOR OUTPUT AS #2

Bir dosyayı, bilgi ekleme amacıyla açmak için açılış modu parametresi olarak
"A" harfi kullanılır.

OPEN "A", #1, "OKUL.DAT"

Bu komut kullanıldığında, OKUL.DAT dosyası, bilgi ekleme amacıyla açılmış


olur. Bu komutun, diğer formdaki eşdeğeri aşağıdaki gibidir:

OPEN "OKUL.DAT" FOR APPEND AS #1

140
DATA DOSYASI OLUŞTURMA

Bir veri dosyasını, bilgi okumak amacıyla açarken, açılış modu parametresi ola-
rak "I" harfi kullanılır.

OPEN "I", #1, "OKUL.DAT"

Bu komut çalıştırıldığında, OKUL.DAT dosyası, bilgi okuma modunda açılmış


olur.

Aşağıdaki örneklerde OPEN komutunun her iki formdaki kullanımı karşılaştırma­


lı olarak görülüyor.

1- Dosya ilk defa oluşturulurken :

OPEN "REHBER.DAT" FOR OUTPUT AS #2

veya

OPEN "0", #2, "REHBER.DAT"

2- Dosya, bilgi ekleme amacıyla açılırken:

OPEN "REHBER.DAT" FOR APPEND AS #1

veya

OPEN "A", #1, "REHBER.DAT"

3- Dosya, bilgi okuma amacıyla açılırken:

OPEN "REHBER.DAT" FOR INPUT AS #1

veya

OPEN "I", #1, REHBER.DAT

YENİ BİR DOSYA OLUŞTURULARAK BİLGİ KAYDEDİIJ/i.ESİ

Yeni bir dosya oluşturmak için, dosya OPEN komutu kullanılarak OUTPUT mo-
dunda açılır. Bilgiler, WRITE # komutu kullanılarak değişkenler aracılığıyla dos-
yaya kaydedilir. aşağıdaki şekilde dosyaya bilgi kaydedilmesinde program veri
dosyası ilişkisi görülüyor.

141
DATA DOSYASI OLUŞTURMA

Veri VERİ
PROGRAM - DOSYASI

Şimdi inceleyeceğimiz program ise, diskette DOSYA l .DAT adlı veri dosyası
oluşturarak bu dosyaya 3 sayı kaydetmektedir.

100 '****SIRALI DOSYAYA BİLGİ KAYDEDEN PROGRAM****


110 1

12 O OPEN DOSYAl. DAT


11 11 FOR OUT PUT AS #1
130 A=4:B=6:C=7
140 WRITE #1,A
150 WRITE #1,B
160 WRITE #1,C
170 CLOSE #1
999 END

Bu program çalıştırıldığında A, B ve C değişkenlerinde bulunan 4, 6 ve 7 sa-


yıları DOSYA l .DAT dosyasının içine kaydedilir. Sıralı dosyalarda bilgiler disket
ya da hadddiske ASCll kodunda kaydedilir. Bu nedenle DOS'taki TYPE komutunu
kullanarak DOSYA l .DAT dosyasına kaydedilmiş olan bilgileri görebiliriz. Progra-
mı A sürücüsünden çalıştırdığımızı kabul edelim. Böylece bilgiler, A sürücüsüne
takılı bulunan diskete kaydedilmiş olacaktır.

A:\> TYPE DOSYAl.DAT <ENTER>

4
6
7

Görüldüğü gibi, bilgiler sırayla kaydedilmiştir. Şimdi de, klavyeden girilen


bilgileri sıralı bir dosyaya kaydeden programı inceleyelim.

100 '****SIRALI DOSYAYA ÖGRENCİ ADI VE NOTU KAYDEDEN PROGRAM****


110 1

120 OPEN NOTLAR.DAT FOR OUTPUT AS #1


11 11

130 PRINT
140 INPUT "ÖGRENCİNİN ADINI GİRİNİZ >",AD$

142
DATA DOSYASI OLUŞTURMA

150 INPUT 11 öGRENCİNİN NOTUNU GİRİNİZ > ,NO11

160 WRITE #l,AD$,NO


170 PRINT
180 INPUT "DEVAM ETMEK İSTİYOR MUSUNUZ>",CEV$
190 IF CEV$="E" OR CEV$="e" THEN GOTO 130
200 CLOSE #1
999 END

RUN

ÖGRENCİNİN ADINI GİRİNİZ > AHMET <ENTER>


ÖGRENCİNİN NOTUNU GİRİNİZ > 70 <ENTER>

DEVAM ETMEK İSTİYOR MUSUNUZ > E <ENTER>

ÖGRENCİNİN ADINI GİRİNİZ > MEHMET <ENTER>


ÖGRENCİNİN NOTUNU GİRİNİZ > 80 <ENTER>

DEVAM ETMEK İSTİYOR MUSUNUZ > H <ENTER>

DOS ortamına geçip, TYPE komutunu kullanarak bu dosyanın içindeki kayıtları


da görebiliriz.
A:\> TYPE NOTLAR.DAT <ENTER>
"AHMET", 70
"MEHMET",80

Görüldüğü gibi, her öğrencinin adı ile notu yanyana kaydedilmiştir. Bunun se-
bebi programın 160 nolu satırındaki WRITE # komutuna parametre olarak öğrenci­
nin adını tutan AD$ değişkeni ile notunu tutan Nü değişkeninin yanyana verilme-
sidir. Programcı, devam etmek isteyip istemediği sorusuna karşılık "E" veya "e"
harflerini girdikçe, klavyeden girilen isim ve notlar NOTLAR.DAT dosyasına kay-
dedilecektir.
Sıralı dosyaların ilk defa oluşturularak bu dosyalara bilgi kaydedilmesinde aşa-
ğıdaki işlem sırası uygulanır.

1- Dosya, OPEN komutu kullanılarak OUTPUT modunda açılır.


2- Kaydedilecek bilgiler, değişkenlere aktarılır.
3- WRITE # komutu kullanılarak değişkenlerdeki bilgiler dosyaya yazdırılır.
4- CLOSE # komutu kullanılarak, dosya kapatılır.

143
DATA DOSYASI OLUŞTURMA

Sll~All DOSYADAN BİLGİ OKUNMASI

Aşağıdaki şekilde, dosyadan bilgi okunması işleminde program-veri dosyası iliş­


kisi görülüyor.

Veri VERİ
PROGRAM - DOSYASI

Sıralı dosyadan bilgi okunmasında, aşağıdaki işlem sırası uygulanır:

1- Sıralı dosya, OPEN komutu kullanılarak INPUT modunda açılır.


2- INPUT # komutuyla dosyadaki bilgiler, programdaki değişkenlere okunur.
3- Dosya, CLOSE # komutuyla kapatılır.

Dosyalarla ilgili ilk programımızda DOSYA 1.DAT adında sıralı bir dosya oluş­
turmuş ve bu dosyaya sırasıyla 4,6 ve 7 sayılarını kaydetmiştik. Aşağıdaki prog-
ram, DOSYA 1.DAT adlı sıralı dosyayı açıp içindeki bilgileri okumaktadır.

100 '****SIRALI DOSYADAN BİLGİ OKUYAN PROGRAM****


110 '
120 OPEN "DOSYAl.DAT" FOR INPUT AS #1
130 FOR I=l TO 3
140 INPUT #1,D
150 PRINT D
160 NEXT I
170 CLOSE #1
999 END

RUN

4
6
7

DOSYA 1.DAT adlı dosyada 3 tane bilgi bulunduğunu bildiğimiz için, bu prog-
ramda FOR NEXT döngüsü kullanılarak 140 nolu satırdaki INPUT # 1, D komutu üç
defa çalıştırılmıştır.
Döngünün ilk çalışmasında, dosyadaki ilk bilgi olan 4 sayısı D değişkenine
okunur ve 150 nolu satırdaki PRINT komutuyla, 4 sayısı ekrana yazdırılır. Döngü-

144
DATA DOSYASI OLUŞTURMA

nün ikinci çalışmasında da, 140 nolu satırdaki INPUT # komutu dosyadaki ikinci
bilgi olan 6 sayısını D değişkenine okur. 150 nolu satırdaki PRINT komutu da bu
sayıyı ekrana yazdırır. Döngünün üçüncü çalışmasında da, dosyadaki üçüncü bilgi
olan 7 sayısı D değişkenine okunur ve ekranda görüntülenir.
Şimdi inceleyeceğimiz program ise, daha önceden oluşturulmuş olan NOT-
LAR.DAT dosyasını açarak bu dosyadaki bilgileri okumakta ve ekrana görüntüle-
mektedir.

100 '****SIRALI DOSYADAN ÖGRENCİ ADI VE NOTUNU OKUYAN PROGRAM****


110 '
120 OPEN "NOTLAR.DAT" FOR INPUT AS#l
130 PRINT "ADI NOTU"
140 PRINT "------------------"
150 WHILE NOT EOF(l)
160 INPUT #l,AD$,NO
170 PRINT AD$,NO
180 WEND
190 CLOSE #1
999 END

RUN

ADI NOTU

AHMET 70
MEHMET 80

Bu programda, WHILE-WEND döngüsü kullanılmıştır. 150 nolu satırda WHl-


LE NOT EOF( l) komutuyla, dosya sonuna gelinmedikçe döngünün devam etmesi
sağlanmıştır. 160 nolu satır çalıştıkça, öğrencinin adı AD$ değişkenine, notu ise
Nü değişkenine okunur. 170 nolu satırdaki PRINT komutu, bu bilgileri görüntü-
ler.

SIRAU DOSYAYA YENİ BİLGİLER EKLENMESİ

Sıralı bir dosyaya yeni bilgiler eklenmesinde aşağıdaki işlem sırası uygulanır.

1- Dosya OPEN komutu kullanılarak APPEND modunda açılır.


2- Yeni kaydedilecek (eklenecek) bilgiler, programdaki değişkenlere aktarılır.
3- Bilgiler WRITE # komutu kullanılarak değişkenler aracılığıyla dosyaya
kaydedilir.
4- CLOSE # komutuyla dosya kapatılır.

Dosya APPEND modunda açıldığında, yazıcı kafa önceki bilgilerin sonuna ko-

145
DATA DOSYASI OLUŞTURMA

numlanır ve yeni bilgileri buradan itibaren kaydeder. Bu suretle, eski bilgiler si-
linmeksizin dosyaya yeni bilgiler kaydedilmiş olur.

Aşağıdaki program, NOTLAR.DAT dosyasına yeni bilgiler eklemektedir.

100 '****SIRALI DOSYAYA ÖGRENCİ ADI VE NOTU KAYDEDEN PROGRAM****


110 '
120 OPEN "NOTLAR.DAT" FOR APPEND AS #1
130 PRINT
140 INPUT "ÖGRENCİNİN ADINI GİRİNİZ >",AD$
150 INPUT "ÖGRENCİNİN NOTUNU GİRİNİZ >" ,NO
160 WRITE #l,AD$,NO
170 PRINT
180 INPUT "DEVAM ETMEK İSTİYOR MUSUNUZ>",CEV$
190 IF CEV$="E" OR CEV$ =" e" TREN GOTO 13 O
200 CLOSE #1
999 END

RUN
ÖGRENCİNİN ADINI GIRINIZ > ALİ <ENTER>
ÖGRENCİNİN NOTUNU GİRİNİZ > 60 <ENTER>

DEVAM ETMEK İSTİYORMUSUNUZ > E <ENTER>

ÖGRENCİNİN ADINI GİRİNİZ > HAKAN <ENTER>


ÖGRENCİNİN NOTUNU GİRİNİZ > 85 <ENTER>

Böylece, NOTLAR.DAT dosyasına iki öğrenciye ait bilgi daha eklenmiş oldu.
DOS ortamına geçip TYPE komutuyla NOTLAR.DAT dosyasındaki bilgileri ekranda
görüntüleyebiliriz.

A:\>TYPE NOTLAR.DAT <ENTER>


"AHMET", 70
"MEHMET", 80
"ALİ", 60
"HAKAN", 85

Görüldüğü gibi, dosyadaki eski bilgiler silinmemiş ve bunlara iki yeni bilgi ek-
lenmiştir.

146
DATA DOSYASI OLUŞTURMA

SIRAU DOSYADA BİLGİ ARANMASI

Sıralı dosyalarda herhangi bir bilgi aranırken, ilk sıradaki bilgiden başlanır ve
bilgi bulununcaya kadar sırayla bütün kayıtlar taranır. Aranılan bilgi bulunamazsa
(yani dosyada böyle bir bilgi yoksa) dosya sonuna gelinir. Aşağıdaki programda,
daha önceden oluşturulmuş olan NOTLAR.DAT dosyasında bilgi arama işlemi ya-
pılmaktadır.

100 '****SIRALI DOSYADA ARA14...A YAPAN PROGRAM****


110 1

120 OPEN "NOTLAR.DAT" FOR INPUT AS#l


130 B=O
140 INPUT "ARADIGINIZ KİŞİNİN ADINI GİRİNİZ>",ARA$
150 WHILE NOT EOF(l)
160 INPUT #1,AD$,NO
170 IF ARA$=AD$ THEN B=l:PRINT "ADI: ";AD$,"NOTU: ";NO:GOTO 190
180 WEND
190 CLOSE #1
200 IF B=O THEN PRINT "ARADIGINIZ KAYIT BULUNAMADI"
210 PRINT
220 INPUT "DEVAM ETMEK İSTİYOR MUSUNUZ >",CEV$
230 IF CEV$="E" OR CEV$="e" THEN PRINT :GOTO 120
999 END

RUN

ARADIGINIZ KİŞİNİN ADINI GİRİNİZ > MEHMET <ENTER>

ADI : MEHMET NOTU: 80

DEVAM ETMEK İSTİYOR MUSUNUZ > H <ENTER>

Bu programda, 150 nolu satırda WHILE NOT EOF ( 1) komutu kullanılarak dön-
günün her çalışmasında dosya sonuna gelinip gelinmediği kontrol edilmektedir.
Dosya sonuna gelinmişse, aranan bilgi dosyada kayıtlı değil demektir.
Aranılan kayıt bulunduğunda B değişkenine 1 sayısı atanır. Aranılan kayıt bu-
lunamadığı taktirde ise B değişkeninin değeri O olarak kalır.
Aranılan kişinin adı ARA$ adlı değişkene aktarılır. Daha sonra 160 nolu satır­
daki INPUT # l komutuyla dosyadaki ilk kayıt AD$ ve Nü değişkenlerine okunur.
AD$ değişkeninde birinci kişinin adı bulunmaktadır. Eğer girilen isim (ARA$), dos-
yadan okunan ilk isme (AD$) eşit ise aranılan şahıs bulunmuş demektir. Aksi taktir-
de, dosya sonuna geli1nip gelinmediği kontrol edilerek, dosya sonuna gelinmemişse
ikinci kayıttaki bilgiler AD$ ve NO değişkenlerine okunur. Arama işlemi bu şekil­
de devam eder.

147
DATA DOSYASI OLUŞTURMA

SIRALI DOSYADAN KAYiT SİLİNMESİ

Sıralı dosyadan herhangi bir kaydın silinmesinde, aşağıdaki işlem sırası takip
edilir.

1- İçinden kayıt silinecek dosya INPUT modunda açılır.


2- Geçici bir dosya OUTPUT modunda açılır.
3- Kayıttan silinmek istenen bilgiye kadar, ilk dosyadaki bilgiler sırayla geçi-
ci dosyaya aktarılır.
4- Silinmek istenilen kayda gelindiğ inde , bu kayıt atlanarak d i ğer kayı tların tü-
mü geçici dosyaya kaydedilir.
5- İçinden kayıt silinmek istenen dosya, KILL komutuyla disketten silinir.
6- NAME AS komutu kullanılarak, geçici dosyanın adı, ilk dosyanın ad ı na çev-
ri 1 i r.

Aşağıdaki programda, NOTLAR.DAT dosyasından bir kayıt silinmektedir.

100 '****SIRALI DOSYADAN KAYIT SİLEN PROGRAM****


110 1

120 OPEN "NOTLAR.DAT" FOR INPUT AS #1


130 OPEN "GEC.DAT" FOR OUTPUT AS #2
140 B=O
150 INPUT "KAYITTAN SİLMEK İSTEDİGİNİZ KİŞİNİN ADINI GİRİNİ Z> ",ARA$
160 WHILE NOT EOF(l)
170 INPUT #l,AD$,NO
180 IF AD$<>ARA$ THEN WRITE #2,AD$,NO
190 IF AD$=ARA$ THEN B=l
200 WEND
210 CLOSE #1,#2
220 1

230 KILL "NOTLAR.DAT"


240 NAME "GEC.DAT" AS "NOTLAR . DAT"
250 IF B=O THEN PRINT "SİLMEK İSTEDİGİNİZ KAYIT BULUNAMAMIŞTIR .. "
260 PRINT
270 INPUT "DEVAM ETMEK İ STİYOR MUSUNUZ(E / H) >",CEV$
280 IF CEV$="E" OR CEV$="e" THEN GOTO 120
999 END

RUN
KAYITTAN SİLMEK İSTEDİGİNİZ Kİ ŞİNİN ADINI GİRİNİZ > ALİ
DEVAM ETMEK İSTİYOR MUSUNUZ (E/H) > H <ENTER>

Yukarıdaki program çalıştırıldı ğında, NOTLAR .DAT dosyası INPUT (bilgi oku-
ma) modunda, GEC.DAT ad lı bir geçici dosya da OUTPUT (bilgi yazma) modunda
açılmaktadır . 150 nolu satı r arac ılı ğıyla kayd ı silinmek istenen ki ş inin adı klav-
yeden girilir. Bu ad ile dosyadaki adlar sırayla karşıla ştırılır. Bu ada raslayınca-

148
DATA DOSYASI OLUŞTURMA

ya kadar olan bütün kayıtlar sırayla GEC.DAT dosyasına kaydedilir. Silinmek is-
tenilen kayda roslanıldığında bu kayıt atlanır ve geri kalan kayıtlar yine sırayla
GEC.DAT dosyasına kaydedilir.
230 nolu satırda, NOTLAR.DAT dosyası disketten silinmekte ve 240 nolu sa-
tırda da GEC.DAT dosyasının adı NOTLAR.DAT olarak değiştirilmektedir. NOT-
LAR.DAT dosyasının yeni şeklinin, silinen kaydı ihtiva etmediği görülecektir.
Bu programda iki dosya birden açıldığı için, dosyalarda birinin mantıksal birim
numarası 1, diğerinin ise 2 olarak tanımlanmıştır.
REHBER.DAT dosyasında 4 bilgi bulunmaktaydı. Yukarıdaki silme programı ça-
lıştırılarak üçüncü kayıt silinmiştir. Şimdi yapılan işlemi şematik diya~ıramda in-
celeyelim:

1- REHBER.DAT ve GEC.DAT dosyaları açılır.


REHBER.DAT GEC.DAT

4 kişiye
ait kayıt

Dosya sonu
işareti

2. REHBER.DAT dosyasındaki 3. kayıt hariç diğerleri GEC.DAT dosyasına kay-


dedilir.
REHBER.DAT GEC.DAT

3- REHBER.DAT dosyası disketten silinir.


REHBER.DAT

KILL "REHBER.DAT"

149
DATA DOSYASI OLUŞTURMA

4- GEC.DAT dosyasının adı REHBER.DAT olarak değiştirilir.

~
REHBER.DAT

NAME "GEC.DAT" AS "REHBER.DAT"

SIRASAL DOSYALARLA İLGİLİ MENÜ PROGRAM!

Aşağıdaki program, sırasal dosyalarla ilgili olarak buraya kadar öğrenmiş oldu-
ğumuz bütün konuları kapsamaktadır. Programda bir firma çalışanlarına ait, ad so-
yad, maaş ve sicil bilgileriyle ilgili işlemler yapılmaktadır.

Program, menü sistemiyle çalışmaktadır. Buna göre istenilen menü seçeneği ça-
lıştırılarak, bilgi girişi ve değişiklik, bilgi silme, bilgileri ekrana veya yazıcıya
listeleme ve programdan çıkış işlemleri yapılabilmektedir.

5 KEY OFF
10 CLS
20 BEEP
30 LOCATE 4,23:PRINT"A NA MEN Ü"
40 LOCATE 7,20:PRINT"l. BİLGİ GİRİŞ / DEGİŞİKLİK"
50 LOCATE 9,20:PRINT"2. BİLGİ SİLME"
6O LOCATE 11, 2 O: PRINT" 3 . EKRANA LİSTELEME"
70 LOCATE 13,20:PRINT"4. YAZICIYA LİSTELEME"
80 LOCATE 15,20:PRINT"5. PROGRAM ÇIKIŞI"
90 LOCATE 18,20:PRINT"SEÇENEGI GİRİNİZ
100 LOCATE 18,47:INPUT "",SEC
120 ON SEC GOTO 1000,4000,2000,3000,5000
130 LOCATE 22,20:PRINT"LÜTFEN 1 - 5 ARASI DEGER GİRİNİZ"
140 FOR I=l TO 3000:NEXT I
150 LOCATE 22,l:PRINT STRING$(80,32)
160 GOTO 100
1000 '
1010 KEY OFF
1020 BEEP
1030 CLS
1040 CLS
1050 1

1060 'BİLGİ GİRİŞ/DEGİŞİKLİK PROGRAMI

150
DATA DOSYASI OLUŞTURMA

1070 '
1080 CLS
1090 K=O
1100 LOCATE 5,20:PRINT"BİLGİ GİRİŞ/DEGİŞİKLİK "
1110 LOCATE 8,20:PRINT"SİCİL NO ·"
1120 LOCATE 10,20:PRINT"ADI SOYADI ·"
1130 LOCATE 12, 20: PRINT"MAAŞI ·"
1140 LOCATE 8,33:INPUT "",S
1150 IF S=O TREN GOTO 1390
1160 OPEN "I",#1,"SICIL.DAT"
1170 OPEN "0",#2,"GECICI.DAT"
1180 IF EOF(l) TREN GOTO 1230
1190 INPUT #l,SICIL,AD$,M
1200 IF S=SICIL TREN GOSUB 1320
1210 WRITE #2,SICIL,AD$,M
1220 GOTO 1180
1230 IF K<>O TREN GOTO 1280
1240 LOCATE 20,20:PRINT"YENI BİLGİ GİRİLİYOR"
1250 LOCATE 10, 33: INPUT '"',AD$
1260 LOCATE 12,33:INPUT "",M
1270 WRITE #2,S,AD$,M
1280 CLOSE #1,#2
1290 KILL "SICIL.DAT"
1300 NAME "GECICI.DAT" AS "SICIL.DAT"
1310 GOTO 1080
1320 LOCATE 20,20:PRINT"ESKİ BİLGİ DÜZELTİLİYOR"
1330 LOCATE 10,33:PRINT AD$
1340 LOCATE 12,33:PRINT M
1350 LOCATE 10, 33: INPUT "",AD$
1360 LOCATE 12, 33: INPUT "" ,M
1370 K=l
1380 RETURN
1390 CLS
1400 LOCATE 12,20:PRINT"PROGRAMDAN ÇIKIYORSUNUZ"
1410 FOR I=l TO lOOO:NEXT I
1420 1

1430 GOTO 10
2000 1

2010 'EKRANA LİSTELEME PROGRAMI


2020 1

2040 CLS
2050 OPEN "I", #1, "SICIL. DAT"
2060 IF EOF(l) TREN GOTO 2280
2070 LOCATE 1, 10 :PRINT"SICIL"
2080 LOCATE l,2l:PRINT"ADI SOYADI"
2090 LOCATE l,47:PRINT"MAAS"
2100 LOCATE 2,lO:PRINT"-----"
2110 LOCATE 2,2l:PRINT STRING$(20,45)

151
DATA DOSYASI OLUŞTURMA

2120 LOCATE 2,47:PRINT"---------"


2130 I=3
2140 IF EOF(l) THEN GOTO 2270
2150 INPUT #l,S,AD$,M
2160 LOCATE I,lO:PRINT S
2170 LOCATE I,21:PRINT AD$
2180 LOCATE I,47:PRINT M
2190 IF I>20 THEN GOTO 2220
2200 I=I+l
2210 GOTO 2140
2220 LOCATE 23,20:INPUT "DEVAM İÇİN ENTER TUŞUNA BASIN",EH$
2230 FOR I=3 TO 23
2240 LOCATE I,l:PRINT STRING$(80,32)
2250 NEXT I
2260 GOTO 2130
227 O LOCATE 22 , 25 : INPUT "DOSY.JI. SONU " , EH$
2280 CLS
2290 GOTO 2310
2300 LOCATE 12,20:PRINT"HİÇ KAYIT YOK"
2310 FOR I=l TO lOOO:NEXT
2320 CLS
2330 CLOSE #1
2340 '
2350 CLS
2360 LOCATE 12,20:PRINT"LİSTELEME PROGRAMINDAN ÇIKIYORSUNUZ"
2370 '
2380 FOR I=l TO 2000:NEXT
2390 '
2400 GOTO 10
3000 '
3010 'YAZICIYA LISTELEME PROGRAMI
3020 '
3040 CLS
3050 OPEN "I", #1, "SICIL.DAT"
3060 K=55
3070 IF EOF(l) THEN GOTO 3200
3080 IF K>50 THEN GOSUB 3340
3090 IF EOF(l) THEN GOTO 3190
3100 INPUT #l,S,AD$,M
3110 LPRINT TAB(10);
3120 LPRINT USING"#####" ;S;
3130 LPRINT TAB(21);
3140 LPRINT USING"\"+SPACE$(18)+"\";AD$;
3150 LPRINT TAB(47);
3160 LPRINT USING"########" ;M
3170 K=K+l
3180 GOTO 3080
3190 LPRINT CHR$(12)

152
DATA DOSYASI OLUŞTURMA

3200 CLS
3210 GOTO 3230
3220 LOCATE 12,20:PRINT"HİÇ KAYIT YOK"
3230 FOR I=l TO lOOO:NEXT
3240 CLS
3250 CLOSE #1
3260 1

3270 CLS
3280 LOCATE 12,20:PRINT"LİSTELEME PROGRAMINDAN ÇIKIYORSUNUZ"
3290 1

3300 FOR I=l TO 2000:NEXT


3310 1

3320 GOTO 10
3340 LPRINT CHR$(12)
3350 LPRINT TAB(lO); "SİCİL" ;TAB(21); "ADI SOYADI" ;TAB(47); "MAAŞI"
3360 LPRINT TAB(lO); "-----" ;TAB(21) ;STRING$ (20, 45) ;TAB(47); "-----"
3370 LPRINT
3380 K=l
3390 RETURN
4000 '
4010 KEY OFF
4020 BEEP
4030 CLS
4040 CLS
4050 '
4060 'SİLME PROGRAMI
4070 '
4080 CLS
4090 K=O
4100 LOCATE 5,20:PRINT"BİLGİ SİLME MENÜSÜ "
4110 LOCATE 8,20:PRINT"SİCİL Nü ·"
4120 LOCATE 10,20:PRINT"ADI SOYADI :"
4130 LOCATE 8,33:INPUT 1111 ,S
4140 IF S=O THEN GOTO 4350
4150 OPEN "I", #1, "SICIL.DAT"
4160 OPEN "O", #2, "GECICI. DAT"
4170 IF EOF(l) THEN GOTO 4290
4180 INPUT #l,SICIL,AD$,M
4190 IF S=SICIL THEN GOTO 4220
4200 WRITE #2,SICIL,AD$,M
4210 GOTO 4170
4220 LOCATE 10,33:PRINT AD$
4230 K=l
4240 LOCATE 20,20:INPUT "SİLİNSİN Mİ ( E/H )",EH$
4250 IF EH$="E" OR EH$="e" THEN LOCATE 20,20:PRINT"BİLGİ SİLİNDİ "·
GOTO 4170
4260 LOCATE 20,20:PRINT"BİLGİ SİLİNMEDİ"
4270 WRITE #2,SICIL,AD$,M

153
DATA DOSYASI OLUŞTURMA

4280 GOTO 4170


4290 CLOSE #1,#2
4300 IF K=O THEN LOCATE 20,20:PRINT"ARANAN BİLGİ BULUNAMADI"
4310 KILL "SICIL.DAT"
4320 NAME "GECICI.DAT" AS "SICIL.DAT"
4330 FOR I=l TO 2000:NEXT
4340 GOTO 4080
4350 CLS
4360 LOCATE 12,20:PRINT"SİLME PROGRAMINDAN ÇIKIYORSUNUZ"
4370 FOR I=l TO lOOO:NEXT I
4380 '
4390 GOTO 10
5000 '
5010 ' PROGRAMDAN ÇIKIŞ BÖLÜMÜ
5020 '
5030 CLS
5040 LOCATE 12,20:PRINT"H O Ş ÇAKALINI Z"
5050 FOR I=l TO 15000:NEXT I
5060 CLS
9999 END

C- RASGELE ERİŞİMLİ (RANDOM) DOSYALAR


Sıralı dosyalarda, özellikle arama işlemlerinde şöyle bir problemle karşılaşılır:
Dosyada 1000 kişiye ait kayıt bulunduğunu düşünelim. Arama işlemlerinde ilk
kayıttan başlandığı için, örneğin 900. kaydı aradığımızda ilk 900 kayıt !arana-
caktır. Bu ise zaman kaybına yol açar. Aynı durum düzeltme ve silme işlemleri
için de geçerlidir.
Rasgele erişimli dosyalarda ise her kayıt bir kayıt numarası ile dosyaya kayde-
dildiği için, bu kayıt numarası kullanılarak ilgili kayda doğrudan doğruya ulaşıla­
bilir.
Rasgele erişimli dosyalarda, kaydedilecek bilgi için öncelikle bir kayıt deseni
tanımlanır, bilgi bu kayıt desenindeki formatta geçici belleğe aktarılır. Geçici
bellekteki bilgi daha sonra bir kayıt numarası verilerek dosyaya yazdırılır. Kayıt
numarası, bilginin disket veya harddiskte yazdırıldığı kayıt bölgesinin numarası­
dır.
Rasgele erişimli dosyalarda 1/0 (Giriş/Çıkış) işlemlerinde aşağıdaki komutlar
kullanılır:

OPEN PUT
FIELD GET

154
DATA DOSYASI OLUŞTURMA

MK1$ cvı
MKS$ cvs
MKD$ CVD
LSET CLOSE
RSET

Şimdi de sırasıyla bu komutları inceleyelim.

OPEN

Bu komut bir dosyayı açmak için kullanılır. OPEN komutu iki farklı formda ya-
zılabilir:

1- OPEN "Dosyaadı. uzantı" FOR RANDOM AS# mantıksal birim numarası

Örnek:

OPEN "SINIF.DAT" FOR RANDOM AS#l

Bu örnekte SINIF.DAT adlı bir Rasgele erişimli dosya genel amaçlı olarak açıl­
maktadır. Genel amaçlı derken kastımız şudur: Dosya RANDOM modunda açıldı­
ğında bu dosya hem ilk defa oluşturulabilir, eğer daha önceden böyle bir dosya
mevcutsa bu dosyada hem okuma hem de yazma işlemleri yapılabilir.

2- OPEN "R", # mantıksal birim numarası, "Dosyaadı.uzantısı"

Örnek:

OPEN "R", #2, "OKUL.DAT"

Bu örnekte de OKUL.DAT adlı rasgele erişimli dosya genel amaçlı olarak açıl­
mış olur.
Aşağıdaki örneklerde, OPEN komutunun iki farklı formu karşılaştırmalı olarak
verilmektedir:

1- OPEN "SAYl.DAT" FOR RANDOM AS #3

veya

OPEN "R", #3, "SAYI.DAT"

2- OPEN "RENK.DAT" FOR RANDOM AS#2

veya

155
DATA DOSYASI OLUŞTURMA

OPEN "R", #2, "RENK.DAT"


Tekrar belirtelim ki, rasgele erişimli bir dosya hangi amaç için olursa olsun
(okuma, yazma, ilk defa oluşturma, bilgi ekleme), RANDOM veya "R" modunda açı­
lır. Başka deyişle, rasgele erişimli bir dosya RANDOM veya "R" modunda açıldık­
tan sonra, bu dosyayla ilgili her türlü işlem yapılabilir.

FIELD #

Rasgele erişimli dosyalarda, kayıt deseninin tanımlanmasında kullanılır. Kayıt


deseni, dosyaya yazdırılacak veya dosyadan okunacak bilgilerin aktarıldığı geçi-
ci belleğin (tampon) yapısını belirler.
Geçici bellek (tampon) ancak alfasayısal (string) tipindeki bilgileri tutabi lir. Bu
nedenle, bu bölgeye aktarılacak sayısal değişkenler önce alfasayısala çevrilir.

FIELD # mantıksal birim numarası, n l AS dl, n2 AS d2, ..... . .

Burada, mantıksal birim numarası, açılan dosyanın mantıksal birim numarasıdır.


nl : dl değişkeni için ayrılan alan (byte olarak)
n2 : d2 değişkeni için ayrılan alan (byte olarak)
dl ve d2 : Kayıt desenindeki alfasayısal değişken ler .

Örnek:

FIELD #1, 2 AS A$, 10 AS B$, 4 AS C$

Bu örnekte:

A$ değişkeni için 2 byte,


B$ değişkeni için l O byte,
C$ değişkeni için 4 byte

yer ayrılmıştır. A$, B$ ve C$ değişkenleri, programdaki değişkenler olmayıp, ka-


yıt deseninin yapısını belirleyen değişkenlerdir. Bu dosyada bir kaydın uzunluğu :
2+ l 0+4= 16 byte olacaktır.

MK1$

Geçici belleğin ancak alfasayısal (string) türü bilgileri tutabildiğini daha önce
belirtmiştik. MKI$ komutu, tamsayı tipi bir bilgiyi, alfasayısal (string) tipine çe-
virir. Herhangi bir tamsayı bilgi, alfasayısala çevrildiğinde, bellekte 2 byte
uzunluğunda yer kaplar.

156
DATA DOSYASI OLUŞTURMA

MKS$

MKS$ komutu, tek duyarlıklı gerçel sayı tipi bir bilgiyi, alfasayısal (string) ti-
pine çevirir. Tek duyarlıklı gerçel sayı tipi bilgi, alfasayısala çevrildiğinde bel-
lekte 4 byte uzunluğunda yer kaplar.

MKD$

Çift duyarlıklı gerçel sayı tipi bilgiyi, alfasayısal (string) tipi bilgiye çevırır.
Sayısal bilgiler, geçici bellek olanına aktarılmadan önce tiplerine uygun fonksi-
yon kullanılarak alfasayısal tipi bilgiye çevrilmelidirler. Aşağıdaki listede hangi
tip sayısal bilginin alfasayısala çevrilirken hangi fonksiyonun kullanılacağı ve
geçici bellekte kaplayacağı olan görülmektedir.

SAYISAL BİLGİ FONKSİYON GEÇİCİ BELLEKTEKİ ALAhl

Tamsayı MK1$ 2 byte


Tek duyarlıklı gerçel sayı MKS$ 4 byte
Çift duyarlıklı gerçel sayı MKD$ 8 byte

lSET KOMUTU

Bilgisayar belleğindeki değişkenlerde tutulan bilgileri, FIELD # komutu ile ta-


nımlanmış alanlara, sola dayalı olarak aktarır.

RSET KOMUTU

Bilgisayar belleğindeki değişkenlerde tutulan bilgileri, FIELD# komutu ile ta-


nımlanmış alanlara, sağa dayalı olarak aktarır.

PUT# rı,m

Geçici bellekte, (tamponda) bulunan bir kaydı, rasgele erişimli dosyaya kayde-
der. n parametresi, dosyanın. mantıksal birim numarası, m ise kayıt numarasıdır.

Örnek:

PUT #1,5

Bu komut, o anda geçici bellekte bulunan bilgileri l nolu dosyaya 5 numaralı


kayıt olarak kaydeder.

157
DATA DOSYASI OLUŞTURMA

GH # n,m

Dosyada bulunan bir kayıttaki bilgileri, geçici belleğe (tampon) okur, n para-
metresi dosyanın mantıksal birim numarası, m ise okunan kaydın numarasıdır.

Örnek:

GET #2,6

Bu komut, mantıksal birim numarası 2 olan dosyadan 6 nolu kayıttaki bilgileri,


geçici belleğe okur.

cvı

Sayısal bilgilerin, rasgele erişimli dosyaya kaydedilmeden önce alfasayısal ti-


pi bilgiye çevrildiğini biliyoruz. Kayıtlardaki bilgilerin okunmasında da, alfasayı­
saia çevrilmiş olan bu bilgilerin orpnal hallerine yani tekrar sayısal bilgiye çev-
rilmeleri gerekir. CVI komutu, daha önce MK1$ komutu kullanılarak alfasayısal ti-
pine çevrilmiş olan tamsayı tipi bilgiyi tekrar tamsayı tipi bilgiye çevirir.

cvs
Daha önce MKS$ komutu kullanılarak alfasayısal tipe çevrilmiş olan tek duyar-
lıklı gerçel sayı tipi bilgiyi tekrar eski haline döndürür.

CVD

Daha önce MKD$ komutu kullanılarak alfasayısal tipe çevrilmiş olan çift du-
yarlıklı gerçel sayı tipi bilgiyi tekrar eski haline (yani gerçel sayı tipi bilgiye)
döndürür.

ClOSE KOMUTU

Açık olan bir veya birkaç rasgele erişimli dosyanın kapatılmasında kullanılır.
CLOSE # 1
Bu komut, mantıksal birim numarası 1 olan dosyayı kapatır.
CLOSE #1, #3
Yukarıdaki komut ise 1 ve 3 numaralı dosyaları kapatır.
CLOSE komutu yalnız başına kullanılırsa, açık olan bütün dosyaları kapatır.
CLOSE
Yukarıdaki kullanımda, o anda açık olan bülün dosyalar kapanır.

158
DATA DOSYASI OLUŞTURMA

RASGELE ERİŞİMLİ DOSYAYA BİLGİ YAZILMASI

Rasgele erişimli (Random) bir dosyaya bilgi kaydedilmesinde aşağıdaki işlem sı­
rası takip edilir:

1- Dosya RANDOM veya "R" modunda açılır.


2- FIELD komutu kullanılarak, kayıt desenini oluşturan değişkenler için geçici
bellekte yer ayrılır.
3- Kaydedilecek bilgiler programdaki değişkenlere aktarılır.
4- LSET veya RSET komutları kullanılarak, programdaki değişkenlerdeki bilgiler,
kayıt desenindeki değişkenlere sola veya sağa dayalı olarak aktarılır.

5- PUT komutu kullanılarak, geçici bellekteki bilgiler dosyaya yazılır.


6- Kayıt işlemine devam edilmek isteniyorsa 3. maddeden itibaren işlemler tek-
rarlanır.

7- CLOSE komutu kullanılarak dosya kapatılır.

Şimdi inceleyeceğimiz program, rasgele erişimli dosyaya kayıt yapmaktadır.

100 '****RANDOM DOSYAYA BİLGİ KAYDEDEN PROGRAM****


110 1

120 OPEN "A.DAT" FOR RANDOM AS #1


13 o 1

140 FIELD #1,10 AS AD$,15 AS SOY$,2 AS YAS$


150 PRINT
160 INPUT "Adınız >" ,A$
170 INPUT "Soyadınız >",S$
180 INPUT "Yaşınız >", Y
190 1

200 LSET AD$=A$


210 LSET SOY$=S$
220 Y$=MKI$(Y)
230 LSET YAS$=Y$
240 '
250 INPUT "Kayıt numarasını giriniz >" ,KN
260 PUT #1,KN
270 PRINT
280 INPUT "DEVAM ETMEK İSTİYOR MUSUNUZ (E/H) >",CEV$
290 IF INSTR("EeHe",CEV$)=0 THEN GOTO 280
300 IF CEV$="E" OR CEV$="e" THEN GOTO 150
310 CLOSE #1
999 END

RUN

159
DATA DOSYASI OLUŞTURMA

Adınız > AHMET


Soyadınız > CAN
Yaşınız > 25

Kayıt numarasını giriniz > 1

DEVAM ETMEK İSTİYORMUSUNUZ (E/H) > E

Adınız > MEHMET


Soyadınız >
ÖZTÜRK
Yaşınız > 19
Kayıt numarasını giriniz > 2

DEVAM ETMEK İSTİYORMUSUNUZ (E/H) > H

Yukarıdaki programda, 140 nolu satırdaki FIELD komutu aracılığıyla kayıt de-
seni tanımlanmaktadır.
140 FIELD #1, 10 AS AD$, 15 AS SOY$, 2 AS YAS$
Bu komut çalıştırıldığında geçici belleğin kayıt deseni aşağıdaki gibi olur.

AD$ SOY$ YAS$

l O Byte 15 Byte 2 Byte

Kayıt desenindeki değişkenler şunlardır:


AD$ ~ l O Byte (En fazla 1O harflik bir ismi tutabilir)
SOY$ ~ 15 Byte (En fazla 15 harflik bir soyadını tutabilir)
YAS$ ~ 2 Byte

Programdaki değişkenler ise şunlardır:


A$ ~ Adı tutuyor.
S$ ~ Soyadı tutuyor.
Y$ ~ Yaşı tutuyor.

200 nolu satırdaki LSET komutu, programdaki A$ değişkenindeki bilgiyi (yani


adı), geçici bellekteki AD$ değişkenine sola dayalı olarak aktarır.
21 O nolu satırdaki LSET komutu ise, programdaki S$ değişkenindeki bilgiyi
(yani soyadını), geçici bellekteki SOY$ değişkenine sola dayalı olarak aktarmak-
tadır.
220 nolu satırda MK1$ komutuyla sayısal bilgi alfasayısal bilgiye çevrilmek-
te daha sonra do 230 nolu satırdaki LSET komutuyla, Y$ değişkenindeki bu bilgi,

160
DATA DOSYASI OLUŞTURMA

geçici bellekteki YAS$ değişkenine, sola dayalı olarak aktarmaktadır.


250 nolu satırda, kullanıcıdan bir kayıt numarası girilmesi istenmekte ve 260
nolu satırdaki PUT komutuyla, geçici bellekteki bilgiler KN değişkeninin tuttuğu
numaralı kayıt alanına kaydedilmektedir.
Program çalıştırıldığında iki kişiye ait kayıt girilmiştir. Birinci kişiye ait kayıt
l nolu kayıt alanına, 2. kişiye ait kayıt ise 2 nolu kayıt alanına aktarılmıştır.
Sıralı do~yalarda kayıt numarası serbestçe seçilebilir ve rasgele alanlara kayıt
yapılabilir. Orneğin yukarıdaki programda birinci kişiye ait bilgiler l nolu kayıt
alanına, ikinci kişiye ait bilgiler ise 4 nolu kayıt alanına kaydedilebilirdi. Bu ta-
mamen bizim vereceğimiz kayıt numarasına bağlıdır. Yazma veya okuma anında
herhangi bir kayıt alanında bilgi olup olmadığını anlamak için kaydın ilk elemanı
olarak belirli bir işaret konulması çok rastlanan bir uygulamadır. Böylece, hem da-
ha önceden bilgi kaydedilmiş bir alana yeniden bilgi yazılması, hem de okuma is-
temlerinde boş alanların okunması önlenmiş olur.
Aşağıdaki programda, rasgele erişimli bir dosyaya kayıt yapılmaktadır. Kayıt
desenindeki iZ$ değişkenine "*" karakteri aktarılarak her kaydın ilk elemanının "*"
olması sağlanmaktadır. Böylece, herhangi bir alanda kayıt bulunup bulunmadığı
kontrol edilebilmektedir.

100 '****RANDOM DOSYAYA KAYIT YAPAN PROGRAM****


110 1

120 CLS:KEY OFF


130 OPEN "OKUL.DAT" FOR RANDOM AS #1
140 FIELD #1,l AS IZ$,10 AS OAD$,10 AS OSOY$
150 INPUT 11 öGRENCİNİN NUMARASINI GİRİNİZ >" ,N
160 GET #1,N
170 IF IZ$="*" THEN PRINT "BU ALANDA MEVCUT BİR KAYIT VAR .. ":GOTO 260
180 INPUT "ÖGRENCİNİN ADINI GİRİNİZ>",AD$
190 INPUT 11 öGRENCİNİN SOYADINI GİRİNİZ>",SOY$
200 1

210 LSET OAD$=AD$


220 LSET OSOY$=SOY$
230 LSET IZ$="*"
240 PUT #1,N
250 PRINT
260 INPUT "DEVAM ETMEK İSTİYORMUSUNUZ>",CEV$
270 IF INSTR("EeHh",CEV$)=0 THEN GOTO 260
280 IF CEV$="E" OR CEV$="e" THEN PRINT :GOTO 140
290 CLOSE #1
999 END

Bu program çalıştırıldığında, her öğrenciy~ ait kaydı, o öğrencinin okul numa-


rasını taşıyan kayıt alanına yapılmaktadır. Orneğin, okul numarası 20 olan bir
öğrenciye ait bilgi, 20 nolu kayıt alanına kaydedilmektedir. Kayıttaki ilk eleman
"*" karakteri olduğu için, herhangi bir alanda mevcut bir kayıt bulunup bulunmadı-

161
DATA DOSYASI OLUŞTURMA

ğı kontrol edilebilmektedir. 160 nolu satırdaki GET komutuyla, kayıt yapılmak is-
tenen alan önce okunup burada bir kayıt olup olmadığı kontrol edilmektedir.
Önemli not: Rasgele erişimli dosyalarda, daha önceden kayıt yapılmış bir ka-
yıt alanına yeni bir kayıt yapıldığında o kayıttaki eski bilgiler silinir ve yerine
yeni bilgiler gelir.

RASGELE ERİŞİMLi DOSYAl.ARDAN BİLGİ OKUMA

Bir önceki programda, "Ol(UL. DAT" adlı bir rasgele erişimli dosya oluşturulmuş
ve bu dosyaya bilgiler yazılmıştı. Şimdi inceleyeceğimiz program ise,
"OKUL.DAT" adlı rasgele erişimli dosyayı açarak bu dosyadan belirli bir kayıt
alanındaki bilgileri okur.

100 '****RANDOM DOSYADA ARA:ırıA YAPAN PROGRAM****


105 '
11 O CLS : KEY OFF
120 OPEN "OKUL.DAT" FOR RANDOM AS #1
130 FIELD #1,l AS IZ$,10 AS OAD$,10 AS OSOY$
140 INPUT "ARADIGINIZ öGRENCİNİN NUMARASINI GİRİNİZ >",N
150 GET #1,N
160 IF IZ$<>"*" THEN PRINT "BÖYLE BİR KAYIT MEVCUT DEGİL .. ":GOTO 210
170 PRINT
180 PRINT "öGRENCİNİN NlTMARASI =" ;N
190 PRINT "ÖGRENCİNİN ADI =" ;OAD$
200 PRINT "ÖGRENCİNİN SOYADI =" ;OSOY$
210 PRINT
220 INPUT "ARAMA İŞLEMİNE DEVAM ETMEK İSTİYORMUSUNUZ >",CEV$
230 IF INSTR("EeHh",CEV$)=0 THEN GOTO 220
240 IF CEV$="E" OR CEV$="e" THEN PRINT :GOTO 140
250 CLOSE #1
999 END

OKUL.DAT isimli dosyada, her öğrenciye ait okul numarasının, o öğrenciye ait
bilgilerin bulunduğu kayıt alanı numarası olduğunu biliyoruz. Yukarıdaki program
çalıştırıldığında, öğrencinin okul numarası girildiğinde aynı kayıt numarasını taşı­
yan kayıt alanındaki bilgiler okunacaktır. Kayıt alanındaki ilk eleman "*" değilse,
o alanda herhangi bir kayıt mevcut değil demektir.
150 nolu satırdaki GET komutu, N numaralı kaydı, disketten geçici belleğe
okumaktadır.
Aşağıdaki program, ADRES. DAT adlı rasgele erişimli bir dosya oluşturarak bu
dosyaya kişilere ait ad-soyad, adres ve telefon numarası bilgilerini kaydetmekte-
dir.

162
DATA DOSYASI OLUŞTURMA

Dosyanın kayıt deseni aşağıdaki gibidir:

SIRA$ 2 Byte ----? Sıra numarası (kayıt numarası)


A$ 20 Byte ----? Ad-Soyad
ADR$ 25 Byte ~Adres
TEL$ 8 Byte ----? Telefon numarası

5 '****RANDOM DOSYAYA BİLGİ KAYDEDEN PROGRAM****


6 '
100 OPEN "R",#1,"ADRES.DAT"
110 FIELD #1,2 AS SIRA$,20 AS A$,25 AS ADR$,8 AS TEL$
120 CLS
130 LOCATE 4,20:PRINT"BİLGİ GİRİŞ MENÜSÜ"
140 LOCATE 8,20:PRINT"SIRA NO ·"
150 LOCATE 10,20:PRINT"ADI SOYADI ·"
160 LOCATE 12,20:PRINT"ADRESİ ·"
170 LOCATE 14,20:PRINT"TELEFON ·"
180 LOCATE 18,20:PRINT"ÇIKIŞ İÇİN SIRA NUMARASINI SIFIR GİRİN"
190 '
200 'DEGERLERİ OKUMA BOLÜMÜ
210 LOCATE 8, 33: INPUT "", S
220 IF S<=O THEN GOTO 370
230 LOCATE 10,33:INPUT n ıı ,AD$
240 LOCATE 12, 33: INPUT "",ADRES$
250 LOCATE 14, 33: INPUT "",TEL
260 '
270 LSET SIRA$=MKI$(S)
280 LSET A$=AD$
290 LSET ADR$=ADRES$
300 LSET TEL$=MKS$(TEL)
310 '
320 'GEÇİCİ BELLEK ALANINI S NCI KAYIT
330 'OLARAK YAZDIRMA
340 '
350 PUT #1,S
360 GOTO 120
370 '
380 'BİLGİ GİRİŞİ TAMAMLANDI
390 '
400 CLOSE #1
410 CLS
999 END

Rasgele erişimli dosyalarda, dosyaya kayıt yapan programda hangi kayıt dese-
ni kullanılmışsa, kayıt okuyan programda da aynı kayıt deseni kullanılmalıdır.

163
DATA DOSYASI OLUŞTURMA

Başka deyişle kayıt yapan programda FIELD komutu aracılığıyla tanımlanan kayıt
deseni değişkenlerinin sırası ve byte olarak uzunluklarıyla, aynı dosyadan kayıt
okuyan programdaki FIELD komutu aracılığıyla tanımlanan kayıt deseni değişken­
lerinin sırası ve uzunlukları aynı olmalıdır. Ancak, kayıt desenlerindeki değişken
adlarının aynı olması zorunluluğu yoktur.
Aşağıdaki program, bir önceki program tarafından oluşturulan ve içine bilgi
kaydedilen "ADRES.DAT" adlı rasgele erişimli dosyadan bilgi okumaktadır.

100 '****RANDOM DOSYADAN BİLGİ OKUYAN PROGRAM****


110 1

120 OPEN "R",#2,"ADRES.DAT"


130 FIELD #2,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$
140 CLS
150 LOCATE 4,20:PRINT"BİLGİ OKUMA MENÜSÜ"
160 LOCATE 8,20:PRINT"SIRA NO "'
170 LOCATE 10,20:PRINT"ADI SOYADI ·"
180 LOCATE 12,20:PRINT"ADRESİ ·"
190 LOCATE 14,20:PRINT"TELEFON ·"
200 LOCATE 18,20:PRINT"ÇIKIŞ İÇİN SIRA NUMARASINI SIFIR GIRIN"
210 LOCATE 8,33:INPUT "",S
220 IF S=O THEN GOTO 380
230 '
240 'S NCI KAYDI OKUMA
250 GET #2,S
260 SIRA=CVI(S$)
270 AD$=A$
280 ADRES$=ADR$
290 TEL=CVS(TEL$)
300 IF SIRA=O THEN GOTO 350
310 LOCATE 10,33:PRINT AD$
320 LOCATE 12,33:PRINT ADRES$
330 LOCATE 14,33:PRINT TEL
340 GOTO 360
350 LOCATE 20,20:PRINT "ARANAN KAYIT BULUNAMADI"
360 LOCATE 22,20:INPUT "DEVAM ETMEK İÇİN ENTER TUŞUNA BASINIZ",EH$
370 GOTO 140
380 '
390 'BİLGİ OKUMA ÇIKIŞI
400 '
410 CLS
420 CLOSE #2
999 END

Bu program çalıştırıldığında, kayıt sıra numarası girilmesi istenecek ve bu nu-


maralı kayıttaki bilgiler okunacaktır. Sıra numarası olarak O sayısı girilirse bilgi
okuma işlemi sona erecektir.

164
DATA DOSYASI OLUŞTURMA.

Rasgele erişimli dosyalarda, daha önceden bilgi yazılmış bir kayıt alanına ye-
ni bilgi yazıldığında, önceki bilginin silinip yerine yeni bilginin yazıldığını daha
önce belirtmiştik. Buna göre, bir kaydın değiştirilmesi veya düzeltilmesi işlemi, o
kayıt çağrılıp aynı alana yeni bilgilerin yazılmasıyla mümkün olabilmektedir.
Aşağıdaki program, "ADRES.DAT" dosyasında, mevcut bulunan kayıtların düzel-
tilmesi-değiştirilmesi işlemini yapmaktadır.

1000 '****RANDOM DOSYADA GİRİŞ/DEGİŞİKLİK PROGRAMI****


1010 '
1020 1

1030 KEY OFF


1040 OPEN "R",#1,"ADRES.DAT"
1050 FIELD #1,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$
1060 CLS
1070 LOCATE 4,20:PRINT "BİLGİ GİRİŞ/DEGİŞİKLİK MENÜSÜ"
1080 LOCATE 8,20:PRINT "SIRA NO ·"
1090 LOCATE 10,20:PRINT "ADI SOYADI ·"
1100 LOCATE 12,20:PRINT "ADRESİ ·"
111 O LOCATE 14, 2 O: PRINT "TELEFON ·"
1120 LOCATE 18,20:PRINT "ÇIKIŞ İÇİN SIRA NO=O GİRİN"
1130 LOCATE 8,33:INPUT "",S
1140 IF S=O THEN GOTO 1400
1150 GET #1, S
1160 SIRA=CVI(S$)
1170 AD$=A$
1180 ADRES$=ADR$
1190 TEL=CVS(TEL$)
1200 K$="ESKİ BİLGİ YENİLENİYOR"
1210 IF SIRA=O THEN GOSUB 1350
1220 LOCATE 10,33:PRINT AD$
1230 LOCATE 12,33:PRINT ADRES$
1240 LOCATE 14,33:PRINT TEL
1250 LOCATE 20,20:PRINT K$
1260 LOCATE 10, 33: INPUT "",AD$
1270 LOCATE 12,33:INPUT "",ADRES$
1280 LOCATE 14,33:INPUT "",TEL
1290 LSET S$=MKI$(S)
1300 LSET A$=AD$
1310 LSET ADR$=ADRES$
1320 LSET TEL$=MKS$(TEL)
1330 PUT #1,S
1340 GOTO 1060
1350 AD$=SPACE$(20)
1360 ADRES$=SPACE$(25)
1370 TEL=O
1380 K$="YENİ BİLGİ GİRİLİYOR"
1390 RETURN
1400 '

165
DATA DOSYASI OLUŞTURMA

1410 'GİRİŞ / DEGİŞİKLİK İŞLEMİ TAMAMLANDI


1420 '
1430 CLS
1440 CLOSE #1
1450 END

Bu program ayrıca, yeni kayıt alanlarına bilgi kaydı da yapabilmektedir.

RASGElE ERiŞİMlİ DOSYALARDA BİLGİLERİN LiSTHENMESİ

Aşağıdaki program, "ADRES.DAT" adlı bilgiler ekrana yazdırılmaktadır.

3000 '
3010 '****RANDOM DOSYALARDA EKRANA BİLGİ LİSTELEME****
3020 1

3030 CLS
3040 OPEN "R", #1, "ADRES.DAT"
3050 FIELD #1,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$
3060 LOCATE 1,l:PRINT "SIRA"
3070 LOCATE 1,8:PRINT "ADI SOYADI"
3080 LOCATE l,33:PRINT "ADRESİ"
3090 LOCATE l,65:PRINT "TELEFON"
3100 LOCATE 2,l:PRINT "----"
3110 LOCATE 2,8:PRINT STRING$(20,45)
3120 LOCATE 2,33:PRINT STRING$(25,45)
3130 LOCATE 2,65:PRINT "-------
3140 I=3
3150 FOR J=l TO 32767
3160 IF EOF(l) THEN GOTO 3360
3170 GET #1,J
3180 S=CVI(S$)
3190 IF S=O THEN GOTO 3290:I=2
3200 AD$=A$
3210 ADRES$=ADR$
3220 TEL=CVS(TEL$)
3230 LOCATE I,l:PRINT S
3240 LOCATE I,B:PRINT AD$
3250 LOCATE I,33:PRINT ADRES$
3260 LOCATE I,65:PRINT TEL
3270 IF I>20 THEN GOSUB 3310
3280 I=I+l
3290 NEXT J
3300 GOTO 3360
3310 LOCATE 22,20:INPUT "DEVAM İÇİN ENTER TUŞUNA BASIN",EH$
3320 FOR I=3 TO 24
3330 LOCATE I,l:PRINT STRING$(80,32)

166
DATA DOSYASI OLUŞTURMA

3340 NEXT I
3350 RETURN
3360 LOCATE 22,25:INPUT "DOSYA SONU ",EH$
3370 CLS
3380 CLOSE #1
3390 '
3400 CLS
3410 LOCATE 12, 20: PRINT "1,İSTELEME PROGRAMINDAN ÇIKIYORSUNUZ"
3420 '
3430 FOR I=l TO 2000:NEXT
3440 CLS
9999 END

Bu program çalıştırıldığında, S değişkenindeki bilgi O olduğunda, o kayıt alanı­


na daha önceden bir kayıt yapılmamış demektir. Bu durumda bir sonraki kayıt ala-
nına geçilmektedir.

RASGHE ERİŞİMLİ DOSYADAN KAYiT SİLEN PROGRAM

Bu program, "ADRES.DAT" dosyasında, belli bir kayıt alanındaki bilgileri sil-


mektedir. Silinmek istenen kayıt alanının ilk elemanı olan S$ değişkenine 0 sayı­
sı aktarıldığında bu kayıt alanına bir daha erişilmesi önlenmiş olacaktır. Çünkü
program, kayıt alanının ilk elemanının (S$ değişkeninin) değeri 0 ise bu kaydı
okumamaktadır. Okunamayan kayıt, silinmiş kabul edilmektedir.

2000 '
2010 '****RANDOM DOSYALARDAN BİLGİ SİLEN PROGRAM****
2020 '
2030 KEY OFF
2040 OPEN "R", #1, "ADRES.DAT"
2050 FIELD #1,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$
2060 CLS
2070 LOCATE 4,20:PRINT "BİLGİ SİLME MENÜSÜ"
2080 LOCATE 8,20:PRINT "SIRA Nü ."
2090 LOCATE 10,20:PRINT "ADI SOYADI . "
2100 LOCATE 12,20:PRINT "ADRESİ ."
2110 LOCATE 14,20:PRINT "TELEFON ."
2120 LOCATE 18,20:PRINT "ÇIKIŞ İÇİN SIRA NO=:O GİRİN"
213 O LOCATE 8, 33 : INPUT " " , S
2140 IF S=O THEN GOTO 2390
2150 GET #1,S
2160 SIRA=CVI(S$)
2170 AD$=A$
2180 ADRES$=ADR$
2190 TEL=CVS(TEL$)
2200 IF SIRA=O THEN GOSUB 2330:GOTO 2060

167
DATA DOSYASI OLUŞTURMA

2210 LOCATE 10,33:PRINT AD$


2220 LOCATE 12,33:PRINT ADRES$
2230 LOCATE 14,33:PRINT TEL
2240 LOCATE 20,20:PRINT K$
2250 LOCATE 20,20:INPUT "SİLİNSİN Mİ ( E I H ) ... ",EH$
2260 IF EH$<>"E" THEN GOTO 2060
2270 LSET S$=MKI${0)
2280 LSET AD$=SPACE$(20)
2290 LSET ADRES$=SPACE$(25)
2300 LSET TEL$=MKS$(0)
2310 PUT #1,S
2320 GOTO 2060
2330 1

2340 'ARANAN BİLGİ BULUNAMADI


2350 1

2360 LOCATE 20,20:PRINT "ARANAN KAYIT BULUNAMADI"


2370 FOR I=l TO 2000:NEXT I
2380 RETURN
2390 1

2400 'SİLME İŞLEMİ TAMAMLANDI


2410 1

2420 CLOSE #1
2430 CLS
9999 END

MENÜLÜ RASGELE ERİŞİMLİ DOSYA PROGRAMI

Buraya kadar, rasgele erişimli dosyalarla ilgili bütün işlemleri tek tek incele-
dik. Aşağıdaki pr9gram, ADRES.DAT adlı bir rasgele erişimli dosya oluşturarak bu
dosyaya ilişkin bütün işlemleri yapabilmektedir.

50 KEY OFF
60 1

70 ' *************************************************************
80 ' * *
90 ' * ANA ME N Ü B Ö L Ü MÜ *
100 * 1
*
110 *************************************************************
1

120 CLS
130 LOCATE 3,25:PRINT"A NA MEN Ü"
140 LOCATE 6,25:PRINT"l. PROGRAM ÇIKIŞI"
150 LOCATE 8,25:PRINT"2. BİLGİ GİRİŞ/DEGİŞİKLİK"
160 LOCATE 10,25:PRINT"3. ADRES SİLME"
170 LOCATE 12,25:PRINT"4. EKRANA LİSTELEME"
180 LOCATE 14,25:PRINT"5. YAZICIYA LİSTELEME"
190 LOCATE 16,25:PRINT"6. DOSYA OLUŞTURMA"

168
DATA DOSYASI OLUŞTURMA

200 LOCATE 19,25:PRINT"SEÇENEGI GİRİNİZ


210 LOCATE 19,50:INPUT "",SEC
220 ON SEC GOTO 280,400,1060,1570,2040,2560
230 BEEP
240 LOCATE 22,20:PRINT"LÜTFEN 1-6 ARASI DEGER GİRİNİZ"
250 FOR I=l TO 3000:NEXT I
260 LOCATE 22,l:PRINT STRING$(80,32)
270 GOTO 210
280 '
290 ' ************************************************************
300 ' * *
310 ' * P ROGRAM Ç I KI Ş I B Ö L Ü MÜ *
320 ' * *
330 ' ************************************************************
340 '
350 CLS
360 LOCATE 12,20:PRINT"H O Ş ÇAKAL I N I Z"
370 FOR I=l TO 3000:NEXT I
380 CLS
390 END
400 '
410 ' **********************************************************
420 ' * *
430 ' * B İ L Gİ Gİ R İ Ş / DE Gİ Ş İ KL İ K *
440 ' * *
450 ' **********************************************************
460 '
470 OPEN "R" #1, "ADRESl.DAT"
I

480 FIELD #1,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$


490 GET #1,1
500 KAYIT=CVI(S$)
510 IF KAYIT<>O THEN GOTO 580
520 BEEP
530 LOCATE 22,32:PRINT"DOSYA OLUŞTURULMAMIŞ"
540 FOR I=l TO 2000:NEXT I
550 LOCATE 22,l:PRINT STRING$(80,32)
560 CLOSE #1
570 GOTO 210
580 CLS
590 LOCATE 5,20:PRINT"BİLGİ GİRİŞ/DEGİŞİKLİK MENUSU"
600 LOCATE 8,20:PRINT"SIRA NO ·"
610 LOCATE 10,20:PRINT"ADI SOYADI ·"
620 LOCATE 12,20:PRINT"ADRESİ ·"
63 O LOCATE 14, 2 O: PRINT" TELEFON ·"
640 LOCATE 18,20:PRINT"ÇIKIŞ İÇİN SIRA NOYU O GİRİNİZ"
650 SIRA=O
660 AD$=SPACE$(20)
670 ADRES$=SPACE$(25)

169
DATA DOSYASI OLUŞTURMA

680 TEL=O
69O LOCATE 8, 33 : INPUT " " , S
700 IF S=O THEN GOTO 970
710 FOR I=2 TO KAYIT
720 GET #1,I
730 SIRA=CVI(S$)
740 AD$=A$
750 ADRES$=ADR$
760 TEL=CVS(TEL$)
770 IF S=SIRA THEN K=O:GOTO 840
780 NEXT I
790 AD$=SPACE$(20)
800 TEL=O
810 ADRES$=SPACE$(25)
820 KAYIT=KAYIT+l
830 K=l
840 LOCATE 10,33:PRINT AD$
850 LOCATE 12,33:PRINT ADRES$
860 LOCATE 14,33:PRINT TEL
87 O LOCATE 10, 33: INPUT "",AD$
880 LOCATE 12,33:INPUT "",ADRES$
890 LOCATE 14,33:INPUT "",TEL
900 IF K=O THEN L=I ELSE L=KAYIT
910 LSET S$=MKI$(S)
92 O LSET A$=AD$
930 LSET ADR$=ADRES$
940 LSET TEL$=MKS$(TEL)
950 PUT #1,L
960 GOTO 580
970 1

980 LSET S$=MKI$(KAYIT)


990 LSET A$=SPACE$(20)
1000 LSET ADR$=SPACE$(25)
1010 LSET TEL$=MKS$(0)
102 O PUT #1, 1
1030 CLOSE #1
1040 GOTO 120
1050 1

1060 1

1070 ***************************************************************
1

1080 * 1
*
1090 ' * ADRE S S İ L ME B Ö L Ü MÜ *
1100 * 1
*
1110 ' ***************************************************************
1120 1

1130 OPEN "R" ,#2, "ADRESl.DAT"


1140 FIELD #2,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$
1150 GET #2, 1

170
DATA DOSYASI OLUŞTURMA

1160 KAYIT=CVI(S$)
1170 IF KAYIT<>O THEN GOTO 1230
1180 LOCATE 22,32:PRINT"HİÇ KAYIT YOK"
1190 FOR I=l TO 3000:NEXT I
1200 LOCATE 22,l:PRINT STRING$(80,32)
1210 CLOSE #2
1220 GOTO 210
1230 '
1240 CLS
1250 LOCATE 5,20:PRINT"ADRES SİLME MENÜSÜ"
1260 LOCATE 8,20:PRINT"SIRA NO ·"
1270 LOCATE 10,20:PRINT"ADI SOYADI ·"
1280 LOCATE 12,20:PRINT"ADRESİ ·"
1290 LOCATE 14, 20: PRINT"TELEFON ·"
1300 LOCATE 8,33:INPUT "",S
1310 IF S=O THEN GOTO 1540
1320 FOR I=2 TO KAYIT
1330 GET #2,I
1340 SIRA=CVI(S$)
1350 AD$=A$
1360 ADRES$=ADR$
1370 TEL=CVS(TEL$)
1380 IF SIRA=S THEN GOTO 1430
1390 NEXT I
1400 LOCATE 22,20:PRINT"ARANAN KAYIT BULUNAMADI"
1410 FOR I=l TO 3000:NEXT I
1420 GOTO 1240
1430 LOCATE 10,33:PRINT AD$
1440 LOCATE 12,33:PRINT ADRES$
1450 LOCATE 14,33:PRINT TEL
1460 LOCATE 22,20:INPUT "SİLİNSİN Mİ (E / H) ",EH$
1470 IF EH$<>"E" THEN GOTO 1240
1480 LSET S$=MKI$(0)
1490 LSET A$=SPACE$(20)
1500 LSET ADR$=SPACE$(25)
1510 LSET TEL$=MKS$(0)
1520 PUT #2,I
1530 GOTO 1240
1540 '
1550 CLOSE #2
1560 GOTO 120
1570 '
1580 ' ***************************************************************
1590 ' * *
1600 ' * E KRANA L İ S T E L E ME B Ö L Ü MÜ *
1610 ' * *
1620 ' ***************************************************************
1630 '

171
DATA DOSYASI OLUŞTURMA

1640 OPEN "R", #1, "ADRESl.DAT"


1650 FIELD #1,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$
1660 GET #1,1
1670 KAYIT=CVI(S$)
1680 IF KAYIT<>O THEN GOTO 1740
1690 LOCATE 22,32:PRINT"HİÇ KAYIT YOK"
1700 FOR I=l TO 3000:NEXT I
1710 LOCA.TE 22,l:PRIN'I' STRING$(80,32)
1720 CLOSE #1
1730 GOTO 210
1740 CLS
1750 LOCATE 1,4:PRINT"SIRA"
1760 LOCATE 1,15:PRINT"ADI SOYADI"
1770 LOCATE l,41:PRINT"ADRESİ "
1780 LOCATE l,70:PRINT"TELEFON"
1790 10CATE 2,4:PRINT"-----"
1800 LOCATE 2,15:PRINT STRING$(20,45)
1810 LOCATE 2,41:PRINT STRING$(22,45)
1820 10CATE 2,70:PRINT"-------"
1830 1=3
1840 FOR I=2 TO KAYIT
1850 GET #1,I
1860 SIRA=CVI(S$)
1870 AD$=A$
1880 ADRES$=ADR$
1890 TEL=CVS(TEL$)
1900 IF SIRA=O TREN GOTO 1970
1910 10CATE 1,4:PRINT USING"#####";SIRA
1920 10CATE L,15:PRINT USING"\"+SPACE$(18)+"\";AD$
1930 LOCATE L, 41: PRINT USING" \ "+SPACE$ (20) +"\";ADRES$
1940 LOCATE 1,70:PRINT USING"#######";TEL
1950 1=1+1
1960 IF 1>18 TREN GOSUB 2010
1970 NEXT I
1980 LOCATE 23,20:INPUT "DOSYA SONU ",EH$
1990 CLOSE #1
2000 GOTO 120
2010 10CATE 23,20:INPUT "DEVAM İÇİN ENTER TUŞUNA BASINIZ ",EH$
2020 1=3
2030 RETURN
2040 '
2050 ' ***************************************************************
2 060 ' * *
2070 ' * Y A Z I C I Y A L İ S T E L E ME B Ö L Ü MÜ *
2080 ' * *
2090 ' ***************************************************************
2100 '
2110 OPEN "R", #1, "ADRESl .DAT"

172
DATA DOSYASI OLUŞTURMA

2120 FIELD #1,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$


2130 GET #1,1
2140 KAYIT=CVI(S$)
2150 IF KAYIT<>O THEN GOTO 2210
2160 LOCATE 22,32:PRINT"HİÇ KAYIT YOK"
2170 FOR I=l TO 3000:NEXT I
2180 LOCATE 22,l:PRINT STRING$(80,32)
2190 CLOSE #1
2200 GOTO 210
2210 BFLAG=52
2220 CLS
2230 LOCATE 12,20:PRINT"ADRESLER YAZILIYOR"
2240 FOR I=2 TO KAYIT
2250 GET #1,I
2260 SIRA=CVI(S$)
2270 AD$=A$
2280 ADRES$=ADR$
2290 TEL=CVS(TEL$)
2300 IF SIRA=O THEN GOTO 2410
2310 IF BFLAG>50 THEN GOSUB 2450:BFLAG=l
2320 LPRINT TAB(4);
2330 LPRINT USING"#####" ;SIRA;
2340 LPRINT TAB(l5);
23 50 LPRINT USING" \ +SPACE$ (18) +"\";AD$;
11

2360 LPRINT TAB(41);


2370 LPRINT USING"\"+SPACE$(20)+"\";ADRES$;
2380 LPRINT TAB(70);
2390 LPRINT USING"########" ;TEL
2400 BFLAG=BFLAG+l
2410 NEXT I
2420 LPRINT CHR$(12)
243 O CLOSE #1
2440 GOTO 120
2450 LPRINT CHR$(12)
2460 LPRINT TAB(4);"SIRA";
2470 LPRINT TAB(15); "ADI SOYADI";
2480 LPRINT TAB(41); "ADRESİ";
2490 LPRINT TAB(70);"TELEFON"
2500 LPRINT TAB(4);"-----";
2510 LPRINT TAB(l5);STRING$(20,45);
2520 LPRINT TAB(41);STRING$(22,45);
2530 LPRINT TAB(70);"-------"
2540 LPRINT
2550 RETURN
2560 '
2570 ' ***************************************************************
2580 ' * *
2590 ' * KÜT ÜK O L U Ş T U R MA B Ö L Ü MÜ *

173
DATA DOSYASI OLUŞTURMA

2600 ' * *
2610 ****************************************************************
2620 '
2630 OPEN "R", #1, "ADRESl .DAT"
2640 FIELD #1,2 AS S$,20 AS A$,25 AS ADR$,4 AS TEL$
2650 CLS
2660 LOCATE 12,lO:PRINT "ADRESl.DAT DOSYASI OLUŞTURULUYOR"
2670 LSET S$=MKI$(1)
2680 LSET A$=SPACE$(20)
2690 LSET ADR$=SPACE$(25)
2700 LSET TEL$=MKS$(0)
2710 FOR I=l TO 3000:NEXT I
2720 PUT #1,l
2730 CLOSE #1
2740 GOTO 120

174
iıNiTE 1
BASIC'DE 6HAFiK

A- GRAFİK MODU ve DEYiMlERi


Grafik modunda çalışan programlar, text modunda çalışan programlara oranla,
bilgisayarın donanımına daha fazla bağımlılık gösterirler. Burada özellikle ekranın
cinsi ve video adaptör ön plana çıkar. Bu bölümde incelediğimiz bütün programlar
VGA ekranda çalıştırılmıştır. Ancak günümüzde VGA ve Süper VGA ekranlar çok
geniş bir kullanım alanı buldukları için, programların çalıştırılmasında okuyucula-
rımızın herhangi bir güçlükle karşılaşacaklarını sanmıyoruz.

EKRAN DUYARUGI {RESOLUTION)


Grafik ekran, piksel adı verilen noktalardan oluşmaktadır. Program vasıtasıyla
ekrandaki pikseller çeşitli renklerde tanımlanmakta ve böylece ekranda çeşitli çiz-
gi veya şekiller oluşturulmaktadır.
Ekrandaki toplam piksel sayısı, ekranın duyarlığını belirler. Ekrandaki piksel sa-
yısı arttıkça ekranın duyarlığı artar ve çizilen şekiller daha net olur. Ekranın du-
yarlığı, grafik programının başında SCREEN komutu ile tanımlanır.

SCREEN KOMUTU
Grafik modunda SCREEN komutu O, 1,2 veya 9 parametreleriyle kullanılarak
çeşitli duyarlıklarda ekran tanımlamaları yapılabilir.

SCREEN O : Ekranı alçak duyarlılıkta tanımlar. Bu komut kullanıldığında, ekran-


da yatay çizgide 160, düşey çizgide ise 200 piksel oluşur.

200
---
160 piksel

piksel
Alçak duyarlı~
SCREEN O
160 x 200

175
BASIC'DE GRAFİK

Böylece SCREEN O komutu kullanıldığında, ekranda 160 x 200 = 32000 ta-


ne piksel oluşur. SCREEN O modu grafik programlarda pek kullanılmamaktadır.

SCREEN l : Ekranı orta duyarlıkta tanımlar. Grafik programı SCREEN l modun-


da çalıştırıldığında yatay çizgide 320, düşey çizgide ise 200 piksel oluşur.

320 piksel

200
i ------
-------
piksel
Orta duyarlık
SCREEN 1
320 x 200

SCREEN l modunda, ekranda 320 x 200 = 64000 tane piksel oluşur.

SCREEN 2 : Ekranı yüksek duyarlıklı olarak tanımlar. SCREEN 2 modunda ya-


tay çizgide 640, düşey çizgide ise 200 piksel oluşur.

200
-
640 piksel

piksel Yüksek duyarlık


SCREEN2
640 x200

SCREEN 2 modunda, ekranda 640 x 200 = 128000 tane piksel oluşur.

176
BASIC'DE GRAFİK

SCREEN 9 : Ekranı çok yüksek duyarlıklı olarak tanımlar. Screen 9 modunda


ekranda yatay çizgide 640, düşey çizgide ise 350 piksel oluşur.

350
-
640 piksel

piksel Çok yüksek


SCREEN9 duyarlık

640x350

SCREEN 9 modunda ekranda 640 x 350 = 224000 tane piksel oluşur.


Bu bölümdeki grafik programlarının hepsinde SCREEN 9 modu kullanılmıştır.
Daha önce de belirttiğimiz gibi SCREEN 9 modunda yatay çizgide 640, düşey
çizgide de 350 piksel vardır. Grafik modundaki komutların parametreleri piksel
cinsinden verilir. Sol üst köşedeki pikselin koordinatı (0,0) dır. Sağ alt köşedeki
pikselin koordinatı ise (639,349) dur. Aşağıdaki şekilde, SCREEN 9 modunda, ek-
randaki çeşitli noktaların (piksellerin) koordinatları görülmektedir.

(0,0) (639,0)
~ ,,,,..-

(319,174)

/ ..............
(0,349) (639,349)

Ekrandaki bir noktanın (pikselin) koordinatları verilirken parantez içinde önce


yatay doğrultudaki konum, daha sonra da düşey doğrultudaki konum yer alır.

(50, 100)

Yatay eksen Düşey eksen

Koordinatları (50, l 00) olarak tanımlanan pikselin yeri, yatan doğrultuda 50.,
düşey doğrultuda ise l 00. sıradadır.
Şimdi de, grafik modunda kullanılan komutları çeşitli örnek programlarla açıkla­
yalım.

177
BASIC'DE GRAFİK

LINE KOMUTU

Ekranda çizgi veya kutu çizilmesinde kullanılır.

LINE (Xl,Yl,) - (X2,Y2)

LINE komutu, yukarıdaki gibi kullanıldığında kordinatları Xl, Yl ve X2, Y2


olan noktalar arasına bir çizgi çizer.

Örnek:

LINE (50,100) - (200,100)

Bu komut 50, 100 noktasıyla 200, 100 noktasını bir çizgiyle birleştirir.

(0,0) (639,0)

(50, 100) (200,100)

(0,349) (639,349)

Aşağıdaki program, ekrana çeşitli çizgiler çizmektedir.

100 '****EKRANA ÇEŞİTLİ ÇİZGİLER ÇİZEN PROGRAM****


110 '
120 CLS:KEY OFF
130 SCREEN 9
140 LINE (0,0)-(0,349)
150 LINE (0,349)-(639,349)
160 LINE (639,349)-(639,0)
170 LINE (639,0)-(0,0)
180 LINE (100,100)-(300,200)
190 LINE(400,300)-(600,200)
999 END

LINE komutu, renk parametresi verilerek de kullanılabilir.

LINE (X, Y,) - (X2, Y2), renk

178
BASIC'DE GRAFİK

Renk parametresi O, 1,2 veya 3 olabilir. Renk parametresi kullanılmadığı taktir-


de çizgi beyaz renkte olur.
LINE komutu kullanılarak ekrana kutu çizmek için B veya BF parametreleri kul-
lanılır. B parametresi içi boş kutu, BF parametresi ise içi dolu kutu çizer. B veya
BF parametreleri, renk parametresinden sonra yer alır.

LINE (X,Y,) - (X2,Y2),,B

Xl, Yl = Kutunun sol üst köşesinin koordinatları.


X2, Y2 = Kutunun sağ alt köşesinin koordinatları.
renk. parametresi yer almadığı için iki virgül kullanılmıştır.
B : içi boş kutu olacağını belirler.

Yukarıdaki komutta B yerine BF kullanılırsa, kutunun içi dolu olarak çizilir,


(çizgi rengiyle doldurulur).
Aşağıdaki program, ekrana içi boş kutu çizmektedir.

100 '****KUTU ÇİZEN PROGRAM****


110 1

120 CLS:KEY OFF


130 SCREEN 9
140 1

150 LINE (100,100)-(300,200),,B


160 '
170 A$=INKEY$
180 IF A$='"' TREN GOTO 170
999 END

RUN

Bu programda, LINE komutunda renk parametresinin yeri boş bırakıldığı için ku-
tunun çizgileri beyaz renkte olacaktır. B parametresi, kutunun içinin boş olmasını
sağlar.

179
BASIC'DE GRAFİK

Şimdi inceleyeceğimiz program ise içi dolu kutu çizer.

100 '****KUTU ÇİZEN PROGRAM****


110 '
120 CLS:KEY OFF
130 SCREEN 9
140 '
150 LINE (100,100)-(300,200),,BF
160 '
170 A$=INKEY$
180 IF A$="" THEN GOTO 170
999 END

RUN

Bu programda, BF parametresi kullanıldığı için kutunun içi beyaz renkte olur.

180
BASIC'DE GRAFİK

PSET KOMUTU

PSET komutu, koordinatları verilen pikseli belirli bir renkte aydınlatır. Renk pa-
rametresi belirtilmediği taktirde piksel (nokta) beyaz renkte olur.

PSET (Xl, Yl), renk


Xl, Yl : noktanın (piksel) koordinatları.
renk : noktanın rengi.

renk parametresi, aşağıdaki değerleri alabilir.

SAYI RENK
O Siyah
l Mavi
2 Kırmızı
3 Beyaz

Renk belirtilmezse nokta beyaz renkte olur.

PSET (100,50)
Bu komut, koordinatları ( l 00,50) olan pikseli beyaz renkte aydınlatır.
Yanyana pikselleri aydınlatarak çeşitli çizgiler oluşturulması da mümkündür.
Aşağıdaki programda, yanyana pikseller beyaz renkte aydınlatılarak çizgi oluştu­
rulmaktadır.

100 '****PSET KOMUTU İLE EKRANA ÇİZGİ ÇİZEN PROGRAM****


110 1

120 SCREEN 9
13 O CLS : KEY OFF
140 FOR I=O TO 100
150 PSET(I,I)
160 NEXT I
999 END

RUN (0,0)

(100,100)

181
BASIC'DE GRAFİK

PRESET KOMUTU

PRESET komutu, ekrandaki bir noktayı (pikseli) zemin rengine (siyaha) dönüştü-
rür.
PRESET (100,50)
Yukarıdaki komut, koordinatları ( l 00,50) olan pikseli zemin rengine (siyaha)
dönüştürür. Başka deyişle daha önce PSET veya başka bir komutla bu piksele her-
hangi bir renkte nokta konulmuşsa bu noktayı siler.
Şimdi inceleyeceğimiz programda önce PSET komutu kullanılarak bir çizgi oluş­
turulmakta, daha sonra da PRESET komutuyla bu çizgi silinmektedir.

100 '****PSET VE PRESET KOMUTLARINI KULLANAN PROGRAM****


110 '
120 SCREEN 9
121 '
125 'ÇİZGİ ÇİZİLİYOR
126 1

130 CLS:KEY OFF


140 FOR I=O TO 200
150 PSET(I,I)
160 NEXT I
161 1

162 FOR I=l TO 9999:NEXT I


170 '
180 'ÇİZGİ SİLİNİYOR
190 1

200 FOR I=200 TO O STEP -1


210 PRESET(I,I}
220 NEXT I
999 END

Bu programın 162 nolu satırındaki döngü ile, çizginin çizilmesi ve silinmesi


arasında bir gecikme oluşturulmaktadır.

SİNÜS EGRİSİ ÇİZEN PROGRAM

Aşağıdaki program, ekrana sinüs eğrisi çizmektedir.

100 '****EKRANA SİNÜS EGRİSİ ÇİZEN PROGRAM****


110 '
120 CLS:KEY OFF
130 SCREEN 9

182
BASIC'DE GRAFİK

140 FOR I=O TO 2000


150 K=SIN(.01746*I)
160 PSET(I*.4,K*60+60)
170 NEXT I
180 '
190 A$=INKEY$
200 IF A$="" THEN GOTO 190
999 END

RUN

Bu programda, 160 nolu satırdaki PSET komutunun parametrelerindeki sabit sa-


yılar değiştirilerek sinüs eğrisinin boyutları değiştirilebilir. 150 nolu satırdaki
O.O 1746 sabit sayısı açıyı dereceden radyana çevirmektedir.

n:/180 = 0.01746

KOSİNÜS EGRİSİ ÇİZEN PROGRAM

Aşağıdaki program ekrana kosinüs eğrisi çizer.

100 '****EKRANA KOSİNÜS EGRİSİ ÇİZEN PROGRAM****


110 '
120 CLS:KEY OFF
130 SCREEN 9
140 FOR I=O TO 2000
150 K=COS(.01746*I)
160 PSET(I*.4,K*60+60)
170 NEXT I
180 '
190 A$=INKEY$
200 IF A$="" THEN GOTO 190
999 END

183
BASIC'DE GRAFİK

RUN

CIRCLE KOMUTU

CIRCLE komutu, ekrana merkezi ve yarıçapı tanımlanan bir daire çizer.

CIRCLE (X, Y}, yarıçap

(X,Y) Dairenin merkezinin koordinatları


Yarıçap Piksel olarak yarıçap uzunluğu

CIRCLE (100,100), 50

Bu komut, koordinatları l 00, 100 olan noktayı merkez alarak yarıçapı 50 pik-
sel olan bir daire çizer.

Aşağıdaki program, ekrana bir daire çizmektedir.

100 '****DAİRE ÇİZEN PROGRAM****


110 1

120 CLS:KEY OFF


130 SCREEN 9
140 CIRCLE (300,150),100
150 A$=INKEY$
160 IF A$="" THEN GOTO 150
999 END

RUN

184
o
BASIC'DE GRAFİK

CIRCLE Komutu renk parametresiyle de kullanılabilir . Renk parametresi, yarı­


çap parametresinin yanında yer alır.

CIRCLE {Xl,Yl) yarıçap, renk

CIRCLE komutunda, dairenin başlangıç ve bitiş noktaları yer alırsa çeşitli di-
limleri kesilmiş daireler de oluşturulabilir. Bu durumda, CIRCLE komutunun sintak-
sı aşağıdaki gibi olur:

CIRCLE {Xl,Yl), yarıçap, renk, başlangıç, bitiş

Aşağıdaki program, başlangıç ve bitiş noktaları da tanımlanarak, çeşitli parça-


ları kesilmiş iki daire çizmektedir.

100 '****DAİRE ÇİZEN PROGRAM****


110 1

120 CLS:KEY OFF


130 SCREEN 9
140 PI=3.141593
150 1

160 CIRCLE{250,150),70,,-PI, -PI /2


170 CIRCLE{450,150) , 70,,-PI,-PI/3
180 1

190 A$=INKEY$
200 IF A$ = THEN GOTO 190
1111

999 END

RUN

185
BASIC'DE GRAFİK

ELİPS ÇİZİMİ

Elips çiziminde de CIRCLE komutu kullanılır. Ancak bu defa önceki parametre-


lere bir yenisi eklenir. Bu, büyük eksenin küçük eksene oranıdır.

CIRCLE (Xl,Yl), yarıçap, renk, başlangıç, bitiş, oran

Oran l 'den küçük ise yatay elips, l 'den büyük ise dikey elips çizilir.

Aşağıdaki program, ekrana yatay elips çizmektedir.

100 '****ELİPS ÇİZEN PROGRAM****


110 1

120 CLS:KEY OFF


130 SCREEN 9
150 1

160 CIRCLE(300,150),100,,,,5/15
180 1

190 A$=INKEY$
200 IF A$="" THEN GOTO 190
999 END

RUN

Bu programda oran 5/15 olarak tanımlanmıştır. Bu sayı l 'den küçük olduğu


için yatay elips oluşur. Programdaki CIRCLE komutunda renk, başlangıç ve bitiş
parametreleri kullanılmamış ve yerleri boş bırakılmıştır.

Şimdi inceleyeceğimiz program ise ekrana dikey elips çizer.

100 '****ELİPS ÇİZEN PROGRAM****


110 1

120 CLS:KEY OFF

186
BASIC'DE GRAFİK

130 SCREEN 9
150 1

160 CIRCLE(300,150),100,,,,l.5
180 1

190 A$=INKEY$
200 IF A$="" THEN GOTO 190
999 END

RUN

Bu programda oran 1 .5 olarak tanımlanmıştır. Bu sayı l 'den büyük olduğu için


ekrana dikey elips çizilir.

WINDOW SCREEN KOMUTU

Grafik modunda piksellerin koordinatları ancak pozitif sayılarla tanımlanabilir.


Ancak bazı geometrik fonksiyon (örneğin parabol) çizimlerinde negatif noktaların
da bulunması nedeniyle zorluklarla karşılaşabilir. WINDOW SCREEN komutu,
programcıya soyut bir koordinat sistemi tanımlayarak negatif noktaları da çizebil-
me imkanı tanır. Aşağıda, WINDOW SCREEN komutunun sintaksı görülmektedir.
WINDOW SCREEN (Xl, Yl) - (X2, Y2)
Xl, Yl Koordinat sisteminin sol üst köşesi
X2, Y2 : Koordinat sisteminin sağ alt köşesi

X l , Y 1 ve X2, Y2 değerleri negatif de olabilir. Bu suretle soyut koordinat sis-


temine koordinatları negatif sayılarla tanımlanan piksellerin yansıtılması mümkün
olur.

WINDOW SCREEN (-100,-100) - (100,100)

Bu kullanım sonucu, aşağıdaki şekilde görülen soyut koordinat sistemi tanımlan­


mış olur.

187
BASIC'DE GRAFİK

-y

(-100,-100)

-x (O,O) x

(100,100)

Bu koordinat sisteminin, normal koordinat sisteminden farkı şudur: Y değişkeni


yatay eksenin üst kısmında negatif (-), alt kısmında ise pozitif (+) değerler alır.
Yukarıda tanımlanmış olan koordinat sisteminde X ve Y değişkenleri -100 ile
+ l 00 arasındaki bütün değerleri alabilmektedir. Bu suretle PSET, LINE gibi grafik
komutlarına negatif parametreler vermek mümkün olur.
Soyut koordinat sisteminde oluşturulan görüntü, bilgisayar ekranına aynı ölçü-
lerde yansır. Aşağıda bu durum görülmektedir.

Soyut koordinat sistemi


(-100,-100)

---
L~===l=======t-----
(100,100)
--

Şekilde de görüldüğü gibi, soyut koordinat sisteminde oluşturulan görüntü ay-


nen bilgisayar ekranına yansıyor. Soyut koordinat sisteminin faydası, istediğimiz
boyutlarda bir sistem tasarlayarak şekillerin çizimlerini veya büyütüp küçültülme-
lerini kolaylaştırmaktır.
Aşağıdaki programda, sol üst köşesi - 1O, -1 O ve sağ alt köşesi 1O,10 koordi-

188
BASIC'DE GRAFİK

notlarında bir soyut koordinat sistemi tanımlanarak bu sistemde LINE komutu kul-
lanı im ıştır.

100 CLS :KEY OFF


110 SCREEN 9
120 WINDOW SCREEN(-10,-10)-(10,10)
130 LINE (-10,-10)-(10,10)
999 END

Bu programdaki LINE (-10,-1 O) - ( 1O,1 O) komutuyla, soyut koordinat sistemi-


nin sol üst köşesinden sağ alt köşesine bir çizgi çizilmiş, çizilen bu çizgi aynı
oranlarda ekrana yansıtılmıştır. Böylece, ekranın sol üst köşesinden sağ alt köşesi­
ne uzanan bir çizgi görüntülenmiştir.

(-10,-10)

(10, 10)

VIEW KOMUTU

VIEW komutu kullanılarak, ekranın sadece belli bir bölgesi aktif olarak tanım­
lanabilir. Bu nedenle, VIEW komutunun parametreleri ekrandaki fiziki noktaların
koordinatları olabilir. Aşağıda, VIEW komutunun sintaksı görülmektedir.

VIEW (Xl,Yl) - (X2,Y2}

Burada:

Xl, Yl : Sol üst köşe


X2, Y2 : Sağ alt köşe

189
BASIC'DE GRAFİK

Sol üst köşe ve sağ alt köşe koordinatları mutlaka ekran üzerindeki noktaların
koordinatları olmalıdır, soyut koordinatlar VIEW komutunun parametresi olamaz.

Örnek:

VIEW (0,0) - (200,100)

Yukarıdaki tanımlamadan sonra çalışacak grafik komutları ekranın (0,0) -


(200, 100) noktaları arasında kalan bölgede görüntü oluştururlar.

Aktif ekran

(0,0)

Ekran

(200,100)

Aşağıdaki programda, VIEW komutu kullanılarak aktif ekran tanımlanmıştır.

100 CLS :KEY OFF


110 SCREEN 9
120 WINDOW SCREEN(-20,-20)-(20,20)
130 VIEW(0,0)-(100,80)
140 LINE (-20,-20)-(20,20)
999 END

Bu program çalıştırıldığında, soyut koordinat sisteminde elde edilen görüntü,


ekranın (0,0) - ( l 00,80) koordinatlarıyla tanımlanmış olan bölgesine düşürülür.

(-20,-20)

(20,20)
190
BASIC'DE GRAFİK

VIEW komutu, WINDOW SCREEN komutuyla birlikte kullanılır.

Bir program içinde birden fazla VIEW komutu kullanılarak, görüntülerin ekranın
farklı bölgelerinde oluşmdları sağlanabilir.
Aşağıdaki programda, soyut koordinat sisteminde oluşturulan bir görüntü, ekra-
nın iki farklı bölgesine yansıtılmaktadır.

100 CLS :KEY OFF


110 SCREEN 9
120 WINDOW SCREEN(-20,-20)-(20,20)
130 VIEW(0,0)-(100,80)
140 LINE (-20,-20)-(20,20)
150 VIEW(300,0}-(400,80}
160 LINE (-20,-20)-(20,20)
999 END

Bu programın 130 ve 150 nolu satırlarında iki farklı VIEW tanımı yapılarak,
LINE (-20,-20) - (20,20) komutuyla oluşturulan çizginin, ekranın iki farklı böl-
gesine yansıması sağlanmıştır.

191
BASIC'DE GRAFİK

PARABOL ÇİZİMi
Geometride Y=X 2 fonksiyonunun X değerinin belli sınırlar içinde aldığı değer­
ler için çizimine PARABOL denir.

Aşağıdaki programda, X'in -5 ile +5 arasındaki değerleri için Y=X 2 parabolu


çizilmektedir.

100 CLS :KEY OFF


110 SCREEN 9
120 WINDOW SCREEN(-30,-30)-(30,30)
130 LINE(-30,0)-(30,0)
140 LINE(0,-30)-(0,30)
150 FOR X=-5 TO 5 STEP .1
160 Y=X"2
170 PSET(X, -Y)
180 NEXT X
999 END

RUN

Programda (-30,-30) - (30,30) koordinatlarında bir soyut koordinat sistemi ta-


nımlanmış ve parabol çizimi bu sistemde oluşturulduktan sonra ekrana yansıtılmış­
tır. Böylece, paraboldeki -X ve -Y noktalarını da çizmek mümkün olmaktadır. 170
nolu satırda Y değerinin negatif (-) olarak verilmesinin sebebi, soyut koordinat
sisteminde yatay çizginin üst kısmında değişkeninin negatif değerler almasıdır.
170 nolu satırdaki Y parametresini (-) işaretsiz yani pozitif olarak verseydik, pa-
rabolun uçları aşağı doğru olurdu.
)\şağıdaki program ise Y=X 2 +3 parabolunu çizmektedir.

100 CLS :KEY OFF


110 SCREEN 9
120 WINDOW SCREEN(-30,-30)-(30,30)

192
BASIC'DE GRAFİK

130·LINE(-30,0)-(30,0)
140 LINE(0,-30)-(0,30)
150 FOR X=-5 TO 5 STEP .1
160 Y=X"2+3
170 PSET(X,-Y)
180 NEXT X
999 END

RUN

193
BA§IC'DE SES fJHETME

A- SES ÜRETME DEYİMLERİ


BEEP DEYİMİ

Düdük sesi çıkarmak için kullanılır. Programda BEEP şeklinde yazılır.

100 CLS
110 BEEP
999 END

Bu program çalıştırıldığında bir düdük sesi duyulur.

BEEP komutu çoğunlukla kullanıcıları uyarmak amacıyla kullanılır. Şimdi ince-


leyeceğimiz programda belirtilen bazı tuşların dışında herhangi bir tuşa basıldı­
ğında kullanıcı sesle ikaz edilmektedir.

100 CLS
110 INPUT "Birinci sayıyı giriniz : ",A
12 O INPUT "İkinci sayıyı giriniz : " , B
130 PRINT
140 PRINT "Toplam =" ,A+B
150 PRINT
160 INPUT "Devam etmek istiyor musunuz (E/e/H/h) >",C$
170 IF C$<>"E" AND C$<>"e" AND C$<>"H" AND C$<>"h" THEN BEEP GOTO
160
180 IF C$="E" OR C$="e" THEN PRINT : GOTO 110
999 END

Kullanıcı, devam etmek isteyip istemediği sorusuna karşı E, e, H, h harflerin-


den birisini girmelidir. Başka bir harf girilirse sesle uyarılır ve tekrar giriş yapma-
sı istenir.

PRINT CHR$ (7) şeklindeki bir komut da aynı sesi üretir.

195
BASIC'DE SES ÜRETME

100 CLS
110 PRINT CHR$(7)
999 END

Bu program çalıştırıldığında da ses üretilecektir.

SOUND KOMUTU

Bilgisayarın hoparlöründen belirli bir frekans ve sürede bir ses üretir.

SOUND frekans, süre


SOUND komutunun iki parametresi vardır. Birinci parametre, üretilen sesin fre-
kansını, ikinci parametre ise süresini belirler.

Frekans: 37 ile 32767 arasında bir sayı olabilir ve sesin frekansı bu sayı
kadar olur.
Süre: 0.0015 ile 65535 arasında bir sayı olabilir. 18.2 sayısı l sani-
yelik süreye karşılık gelir. Buna göre örneğin süre olarak 36.4 sa-
yısı verilirse ses 2 saniye devam edecektir.

SOUND l 000, 36.4 ~ 1000 Hz. frekansında, 2 saniye süren bir ses üreli-
1i r.

Örnek program:

100 SOUND 130,9


200 SOUND 146,9
300 SOUND 164,9
400 SOUND 174, 9
500 SOUND 196, 9
600 SOUND 220,9
600 SOUND 246,9
999 END

196
BASIC'DE SES ÜRETME

SİREN sesi ÜRETEN PROGRAM


FOR NEXT döngüsüyle, SOUND komutundaki frekans parametresi değiştirilerek,
siren sesi üreten program yapılabilir.

100 '*****SİREN SESİ ÜRETEN PROGRAM*****


110 '
120 FOR I=440 TO 1000 STEP 5
13 OSOUND I, . 5
140 NEXT I
150 FOR I=lOOO TO 440 STEP -5
160 SOUND I, .5
170 NEXT I
999 END

Bu program çalıştırıldığında, bilgisayarın hoparlöründen siren sesi duyulur.

197
ÜNİTE

o •

BIL6XSAYAH POHTLAHXNIN
HONTHOLlJ

Bilindiği gi~i bilgisayarla dış dünya arasındaki bilgi alışverişi portlar aracılı­
ğıyla yapılır. Orneğin yazıcı (printer) bilgisayarın paralel portuna bağlanır. Port-
lar bilgisayarın kasasının arka tarafında bulunur. Bilgisayarda seri ve paralel ol-
mak üzere iki çeşit port vardır.
Seri portlar COM l, COM2, COM3 ... olarak adlandırılırlar. Seri portlarda bil-
gi alışverişi bilgilerin peşpeşe gönderilmesi suretiyle (yani seri olarak) yapılır.
Yüksek hız gerektirmeyen uygulamalarda seri portlar kullanılır.
Paralel portlar ise LPTl, LPT2, LPT3 ... olarak adlandırılırlar. Paralel portlarda
l byte'lık (yani 8 bit) bilgi aynı anda ayrı ayrı iletkenler aracılığıyla gönderilir.
Yüksek hız gerektiren uygulamalarda paralel portlar kullanılır. Ayrıca paralel por-
tun kullanımı daha pratiktir.
Bir bilgisayarda en az l seri l de paralel port bulunur. Seri portların sayısı en
fazla 4, paralel portların sayısı ise en fazla 3 olabilir.
Şimdi göreceğimiz BASIC programlarında paralel port kullanılacaktır. Bu neden-
le paralel portu biraz daha yakından tanıyalım.
LPTl adlı ilk paralel portun 25 ucu vardır. Bu uçlar (pinler) l, 2, 3, 4 ... 25
olarak numaralandırılırlar. Uç numaraları dikkatle bakıldığında okunabilir. Bu uç-
lardan 2, 3, 4, 5, 6, 7, 8, 9 numaralı olanları 8 bitlik bilgi alışverişinde kulla-
nılabilir ve adresi hexadesimal formatta 378'dir. Bu sayının hexadesimal (onaltılı)
sayı olduğunu belirtmek iÇin BASIC programlama dilinde &H378 biçiminde yazı­
lır. Şekilde &H378 adresi görülüyor.

9 8 7 6 5 4 3 2

Burada sadece &H378 adresini gösterdik. LPTl portunun 19, 20, 21, 22,
23, 24 ve 25 numaralı uçları da şase (GND) seviyesindedir. Örneğin program

199
BİLGİSAYAR PORTLARININ KONTROLU

aracılığıyla 2 nolu çıkışa lojik l seviyesinde bir sinyal gönderilirse 2 nolu çıkış­
ta +5 voltluk bir gerilim oluşur. Bu gerilimi kullanarak bir LED'i yakmak gerekirse
LED ve seri dirençten oluşan bir devre kurup bir ucunu 2 numaralı pine, diğer ucu-
nu da şase ucuna (yani l 9'dan 25'e kadar pinlarden birisine) bağlamak gerekir.
Bu durumda LED yanacaktır. Biz bu bölümde hazırladığımız programlarda 2'den
9'a kadar uçlara bağlı olan LED'leri çeşitli şekillerde yakıp söndürdük. O nedenle
bu programları çalıştırabilmeniz için paralel porto şöyle bir bağlantının yapılması
gerekmektedir.

8 7 6 5 4 3 2

19 ile 25
arasında herhangi
bir pine
bağlanacak

Bu devrede seri bağlı LED'lere seri bağlı olan tüm dirençlerin değeri 390
Q'dur. Hangi pinde lojik l (yani +5 Volt) olursa o pine bağlı LED yanar. Buna
göre 8 bitlik bir bilgi bu porttan gönderilebilmekte ya da okunabilmektedir. (Bu
uçlar kullanılarak bilgisayardan dışarıya bilgi gönderilebildiği gibi dış dünyadan
bilgi de okunabilir). 2 numaralı uç LSB, 9 numaralı uç MSB'dir.
Çıkışa LED'lerden oluşan bir devre değil de 7 segmentli display bağlanmak is-
tenirse şöyle bir bağlantı yapılabilir.

9 8 7 6 5 4 3 2

g f d c b a

200
BİLGİSAYAR PORTLARININ KONTROlU

Bu devre ortak katotlu displayi sürmektedir. Buna göre displayin katot ucunun -
geril.im alabilmesi için 19 ile 26 arasındaki uçlardan birisine bağlanması gerekir.
Devrede kullanılan dirençlerin tümü 390 n'dur.
Örneğin 7 segmentli display'de 1 sayısını yakmak için b ve c segmentlerine
lojik 1 uygulamak gerekir. Buna göre 3 ve 4 nolu uçlara 1, diğer uçlara O gönde-
rildiği taktirde b ve c segmentleri yanacak ve disploy l sayısını görüntüleyecek-
! i r.

8 7 6 5 4 3 2

o o o o 1 l o

g f d c b

Bu durumda Lojik 1 (yani + 5 Volt) gönderilen b ve c segmentleri yanacak, lo-


jik O (yani O volt) gönderilen diğer segmentler sönük olarak kalacağı için display
1 sayısını görüntüleyecektir.

Şimdi de paralel porto bilgi giriş çıkışında kullanılan komutları inceleyelim.

l - OUT Komutu : Bu komut bilgisayardan paralel porto bilgi aktarmak amacıy­


la kullanılır. Sintaksı :

OUT Adres, Bilgi

şeklindedir. Adres LPTl portu için &H378 biçiminde yazılır. Bilgi ise heksadesi-
mal ya da onlu sayı olarak verilebilir ... Bilgi hexadesimal (onaltılı) sayı formatında
yazılırsa başına &H yazmak gerekir. Orneğin FF hexadesimal sayısı &HFF şeklin­
de yazılır.

Örnek:

OUT &H3 7 8, &HFF : Bu komut bütün pinlere l gönderir ve bağlı olan tüm
led'leri yakar. Çünkü FF hexadesimal sayısı 11111111 ikili sayısına eşittir.
Böylece 8 bite'de 1 uygulanmıştır.

Eğer bilgi onlu sayı biçiminde gönderilirse doğrudan doğruya yazılır.

201
BİLGİSAYAR PORTLARININ KONTROLU

Örnek:

OUT &H3 7 8, 1 : Bu komut sadece 2 nolu uca lojik 1 sinyalini gönderir.


Çünkü 1 onlu sayısı 00000001 ikili say!sına eşittir.

Örnek:

OUT &H3 7 8, 7 : Bu durumda da 2, 3 ve 4 numaralı pinlere lojik 1 sinyali


gönderilir. Çünkü 7 onlu sayısı 000001 l 1 ikili sayısına eşittir. (LED'li devrede
sağdan itibaren 3 tane LED yanar).

Örnek:

OUT &H3 7 8, 2 5 5 : Bu durumda tüm uçlara lojik 1 gönderilir. Çünkü 255


onlu sayısı 1 1 1 1 1111 ikili sayısına eşittir. (LED'li devrede LED'lerin tümü ya-
nar).

2 - INP Komutu : Bu komut paralel porttan bilgi girişinde kullanılır. Sintaksı

Değişken=INP(Adres)

şeklindedir. Adres LPTl portu için &H378 biçiminde yazılır. Örneğin A=INP
(&H378) komutu, paralel portu okur ve oradaki bilgiyi A değişkenine aktarır.

Şimdi inceleyeceğimiz program paralel porto hem bilgi göndermekte hem de o


porttaki bilgiyi okumaktadır.

100 CLS
110 OUT &H378,l
120 A=INP(&H378)
130 PRINT A
999 END

Bu program çalıştırıldığında 11 O nolu satır aracılığıyla paralel porto 1 sayısı­


nı gönderir. 1 sayısı 00000001 onlu sayısına eşit olduğu için en sağdaki LED
yanar. (Yani 2 numaralı pine bağlı olan LED yanar). 120 nolu satır aracılığıyla
da paralel porttaki bilgi A değişkenine okunmaktadır. 130 nolu satır aracılığıyla
da bu bilgi görüntülenir.

202
BİLGİSAYAR PORTLARININ KONTROLU

lED'i YAKIP SÖNDÜREN PROGRAM

Şimdi inceleyeceğimiz program ise 2 nolu pine bağlı olan bir LED'i yakıp sön-
dürmektedir.

100 CLS
110 OUT &H378,l
120 FOR I=l TO 30000 NEXT I
130 OUT &H378,0
140 FOR I=l TO 30000 NEXT I
150 GOTO 110
999 END

Bu programda 1 1O nolu satırdaki komut aracılığıyla paralel porto 1 sayısı (ya-


ni 00000001) uygulanarak 2 nolu pindeki LED yakılır. 120 nolu satırdaki FOR-
NEXT döngüsüyle belli bir gecikme sağlanır. 130 nolu satırdakşi komut ile de pa-
ralel porto O sayısı (yani 00000000) uygulanır. Böylece LED söner. 140 nolu
satırdaki gecikmeden sonra da program tekrar başa döner. Programı durdurmak için
CTRL-BREAK tuşlarına basılması gerekir.

YÜRÜYEN IŞIK PROGRAM!

Bu program paralel porto bağlı olan LED'leri sırayla yakar. Herhangi bir anda
sadece bir LED yanmaktadır.

100 CLS
110 '
120 FOR I=O TO 7
130 OUT &H378,2AI
140 FOR J=l TO 30000 NEXT J
150 PRINT 2AI
160 NEXT I
170 GOTO 110
999 END

Bu programdaki döngü 2AI ifadesiyle sırayla 1, 2, 4, 8, 16, 32, 64 ve 128


değerlerini üretir ve bu değerler sırayla porto gönderilir. Böylece en sağdakinden
itibaren LED'ler sırayla yanar. 170 nolu satırdaki GOTO komutu, akış kontrolunu
1 1O nolu satıra göndererek programın başa dönmesini sağlar. Programı durdurmak
için CTRL-BREAK tuşlarına basılması gerekir.

203
BİLGİSAYAR PORTLARININ KONTROLU

7 SEGMENTl..i DİSPl..AY PROGRAM!

Bu program çıkış portuna bağlı olan 7 segmentli display'e sırayla 0-9 arasın-
daki sayıları gönderir. '

100 CLS : KEY OFF


110 OUT &H378,63
120 FOR I=l TO 60000! NEXT I
130 OUT &H378,6
140 FOR J=l TO 60000! NEXT J
150 OUT &H378,91
160 FOR J=l ·TO 60000! NEXT J
170 OUT &H378,79
180 FOR J=l TO 60000! NEXT J
190 OUT &H378,102
200 FOR J=l TO 60000! NEXT J
210 OUT &H378,109
220 FOR J=l TO 60000! NEXT J
230 OUT &H378,125
240 FOR J=l TO 60000! NEXT J
250 OUT &H378, 7
260 FOR J=l TO 60000! NEXT J
270 OUT &H378,127
280 FOR J=l TO 60000! NEXT J
290 OUT &H378, 111
300 FOR J=l TO 60000! NEXT J
999 GOTO 110

Programdaki FOR-NEXT döngüleri herbir görüntülemeden sonra gecikme sağla­


mak içindir. Programı durdurmak için CTRL-BREAK tuşlarına basılması gerekir.

KARA ŞİMŞEK PROGRAMI

Bu program paralel porto bağlı olan LED'leri kara şimşek biçiminde yakıp sön-
dürür.

100 CLS
110 OUT &H378,24
120 FOR I=l TO 60000! NEXT I
130 OUT &H378,36
140 FOR I=l TO 60000! NEXT I
150 OUT &H378,66
160 FOR I=l TO 60000! NEXT I

204
BİLGİSAYAR PORHARININ KONTROLU

170 OUT &H378,129


180 FOR I=l TO 60000! NEXT I
190 OUT &H378,66
200 FOR I=l TO 60000! NEXT I
210 OUT &H378,36
220 FOR I=l TO 60000! NEXT I
230 GOTO 110
999 END

Bu programda OUT komutuyla verilen onlu sayıların herbiri 8 LED'den 2 tane-


sini yakmaktadır. Bu iki LED sürekli içten dışa açılıp dıştan içe kapanan bir görün-
tü oluşturmaktadır. OUT komutuyla gönderilen onlu sayıların ikili sayı karşılıkları
şöyledir :

Onlu sayı İkili sayı

24 00011000
36 00100100
66 01000010
129 10000001

Görüldüğü gibi burada içten dışa bir açılma olmaktadır. Daha sonra da kapan-
mayı sağlayan komutlar gelmektedir.
Buraya kadar örnek olarak sadece LED'lerin ve 7 segmentli display'in sürülme-
sini gördük. Ancak burada önemli olan husus portun pinlerine lojik 1 (yani + 5
volt) ve lojik O (yani O volt) seviyelerini gönderebilmektir. Bu loiik seviyeler da-
ha başka devre elemanlarını (örneğin transistör, opto izolatör) sürüp çeşitli devre-
leri kontrol edebilir.
Hatırlatmak istediğimiz önemli bir husus daha var : Bilgisayarın portlarına doğ­
rudan doğruya bağlanan elektronik devrelerinde olabilecek arızalar bilgisayarın
1/0 devrelerine zarar verebilir. Bu nedenle bilgisayarın portlarıyla buraya bağla­
nacak elektronik devreleri optoizolatör aracılığıyla elektriksel olarak yalıtmanızı
tavsiye ederiz.

ELEKTRİK, ELEKTRONİK VE BİLGİSAYAR TEKNİSYENLERİ İÇİN


PRATİK PROGRAMLAR

Elektrik ve elektronik teknisyenleri seri ve paralel dirençli devrelerde toplam


direncin bulunması, akım, gerilim ve güç hesaplamaları gibi konularla sık sık karşı­
laşırlar. Bundan başka bobinli ve kondansatörlü devrelerde endüktif ve kapasitif
reaktansın hesaplanması da zaman alıcı işlemlerdir. Rezonans konusunun da elekı­
ronikçiler için ne kadar önem taşıdığı bilinen bir husustur. Bununla birlikte reso-

205
BİLGİSAYAR PORTLARININ KOl\ITROLU

nans devresi hesaplamaları, her ne kadar hesap maki~aları yardımımıza koşsa da,
karışık ve hata oluşması ihtimali yüksek işlemlerdir. işte bütün bunları gözönüne
alarak bu bölümde elektronikçilere büyük kolaylıklar sağlayacak programlar veri-
yoruz.

OHM KANUNU PROGRAM!

Şimdi inceleyeceğimiz programda, bir elektrik devresinde ohm kanunu kullanıla­


rak akım, gerilim ve direnç değerleri hesaplanmaktadır. Program ayrıca gerekli de-
ğerler girildiğinde devrede harcanan gücü de bulmaktadır.
Program çalıştırıldığında sırayla direnç, gerilim, akım ve güç değerleri sorul-
maktadır. Bu değerlerden herhangi ikisi girildiğinde diğer ikisi hesaplanmakta ve
sonuçlar görüntülenmektedir. Örneğin akım ve gerilim değerleri girilirse direnç ve
güç değerleri hesaplanmaktadır. Yine güç ve gerilim değerleri girilirse akım ve di-
renç değerleri hesaplanır.
Program çalıştırıldığında hangi değerlerin he.saplanması isteniyorsa o değerler
sorulduğunda ENTER tuşuna basılması gerekir. Orneğin akım ve gerilim verilip di-
renç ve güç hesaplanmak istenirse akım ve gerilim değerleri sayı olarak girilecek,
direnç ve gücün girilmesi istendiğinde ise ENTER tuşuna basılacaktır.

100 REM OHM KANUNU PROGRAMI


110 CLS
120 PRINT "BU DEVRE GERİLİM, AKIM, DİRENÇ VE GÜÇ DEGERLERİNDEN"
130 PRINT "HERHANGİ İKİSİNİN DEGERİ GİRİLİRSE DİGER İKİSİNİN"
140 PRINT "DEGERLERİNİ HESAPLAYIP SONUÇLARI GÖRÜNTÜLER"
145 PRINT
150 PRINT "HESAPLANMASINI İSTEDİGİNİZ DEGERLERİN"
160 PRINT "KARŞISINDA ENTER TUŞUNA BASINIZ"
170 PRINT
180 INPUT; "Direncin değerini giriniz >",R: PRINT" Ohm"
185 IF R>O THEN Y=Y+l
190 INPUT ; "Gerilimin değerini giriniz> ", E : PRINT " Volt"
195 IF E>O THEN Y=Ytl
200 INPUT ; "Akımın değerini giriniz >", I : PRINT " Amper"
205 IF I>O THEN Y=Y+l
210 INPUT ; "Gücün değerini giriniz >", P : PRINT " Watt"
215 IF P>O THEN Y=Y+l
215 PRINT
220 IF Y<>2 THEN PRINT "Lütfen sadece iki değeri giriniz ... " Y=O
GOTO 170
230 IF I=O AND E=O THEN I=SQR(P/R) : E=I*R
240 IF I=O AND R=O THEN I=E/R R=E/I
250 IF I=O AND P=O THEN I=E/R : P=E*I

206
BİLGİSAYAR PORTLARININ KONTROLU

260 IF E=O AND R=O THEN E=P/I R=E/I


270 IF E=O AND P=O THEN E=I*R P=E*I
280 IF P=O AND R=O THEN P=E*I R=E/I
290 PRINT : PRINT "DEVRENİN DEGERLERİ"
3 00PRINT "R .. ;R;" Ohm"
310 PRINT "E ıı ;E; u Volt"

320 PRINT "I 11;I; Amper"


11

330 PRINT "P ";P;" Watt"


340 PRINT
350 PRINT "DEVAM ETMEK İSTİYOR MUSUNUZ ? [E / H] ";
355 X$=INKEY$ : IF X$="" THEN GOTO 355
360 IF X$<>"E" AND X$<>"e" AND X$<>"H" AND X$<>"h" THEN PRINT "YAN-
LIŞ TUŞ .. " : GOTO 355
370 IF X$ = "E" OR X$ = "e" THEN CLEAR : GOTO 100
999 END

Bir hesaplama işleminden sonra devam etmek isteyip istemediğimiz sorulmakta-


dır. Bu soruya "E" ya da "e" tuşuna basılarak cevap verildiğinde program çalışma­
ya devam edecek ve yeni değerleri soracaktır. "H" ya da "h" harfine basılması du-
rumunda ise programın çalışması sona erer.

SERi DİRENÇ DEVRESİNDEKİ DEGERlERİ HESAPLAYAN PROGRAM

Şimdi inceleyeceğimiz programda seri dirençlerden oluşan bir devrede toplam


direnç, herbir dirençte düşen gerilim ve herbir dirençte harcanan güç hesaplan-
maktadır. Devredeki seri bağlı direnç sayısı ve dirençlerin değerleri klavyeden gi-
rilecektir. Ayrıca ya devreye uygulanan gerilim ya da devre akımı klavyeden gi-
rilmelidir. Bunlardan birisi sayı olarak girilmeli, diğerinin karşısında ise ENTER
tuşuna basılmalıdır. Örneğin devreye uygulanan gerilim l O olarak girilmişse dev-
re akımı sorusuna karşılık ENTER tuşuna basılmalıdır.

100 REM SERİ DİRENÇ DEVRESİ PROGRAMI


110 REM
120 CLS
130 PRINT "**************SERİ DİRENÇ DEVRESİ*********''****"
140 PRINT "BU PROGRAM SERİ DİRENÇLERDEN OLUŞAN BİR DEVREDE"
150 PRINT "HER DİRENÇTE DÜŞEN GERİLİMİ VE HARCANAN GÜCÜ
160 PRINT "HESAPLAR. GİRİŞ OLARAK BÜTÜN DİRENÇ DEGERLERİYLE"
170 PRINT "BİRLİKTE DEVRE GERİLİMİ YA DA AKIMI VERİLMELİDİR."
180 PRINT "BÜTÜN DEGERLER TEMEL BİRİM OLARAK GİRİLMELİDİR."
190 PRINT "VERİLMEYEN DEGER İÇİN SADECE ENTER TUŞUNA BASINIZ."
195 PRINT
200 INPUT "Seri bağlı direnç sayısını giriniz >" ,N

207
BİLGİSAYAR PORTLARININ KONTROLU

210 IF N<2 OR N>9 THEN PRINT "DİRENÇ SAYISI EN AZ 2 EN ÇOK 9 OLMALI-


DIR" : GOTO 200
220 FOR J=l TO N
230 PRINT "R"; :PRINT USING "#" ;J; :PRINT " DİRENCİ=";
240 INPUT ;'"',R(J): PRINT 11 Ohm.": IF R(J)>O THENNR=NR+l
250 NEXT J
260 IF NR<N THEN PRINT "BÜTÜN DİRENÇLER İÇİN BİR DEGER GİRİLMELİ-
DİR .. 11 : GOTO 220
270 INPUT ; "Kaynak gerilimi ";ET : PRINT " Volt."
280 INPUT ; "Devre akımı " ; IT : PRINT " Amper. "
290 FOR J=l TO N : RT=RT+R(J) : NEXT J
300 IF ET=O THEN ET=IT*RT ELSE IT=ET/RT
310 FOR J=l TON ER(J)=IT*R(J) : NEXT J
320 FOR J=l TON : PR{J)=IT*ER(J) : NEXT J
330 PRINT
340 PRINT "DEVREDEKİ DEGERLER ŞUNLARDIR"
350 PRINT "----------------------------"
360 PRINT "Devre gerilimi =";ET;" Volt"
37O PRINT "Devre akımı =" ; IT; " Amper"
380 PRINT "Toplam direnç =" ;RT;" Ohm"
390 FOR J=l TO N : PRINT "R"; :PRINT USING "#" ;J;
400 PRINT " Uçlarındaki geril~m =" ;ER(J); " Volt" : NEXT J
410 FOR J=l TO N : PRINT "R"; :PRINT USING "#" ;J;
420 PRINT " Direncinde harcanan güç =" ;PR(J); " Watt" : NEXT J

Girilmesi gereken direnç sayısı en az 2 en fazla da 9 olmalıdır. Dikkat edilir-


se programda R, ER, ve PR değişkenleri indisli değişken olarak kullanılmıştır. An-
cak indis mik1orı 1O' dan küçük olduğu için DIM komutuyla tanımlamaya gerek yok-
tur.

PARALEL DİRENÇ HESAPLAMA PROGRAM!

Şimdi inceleyeceğimiz program kullanıcıya iki opsiyon sunmaktadır. Bunlardan


birincisinde en fazla 5 tane olmak üzere paralel bağlı dirençlerin oluşturduğu eş­
değer direnç değerini hesaplar. ikinci opsiyonde ise belli bir direnç değerini elde
etmek için, elde bulunan dirence paralel olarak bağlanması gereken direncin değe­
ri hesaplanmaktadır. Konuyu örneklerle açalım :

Birinci opsiyon : Örneğin elimizde 1O, 15 ve 18 ohm değerinde üç tane


direnç var. Bu üç direncin paralel olarak bağlanması sonucunda elde edilen eşde­
ğer direnç değerini bulmak için birinci opsiyon çalıştırılmalıdır.

İkinci opsiyon : Örneğin elimizde 3 ohm değerinde bir direnç var. Biz ise 2

208
BİLGİSAYAR PORTLARININ KONTROLU

ohm değerinde direnç istiyoruz. 2 ohmluk eşdeğer direnci elde etmek için, elimiz-
deki 3 ohmluk dirence paralel olarak bağlamamız gereken direnci hesaplamak için
de ikinci opsiyonu kullanmamız gerekir.

100 REM PARALEL DİRENÇ PROGRAMI


110 REM
120 CLS
130 PRINT "PARALEL DİRENÇ DEVRESİNDE TOPLAM DİRENCİ BULAN PROGRAM"
140 PRINT "BÜTÜN DİRENÇLERİN DEGERLERİ AYNI BİRİMDEN GİRİLMELİDİR"
150 PRINT
160 PRINT "PROGRAMDA İKİ OPSİYON VARDIR:"
170 PRINT "1 - EN FAZLA 5 PARALEL DİRENCİN TOPLAMINI BULMAK"
180 PRINT "2 - TOPLAM BİR DİRENCİ ELDE ETMEK İÇİN BAŞKA BİR DİRENCE"
190 PRINT " PARALEL OLARAK BAGLANMASI GEREKEN DİRENCİ BULMAK"
200 PRINT
210 INPUT "Tercihinizi giriniz [1/2] >" ,N
220 IF N=l OR N=2 THEN ON N GOTO 250,380
230 PRINT "1 ya da 2 sayısını girmelisiniz .. "
240 GOTO 200
250 PRINT
260 INPUT "Kaç direnç paralel bağlı (en fazla 5 olabilir) >", N
270 IF N>=l AND N<=5 AND N=INT(N) THEN PRINT : GOTO 300
280 PRINT "1 ile 5 arasında bir tarnsayı girmelisiniz .. "
290 GOTO 250
300 FOR I=l TO N
310 PRINT I;". direncin değeri ";
320 INPUT X
330 R=R+(l/X)
340 NEXT I
350 R=l/R
360 PRINT "Toplam direnç =" ;R;
370 GOTO 999
380 PRINT
390 INPUT "İstenen toplam direnci giriniz >",RT
400 INPUT "Eldeki direnç >",Rl
410 IF Rl>RT THEN GOTO 450
420 PRINT "Eldeki direnç toplam dirençten büyük olmalıdır .. "
430 PRINT
440 GOTO 400
450 R2=RT*Rl/(Rl-RT)
460 PRINT "Paralel bağlamanız gereken direncin değeri ";R2
999 END

209
BİLGİSAYAR PORTLARININ KONTROLU

PARALEL DİRENÇLİ DEVREDE KOL AKIMIARINI VE


DİRENÇLERDE HARCANAN GÜCÜ HESAPIAYAN PROGRAM

Şimdi inceleyeceğimiz programda, kaç tane direncin paralel olarak bağlı oldu-
ğu, bu dirençlerin herbirinin değeri klavyede girilmektedir. Bunlardan başka ya
kaynak gerilimi ya da ana kol akımı değeri girilmelidir. Bu ikisinden birisinin de-
ğeri girilecek diğeri sorulunca da ENTER tuşuna basılacaktır. Program, her koldan
geçen akımı ve her dirençte harcanan gücü hesaplar ve sonuçları görüntüler.

100 REM PARALEL DİRENÇLİ DEVREDE AKIMLARI VE GÜÇLERİ HESAPLAYAN


PROGRAM
110 CLS
120 PRINT "BU PROGRAM PARALEL BAGLI DİRENÇLERDEN OLUŞAN BİR DEVREDE"
130 PRINT "PARALEL BAGLI DİRENÇLERDEN GEÇEN AKIMLARI VE HERBİR"
140 PRINT "DİRENÇTE HARCANAN GÜCÜ HESAPLAR. PARALEL BAGLI DİRENÇLE-
RİN"
150 PRINT "DEGERLERİYLE DEVREYE UYGULANAN GERİLİM YA DA ANA KOL
AKIMI"
160 PRINT "KLAVYEDEN GİRİLMELİDİR."
170 PRINT
180 PRINT "BÜTÜN DEGERLER TEMEL BİRİMDEN GİRİLMELİDİR."
190 PRINT
200 INPUT "Paralel olarak bağlı direnç sayısını giriniz >", N
210 IF N<2 OR N>9 THEN PRINT "En az 2, en fazla 9 direnç girilmeli-
dir .. " :GOTO 190
220 FOR J=l TO N
23 O PRINT "R" ; : PRINT USING "#" ; J; : PRINT " Direncinin değeri"
24 0 INPUT ; ">" , R{J) : PRINT " Ohm"
250 NEXT J
260 INPUT ; "Kaynak gerilimini giriniz >" ;E : PRINT " Volt"
270 INPUT ;"Ana kol akımını giriniz >";I : PRINT" Amper"
280 RT=R(l)
290 FOR J=2 TON : RT=RT*R(J)/{RT+R{J)) : NEXT J
300 IF E=O THEN E=I*RT ELSE I=E/RT
310 FOR J=l TON IR{J)=E/R{J) : NEXT J
320 FOR J=l TON : PR{J)=IR{J)*E : NEXT J
330 PRINT
340 PRINT "Devrenin değerleri "
350 PRINT "-------------------------
360 PRINT "Kaynak gerilimi =" ;E;" Volt"
370 PRINT "Ana kol akımı =" ;I;" Amper"
380 PRINT "Toplam direnç =" ;RT;" Ohm"
390 FOR J=l TO N : PRINT "R"; :PRINT USING "#" ;J;
400 PRINT" Direncinden geçen akım =";IR{J); "Amper" NEXT J

210
BİLGİSAYAR PORTLARININ KONTROLU

410 FOR J=l TO N : PRINT "R"; :PRINT USING "#" ;J;


420 PRINT " Direncinde harcanan güç =" ;PR(J}; " Watt" NEXT J
430 PRINT
440 INPUT "Devam etmek istiyor musunuz [E/H) >",C$
450 IF C$="E" OR C$="e" THEN GOTO 110
999 END

A.C DEVRESİNDE KAPASİTE, KAPASİTİF REAICTANS YA DA


FREKANS! HESAPLAYAN PROGRAM

Bilindiği gibi AC devrelerde kondansatörlerin akıma gösterdiği zorluk "kapasitif


reaktans" olarak adlandırılır. Bir kondansatörün AC akıma gösterdiği zorluk yani
kapasitif reaktans, kondansatörün kapasitesine ve devreye uygulanan gerilimin fre-
kansına bağlıdır. Şimdi inceleyeceğimiz program, bu bahsedilen üç değerden ikisi
girildiğinde üçüncüsünü hesaplamakta ve görüntülenmektedir. Program menü siste-
mine göre çalışmaktadır. Buna göre :

* Kondansatörün kapasitesi ve devre frekansı girildiğinde kapasitif reaktans;


* Kapasite ve kapasitif reaktans girildiğinde frekans;
* Kapasitif reaktans ve frekans girildiğinde ise kondansatörün kapasitesi hesap-
lanır.

100 REM KAPASİTİF REAKTANS PROGRAMI


110 CLS
115 PI=3 .141593
120 PRINT "BU PROGRAM KONDANSATÖRLÜ BİR DEVREDE KAPASİTE, KAPASİTİF"
130 PRINT "REAKTANS VE FREKANSI HESAPLAR. BU DEGERLERDEN İKİ TANESİ"
140 PRINT "GİRİLİRSE ÜÇÜNCÜSÜ HESAPLANIR VE GÖRÜNTÜLENİR"
145 PRINT "KLAVYEDEN GİRİLEN DEGERLER TEMEL BİRİM OLMALIDIR"
150 PRINT
160 PRINT "1- KAPASİTİF REAKTANS"
170 PRINT "2 - FREKANS"
180 PRINT "3- KAPASİTE"
190 PRINT
200 INPUT "Bunlardan hangisini hesaplamak istiyorsunuz[l/2/3)>",N
210 PRINT
220 ON N GOTO 230, 285, 350
230 INPUT ; "Frekans >" ;F : PRINT " hertz"
240 INPUT i "Kapasite>" ;C :PRINT " farad"
250 X=l/(2*PI*F*C)
260 PRINT
270 PRINT "Kapasitif reaktans =" ;X;" Ohm"

211
BİLGİSAYAR PORTLARININ KONTROLU

280 GOTO 410


285 PRINT
290 INPUT ; "Kapasitif reaktans >" ;X : PRINT " Ohm"
3 O0 INPUT ; "Kapasite>" ; C : PRINT " farad"
310 F=l/(2*PI*X*C)
320 PRINT
330 PRINT "Frekans =";F;" Hertz"
340 GOTO 410
350 PRINT
360 INPUT ; "Frekansı giriniz>" ;F:PRINT " hertz"
370 INPUT ;"Kapasitif reaktansı giriniz>";C:PRINT" ohm"
380 C=l/(2*PI*F*X)
390 PRINT
400 PRINT "Kapasite =" ;C;" Farad"
410 PRINT
420 INPUT "Devam etmek istiyor musunuz [E/H]>",C$
430 IF C$="E" OR C$="e" THEN GOTO 110
999 END

Değerler girilirken temel birim cinsinden girilmelidir. Örneğin l 00 (F. değeri


girilirken 0.0001 sayısı girilmelidir.

RC DEVRESİNDE ZAMAN SABİTİNİ HESAPLAYAN PROGRAM

Direnç ve kondansatörden oluşan RC devrelerinde T zaman sabiti R*C formü-


lüyle hesaplanır. Bu formülde C; farad olarak kondansatör, R; ohm olarak direnç, T
ise saniye olarak zamandır. T=R*C formülü kullanılarak elde edilen zaman sabiti,
o devrede kondansatörün şarjı ve deşarjı için geçen sürelerin bulunmasında kulla-
nılır.
Örneğin bir gerilim kaynağı, bir direnç ve bir kondansatörden oluşan seri dev-
rede anahtar kapatıldıktan sonra geçen bir zaman sabiti süresinde kondansatör uç-
larındaki gerilim, kaynak geriliminin %63.2 değerine ulaşır. İkinci zaman sabiti
süresinde ise kondansatör uçlarındaki gerilim, kaynak geriliminin %86.5 değerine
ulaşır. 5 zaman sabiti süresi sonunda ise kondansatör uçlarındaki gerilim kaynak
gerilimine ulaşır. Bunu bir örnekle açıklayalım. Bir RC devresinde kondansatörün
değeri 4 (F, direncin değeri 2 Megaohm ve kaynak gerilimi l O Volt olsun. Önce
bu devrenin zaman sabitini hesaplayalım:

T=R*C
T= 2 * l 06 * 4 * l 0-6
T=8 saniye.

Bu devrenin zaman sabiti 8 saniyedir. Biz, herhangi bir RC devresinde l za-

212
BİLGİSAYAR PORTLARININ KONTROLU

man sabiti sonunda kondansatör uçlarındaki gerilimin kaynak geriliminin %63.2


değerine ulaştığını biliyoruz. Bu devre için 1 zaman sabiti 8 saniye olduğuna gö-
re demek ki şarj işleminin başlamasından itibaren 8 saniye sonra kondansatör uç-
larındaki gerilim 6.32 Volta ulaşacaktır.
Bu anlatılanlar RC devresinde deşarj süreci için de geçerlidir. Dolu bir kondan-
satör bir R direnci üzerinden deşarj olurken 1 zaman sabiti süresi sonunda uçların­
daki gerilim başlangıç değerinin %38.8'ine düşer. 2. zaman sabiti süresi sonunda
ise başlangıçtaki değerin %l 3.5'ine düşer. 5 zaman sabiti süresinde ise kondan-
satör tamamen boşalır.
Özetle söyleyecek olursak devredeki kondansatör ve direncin değeri büyükse
şarj ve deşarj işlemi daha yavaş olur. Direnç ve kondansatörün değeri küçükse şarj
ve deşarj işlemi daha hızlı olur.
Şimdi inceleyeceğimiz programda kondansatörün şarj ya da deşarj işleminin
başlamasından itibaren belirli bir süre sonra kondansatör uçlarındaki gerilim he-
saplanmaktadır.

100 REM RC ZAMAN SABİTİ PROGRAMI


110 REM
115 CLS
120 PRINT "BU PROGRAM RC DEVRESİNDE KONDANSATÖRÜN"
130 PRINT "ŞARJ VE DEŞARJINI İNCELER.
140 PRINT
150 INPUT "Kondansatör şarj mı (c) yoksa deşarj mı (d) oluyor>",A$
160 IF A$<>"c" AND A$<>"C" AND A$<>"d" AND A$<>"D" THEN GOTO 150
170 PRINT
180 PRINT "Lütfen aşağıdaki bilgileri temel birim cinsinden giriniz"
185 PRINT
190 INPUT ; "Kondansatörün kapasitesi>" ,C
200 PRINT " Farad"
210 INPUT ; "Direncin değeri>" ,R
220 PRINT " Ohm"
230 IF A$="D" OR A$= d THEN GOTO 320
11 11

240 INPUT ; "Kaynak gerilimini giriniz>" ,ET


250 PRINT " Volt"
260 INPUT ;"Şarj işlemi başlayalı kaç saniye oldu>",T
270 PRINT " Saniye"
280 EC=ET*(l-EXP(-T/(R*C)))
290 PRINT
300 PRINT T;" saniye sonra kondansatör uçlarındaki gerilim ";EC;"
volt olur"
310 GOTO 400
320 PRINT
330 INPUT ;"Başlangıçta kondansatör uçlarında kaç volt var>",EI
340 PRINT " Volt"

213
BİLGİSAYAR PORTLARININ KONTROLU

350 INPUT ;"Deşarj işlemi başlayalı kaç saniye oldu>",T


360 PRINT " Saniye"
370 EC=EI*EXP(-T/(R*C))
380 PRINT
390 PRINT T;" saniye sonra kondansatör uçlarında kalan gerilim
";EC;" volttur"
400 PRINT
410 INPUT "Devam etmek istiyor musunuz(E/H)>",C$
420 IF C$="E" OR C$="e" THEN GOTO 115

Bu program çalıştırıldığında şarj işlemini mi yoksa deşarj işlemini mi analiz et-


mek istediğinizi sorar. Şarj işlemi için "c", deşarj işlemi için "d" tuşuna basılmalı­
dır.

REZONANS DEVRESİ PROGRAM!

Bu program bobin ve kondansatörden oluşan rezonans devresinde, klavyeden gi-


rilen iki değişkene göre üçüncü değişkenin değerini hesaplar. Örneğin kondansatör
ve bobinin değeri girilirse devrenin rezonans frekensını hesaplar. Buna karşılık re-
sonans frekansı ve devredeki kondansatörün değeri girilirse de devreye bağlanm~sı
gereken bobinin değerini bulur. Tüm değerler ana birim cinsinden girilmelidir. Or-
neğin 1000 µF değerinde kondansatörün değeri farad cinsinden yani 0.001 ola-
rak girilmelidir.

100 REM REZONANS FREKANSI PROGRAMI


105 PI=3.141593
110 CLS
120 PRINT "BU PROGRAM ÜÇ DEGİŞKENDEN İKİSİ"
130 PRINT "GİRİLDİGİNDE ÜÇÜNCÜSÜNÜ HESAPLAR"
140 PRINT
150 PRINT "1 - REZONANS FREKANSI"
160 PRINT "2 - KAPASİTE"
170 PRINT "3 - ENDÜKTANS"
180 PRINT
190 PRINT "Hangi değeri hesaplamak istiyorsunuz >". I

200 INPUT "" ,N


210 IF N=l OR N=2 OR N=3 THEN GOTO 240
220 PRINT "1, 2 ya da 3 sayısını giriniz .. "
230 GOTO 190
240 PRINT
250 PRINT "Aşağıda sorulan değerleri temel birim cinsinden giriniz"

214
BİLGİSAYAR PORTLARININ KONTROLU

255 PRINT
260 ON N GOTO 270,320,370
270 INPUT ; "Kondansatörün değeri>" ;C:PRINT " farad"
280 INPUT ; "Bobinin değeri>" ;L:PRINT " henri"
290 F=l/(2*PI*SQR(L*C))
300 PRINT "Rezonans frekansı ='" ;F;" hertz"
310 GOTO 410
320 INPUT ;"Frekans >";F:PRINT " hertz"
330 INPUT ;"Bobinin değeri>";L:PRINT" henri"
340 C=.02533/(F*F*L)
350 PRINT "Kondansatörün değeri =" ;C
360 GOTO 410
370 INPUT ;"Frekans>";F:PRINT " hertz"
380 INPUT ;"Kondansatörün değeri>";C:PRINT" farad"
390 L=.02533/(F*F*C)
400 PRINT "Bobinin değeri=";L;" henri"
410 PRINT
420 INPUT "Devam etmek istiyor musunuz[E/H]";A$
430 IF A$="E" OR A$="e" THEN GOTO 100

215
EK

HATA MESAJLARI

BASIC programlama dilinde program çalışırken herhangi bir hata ile karşılaştı­
ğında çalışma durur ve hata mesajı görüntülenir. Hata mesajında, hatanın ne oldu-
ğu belirtilerek kullanıcıya yol gösterilmiştir. Aşağıda, BASIC programlama dilinde
en sık karşılaşılan hatalar listelenmiştir.

KOD HATA MESAJI VE ANLAMI

NEXT without FOR (FOR'suz NEXT)


FOR-NEXT döngüsünde FOR kelimesi kullanılmamışsa bu hata
ortaya çıkar.

2 SYNTAX ERROR (Sözdizimi hatası)


BASIC komutlarının yazılışında bir hata varsa veya noktalama
işaretleri yanlış kullanılmışsa bu hata meydana gelir.

3 RETURN without GOSUB (GOSUB'suz RETURN)


Altprogram GOSUB kullanılmadan çalışmış ve sonunda RE-
TURN komutuna gelinmişse bu hata oluşur.

4 Out of data (verinin dışında)


READ komutundaki değişkenlerin sayısı DATA satırındaki veri-
lerden daha fazla olduğunda bu hata meydana gelir.

5 İllegal function cali (Geçersiz fonksiyon çağrısı)


Bir fonksiyonun geçer.siz bir parametreyle kullanılması duru-
munda ortaya çıkar. Orneğin SQR komutu kullanılarak negatif
bir sayının karekökü alınmak istenirse bu hata oluşur. Yine,
korumalı bir programın listesi alınmak istenirse de bu hata me-
sajı görüntülenecektir.

6 Overflow (taşma)
Hesaplamada BASIC'te kullanılan sınırlar aşılmış.

217
HATA MESAJLAR!

7 Out of memory (Belleğin dışında)


Program çok büyük, bellek kapasitesi bu program için yeterli
değil.

8 Undefined line number (Tanımlanmamış satır numarası)


Örneğin GOSUB komutuyla, programda mevcut olmayan bir
satıra gönderme yapılırsa bu hata oluşur.

9 Subscfipt out of range (İndis değeri aşılmış)


İr:ıdisli değişkenlerde tanımlanan indis değeri aşılmış demektir.
Orneğin DIM A (20) tanımlanmasından sonra A (30) diye bir
değişken kullanılmak istenirse bu hata oluşur.

10 Duplicate definition (İki kere tanımlama)


Programda, indisli değişkenlerin tanımlandığı DIM satırı ikinci
kez çalıştırılırsa bu hata mesajı görüntülenir.

ll Division by zero (sıfıra bölme)


Herhangi bir sayı sıfıra bölünürse bu hata ortaya çıkar.

l2 illegal direct (Geçersiz direkt mod)


Program satırı verilerek kullanılması gereken bir fonksiyon di-
rekt modda çalıştırılmak istenirse bu hata meydana gelir.

l3 Type mismatch (Tip uyuşmazlığı)


Sayısal tipte bir değişkene string tipi bir bilgi girişi yapıldı­
ğında bu hata oluşur.

14 Out of string space (String alanı dışında)


String tipi değişkenler için ayrılan alan dolmuş.

15 String too long (çok uzun string)


BASIC'de string tipi bir bilgi en fazla 255 karakterden oluşa­
bilir. 255 sayısı aşılırsa bu hata oluşur.

l8 Undefined user function (Tanımlanmamış kullanıcı fonksiyonu)


DEF FN komutuyla tanımlanmamış bir kullanıcı fonksiyonu
çağrılmış.

22 Missing operand (Eksik işlem unsuru)


Hesaplamada, işlenenlerden birisi eksik.

24 Device Timeout (Aygıt çalışmıyor)


Programın çalışması sırasında, bilgi giriş-çıkışı yapılan bir
arabirim çalışmıyor

218
HATA MESAJLAR!

26 FOR without NEXT (NEXT'siz FOR)


FOR-NEXT döngüsünde NEXT kelimesi kullanılmamış.

27 Out of paper (Yazıcıda kağıt yok)


Programdaki bilgiler kağıda aktarıldığı sırada yazıcıda kağıt
takılı değilse bu hata oluşur.

29 WHILE without WEND (WEND'SİZ WHILE)


WHILE - WEND döngüsünde WEND kelimesi kullanılmamış.

30 WEND without WHILE (WHILE'SİZ WEND)


WHILE-WEND döngüsünde WHILE kelimesi kullanılmamış.

52 Bad file number (Geçersiz dosya numarası)


Kullanılmak istenilen veri dosyası açılmamış veya yanlış man-
tıksal birim numarası kullanılmış.

53 File not found (Dosya bulunamadı)


LOAD, NAME, KILL gibi komutlardan birisi, diskette veya
harddiskte mevcut olmayan bir dosya için kullanılmışsa bu ha-
ta oluşur.

54 Bad file mode (Geçersiz dosya modu)


Örneğin, sıralı bir dosyaya PUT komutu kullanılarak kayıt ya-
pılmaya çalışılırsa bu hata oluşur. Dosyanın tipi ile kullanıla­
cak komutlar uyumlu olmalıdır.

55 File already open (Dosya halen açık)


Dosya halen açık iken tekrar açılmaya çalışılmış.

61 Disk ful! (Disket dolu)


Disket veya harddiskte boş yer kalmamış.

62 lnput post end (Dos-ya sonu aşılmış)


Sıralı dosyada, dosya sonuna gelindiği halde bilgi okunmak is-
tenirse bu hata oluşur. Bu nedenle EOF kontrolu yapılmalıdır.

70 Disk write protect (Disket yazma korumalı)


Yazma korumalı bir diskete kayıt yapmaya çalışılmış.

71 Disk not ready (Disket hazır değil)


Sürücüde disket yoktur.

219
ASCII KODLAR TABLO§V

221
ASCll KODLAR TABLOSU

222
ASCll KODLAR TABLOSU

223
ES
p

225
LOS

Excel çok yaygın olarak kullanılan bir hesap tablosu programıdır.


Excel programı esas olarak hesaplama işlemlerinde kullanılmasına rağ­
men çok güçlü veri tabanı ve grafik fonksiyonları da bulunmaktadır.

Excel programı çalıştırıldığında ekrana, diğer birçok Windows


uyumlu programda olduğu gibi, menü satın, araç çubuklan, yatay ve
dikey kaydırma çubuklarının da bulunduğu bir pencere gelir (Şekil 3-
1).

F onniil çubuğu Rlçem araç çubuğu _J


Standart araç pıbıığn _ __,

Menü satıın - - - - -...!

Şekil 3-1

Diğer hesap tablosu programlarında (örneğin Lotus) olduğu gibi


Excel programının çalışma sayfası da hücreler biçiminde düzenlenmiş­
tir. Bir sütunla bir satırın kesişim bölgesi bir hücredir. Sütunlar harflerle
(A,B,C, .. ) satırlar ise rakamlarla (1,2,3, ... ) adlandırılmıştır (Şekil 3-2).

Şekil 3-2

227
Hücreler ise kesiştikleri
sütun ve satır adlarının birleştirilmesiyle ad-
landırılır. Örneğin A sütununun 1. satırla kesiştiği hücre Al hücresi ola-
rak adlandırılır.

Excel çalışma sayfasında


herhangi bir anda hücrelerden birisi aktif
durumdadır. Aktif hücre sınırlarının koyu oluşuyla diğerlerinden ayrılır.
Örneğin Şekil 3-2'de D3 hücresi aktif durumdadır. Aynca formül çubu-
ğunun sol tarafındaki bölümde aktif hücrenin adı bulunmaktadır.

Başka bir hücreyi aktif hale getirmenin çeşitli yollan vardır. Örneğin
herhangi bir hücre aktif durumdayken sağa ok tuşuna bir kez basarsa-
nız o hücrenin bir sağındaki hücre aktif olur. Aşağı ok tuşuna bir kez
basmakla da aktif hücrenin bir altındaki hücreyi aktif yaparsınız.

Maus işaretini herhangi bir hücrenin üzerine götürdükten sonra sol


maus tuşunu bir kez tıklarsanız o hücre aktif olur.

Excel çalışma sayfasında herhangi bir hücreye bilgi girmek için ön-
ce o hücrenin aktif hale getirilmesi gerekir. Başka deyişle o anda hangi
hücre aktifse o hücreye bilgi girişi yapabilir, formül ya da fonksiyon
yazabilirsiniz.

Bu arada çalışma sayfası falan diyoruz ama, acaba çalışma sayfası


ne demek? Değerli okuyucularım, Excel programı penceresi ekrana
geldiğinde ekranın alt bölümünde sayfa 1, sayfa 2, sayfa 3 ... yazılarını
göreceksiniz. Bunların herbiri bir sayfanın adıdır. Excel progranu var-
sayım olarak 16 adet sayfa yükler, ancak siz yeni sayfalar ekleyebilece-
ğiniz gibi, sayfa sayısını azaltmanız da mümkündür. Sayfa 1, Sayfa 2 ...
olarak adlandırılan sayfalardan herbirine Çalışma Sayfası denir. Çalış­
ma sayfalarının tümü de bir Çalışma Kitabı'nı oluşturur.

Herhangi bir anda çalışma sayfalarından birisi seçili durumdadır. Se-


çili olan sayfanın adının rengi diğerlerinden farklıdır. Şekil 3-3'de çalış­
ma sayfalarının adlan görülüyor.

Şekil 3-3

Program çalıştırıldığında Sayfal varsayım olarak seçili durumdadır.


Hangi sayfayı seçili hale getirmek istiyorsanız o sayfanın adım bir kez
tıklamanız yeterlidir.

228
Herhangi bir anda hangi çalışma sayfası seçili durumdaysa o çalış­
ma sayfasındaki hücrelere bilgi girişi yapılabilir. Aynı şekilde herhangi
bir çalışma sayfasındaki bilgileri görmek için de önce o sayfayı seçili
hale getirmeniz gerekir.

Bir çalışma sayfasında toplam 16864 adet satır ve 256 adet sütun
bulunmaktadır. Demek ki bir çalışma sayfasında toplam 4317184 hücre
bulunuyor. Bir çalışma kitabında da 16 çalışma sayfası bulunduğunu
düşünürsek sanırım programın kapasitesi ortaya çıkar. Üstelik çalışma
sayfalarının sayısını da 256'ya kadar çıkarabiliyoruz. Her eklenen çalış­
ma sayfasında da 4317184 hücre bulunuyor.

Size şu kadarını söyleyeyim, 30-40 bin işçi çalıştıran bir fabrikadaki


personele ait her türlü bilgiyi, maaş bordrolarını, adresleri, SSK kayıtla­
rını, sicil bilgilerini Excel programıyla işlemek mümkündür. Bu konuda
tek düşüneceğiniz şey bilgisayarınızın harddiskinin kapasitesi. Eınin
olun, programdan yana hiç sıkıntı yaşamazsınız.

Gerçi çalışma sayfasının (daha doğrusu çalışma kitabının) kaydedil-


mesi konusuna daha sonra geleceğiz ve bu konuda da bir uygulama-
mız var ama şimdiden şu kadarını söyleyeyim: Çalışma kitabmın 16
sayfadan oluştuğunu ve bunların 4 tanesinde bilgiler bulunduğunu var-
sayalım. Siz gerekli adımları atıp dosyaya bir ad verip kaydettiğinizde
16 çalışma sayfasının tümü de kaydedilmiş oluyor. Yani dolu veya boş
çalışma kitabı kaç sayfadan oluşuyorsa öylece kaydetmiş oluyorsunuz.
Özetle, kaydedilen şey çalışma kitabının kendisi.

Çalışma sayfalarının varsayım olarak Sayfal, Sayfa2, Sayfa3 ... olarak


adlandırılmış olduklarını daha önce beliıtmiştim. Sayfalara kendiniz de
isim verebilirsiniz. Bu işi menü aracılığıyla yapabileceğiniz gibi ben da-
ha pratik bir yolunu söyleyeyim size.

Diyelim ki Sayfal adlı sayfanın adını değiştireceksiniz. Ekranın alt-


tan ikinci satırında bu sayfa başlığını çift tıklayın. Ekrana Sayfanın Adı­
nı Değiştir adlı bir diyalog kutusu gelir (Şekil 3-4).

Şekil 3-4

229
Bu sayfanın adını Ocak olarak değiştirelim. Ad başlıklı metin kutu-
suna Ocak yazdıktan sonra diyalog kutusundaki Tamam düğmesini tık­
larsanız ya da ENTER tuşuna basarsanız sayfanın adı Ocak olarak de-
ğişmiş olur (Şekil 3-5).

Şekil 3-5

Diyelim ki bir firmada çalışanların 12 aya ait bordrolarını (maaş çi-


zelgelerini) hazırlayacaksınız. Herbir aya ait bordroyu bir çalışma say-
fasında hazırlayıp çalışma sayfalarına da ait oldukları ayların adlarını
verirseniz son derece net ve açık bir şekilde anlaşılabilen bir iş yapmış
olursunuz, ilerde neyi nerede bulacağınızı da şaşırmazsınız. İşte çalış­
ma sayfalarına isim vermek bu gibi durumlarda oldukça yararlıdır.

Daha önce Şekil 1-l'de de görmüştünüz, Excel penceresinin en üs-


tünde menü satırı yer alır ve menü satırında 9 tane menü vardır.

Bu menülerden herhangi birisini tıkladığınızda o menüye ait komut-


ları içeren bir menü penceresi ekrana gelir. Menü penceresindeki bir
komutu çalıştırmak için ise o komutun adını çift tıklamak yeterlidir.

Menülerdeki komutlar aracılığıyla yapılan işlerin bir bölümünü araç


çubuklarındaki simgeleri tıklamak suretiyle de yapabilirsiniz. Araç çu-
buklarında, en çok kullanılan komutlara ait simgeler yer almıştır. Uy-
gulamalarda bir işi yaparken hem menülerdeki komutları hem de araç
çubuklarındaki simgeleri kullanacağız. Böylece aynı işi farklı yollardan
yapmayı da öğrenmiş olacaksınız.

Hemen belirteyim ki, Word programını anlattığım bölümün başında


da aynı şeyi söylemiştim, menülerde bulunan komutların hepsi aynı
sıklıkta kullanılmıyor. Kimi komutları her çalışmanızda kullanacaksınız,
kimini ise belki hayatınız boyunca hiç kullanmayacaksınız. Bu nedenle
ben kafa karışıklığına yol açmamak için komutlardan önemli kabul et-
tiklerimi size kısaca tanıtacağım. Zaten uygulamaları da o kritere göre
seçtim. Uygulamalarda da size en çok lazım olacak ve en çok işinize
yarayacak işlemleri açıklamaya özen gösterdim.

230
Şimdi gelelim Excel programının menü satırında yer alan menülere
ve bu menülerde yer alan komutların kısaca tanıtılmasına.

DOSYA MENÜSÜ

Dosyalarla ilgili açma, kaydetme, yazdırma gibi işlemleri yapabile-


ceğiniz komutlar bu menüde yer alır. Şimdi Dosya menüsünde yer
alan komutlara bir göz atalım:

Şekil 3-6

Yeni: Yeni bir çalışma kitabı oluşturmak için bu komut kullanılır.


Bu komut çalıştırıldığında ekrana gelen diyalog kutusunda normal şab­
lon dışında seçebileceğiniz başka şablonlar da yer alır. Örneğin Sipariş
Formu, Kişisel Bütçe, Zaman Çizelgesi şablonlarından birisini seçerse-
niz amacınıza uygun bir hazır şablonu kullanma imkanı bulabilirsiniz.

Aç: Daha önce bir ad vererek kaydetmiş olduğunuz bir Excel dos-
yasınıyeniden bilgisayara yüklemek için bu komut kullanılır.

Kapat: Bu komut çalıştırıldığında açık durumdaki Excel dosyası ka-


panır.O anda birden fazla Excel dosyası açık durumdaysa aktif olan
dosya kapanır.

Kaydet: Daha önce isim verilip kaydedilmiş olan ve halen üzerinde


çalışılan dosyanın aynı
adla son şekliyle kaydedilmesinde kullanılır.

Farklı Kaydet: Bir dosyayı ilk defa isim verip kaydederken bu ko-
mutu kullanırız. Aynca mevcut dosyayı başka bir adla kaydetmek için
de bu komut kullanılır.

231
Sayfa Yapısı: Bu komut çalıştırıldığında
ekrana gelen diyalog kutu-
su aracılığıyla çalışma sayfasının kağıt
üzerinde duruş biçimiyle ilgili
bazı ayarlamalar yapabilirsiniz. Aynca sayfa boyutlarıyla marjinleri de
bu diyalog kutusundan tanımlayabilirsiniz.

Baskı Önizleme: Bu komutu kullanarak üzerinde çalıştığınız sayfa-


nın kağıt üzerine aktarılınca alacağı biçimi önceden görebilir ve fikir
sahibi olabilirsiniz. Böylece sayfanızı daha kağıda aktarmadan nasıl du-
racağını önceden görüp gerekli düzelme ve ayarlamaları yapabilirsiniz.

Yazdır: Bu komutu çalıştırdığınızda yazdırma ile ilgili seçim ve


ayarlamaları yapabileceğiniz Yazdır adlı bir diyalog kutusu ekrana ge-
lir. Bu diyalog kutusunu kullanarak çalışmanızın hangi bölümünü yaz-
dıracağınızı belirleyebilir, kaç nüsha istediğinizi tanımlayabilirsiniz.

Çıkış: Bu komutu kullanarak Excel programından çıkabilirsiniz.

Dosya menüsündeki Çıkış komutunun hemen üzerinde de en son


üzerinde çalıştığınız Excel dosyalarının adları yer alır. Bu sayı varsaya-
yım olarak dört'tür. Ancak siz bu sayıyı değiştirebilirsiniz. Eğer bu dos-
yalardan birisini açmak istiyorsanız isminin üzerine gidip çift tıklama­
nız yeterlidir.

DÜZEN MENÜSÜ
Bu menüde kopyalama, taşıma, silme gibi çalışma sayfasının işlen­
mesiyle ilgili komutlar yer alır. Şekil 3-7'de Düzen menüsü görülüyor.

Şekil 3-7

Geri Al: Son yapılan işlemi iptal eder.

232
Yinele: Son işlemi tekrarlar.

Kes: Çalışma sayfasındaki taşınmak üzere önceden işaretlenmiş


olan bölgeyi Pano adı verilen geçici bellek bölgesine aktarır.

Kopyala: Kopyalanmak üzere işaretlenmiş olan bölgeyi Pano adı


verilen geçici bellek bölgesine aktarır.

Yapıştır: Kes veya Kopyala komutlarından birisini kullanarak pano-


ya aktarılmış olan bilgileri aktif hücreye yapıştırır. Yani taşıma veya
kopyalama işlemini gerçekleştirir.

Özel Yapıştır: Panonun içeriğini olduğu gibi yani bütün özellikle-


riyle başka bir hücreye aktarmak istemiyorsanız Yapıştır komutu yerine
Özel Yapıştır komutunu kullanmalısınız. Örneğin bir hücredeki yazıyı
değil de sadece bu yazının rengini başka bir hücreye aktarmak istedi-
ğinizde Özel Yapıştır komutunu çalıştırdığınızda ekrana gelen diyalog
kutusundan yararlanabilirsiniz.

Doldur: Hücreleri istediğiniz karakterlerle doldurur.

Tem.izle: Bu komut hücrelerdeki bilgileri veya diğer özellikleri sil-


meye yarar. Temizle komutunu çalıştırdığınızda ekrana başka bir menü
gelir. Bu yeni menüdeki Tümünü seçeneğini tıklarsanız hücredeki bilgi
tüm özellikleriyle silinir. Biçimleri seçeneğini tıklarsanız hücredeki bil-
gi değil bu bilgiye eklenmiş olan biçim silinir. Örneğin o hücredeki yazı
renkliyse renk silinir. İçeriği seçeneğini tıklarsanız hücredeki bilgi silinir,
diğer özellikler kalır. Notları seçeneğini tıklarsanız hücreye eklenmiş
olan ve normalde görüntülenmeyen notlar (ek açıklamalar) silinir.

Bir hücredeki bilgiyi yani hücrenin içeriğini silmek için o hücreyi


aktif yapıp klavyedeki Delete tuşuna basmanız da yeterlidir.

Sil: Aktif hücrenin bulunduğu satırı veya sütunu silmek için bu ko-
mut kullanılır. Sil komutu çalıştırıldığında ekrana bir diyalog kutusu
gelir. Bu diyalog kutusunu kullanarak satır veya sütun silme işlemini
seçebilirsiniz.

Sil komutuyla yapılan işlem basit bir içerik silme işlemi değildir, sili-
nen satır veya sütun tümüyle ortadan kalkar. İşaretlemek suretiyle bir-
den fazla satır veya sütun da aynı anda silinebilir.

Sayfayı Sil: Aktif durumdaki sayfayı siler.

233
Sayfayı Taşı veya Kopyala: Bu komutu çalıştırdığınızda ekrana ge-
len diyalog kutusunu kullanarak Çalışma kitapları arasında sayfa taşı­
ma ve kopyalama işlemleri yapabilirsiniz. Örneğin halen çalışmakta ol-
duğunuz dosyadaki bir veya birkaç sayfayı başka bir excel dosyasına
taşıyabilir ya da kopyalayabilirsiniz.

Bul: Çalışma sayfasındaki bir kelimeyi bulmanızı sağlar.

Değiştir: Çalışma sayfasındaki bir kelimeyi bulup yenisiyle değişti­


rebilirsiniz.

Git: Bu komutu çalıştırdığınızda ekrana gelen diyalog kutusunu


kullanarak çalışma sayfasındaki bir hücreye kısa yoldan ulaşabilirsiniz.

GÖRÜNÜM MENÜSÜ
Bu menüyü kullanarak Excel penceresinin görünümüyle ilgili deği­
şiklikler yapabilirsiniz. Şekil 3-8'de Görünüm menüsü görülüyor.

Şekil 3-8
Formül çubuğu: Ekranın üst bölümünde bulunan ve aktif hücrede-
ki formülü görüntüleyen formül çubuğunu ekrandan kaldırmakta veya
ekrana getirmekte kullanılır. Formül Çubuğu komutunun solundaki
onay işareti o anda ekranda olduğunu gösterir.

Durum Çubuğu: Excel penceresinin alt tarafında bulunan ve çalış­


manın o anda hangi modda olduğunu gösteren satıra Durum Çubuğu
denir. Sayfa adlarının hemen altındaki satır Durum Çubuğu'dur. Durum
çubuğunda kimi zaman yaptığınız işlemle ilgili mesajlar da görüntüle-
nir. Görünüm menüsündeki Dunım Çubuğu komutu, bu satırın ekran-
dan silinmesini veya tekrar ekrana gelmesini sağlar. Durum Çubuğu
komutunun solundaki onay işareti o anda ekranda olduğunu gösterir.

Araç Çubuklan: Excel penceresinde menülerdeki sık kullanılan


komutları kısayoldan çalıştırmanızı sağlayan
simgelerin yer aldığı araç

234
çubuklan bulunur. Excel programını çalıştırdığınızda Standart ve Biçim
adlı araç çubuklan varsayım olarak ekrana gelir.

Araç Çubuklan komutunu çalıştırdığınızda ekrana Şekil 3-9'daki di-


yalog kutusu gelir.

Çizim
ipucu Sihirbaz;
Formlar
Kaydı Durdur
Visual 8asic
Denetim

Şekil 3-9

Bu diyalog kutusunda dikey olarak sıralanmış onay kutularım tıkla­


yarak o adlardaki araç çubuklarını ekrana getirebilirsiniz. Örneğin gra-
fik komutlarını kısayoldan kullanmanızı sağlayacak simgeleri içeren
Grafik adlı araç çubuğunu ekrana getirmek için Araç Çubukları diyalog
kutusundaki Grafik yazısının solundaki onay kutusunu bir kez tıkla­
mak gerekir. Tıklama işlemiyle onay kutusuna onay işaretini koyduk-
tan sonra Tamam düğmesini tıklarsanız Grafik adlı araç çubuğu ekran-
da görüntülenir. Ekrandaki bir araç çubuğunu ekrandan silmek için de
o araç çubuğuna ait onay kutusunu tıklayıp onay işaretini silmek ve
ardından Tamam düğmesini tıklamak yeterlidir.

Tam Ekran: Bu komutu çalıştırdığınızda ekrandaki araç çubuklan,


formül çubuğu, durum çubuğu kaybolur ve böylece çalışma sayfasının
daha büyük bir bölümünü ekranda görmeye başlarsınız. Yine aynı ko-
mutu kullanarak eski görüntüye dönebilirsiniz.

Yakınlaştır: Bu komutu çalıştırdığınızda ekrana Yakınlaştır adında


bir diyalog kutusu gelir. Bu diyalog kutusunda %200, %100, %75, %50
gibi seçenekler bulunur. Bu seçeneklerden birisini seçerek üzerinde
çalıştığınız tablonun görünümünü büyütüp küçültebilirsiniz. Aynı diya-
log kutusundaki Özel seçeneğini işaretlerseniz kendi büyütme veya
küçültme oranınızı da oradaki bilgi kutusuna yazabilirsiniz.

235
EKLE MENÜSÜ
Bu menüdeki komutları kullanarak çalışma kitabına yeni çalışma
sayfası, hücrelere not (özel açıklama), çalışma sayfanıza resim ekleme
gibi işlemleri yapabilirsiniz. Şekil 3-lO'da Ekle menüsü görülüyor.

Şekil 3-10

Hücreler: Çalışma sayfanıza hücreler ekleyebilirsiniz. Ancak hemen


belirtelim ki bir çalışma sayfasındaki toplam hücre sayısını değiştire­
mezsiniz. Yeni hücreler aktif hücrenin bulunduğu yere eklenir.

Satll": Aktif hücrenin bulunduğu satırın olduğu yere yeni bir satır
ekler. Diğer satırlar aşağı doğru ötelenir. Sayfadaki toplam satır sayısı
değişmez. Satırların sıralama numarası da değişmez.

Sütun: Aktif hücrenin bulunduğu sütunun olduğu yere yeni bir sü-
tun ekler. Diğer sütunlar sağa doğru ötelenir. Sayfadaki toplam sütun
sayısı değişmez. Sütunların sıralama düzeni de değişmez.

Çalışma Sayfası: Çalışma kitabına yeni çalışma sayfası ekler.

Gı-afik.: İşlem sayfasında grafiği çıkarılacak bölge seçildikten sonra


Grafik komutu çalıştırıldığında yeni bir menü açılır. Bu menüden grafi-
ğin aynı sayfada veya başka bir sayfada oluşmasını seçebilirsiniz. Bu
seçimi yaptıktan sonra ekrandaki maus işareti ince artı biçimini alır.
Grafik alanını böylece işaretleyebilirsiniz. Bu noktadan sonra Grafik Si-
hirbazı devreye girer.

236
Makro: Bir dizi işlemi makro olarak kaydettikten sonra bir simgeye
ya da tuş kombinasyonuna bağlayabilirsiniz.

Not: Bir hücreyi aktif hale getirdikten sonra Not komutunu çalıştır­
dığınızda serbestçe yazı yazabileceğiniz bir editör ekrana gelir. Bu edi-
törü kullanarak o hücreye not girebilirsiniz. Böylece hücre formunun
sınırlamalarından kuıtulup uzun açıklamalar yapılabilir. Hücreye girilen
not normal durumda görüntülenmez. Maus okunu o hücrenin üzerine
götürüp bir müddet orada tutarsanız not görüntülenir.

Hücrede not dışında başka bir bilgi de bulunur. Normal durumda o


bilgi görünür.

Bir hücrede not olduğunu o hücrede bulunan küçük kırmızı bir işa­
retten anlayabilirsiniz. (Dikkat: Burada bahsedilen Not, ek açıklama
anlamındadır.)

Resim: Bu komutu kullanarak çalışma sayfasına Windows uyumlu


(mevcut veya sizin hazırladığınız) bir resim dosyasını yani bir resmi
ekleye bilirsiniz.

BİÇİM MENÜSÜ

Bu menüdeki komutlar kullanılarak hücrelerdeki görüntü biçimlen-


dirilir. Örneğin hücrelerdeki bilgiye ilişkin yazıtipi, yazı büyüklüğü ve
rengi gibi biçimlendirme işlemleri yapılabildiği gibi Excel tablolarına
otomatik biçim de verilebilir. Şekil 3-ll'de Biçim menüsü görülüyor.

Biçim menüsündeki sık kullanılan komutlar şunlardır:

Şekil 3-11

Hücreler: Bu komutu çalıştırdığınızda ekrana gelen Hücreleri Bi-


çimle adlı diyalog kutusunu kullanarak seçili durumdaki hücrelerde
bulunan bilgilere çeşitli biçimler uygulayabilirsiniz.

237
Hücreleri Biçimle diyalog kutusunda seçenekler 6 ayrı grupta top-
lanmış ve her grup ayrı bir sayfada yer almıştır. Sayı adlı sayfa varsa-
yım olarak aktif durumdadır. Diğer bir sayfayı aktif hale getirmek ve
böylece içindeki seçenekleri kullanılabilir hale getirmek için o sayfanın
başlığını tıklamak yeterlidir. Şekil 3-12'de Hücreleri Biçimle diyalog ku-
tusu ve aktif durumdaki Sayı adlı sayfa görülüyor.

Şekil 3-12
Sayı adlı sayfadaki liste kutusunda bulunan seçenekleri hücrelere
uygulayarak o hücrelerdeki sayıların görüntülenme biçimlerini (örne-
ğin virgülden sonra kaç basamak görüntüleneceğini, tarih formatırn
vb) tanımlayabilirsiniz.

Hücreleri Biçimle diyalog kutusunda Hizalama adlı sayfa başlığını


tıklarsanız
Hizalama adlı sayfa ön plana çıkar (Şekil 3-13).

Şekil 3-13

Hizalama sayfasındaki seçenekleri kullanarak hücrelere girilen bilgi-


lerin konumunu ayarlayabilirsiniz. Hücredeki bilgiyi sağa veya sola
yaslayabilir, ortalayabilirsiniz. Aynca bilgiyi hücreye düşey biçimde de
yazmanız mümkündür.

238
Hücreleri Biçimle diyalog kutusundaki Yazıtipi sayfasının başlığını
tıklarsanız bu sayfa aktif olur (Şekil 3-14).

Şekil 3-14

Yazıtipi sayfasındaki seçenekleri kullanarak hücrelerdeki yazıların


biçimlerini ve büyüklüklerini değiştirebilir, yazıların renkli olmasını
sağlayabilir, altsimge ve üstsimge özellikleri verebilirsiniz.

Hücreleri Biçimle diyalog kutusundaki Kenarlık sayfa başlığım tık­


larsanız Kenarlık sayfası
aktif olur (Şekil 3-15).

Şekil 3-15

Bu sayfadaki seçenekleri kullanarak seçili dunımdaki alana sınır ve


aralıkçizgileri uygulayabilirsiniz.

Satır: Bu komutu çalıştırdığınızda başka bir menü penceresi açılır.


Yeni menü penceresindeki seçenekleri kullanarak aktif hücrenin bu-
lunduğu satırın veya seçili durumdaki satırların yüksekliğini değiştire­
bilir, bu satırları gizli hale getirebilir ve tekrar ekrana getirebilirsiniz.

239
Sütun: Bu komutu çalıştırdığınızda da ekrana başka bir menü gelir.
Bu yeni menüde bulunan komutları kullanarak aktif hücrenin bulun-
duğu sütunun veya seçili durumdaki sütunların genişliklerini değiştire­
bilir, sütunları gizleyebilir ve tekrar ekrana getirebilirsiniz.

Aynca bu yeni menüde bulunan En Uygun Genişlik komutunu


kullanarak bir sütunun genişliğini o sütündaki hücrelerde bulunan en
uzun bilgiye göre ayarlayabilirsiniz. Standart Genişlik komutu ise ge-
nişlikleri değiştirilen hücrelerin tekrar standart genişliğe sahip olmaları­
nı sağlar.

ARAÇLAR MENÜSÜ
Bu menüdeki komutları aynı kategoride toplamak güçtür. Ancak şu­
nu söyleyebiliriz: Bu menüde diğer kategorilere girmeyen ve Excel
programının yararlılığını arttıran çeşitli fonksiyonları içeren komutlar
yer alır. Şekil 3-16'da Araçlar menüsü görülüyor.

Şeki/3-16

Yazım Kılavuzu: Çalışma sayfasında yer alan kelimeleri dilbilgisi


açısından denetler.

Hedef Ara: Sonuç yani hedef bilgisini taşıyan bir hücredeki hedefi
tutturmak için başka bir hücrenin alması gereken değeri hesaplar. Ör-
neğin, bir öğrenci birinci yazılıdan 40, ikinci yazılıdan 42 almışsa orta-
lamanın 50 olması için üçüncü yazılıdan alması gereken notu hesaplar.

Senaryolar: Bir veya birden fazla değişkenin alacağı çeşitli değer­


lere bağlı olarak çeşitli sonuçlan içeren tablo hazırlar.

240
İçine-Ekle: Excel'de bulunan bazı hazır makrolan aktif hale getirip,
bu makrolan çalıştıran komutların menülere eklenmesini sağlar.

Makro: Bir dizi işlemi makro olarak tanımlayıp bir simgeye veya
tuş kombinasyonuna bağlamanızı sağlar.

Seçenekler: Excel programının genel çalışma düzeniyle ilgili çeşitli


tanımlama ve ayarlamaları Seçenekler komutunu çalıştırdığınızda ekra-
na gelen diyalog kutusu aracılığıyla yapabilirsiniz.

Şekil 3-17'de Seçenekler diyalog kutusu görülüyor.

Şekil 3-17
Seçenekler diyalog kutusunda 10 adet sayfa bulunmaktadır. Hangi
sayfanın başlığını tıklarsanız o sayfa aktif olur ve ön plana geçer. Şekil
3-17'de Görünüm adlı sayfa aktif durumdadır. Bu sayfadaki onay kutu-
larını, radyo düğmelerini ve liste kutusunu kullanarak Excel penceresi-
nin görünümünü değiştirebilirsiniz. Örneğin Yatay ve Dikey kaydırma
çubuklarını ekrandan silebilir veya ekrana getirebilirsiniz.

Seçenekler diyalog kutusundaki diğer sayfalarda da başka ayarlama-


lar yapabileceğiniz seçenekler yer alır. Sayfanın adı o sayfadaki seçe-
neklerle ilgili bir fikir verir. Sözgelişi Hesaplama sayfasında, Excel ça-
lışma sayfasında hesaplama işlemleriyle ilgili ayarlamalar yapabileceği­
niz seçenekler yer alır.

PENCERE MENÜSÜ
Excel penceresinde aynı anda birden fazla dosyaya ait sayfalar da
yer alabilir. Pencere menüsündeki komutlar sayfaların ekrandaki yerle-
şimlerini ayarlar. Şekil 3-18'de Pencere menüsü görülmektedir.

241
Şekil 3-18

Bu menüdeki Yerleştir komutunu çalıştırdığınızda ekrana başka bir


menü gelir (Şekil 3-19).

Şekil 3-19
Bu yeni menüde bulunan seçeneklere bağlı olarak açık olan birden
fazla sayıda dosyanın ekrandaki yerleşimleri ayarlanabilir. Dosyalar
yanyana, üstüste, peşpeşe görüntülenebilir.

Ayrıca Pencere menüsünün en alt bölümünde herhangi bir anda


açık olan dosyaların adları yazılıdır. Aktif durumdaki dosyanın adının
önünde onay işareti vardır. Diğer bir dosyanın adını tıklarsanız o dosya
aktif olur.

VERİ MENÜSÜ

Bu menüdeki komutlar kullanılarak çeşitli Veritabanı işlemleri yapı­


labilir. Şekil 3-20'de Veri menüsü görülüyor.

Veri menüsündeki sık kullanılan komutlar şunlardır:

Sırala:Bir veri tabanındaki kayıtları, sütunlardan birisini anahtar


kabul ederek aşağıdan yukarıya veya yukardan aşağıya sıralar.

Süz: Veri tabanında arama işlemlerinde kullanılır.

242
Şekil 3-20

Form: Veri tabanında bulunan her kayıt için bir form oluşturur.

Özet Tablo: Bir veri tabanında sütunlardan birisindeki verileri mer-


kez (pivot) kabul ederek gelişmiş bir arama ve özetleme sistemini ça-
lıştırır. Sonuçta özet bir tablo üretir.

YARDIM MENÜSÜ
Excel'deki komutlar, kavramlar ve fonksiyonlara ilişkin, kimileri ör-
neklerle de desteklenen geniş bir yardım sağlar. Şekil 3-21'de Yardım
menüsü görülüyor.

Şekil 3-21

Bu menüdeki Microsoft Excel Yardım Konulan komutunu çalıştırdı­


ğınızdaekrana gelen diyalog kutusunu kullanarak Excel konusunda,
adım adım öğrenmeye yönelik, dizin biçiminde veya kavramsal açıkla­
maya yönelik yardım alabilirsiniz.

UYGULAMA 1 : Hücrelere bilgi girme


Bu uygulamada hücrelere bilgi girişi anlatılmaktadır. Herhangi bir
hücreyi aktif yapıp bu hücreye bir rakam, harf veya formül yazmak
üzere klavyede bir tuşa dokunur dokunmaz formül çubuğunda bazı
düğmeler belirir.

243
Bu düğmelerin görevleri şöyledir:

Bu düğme iptal düğmesidir ve bilgi girişi sırasında bu düğmeyi


tıklarsanız o ana kadar girmiş olduğunuz bilgiler silinir.

Bu düğme
de onay düğmesidir ve bilgi girişi sırasında bu düğme­
yi tıklarsanız
hücreye bilgi girişini tamamlamış olursunuz. Bu düğmeyi
tıklamak yerine ENTER tuşuna veya ok tuşlarına da basabilirsiniz. Bir
hücreye bilgi girişini ENTER tuşuyla tamamlarsanız hem o hücreye bil-
gi girişi tamamlanır hem de o hücrenin bir altındaki hücrenin aktif ol-
masını sağlar. Bir hücreye bilgi girişini ok tuşlarına basarak tamamlar-
sanız hem o hücreye bilgi girişi tamamlanır hem de bastığınız ok tuşu­
nun yönüne göre o hücrenin komşularından birisi aktif olur.

Bu düğme de işlev sihirbazı (fonksiyon sihirbazı) düğmesidir


ve bu düğmeyi tıklarsanız formüllerde kullanılabilecek fonksiyon isim-
lerini içeren bir diyalog kutusu görüntülenir.

İşlem basamakları :

l - B2 hücresini aktif hale getirin ve Excel yazıp düğmesini


tıklayın.
Yazı, hücreye sola dayalı olarak yerleşmiştir.

2 - B4 hücresini aktif hale getirip 75 yazın ve düğmesini tık-


layın.

244
Rakam, hücreye sağa dayalı olarak yerleşmiştir.

3 - Bununla birlikte yazı veya rakamın hücredeki yerleşimini değiş­


tirebiliriz. Bunun için Biçim araç çubuğunda yer alan şu düğmeler
kullanılır:

Bu1 düğme hücredeki bilgiyi sola yaslar.

Bu düğme hücredeki bilgiyi ortalar.

Bu düğme hücredeki bilgiyi sağa yaslar.

Bu düğme bir bilgiyi birden fazla hücrede ortalar.

B2 hücresini aktif hale getirin ve düğmesini tıklayın. B2 hüc-


resindeki bilgi ortalanacaktır.

4 - D2 hücresini aktif hale getirin ve Tuzla Teknik Lisesi yazıp EN-


TER tuşuna basın.
5 - Mausu kullanarak Sürükle ve Bırak yöntemiyle D2:F2 aralığını
seçili hale getirin (karartın).

6- düğmesini tıklayın. Tuzla Teknik Lisesi yazısı D, Eve F ko-


lonları arasında ortalanmıştır.

UYGULAMA 2 : Hücrelerdeki bilgilerin hizalanması


Bir hücreye yazılan bilgi alfabetikse (yani harflerden oluşuyorsa)
varsayım olarak hücreye sola dayalı olarak yazılır. Sayısal bilgiler ise
varsayım olarak sağa dayalı olarak yazılır. Ancak siz bu durumu değiş­
tirebilir, bilginin hücredeki duruşunu yeniden tanımlayabilirsiniz. Ayrı­
ca bilgiyi hücrede düşey doğrultuda da yazabilirsiniz. Daha önceki uy-
gulamada Biçim araç çubuğundaki simgeler kullanılarak hücredeki bil-
ginin hizalanması yapılmıştı. Şimdi ise Biçim menüsündeki Hücreler
komutu çalıştırıldığında ekrana gelen Hücreleri Biçimle adlı diyalog
kutusu kullanılarak hücrelerdeki bilgilerin duruşları değiştirilecektir.

İşlem basamakları :

1 - B2 hücresini aktif duruma getirin. Bu hücreye Pazartesi yazın.

246
2 - Biçim menüsündeki Hücreler komutunu çalıştırın.

3 - Ekrana Hücreleri Biçimle adlı bir diyalog kutusu gelecektir.


4 - Hücreleri Biçimle diyalog kutusunun Hizalama sayfasındaki
Yönelim başlıklı bölümünde hücreye yazdığınız bilginin duruş model-
leri görülüyor. Bunlardan düşey doğrultuda olanların en soldakini tık­
layıp seçili hale getirin. Daha sonra da Tamam düğmesini tıklayıp işle-

p
a
z
a

mi sonlandırın.
Hücrenin düşey doğrultuda büyüdüğünü ve yazının da düşey doğ­
rultuda yazıldığını gözleyeceksiniz.

Hücreleri Biçimle diyalog kutusunda Hizalama sayfasındaki Yö-


nelim başlıklı bölümde bulunan Metin yazılı kısımlar, o seçeneklerin
çalıştırılması durumunda yazıların hücrede nasıl duracağını gösteriyor.

247
UYGULAMA 3 : Bir dizi sayının toplanması

Bu uygulamada bitişik hücrelerde bir dizi halinde bulunan sayıların


toplamı hesaplanacaktır.

İşlem basamakları :

1 - Al hücresini tıklayarakaktif hale getirin. Bu hücreye "Bir dizi


sayının toplanması" yazdıktan sonra ENTER tuşuna basın. B3 hücresini
tıklayarak aktif hale getirin. B3 hücresine 2 sayısını yazın. Daha sonra
B4 hücresini tıklatın. Bu hücreye de 4 sayısını yazın. Bundan sonra B5
hücresine 6, B6 hücresine 8 ve B7 hücresine de 10 yazın. Şimdi bu sa-
yıları toplayacağız.

2 - Bir dizideki sayılar toplanırken TOPLA fonksiyonu kullanılır. Bu-


nun için önce sonucun oluşacağı hücreye gidilir. = işaretinden sonra
TOPLA yazılır. Parantez içinde de dizinin başlangıç hücresi ve bitiş
hücresi yazılmalıdır. Bu uygulamada B3, B4, BS, B6, B7 hücrelerindeki
sayıların toplamı alınıp sonucun B8 hücresine yazılması istenmektedir.
Bunun için önce BS hücresine gidin ve ==TOPLA(B3:B7) yazıp ENTER
tuşuna basın.

248
Sonuç B8 hücresinde görüntülenecektir. Formül çubuğunda ise bu
hücreye yazılan formül görüntülenmektedir.

UYGULAMA 4 - Farklı hücrelerdeld sayılarla


işlemler yapılması

Bu uygulamada değişik hücrelerde karışık olarak duran sayılarla il-


gili aritmetiksel işlem yapılacaktır.

İşlem basamakları :

1 - Çalışma sayfasında B3 hücresine 16, C5 hücresine 4 ve D6 hüc-


resine 2 yazın.

2 - B3 hücresindeki sayıyla C5 hücresindeki sayıyı toplayıp bu so-


nucu D6 hücresindeki sayıya bölmek istiyoruz. Sonuç da ES hücresin-
de görüntülenecektir.. Bunun için önce ES hücresini tıklayarak aktif
hale getirin. Bu hücreye =(B3+C5)/D6 yazıp ENTER tuşuna basın. So--
nuç 10 olarak bulunur.

249
Cebir derslerinden bildiğimiz işlem öncelikleri EXCEL'de de geçerli-
dir. Bu işlemde parantez kullanılmasaydı önce C5/D6 işlemi yapılacak,
bulunan sayı B3 hücresindeki sayıyla toplanacaktı. Parantez koymakla
işlem önceliğini değiştirmiş oluyoruz.

Dikkat edilirse tüm formüller = ile başlamakta ve formülün yazımı


bitince ya ENTER tuşuna basılmakta ya da düğmesi tıklanmak-
tadır.

Uygulama 5 - Çalışma sayfasında dört işlem


Bu uygulamada çalışma sayfasındaki iki sayının dört işlemi yapıla­
caktır.

İşlem basamakları :

1- Şekilde gördüğünüz çalışma sayfasını oluşturun.

2 - C6 hücresine =C3+C4 yazın ve ENTER tuşuna basın. Toplama


sonucu C6 hücresinde oluşacaktır. C7 hücresine =C3-C4, CS hücresine
=C3*C4 ve C9 hücresine de =C3/C4 yazın. Her hücreye formülü yaz-

250
dıktan sonra ENTER tuşuna basmayı unutmayın.

İki sayının farkı C7 hücresinde, çarpımı es hücresinde, bölümü ise


C9 hücresinde görüntülenecektir.

Uygulama 6 - Formüllerin kopyalanması


EXCEL programının getirdiği en önemli kolaylıklardan birisi hücre-
lerdeki verilerin yanısıra formüllerin de kopyalanabilmesidir. EXCEL
programı yazdığınız formülün mantığını bulur ve kopyaladığınız yere
formülün mantığını kopyalar. Bu demektir ki formülü yeni yerine uy-
gun değişiklikleri yaparak kopyalar.

İşlem basamakları :

1 - İşlem tablosuna şekilde gördüğünüz bilgileri yazın.

2 - 1. Gruptaki sayıların toplamının B7 hücresinde göıüntülenmesini


istiyoruz. B7 hücresine gidin ve =TOPLA(.B3:B6) formülünü yazın. So-
nuç 10 olarak görüntülenecektir. Bu formülün mantığı şudur : Formü-
lün bulunduğu yerin üzerindeki dört hücrede bulunan sayılar toplan-

251
maktadır. Formülü biz yazıyoruz, EXCEL hem sonucu buluyor hem de
formülün mantığını keşfediyor.

2 - Sonuç görüntülendi. Şimdi de B7 hücresindeki formülü C7 ve


D7 hücrelerine kopyalayacağız.

3 - Formülü kopyalamak için maus okunu aktif hücre çerçevesinin


sağ alt köşesine götürün. Maus oku + şeklini alacaktır. Tam bu anda
sol maus tuşuna basın ve basılı tutarak mausu sağa doğru (C7 ve D7
hücrelerine) sürükleyin. B7 hücresindeki formül bu hücrelere de kop-
yalanacaktır. C7 hücresinde 2.Grup başlıklı sayıların toplamı, D7 hüc-
resinde de 3.Grup başlıklı sayıların toplamı görüntülenir.

İşlemden sonra C7 hücresini seçili hale getirdim. Formül çubuğundaki


görüntüye bakın. Dikkat ederseniz formül bulunduğu yerin üstünde bulu-
nan döıt sayıyı toplayacak şekilde kendini yeni hücreye adapte etmiştir.
Orjinal yerinde (yani B7 hücresinde) formül =TOPLA(B3:B6) şeklindeydi.
Aynı formül bir sağdaki hücrede =TOPLA(C3:C6) şeklini almıştır. Şimdi de
07 hücresini tıklayarak seçili hale getirin. Formül çubuğuna bakarsanız
buradaki formülün de =TOPLA(D3:D6) halini aldığını göreceksiniz.

Bu anlattıklanmızdan şu anlam çıkıyor. Başta da söylemiştik, EXCEL


herhangi bir hücreye yazılan formülün mantığını bulur ve kopyalama
sırasında bu mantığı kullanarak formülü yeni yerine adapte eder.

NOT : Formüllerin kopyalanmasında diğer kopyalama tekniklerini


de kullanabilirsiniz.

Uygulama 7 ~ Bir firmada çalışan. satış demanlaırının 4 aylık


satış perfoı·mansla.rm.ın hesaplarunas1

Bu uygulamada bir firmada çalışan üç satış elemanının Ocak, Şubat,


Mart ve Nisan aylarında gerçekleştirdikleri satış rakamlarına göre 4 ay-
lık performansları hesaplanacaktır. Aynca firmanın bu aylardaki satış
miktarlarıyla 4 aylık satış rakamları da bulunacaktır. Anlaşılmada kolay-
lık olması bakımından küçük rakamlar kullanılmıştır.

İşlem basamakları :

1- Şekilde görülen bilgileri çalışma sayfasına yazın.

2 - Ocak ayının satış toplamım bulmak için B7 hücresine =TOPLA


CB3:B5) yazın. Böylece üç satış görevlisinin ocak ayındaki toplam satış­
lan bulunur.

253
3 - Şimdi de B7 hücresindeki formülü C7, D7 ve E7 hücrelerine
kopyalayıp Şubat, Mart ve Nisan aylarındaki satış toplamlarını bulaca-
ğız.

Daha önce öğrenmiş olduğumuz Sürükle ve Bırak yöntemiyle B7


hücresindeki formülü C7, D7 ve E7 hücrelerine kopyalayın. C7 hücre-
sinde Şubat, D7 hücresinde Mart ve E7 hücresinde de Nisan aylarının
satış toplamları görüntülenecektir.

4- Şimdi
de her satış görevlisinin dört aylık performansını hesapla-
yalım.Ali adlı satış görevlisinin dört aylık satış performansını hesapla-
mak için G3 hücresini aktif hale getirin ve =TOPLA(B3:E3) formülünü
yazın.

5 - G3 hücresindeki formülü Sürükle ve Bırak yöntemiyle G4 ve


GS hücrelerine kopyalayın.

6 - Firmanın genel satış toplamını iki şekilde bulabiliriz : Dört ayın


satış toplamlarını toplayarak veya üç elemanın satış toplamlarını topla-
yarak.

254
B9 hücresini aktif hale getirin. Dört aylık satış toplamı formülü olan
=TOPLA(B7:E7) yazın ve ENTER tuşuna basın. (Satış elemanlarının
toplam satışlarından hareket etmek istiyorsanız B9 hücresine =TOP-
LA(G3:G5) yazmanız gerekir.) Her iki formül de aynı sonuca ulaşacak­
tır.

Uygulama 8- Sınav notlarından ortalamaların


bulunması

Bu uygulamada bir sınıftaki öğrencilerin Bilgisayar dersinde aldıkla­


rı üç yazılı ve bir sözlü notundan o dersin ortalama notu hesaplanmak-
tadır.

İşlem basamakları :

1 - Çalışma sayfasına şekildeki bilgileri (başlık, isim ve notları) girin.


A kolonunun genişliğini azaltın. Bunun için maus okunu A ve B kolon
başlıklarının arasındaki çizgiye götürüp işaret tam iki yönlü yatay oka
dönüşünce sol maus tuşunu basılı tutarak mausu biraz sola sürükleme-
niz gerekir.

255
2 - H3 hücresini tıklayıp aktif hale getirin. D3, E3, F3 ve G3 hücre-
lerindeki notlar toplanıp dörde bölünecektir. Böylece Buırak Can adlı
öğrencinin ortalaması bulunacaktır. H3 hücresine =(D3+E3+F3+G3)/4
yazıp ENTER tuşuna basın. Ortalama görüntülenecektir.

3- H3 hücresindeki formülü Sürükle ve Bırak yöntemiyle H4, HS,


H6 ve H7 hücrelerine kopyalayın.

Formül kopyalanmca diğer öğrencilerin ortalamaları da hesaplanıp


görüntülenecektir.

Uygulama 9 - Formüllerin kopyalanmasında hücre


sabitleme
Daha önceki uygulamalarda EXCEL'in çalışma tablosuna yazılan for-
müllerin mantığım keşfedip kopyalama sırasında bu mantığa göre for-
mülü yeni konuma göre adapte ettiğini belirtmiştik. Kimi durumlarda
formül mantığının aynen kopyalanması sorunlara yol açabilir. Böyle

256
durumlarda formülde yer alan hücre adreslerinden bir veya birkaçının
sabitlenmesi gerekir. Bu uygulamada hücre sabitleme üzerinde durula-
caktır.

Problem şöyle : Bir fotoğrafçı dükkanı işletiyoruz ve çeşitli faaliyet-


lerde kullanılmak üzere video kamera kiralıyoruz. Kameranın saatlik
kirası 1000 Lira. Böylece herhangi bir kişi kamerayı kaç saat kiralamış­
sa ona göre hesap yapılıyor. Saatlik kira miktarını ayrı bir hücrede be-
lirtiyoruz ki fiyat değişiklikleri kolay olsun.

İşlem basamakları :

1- Çalışma sayfasına şekilde görülen bilgileri yazın.

2 - Hakan Tan, nişan faaliyeti için kamerayı 3 saat kiralamış. Kira


bedeli de GS hücresinde yazıyor. O halde Hakan Tan'ın ödeyeceği üc-
reti bulmak için ES hücresine =DS*GS yazıyoruz. Böylece Hakan
Tan'ın ödeyeceği ücret bulunmuş olur.

Bu formülün mantığı şöyledir : Formülün bulunduğu hücrenin so-


lundaki sayıyla iki sağındaki sayı çarpılmaktadır.

3 - Formülü bu şekliyle E6, E7 ve ES hücrelerine kopyalayıp sonucu


gözleyelim.

257
Formülü kopyaladık ancak sonuçlar doğru çıkmadı. Çünkü formü-
lün mantığına göre, formülün bulunduğu hücrenin solundaki hücrede-
ki sayıyla iki sağındaki sayı çarpılıyor. Yani örneğin formül E6 hücresi-
ne kopyalandığ111da =D6*G6 şeklini alıyor. D6 doğru da G6 yerine GS
olması gerekir. Çünkü saatlik kira bedeli GS hücresinde yazılı. Yani
formülü nereye kopyalarsak kopyalayalım GS hücresinin değişmemesi
lazım. İşte böyle durumlarda hücre sabitleme işlemi yapılıyor. Şimdi
GS hücresini sabitleyeceğiz.

4 - Tekrar ES hücresini (yani formülü yazdığınız hücreyi) tıklayarak


aktif hale getirin. ES hücresindeki formül, formül çubuğunda belire-
cektir. Formüldeki GS hücresini sabitlemek istiyoruz. Önce mausu kul-
lanarak G harfiyle 5 sayısının arasını tıklayın. Ekleme noktası (kürsör)
G ile S'in arasında olacaktır. Şimdi de F4 fonksiyon tuşuna basın. For-
mül $G$5 şeklini alacaktır. ENTER tuşuna basın. Formüldeki GS hücre-
si sabitlenmiş durumdadır. Bundan sonra formül nereye kopyalanırsa
kopyalansm GS hücresi aynen yerini alacaktır.

5 - Sürükle ve Bırak yöntemiyle ES hücresindeki formülü E6, E7 ve


ES hücrelerine kopyalayın.

258
Formül başarıyla kopyalandı. E6 hücresini tıklayıp formül çubuğuna
bir göz atarsanız formüldeki hücrelerden DS'in D6 olarak değiştiğini
buna karşılık sabitlemiş olduğumuz GS hücresinin değişmediğini göre-
ceksiniz.

UYGUIAMA 10 - Kopyalama

Kopyalama, EXCEL'de en çok yapacağınız işlemlerdendir. Bu uygu-


lamada kopyalama işlemine örnek verilecektir.

İşlem basamakları :

1 - Aşağıda görülen çalışma sayfasını oluşturun.

2 - Şimdi de SÜRÜKLE VE BIRAK yöntemiyle sayıların olduğu hüc-


releri seçili hale getirin. Bunun için önce maus işareti Al hücresine gö-
türülür. Daha sonra SOL MAUS TUŞU basılı tutularak maus sağ aşağı
çapraz biçimde sürüklenir. Seçilmek istenen hücreler siyaha boyanınca
sol maus tuşu bırakılır. Seçili hale getirme işlemi böylece tamamlanır.

259
Seçili hale getirilen bölgede sol üstteki hücrenin renginin değişme­
miş olduğunu gözleyin. Burası başlangıç hücresidir ve bu nedenle ren-
gi değişmemektedir. Şimdi seçili durumdaki bölgeyi çalışma sayfasının
başka bir bölgesine kopyalayacağız.

3 - Önce araç çubuğundaki simgesini bir kez tıklayın. (Ve-


ya Düzen menüsündeki Kopyala komutunu çalıştırın.)

4 - Kopyalamanın yapılacağı hücreyi (D4 hücresini) tıklayarak seçili


hale getirin. Kopyalamayı tamamlamak için · · tuşuna basın. (Veya
Düzen menüsündeki Yapıştır komutunu çalıştırın.)

Kopyalama gerçekleşmiştir. Kopyalanan hücreleri seçili durumdan


çıkarmak için boştaki bir hücreyi (Örneğin B6) tıklayın. Bir de Al:C2
bölgesi sınırlarında bir işaret (sınırlarda yanıp sönme) vardır. Burası
kopyalanan bölgeyi gösteriyor. Bundan kurtulmak için de ESC tuşuna
basın.

UYGULAMA 11 - Hücrelerdeki bilgilerin silinmesi

Bu uygulamada çalışma sayfasının bir bölgesi silinecektir.

İşlem basamakları :

1 -Çalışma sayfasına aşağıdaki bilgileri girin.

260
2 - Çalışma sayfasındaki 222 yazılı hücrelerin tümünü sileceğiz. Ön-
ce SÜRÜKLE VE BIRAK yöntemiyle işaretlemeniz gerek. Cl hücresine
gidin. Sol maus tuşunu basılı tutarak mausu biraz aşağı ve biraz da sa-
ğa doğru sürükleyin. 222 sayılarıyla dolu hücrelerin rengi değiştiğinde
sol maus tuşunu bırakın. 222 yazılı hücreler seçili hale gelmiştir.

3 - Klavyedeki Delete tuşuna basın. Seçili bölgenin silindiğini göre-


ceksiniz.

4 - Bir tek hücredeki bilgiyi silmek istiyorsanız önce o hücreyi aktif


hale getirip daha sonra Delete tuşuna basmanız yeterlidir.

Uygulama 12 - Kesfrli sayıların formatlı


görüntülenmesi
Kesirli sayıların
görüntülenmesinde virgülden sonra kaç basamağın
görüntüleneceği sorunu çoğu kez önem taşır. Bu uygulamada virgül-
den sonra görüntülenecek basamak sayısı tanımlanmaktadır.
İşlem basamakları:

1- Şekilde görülen çalışma sayfasını oluşturun.

2 - Al-A4 bölgesini seçili hale getirin.

261
12,12345!
43.!.Ş5:
: 34,876 .
....................... T. . .T.98642;.........
.·,·····:··,,,,,.,.,,.. ·,-, .......... -..-.-.-.·.-.·,,•,-,.

3 - Biçim menüsündeki Hücreler seçeneğini çalıştırın.

4 - Ekrana gelen diyalog kutusundaki Kategori listesinde bulunan


Sayı seçeneğiniseçili hale getirin.

'''·«'Para Birimi
~m~ Finansal
im~ Tarih
lii!-~~~d~rıOranı

il~~~'
5- Ondalık Yerleri liste kutusundaki yukarı oku bir kez tıklayarak
sayıyı. 3 yapın.

6 - Diyalog kutusundakı Tamam düğmesini tıklayın veya ENTER


tuşuna basın.

...... 3.,1.4?:... . ...... L.J2!12:34f2.·: ..


123,234: ; 43,765'.

·. .·~---~----~··:~-~~}. ·~- - ·:·•·: ·:·:·.-:-~-:.· · ·- .ı. ·. . 1':,9~~~-~{.····


.
262
Al - A4 aralığındaki sayıların virgülden sonra 3 basamaklı olarak
görüntülendiğine dikkat edin. Ayrıca yuvarlama işlemi de yapılmıştır.

7 - Şimdi de siz Cl - C4 aralığındaki sayılan virgülden sonra iki


basamaklı olarak görüntüleyin.

UYGULAMA 13 - Hücre genişliğini değiştirme (1)

Excel çalışma sayfasındaki hücrelere normal olarak en fazla 8 ka-


rakter genişliğinde bilgiler yazabilirsiniz. Örneğin 10 karakter genişli­
ğinde bjr sayı yazarsanız hücrede sayının üstel gösterimi yer alır. Bu
ise sizin hoşunuza gitmeyebilir. Sayının normal görüntüsünü elde et-
mek için o hücrenin bulunduğu kolonun genişliğini değiştirmeniz ge-
rekir. Sadece bir tek hücrenin genişliğini değiştirmek mümkün değildir.
O hücrenin bulunduğu kolonun (sütunun) genişliğini değiştirmek ge-
rekir.

İşlem basamakları :

1 - B2 hücresine gidin ve 3333333333 sayısını (yanyana 10 tane 3)


yazın. Hücrede 3,33E+09 sayısının oluştuğunu göreceksiniz. Oysa siz
sayının normal görüntüsünü istiyorsunuz.

2 - Her kolonun bir kolon başlığı vardır ve bunlar da B, C,


D ... diye gider. Maus işaretini B ve C kolon başlıkları arasına götürün.
Maus işaretinin yatay iki yönlü ok şekline dönüştüğünü göreceksiniz.
Tam bu durumda sol maus tuşuna basm ve tuşu basılı tutarak mausu
biraz sağa doğru sürükleyip bırakın. B kolonunun genişlediğini ve sa-
ymm görüntüsünün normalleştiğini göreceksiniz.

263
3 - Sürükle ve Bırak yöntemi yerine daha pratik bir yöntem daha
var. Maus okunu B ve C kolon başlıklarının tam arasındaki çizginin
üzerine götürüp yatay oku gördüğünüz anda sol maus tuşunu çift tık­
larsanız o kolon sayının gerektirdiği en uygun genişliğe ulaşır.

4 - Kolon genişliklerini
Biçim menüsünün altında bulunan Sütün
komutunu çalıştırarak da değiştirebilirsiniz. Sütun komutu çalıştırıldı­
ğında ekrana gelen menü penceresinden Genişlik seçeneğini çalıştırır­
sanız kolon genişliklerini değiştirebileceğiniz bir metin kutusu görün-
tülenir.

En Uygun Genişlik seçeneğini çalıştırırsanız, kolon genişliği o ko-


londaki hücrelerde bulunan en uzun bilgiyi tam olarak görüntüleyecek
boyuta ulaşır.

UYGULAMA 14 - Hücre genişliğini değiştirme (2)


Bu uygulamada da hücre genişliği ile ilgili işlemler yapılacak ve
hücre genişletmenin farklı bir gereği üzerinde durulacaktır.

İşlem basamakları :

1 - B2 hücresine gidin ve Çekoslavakya yazıp ENTER tuşuna ba-


sın. Yazının C2 kolonuna da taştığını göreceksiniz.

2 - Şimdi de C3 hücresini aktif yapın ve bu hücreye Fransa yazıp


ENTER tuşuna basın.

264
B2 hücresindeki yazının C2 hücresine taşan bölümünün bastırıldığı­
nı ve C2 hücresinde sadece Fransa yazısının görüntülendiğini görecek-
siniz. B2 hücresindeki yazının tümünü görebilmeniz için B kolonunu
genişletmeniz gerekir.

3 - Maus okunu kolon başlıklarının bulunduğu bölümde A ve B


harflerinin arasındaki çizginin tam ortasına götürün. Maus oku iki yön-
lü yatay ok biçimini alınca sol maus tuşunu çift tıklayın. B kolonu Çe-
koslavakya yazısının tam olarak görüntüleneceği genişliğe gelecektir.

Uygulama 15 - Bilgilerin sıı·alanması

Bir çalışma sayfasında oluşturulmuş


bulunan veri tabanındaki kayıt­
ların sıralanması en çok kullanılan işlemlerdendir.
Bu uygulamada bir
veri tabanındaki kayıtlar sıralanmaktadır. Örnek veri tabanı olarak bir
sınıftaki öğrencilerin not ortalamaları girilmekte ve en yüksek not en
üstte olacak şekilde sıralama yapılmaktadır.

İşlem basamakları :

1- Çalışma sayfasına şekilde görülen bilgileri girin.

265
Böyle başlıkfar ve altında bilgiler içeren yapılar veri tabanı olarak
adlandmhr. Başlıkların altındaki her bir sıra bir kayıt olarak adlandırılır.
örneğin "Hakan Can 57" birinci kayıttır. Bu veri tabanında toplam 6
kayıt bulunmaktadır.

2 - Başlıklar dahil tüm veri tabanını seçili hale getirin. Bunun


önce B2 hücresine gidin. Sol maus tuşunu basılı tutarak mausu çapraz
biçimde sağ-aşağı doğru sürükleyin. D8 hücresi dahil veri tabanının
rengi değişince sol maus tuşunu bırakın.

3 - Şimdi de menü çubuğundaki Veri başlığım tıklayın. Açılan pen-


ceredeki Sırala komutunu tıklayın. Ekrana Sırala adlı diyalog kutusu
gelecektir.

266
4 - Bu diyalog kutusunda Sıralama başlığı altında bir liste kutusu
bulunmaktadır. Bu liste kutusunda başlıkların isimleri yer alır. Liste ku-
tusunu açmak için ADI kelimesinin sağındaki oku tıklayın. Notlara gö-
re sıralama yapacağınız için liste kutusundaki NOTU yazısını tıklayın.
Listedeki bilgileri notlara göre yukardan aşağı sıralayacağız. Yani en
yüksek not alan kişinin adı, soyadı ve notu listenin en üstünde olacak.
Bu sıralama, azalan sıralama olarak adlandırılır. Bunun için diyalog
kutusunda Azalan kelimesinin hemen solundaki daireyi tıklayıp içinin
dolmasını sağlayın. Son olarak da Tamam düğmesini tıklayın.

Sıralama işlemi tamamlanmıştır.

5- Sıralama işlemiyle ilgili iki tane de simge bulunmaktadır. Stan-


dart araç çubuğunda bulunan simgesi veri tabanındaki bilgileri
küçükten büyüğe doğru sıralar. Bunun için veri tabanındaki bilgi-
leri seçili hale getirip bu tuşu tıklamak yeterlidir. Ancak bu simge veri-
leri ilk kolondaki bilgilere göre sıralar. Yani bizim örneğimizde verileri
adlara göre (ADI başlığı altındaki bilgilere göre) sıralayacaktır. Sırala­
madan sonra alfabenin ilk harfleriyle başlayan adlar listenin üst sırala­
rında, diğerleri de daha alt sıralarda yer alırlar.

Standart araç çubuğunda yer alan simgesi ise seçili durumdaki


verileri büyükten küçüğe doğru sıralar. Bir önceki paragrafta anlatılan
diğer hususların tümü bu simge için de geçerlidir.

Uygulama 16 - Kayıt arama


Bilgisayarların sağladığıen önemli kolaylıkların başında bir veri ta-
banında istenilen kayıtlara çok çabuk ulaşmak gelir. Bu uygulamada
arama konusu işlenmektedir.

İşlem basamakları :

267
1 - Önce veri tabanını oluşturun. Veri tabanında AD, SOYAD ve ŞE­
HİR başlıkları,bu başlıkların altında da kayıtlar yer alsın. 8 kişiye ait
kayıt girin.

2 - Başlıklar
dahil veri tabanının tümünü seçili hale getirin. Menü
çubuğundaki Veri seçeneğini tıklayın. Açılan menü perceresinde Süz
seçeneğini tıklayın. Yeni bir menü penceresi açılacaktır. Bu pencerede-
ki Otomatik Süz seçeneğini tıklayın.

3 - Veri tabanında her başlığın sağında, üzerinde aşağı doğru bir ok


bulunan birer düğme belirecektir.

268
4 - Bu düğmelerin hangisi tıklanırsa o başlığın altındaki bilgileri içe-
ren liste kutulan görüntülenir. ŞEHİR başlığının sağındaki düğmeyi tık­
layın.

Açılan liste kutusunda Ankara yazısını tıklarsanız veri tabanında


ŞEHİR başlığı altında Ankara yazılı olan kayıtlar görüntülenir. Yani
Ankaralıların listesini elde etmiş olursunuz.

5 - Tüm listeyi görüntülemek için ŞEHİR kelimesinin sağındaki düğ­


meyi tekrar tıklayın. Açılan diyalog kutusundaki Tümü kelimesini tıkla­
yın. Veri tabanının tümü tekrar görüntülenir.

269
6- Adı Meltem olan öğrenciye ilişkin kaydı arayalım. Önce AD
başlığının sağındaki düğmeyi tıklayın. Açılan
listedeki Meltem yazısını
tıklayın. Meltem adlı kişiye ait kayıt görüntülenecektir.

Arama işleminden sonra başlıklann yanlarındaki düğmeleri silmek


isterseniz, Menü çubuğundaki Veri başlığını tıkladıktan sonra ekrana
gelen pencerede Süz komutunu çalıştırıp bundan sonra ekrana gelen
penceredeki Otomatik Süz komutunu çalıştırmalısınız.

Uygulama 17 ~ Sayısal bilgilere göre kayıt arama

Bu uygulamada sayısal bilgilere dayanılarak arama işlemi gerçekleş­


tirilecektir. Veri tabanında bir grup öğrencinin notları yer alacak, notla-
ra göre arama yapılacaktır. Örneğin notu 50 ve daha yukarı olanlar lis-
telenecektir.

İşlem basamaldan :

1 - Önce veri tabanını oluşturun. Veri tabanında ADI, SOYADI ve


NOTU başlıkları, bu başlıkların altında da kayıtlar yer alsın. 8 kişiye ait
kayıt girin.

2 - Veri tabanının tümünü (yani başlıklar dahil) seçili hale getirin.


Menü çubuğundaki Veri seçeneğini tıklayın. Açılan menü penceresin-
deki Süz seçeneğini tıklayın. Yeni bir menü penceresi açılacaktır. Bu

270
penceredeki Otomatik Süz seçeneğini tıklayın. Veri tabanında her
başlığın sağında
üzerinde aşağı doğru bir ok bulunan birer düğme be-
lirecektir.

3 - NOTIJ başlığının sağındaki düğmeyi tıklayın. Notları ve başka


bazı seçenekleri içeren bir liste kutusu görüntülenecektir. Bu liste ku-
tusundaki Özd komutunu tıklayın. Yeni bir diyalog kutusu açılacaktır.
Bu diyalog kutusunu kullanarak hangi notları almış öğrencilerin listesi-
ni istediğinizi ifade edebilirsiniz. Ayrıca birden fazla şartı VE ya da VE-
YA operatörleriyle birbirine ekleyebilirsiniz.

Diyalog kutusunu şekildeki gibi doldurun. İşlemcileri (>,<,>,>= işa­


retlerini) aşağı ok düğmelerini tıklayınca açılan liste kutularından elde
edebilirsiniz. Bu ölçütü yazınca notu 50 ve daha yukarı olan öğrenciler
listelenecektir.

271
Tüm listeyi görüntülemek için NOTU kelimesinin sağındaki düğme­
yi tekrar tıklayın. Açılan diyalog kutusundaki Tümü kelimesini tıkla­
yın. Veri tabanının tümü tekrar görüntülenir.

Uygulama 18 - Çalışma sayfasını kaydetme

Çalışma sayfasının daha sonra tekrar kullanılmaküzere kaydedilme-


si de en çok yapılan işlerdendir. Çalışmanızı kaydetmezseniz bilgisaya-
rınızı kapattığınızda yaptığınız bütün iş kaybolur. Eğer bir çalışmayı da-
ha sonra tekrar kullanmak, değişiklikler, düzeltmeler, eklemeler yap-
mak istiyorsanız mutlaka kaydedin. Bu uygulamada bir çalışma sayfası­
nın kaydedilmesi üzerinde duracağız.

İşlem basamakları:

1 - Önce kaydetme işleminde örnek olarak kullanılmak üzere bir


çalışma sayfası oluşturun.

2 - Şimdi bu çalışmayı kaydedeceğiz. Bunun için ilk önce Dosya


menüsünü tıklayın. Açılan menü penceresinde de Farklı Kaydet seçe-
neğini çalıştırın. Çalışmanıza bir ad vererek kaydetmenizi sağlayacak
bir diyalog kutusu gelecektir ekrana.

272
3 - Dosya adı yazısının sağındaki metin kutusunda varsayım olarak
Kitapl adı yazılı. Kürsörü Kitapl yazısının üzerine götürüp çift tıklarsa­
nız yazı seçili hale gelir. Şimdi dosyanıza yeni bir ad verebilirsiniz. Bu
yazı kutusuna Adres yazıp diyalog kutusundaki Kaydet düğmesini tık­
layın veya ENTER tuşuna basın. Yaptığınız çalışma Adres adlı dosyaya
kaydedilmiştir.

4 - Aynı dosyaya birkaç isim daha ekledikten sonra en son şekliyle


yeniden kaydetmek istiyorsanız araç çubuğundaki simgesini bir
kez tıklamanız yeterlidir. Bu defa dosyaya bir isim vermeniz ge-
rekmediğinden dosya hemen kaydedilecektir. Yani ekrana bir diyalog
kutusu gelmeyecektir.
5 - Dosya, diyalog kutusunda Kaydedilecek yer yazısının hemen
sağında belirtilen klasöre kaydedilir. Bu örnekte dosya Masaüstü'ne
kaydedilmiştir. Eğer dosyayı başka bir klasöre kaydetmek isterseniz
önce Kaydetme yeri adlı liste kutusu açılır. Bunun için liste kutusu-
nun sağındaki aşağı ok düğmesi tıklanır. Açılan liste kutusunda sürücü
ve klasör isimleri görüntülenir. Buradan herhangi bir sürücü ve klasörü
seçerseniz dosya o sürücü ve klasöre kaydedilecektir.
NOT : Dosyada değişiklikler (örneğin ekleme, çıkarma) yaptıktan
sonra farklı bir isimde kaydetmek isterseniz yine Dosya menüsündeki
Farklı Kaydet komutunu çalıştırmanız gerekir.

Uygulama 19 - Daha önce kaydedilmiş olan dosyayı.


açma
Daha önce kaydedilen bir dosya üzerinde çalışma yapmak (örneğin
içindeki bilgileri görmek, düzeltmek, değişiklik yapmak, yeni bilgi ek-
lemek) istiyorsak önce o dosyayı açmamız gerekir. Bu uygulamada da-
ha önce kaydetmiş olduğumuz bir dosyayı açacağız. (Bazen dosya aç-
ma işlemi dosyayı yükleme olarak da adlandırılır. Ancak Windows ta-
banlı programlarda dosya açma deyimi benimsenmiştir.)

273
İşlem basamakları :

1 - Dosya menüsünde Aç seçeneğini çalıştırın.

2 - Ekrana gelen diyalog kutusunda daha önce kaydetmiş olduğu­


nuz Excel dosyalarının adlarını göreceksiniz. Adres adlı dosyayı açmak
için Adres yazısını tıklayıp seçili hale getirdikten sonra diyalog kutu-
sundaki Aç düğmesini tıklayın. Adres adlı dosyanın açıldığını ve içeri-
ğinin ekranda görüntülendiğini göreceksiniz.

NOT : Açmak istediğiniz Excel dosyası aktif durumdaki klasörde


değil başka bir klasördeyse diyalog kutusundaki Baktlacak ye:r yazısı­
nın sağındaki liste kutusunda önce ilgili klasörü seçmeniz gerekir. Liste
kutusunun hemen sağındaki aşağı ok düğmesini tıklarsanız liste kutusu
açılır. Bu liste kutusunda bilgisayarınızdaki sürücüleri, bu süıücülerde­
ki, klasörleri görebilir ve tıklayarak istediğinizi seçili hale getirebilirsi-
niz.

Uygulama 20 - EGER fonksiyonu

EXCEL'de EGER fonksiyonunu kullanarak şart yapılan oluşturabilir­


siniz. Eğer fonksiyonunun yazımı (sintaksı) şöyledir:

= EGER(Koşul; 1.seçenek;2.seçenek)

Koşul olarak verilen önerme Doğru ise l .seçenek geçerli olur. Ko-
şul olarak verilen önerme Yanlış ise 2.seçenek geçerli olur.

Şimdi göreceğimiz
uygulamada öğrencilerin not ortalamaları hesap-
lanmaktadır.Bir öğrencinin ortalama notu 50 veya daha yüksekse So-
nuç hanesine Geçti yazılacaktır. Öğrencinin ortalaması 50'nin altınday­
sa Sonuç hanesine Kaldı yazılacaktır.

İşlem basamakları :

274
1- Çalışma sayfasını şekildeki gibi oluşturun.

G3 hücresine ortalamayı bulan =(C3+D3+E3+F3)/4 formülünü ya-


zın.Bu durumda G3 hücresinde Ali Can adlı öğrencinin ortalaması çı­
kacaktır.

2 - G3 hücresindeki formülü Sürükle ve Bırak yöntemiyle G8 hüc-


resine kadar kopyalayın. Diğer öğrencilerin ortalamaları da görüntüle-
necektir.

3 - H3 hücresine =EGER(G3>=50;"GEÇTİ";"KALDI") fonksiyo-


nunu yazın. H3 hücresinde GEÇ1İ yazısı belirecektir. Çünkü G3 hücre-
sindeki sayı 61,25'tir.

275
4 - Şimdi de H3 hücresindeki formülü Sürükle ve Bırak yöntemiyle
H8 hücresine kadar kopyalayın. Böylece Sonuç başlıklı kolonda diğer
öğrencilere ilişkin sonuçlar da görüntülenecektir.

orı313·nıa)sü·;;ücl
. . 6i 25 . . ., . . . . . ,.~·

..... 1?1.2ş:ggç:n.;. .
4füKALDI i
36.25li<ACDl1
:. ?9l 651 .. 6.1:25'·················,·
50 1 40)
"•"<;'"·"••"-"oW.".' ••• ,...... 46 ,25 l<A.LDI ·•
,._.,.,·,·-·,.w.W''·"·"'·"·"•W•W."."."o"+"·'·'•"•"•"•".'•'•'•'•"•"••'.'•"•"•'•'•"•"•"-'•'"~·W."oW.-•.·-·.·.-,·

Koşul olarak =>50 (yani 50'ye eşit veya büyük) önermesi verildiği
için referans hücredeki sayı 50'ye eşit veya 50' den büyükse fonksiyo-
nun bulunduğu hücreye GEÇTI yazılır. Referans hücrede (yani ortala-
manın bulunduğu hücrede) bulunan sayı 50'den küçükse fonksiyonun
bulunduğu hücrede KALDI yazısı oluşur.

Uygulama 21 - Birden fazla EGER fonksiyonu


kullanımı

EGER fonksiyonunu iç içe kullanabilirsiniz. Bildiğiniz gibi EGER


fonksiyonunun yazımı (sintaksı) şöyledir :

= EGER(Koşul; 1.seçenek;2.seçenek)

Koşul olarak verilen önerme Doğru ise l.seçenek geçerli olur. Ko-
şul olarak verilen önerme Yanlış ise 2.seçenek geçerli olur. EGER
fonksiyonunu iç içe kullanırken 2. Seçenek yerine yeni bir EGER fonk-
siyonu yazılır. Bu ikinci EGER fonksiyonunun da ayrı bir koşuluyla 1.
ve 2. Seçenekleri bulunur.

=EGER(Koşul;1.Seçenek;EGER(Koşul;1.Seçenek;2.Seçenek))

Şimdiki uygulamada da öğrencilerin not ortalamaları hesaplanmakta


sonra da bu ortalamalara göre başarı durumları A, B, C, D ve E harfle-
riyle gösterilmektedir. Harflerin karşılığı not aralıkları şöyledir :

A 85-100
B 70-84
c 55-69
D 45-54
E 0-44

276
İşlem basamakları :

1- Çalışma sayfasını şekildeki gibi oluşturun.

G3 hücresine ortalamayı bulan =(C3+D3+E3+F3)/4 formülünü ya-


zın.Bu durumda G3 hücresinde Ali Can adlı öğrencinin ortalaması çı­
kacaktır.

2 - G3 hücresindeki formülü Süriilde ve Bırak yöntemiyle GS hüc-


resine kadar kopyalayın. Diğer öğrencilerin ortalamaları da görüntüle-
necektir.

3 - H3 hücresine

=EGER(G3>=85;"A";EGER(G3>=70;"B";EGER(G3>=55;"C";EGER(
G3>=45;"D";"E"))))

yazıpENTER tuşuna basın. H3 hücresinde C harfi oluşacaktır. Çünkü


G3 hücresindeki not 55-69 aralığındadır.

277
4 - H3 hücresine yazdığınız fonksiyonu Sürükle ve Bırak yöntemiyle
H4-H8 aralığındaki hücrelere de kopyalayın.

Diğer öğrencilerin not ortalamalarına karşılık gelen harfler de gö-


rüntülenecektir.

ORTALAMA fonksiyonu bir dizi hücredeki sayıların ortalamalanm


hesaplar. Daha önceki uygulamalardaki kullanarak yaptığınız
ortalama hesaplarım ORTAlAlVIA fonksiyonunu kullanarak da yapabi-
lirsiniz. Bu uygulamada ORTALNvIA fonksiyonu kullanılacaktır.

yapacağımız not ortalamaları hesap-

İşlem basamakları :

1- Şekildeki çalışma sayfasını oluşturun.

278
2 - G2 hücresine =ORTALAMA(C2:F2) yazın. Bu durumda C2-F2
aralığındaki
hücrelerde bulunan sayıların ortalaması bulunacak ve so-
nuç G2 hücresine yazılacaktır.

3 - G2 hücresindeki fonksiyonu Sürükle ve Bttak yöntemiyle G3-


G6 hücre arahğma kopyalayın. Tüm öğrencilere ait ortalamalar görün-
tülenecektir.

Uygulama 23 - VE bağlacı

Bilindiği gibi EGER fonksiyonu kullanarak belirli bir koşula bağlı


değişik sonuçlar üretilebilir. EGER fonksiyonunda birden fazla
koşul kümülatif olarak birbirine bağlanmak istenirse bu koşullar birbi-
rine VE bağlacıyla bağlanır. Bu durumda öngörülen koşullann tümü-
nün gerçekleşmesi gerekmektedir. Örnek olarak bir öğrencinin mate-
matik ve fizik notlarmm her ikisinin de 90 veya daha yüksek '-'"H°'"''
durumunda bir burs kazanacağım varsayalım. Bu iki
birbirine VE bağlacıyla bağlanacaktır. Bu uygulamada bir grup öğrenci­
nin fizik ve matematik notları listelenecek ve her iki notu da 90 veya
daha yukarı olanlar burs kazanacak, diğerleri ise kazanamayacaktır.

İşlem basamakları ;

1- Şekilde görülen çalışma sayfasını oluşturun.

279
2 - E2 hücresine =EGER(VE(C2>=90;D2>=90);".KAZANDI";"KA-
ZANAMADI") yazıp ENTER tuşuna basın.

3 - E2 hücresine yazdığınız fonksiyonu Sürükle ve Bırak yönte-


miyle E3-E6 hücre aralığına kopyalayın.

.. . . . lŞQNPÇ . . . . . . . . ·.........
95,! -
.,.......,. ············aaii<AiANAMADl
.. ,
......•.......•....•,, ......·.........·..·...•...•.·.............· ..
. . . . . . .·. ·. ·. · 93li<AZ.A:i\iöı'·'·····
n
uat !Can
........... 7tfii<AZ.A:i\i.A.iV1Aüi
.
1~~~9],~~J:.- a. . . ,n.·.· .·.·.·, . '· · , ·.·- ·..··.····~········~-...,...,..,., ...,..... .. . . ,..971'1<..AZA~lôi···

Her iki notu da 90 veya daha yukarı olan öğrencilerin kazandığı, di-
ğerlerinin kazanamadığı bilgisi görüntülenecektir.

VE bağlacını kullanarak ikiden fazla (örneğin 3,4,5 .. ) koşulu da bağ­


layabilirsiniz. Bu koşullar VE kelimesinden sonra açılan parantez için-
de sıralanırlar ve birbirinden noktalı virgül (;) ile ayrılırlar.

Uygulama 24 - YADA bağlacı

EGER fonksiyonunda birden fazla koşul alternatif olarak birbirine


bağlanmak istenirse bu koşullar birbirine YADA bağlacıyla bağlanır. Bu
durumda öngörülen koşullardan herhangi birinin gerçekleşmesi yeter-
lidir. Örnek olarak bir öğrencinin matematik ve fizik notlarının her-

280
hangi birinin 90 veya daha yüksek olması durumunda bir burs kaza-
nacağını varsayalım. Bu durumda bu iki şart birbirine YADA bağlacıyla
bağlanacaktır. Bu uygulamada bir grup öğrencinin fizik ve matematik
notları listelenecek ve iki notundan herhangi biri 90 veya daha yukarı
olanlar burs kazanacak, diğerleri ise kazanamayacaktır.

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını oluşturun.

2 - E2 hücresine =EGER(YADA(C2>=90;D2>=90);"KAZAN-
DI";"KAZANAMADI") yazıp ENTER tuşuna basın.

3 - E2 hücresine yazdığınız fonksiyonu Sürükle ve Bırak yönte-


miyle E3-E6 hücre aralığına kopyalayın.

Notlarından herhangi biri 90 veya daha yukarı olan öğrencilerin ka-


zandığı, diğerlerinin kazanamadığı bilgisi görüntülenecektir.

281
YADA bağlacını kullanarak ikiden fazla (örneğin 3,4,5 .. ) koşulu da
bağlayabilirsiniz. Bu koşullar YADA kelimesinden sonra açılan paran-
tez içinde sıralanırlar ve birbirinden noktalı virgül (;) ile ayrılırlar.

Uygulama 25- Özet tablo düzenlemek

EXCEL programında özet tablo düzenleyerek çok kullanışlı bir ara-


ma sistemi oluşturabilirsiniz. Şimdi yapacağımız uygulamada 4 şehirde
(İstanbul, Ankara, İzmir ve Bursa) bulunan oto bayileri 3 çeşit (Doğan,
Kartal ve Şahin) otomobil satıyorlar. Her şehirde birkaç bayii var. Öyle
bir tablo düzenleyeceğiz ki herhangi bir şehirdeki bayilerimizin
performansları hemen göıiilebilecek.

İşlem basamakları :

1- Şekildeki çalışma sayfasını hazırlayın.

tümünü seçili son-


ra menü satmnda Veri seçeneğini Ekrana gelen penceredeki
Özet Tablo seçene.ğini tıklayın.

282
3 - Ekrana Özet Tablo Sihfrbazı adlı bir diyalog kutusu gelecektiL
Buradaki İleri düğmesini tıklayın.

283
4 - Ekrana Özet Tablo Sihirbazı diyalog kutusunun 2. adımı gele-
cektir.

Bu diyalog kutusunda veri tabanının sınırlarını girmeniz istenmekte-


dir. Başlangıçta veri tabanını seçili hale getirdiğiniz için bu diyalog ku-
tusundaki metin kutusunda veri tabanının sınırlan yazılı durumdadır.
İleri düğmesini tıklayın.

5 - Ekrana Özet Tablo Sihirbazı diyalog kutusunun 3. adımı gele-


cektir.

Bu diyalog kutusunu kullanarak özet tabloda merkez olarak kabul


edeceğiniz başlığı tesbit edeceksiniz. Yani tablodaki bilgileri hangi baş­
lığa göre tasnif edeceğinizi belirleyeceksiniz. Bilgileri Şehir merkezli
olarak düzenleyeceğiz. Bunun için Sürükle ve Bttak yöntemini kulla-
narak ŞEHİR yazılı düğmeyi SAYFA yazısının üzerine taşıyın. Yine Sü-
riikle ve Bırak yöntemiyle BAYİİ yazılı düğmeyi SATIR yazısının üze-
rine, MARKA yazılı düğmeyi SÜTUN yazısının üzerine, SATIŞ yazılı
düğmeyi de VERİ yazısının üzerine taşıyın.

284
Bu diyalog kutusundaki Son yazılı düğmeyi tıklayın.

6 - Ekrana Özet Tablo görüntüsü gelecektir. İlk başta verilerin tümü


görüntülenmektedir.

Bütün şehirlerdeki satışların tümü görülüyor. Şimdi de İstanbul ilin-


deki satışları görelim. Bunun için Bl kolonundaki (Tümü) yazısının sa-
ğındaki aşağı ok tuşunu tıklayın.

Şehir adlarını içeren bir liste kutusu görüntülendi. Buradaki İstanbul


yazısını tıklayın. İstanbul'daki bayilerin satışları görüntülenecektir.

285
Diğer illerdeki satış
raporunu görmek için de yine B2 hücresindeki
aşağı ok düğmesini tıkladıktan sonra açılan liste kutusunda ilgili şehir
adını tıklamak gerekir. Listenin tümünü görmek için aynı liste kutusun-
daki (Tümü) yazısını tıklamalısınız.

Uygulama 26- Tablonun biçimlendirilmesi


EXCEL programında ürettiğiniz tabloyu sınır çizgileri, başlıkları ko-
yulaştırma, renkler vb. eklemelerle daha güzel bir görünüşe kavuştura­
bilirsiniz. Şimdi yapacağımız uygulamada üç satış grubunun Ocak, Şu­
bat, Mart ve Nisan aylarındaki satışları bir tabloda gösterilmektedir. Her
ayın toplam satış rakamı da hesaplanmaktadır. Daha sonra başlıkları
koyulaştırma, başlıkların altına çizgiler koyma gibi yöntemlerle tablo-
nun görselliğini arttıracağız.

İşlem basamakları :

1- Şekildeki çalışma sayfasını hazırlayın.

2 - BS hücresine =TOPLA(B2:B4) formülünü yazın. Böylece üç gru-


bun OCAK ayındaki satışlarının toplamını hesaplamış oluyorsunuz.

OCAK 'SIJBAT .MART \NIS.AN j


ff föööı·····1100·' }?991 jj$Cıi••· .
. . . . . . .·. ~ŞŞ} 1000\ 1050)
1oso: Tiôi:Jr 125or
ff

.-.-.-.--.1.-.-.-......,

286
3 - Sürükle ve Bırak yöntemiyle B5 hücresindeki formülü C5-E5
aralığına kopyalayın.

Üç satış grubunun Şubat, Mart ve Nisan aylarındaki satış toplanılan


da görüntülenecektir.

4 - Şimdi de OCAK, ŞUBAT, MART ve NİSAN kelimelerini koyulaştı­


racağız. Önce Bl hücresini tıklayıp aktif duruma getirin. Sol maus tu-
şunu basılı tutarak mausu El hücresine kadar sürükleyin. Bl-El aralı­
ğındaki hücreler seçili hale gelecektir. Şimdi de Biçimlendirme araç çu-
buğundaki tuşunu tıklayın.

Başlıklar koyulaşmıştır. Başlıkları seçili durumdan çıkarın. Bunun


için seçili durumdaki hücrelerin dışında herhangi bir hücreyi tıklama­
nız yeterlidir.

5 - A2-A5 hücrelerini seçili hale getirin. Biçimlendirme araç çubu-


ğundaki tuşunu tıklayıp bu hücreleri de koyulaştırm.

6 - Menü satırındaki Araçlar başlığını tıklayın. Açılan menü pence-


resindeki Seçenekler komutunu tıklayıp çalıştırın. Ekrana yeni bir di-

287
yalog kutusu gelecektir. Bu diyalog kutusunda Pencere seçenekleri
başlığı altındaki Kılavuz Çizgileri yazısının hemen sağındaki kutunun
içini tıklayıp onay işaretini kaldırın.

Tamam düğmesini de tıklayıp diyalog kutusunu kapatın. Çalışma


sayfasındaki hücre sınırlarını gösteren Kılavuz çizgilerinin kayboldu-
ğunu göreceksiniz.

OCAK ŞUBAT MART NlSAN


1000 1100 1200 1150
900 985 1000 1050
1200 1050 1100 1250
3100 3135 3300 3450

Kuşkusuz, çalışma sayfasının hücre bölümlenmesi devam etmekte-


dir. Sadece hücreleri birbirinden ayıran ve görsel önemi olan kılavuz
çizgileri ortadan kalkmıştır. Böylece daha net bir ekran göıüntüsü sağ­
lanmıştır.

Kılavuz çizgilerini yeniden elde etmek için Seçenekler diyalog ku-


tusundaki Kılavuz Çizgileri kutusunu tıklayıp onay işaretini koymak
yeterlidir.

Uygulama 27 - Tabloları..n otomatik biçimlendirilmesi


EXCEL programında ürettiğiniz tabloları otomatik olarak da biçim-

288
lendirebilirsiniz. EXCEL size bir dizi şablon sunar; siz de bunlardan di-
lediğinizi seçebilirsiniz. Böylesi kimi zaman daha pratiktir.

İşlem basamakları :

1- Şekildeki çalışma sayfasını hazırlayın.

2 - B5 hücresine =TOPI.A(B2:B4) formülünü yazın. Böylece üç gru-


bun OCAK ayındaki satışlarının toplamını hesaplamış oluyorsunuz.

3 - Süıiikle ve Bırak yöntemiyle B5 hücresindeki formülü C5-E5


aralığına kopyalayın.

Üç grubunun Şubat, Mart ve Nisan aylarındaki satış toplamları


da görüntülenecektir.

4 - Tabloyu (Al-ES bölgesini) seçili hale getirin. Menü satırındaki


Biçilın başlığını tıklayın. Açılan
menü penceresindeki Otomatik """'"'-'-'-·U-
seçeneğini tıklayın.

289
5 - Ekrana Otomatik Biçim adlı bir diyalog gelecektir.

Bu diyalog kutusunun sol kısmında Tablo Biçimi başlığının altında


bir liste kutusu yer alır. Bu liste kutusunda şablonlarının
isimleri yer almaktadır. İsmi seçili dunundaki şablonun örnek görüntü-
sü de Örnek başlığı altında diyalog kutusunun ortasında görülür. Liste
kutusunda herhangi bir şablon ismini seçip Tamam düğmesini tıklarsa­
nız tablonuz o şablon biçiminde görüntülenir. Liste kutusunda
diğer şablon isimlerini görmek için liste kutusunun sağ kısmındaki
kaydırma çubuğunun altındaki aşağı ok düğmesini tıklayabilirsiniz.

6 - Liste kutusunda Finansal 2 yazısını tıklayın. Örnek başlığı


tında Finansal 2 adlı şablon biçiminin kullanıldığı bir tablo göıüntü­
lendi. Böylece sizin tablonun nasıl görüntüleneceği konusunda bir fikir
sahibi oluyorsunuz. Şimdi de diyalog kutusundaki Tamam düğmesini
tıklayıp işlemi sonlandırın.

290
Tablonuz yeni bir biçimde görüntülendi. Bu görünüş öncekine göre
daha profesyonel. Başlıkların altının çizilmiş olduğuna, tablonun
en altına kalın bir çizgi çizildiğine dikkat ediniz. rakamlar
daha anlamlı bir görüntü kazandırılmak üzere ayraç karakterleriyle ay-
rılmış, para birimi TI ibaresi eklenrn.iştir.

7 - Şimdi de daha başka bir şablonu deneyelim. Önce tabloyu seçili


hale getirin. Otomatik. Biçim adlı diyalog kutusunu getirene
kadar az önce anlatılan işlemleri tekrarlayın. Otomatik Biçim diyalog
kutusundaki liste kutusunda bulunan Renkli 2 satırım tıklayın. Daha
sonra da Ta~mam düğmesini tıklayın.

1JOO)JJTL 1.lEü,OOTL
985,COTL ro:o.oo
1.050,0JTL 1.2m.oo TL
3"100 ,00 TL 3.1 TL

Tablo renkli biçimde görüntülendi. Bu görüntüdeki renkler eğer


kullandığınız yazıcı
renkli değilse yazıcıya yansımaz. Renkli yazıcı kul-
lamyorsamz yazıcıdan alacağınız çıktı da ekrandaki gibi renkli olacak-
tır.

291
Uygulama 28 - Veri tabanında alt topla:mların
hesaplanması

Toplama işlemine konu olan sayıların bulunduğu bir veri tabanında


çeşitlikriterlere göre alt toplamlar da alabilirsiniz. Şimdi inceleyeceği­
miz problemde bayiler Doğan, Kartal ve Şahin olmak üzere üç marka
otomobil satıyorlar. Biz genel toplamı ve her markadan ne kadar satıl­
dığını yani alt toplamları bulacağız.

İşlem basamakları :

1 - Şekildeki çalışma sayfasını hazırlayın.

2 - Biz markalara göre alt toplamları alacağız. Onun için önce veri
tabamnm markalara göre gerekiyor. Veri tabanını seçili ha-
le Menü Veri başlığını menü pencere-
sindeki Sırala komutunu çalıştmn.

292
3 - Ekrana Sırala diyalog kutusu gelir.

Bu diyalog kutusu geldiğinde Srrafama adlı


kelimesi yer alr11aktadır, Çünkü veri tabanında en V~o~Co.kU
başlığı Bayii'dir ve EXCEL sizin bu alana göre sıralama yapacağınızı
varsaymaktadır. siz Marka alanına göre sıralama yapacaksm1z.
Bunun için önce Sı:ı-afama adlı bilgi kutusunun sağ
ok tuşunu tıklayın. liste kutusundaki Marka kelimesini
Son olarak da T:an.1.am düğmesini tıklayarak işlemi sonlandırın. Veri ta-
alanma göre sıralanmış

4 - Şimdi de alt toplanılan bulacağız. Önce veri tabanım seçili hale


getirin. Sonra da menü satırında Veri başhğmı tıklayın. Açılan menü
penceresindeki Alt Toplamlar seçeneğini tıklayın.

293
5 - Ekrana Alt Toplamlar adlı bir diyalog kutusu gelecektir.

Bu diyalog kutusundaki Aşağıdakinin Her Değişiminde adlı me-


tin kutusunda Marka yazısını seçin. Tamam düğmesini tıklayarak işle­
mi sonlandırın.

294
Görüldüğü gibi Doğan, Kartal ve Şahin marka otomobillerin satış
toplamları ve genel toplam alındı. Ekranın en sol tarafında da üzerinde
- işareti bulunan düğmeler görülüyor. Herhangi bir markanın ayrıntısını
gizlemek ve sadece toplamını görmek istiyorsanız toplamının
hizasındaki - işaretini tıklamanız gerekir. Şimdi Topfa.m Doğan yazılı
satırın hizasında bulunan - işaretini tıklayın.

Doğan marka otomobillerin satışına ilişki ayrıntılar gizlenmiş, sade-


ce toplam satış rakamı görüntülenmiştir. Bu arada sol tarafta - işareti
yerine + işareti görüntülenmiştir. Bu + işaretini tıklarsanız ayrıntılar tek-
rar görüntülenecektir.

295
Uygulama 29- Graiık (1)
EXCEL programıyla grafikler oluşturarak sayısal verilerin daha anla-
şılırbiçimde görüntülennıesini sağlayabilirsiniz. Bu uygulamada bir ga-
lerinin üç otomobil markasına ait bir aylık satış rakamlarının grafiği
oluşturulacaktır. Galeride Doğan, Kartal ve Şahin marka otomobiller
satılmaktadır. Bir aylık dönemde 12 adet Doğan, 16 adet Kartal ve 9
adet Şahin marka otomobil satılmıştır.

İşlem basamakları :

1- Şekildeki çalışma sayfasını hazırlayın.

2 - Başlıklar dahil verilerin tümünü seçili hale getirin ve Standart


araç çubuğundaki simgesini tıklayın. Kürsör hassas seçim
moduna geçecek ve + şeklini alacaktır. Şimdi ekranda grafiğin
yer alacağı bölgeyi tayin edebilirsiniz. Kürsör + şeklini alınca sol maus
tuşunu basılı tutarak mausu sağ-aşağı doğıu çapraz olarak sürükleyin.
Yeteri kadar bir alan tanımladıktan sonra sol maus tuşunu bırakın. Ek-
rana Grafik Sihirbazı - Adım 1/5 yazılı bir diyalog kutusu gelecektir.
Bu diyalog kutusu ve bunun peşinden gelecek olanlar sizin grafik çiz-
menizi sağlayacaklar.

Bu diyalog kutusunda grafiğini çizeceğiniz verilerin alanı soruluyor.


Biz daha önceden o alanı seçili hale getirdiğimiz için metin kutusunda
yazılmış durumda. Bu nedenle İleri düğmesini tıklayarak bir sonraki
adıma geçin.

296
Not : Bu aşamada ileri düğmesi yerine Son düğmesini tıklarsanız
grafik en basit şekliyle oluşacaktır.

3 - Ekrana G:raf'tk Sihirbazı -Adını 2 / 5 adlı diyalog kutusu

Bu diyalog kutusunu kullanarak çizeceğiniz grafiğin


bilirsiniz. Sütun tipi grafik seçili durumda. Biz de tip olsun
ruz. ileri düğmesini tıklaym.

4 - Ekrana Graflk Sihirbazı - Adım 3 / 5 adlı diyalog kutusu gelir.

Bu diyalog kutusunu kullanarak da Sütun tipi grafiklerin değişik bi-


çimde olanlarından birisini seçebilirsiniz. İleri düğmesini tıklayarak se-
çili durumdakini onaylayın.

297
5 - Ekrana Gırafik Siliirbazı - Adım 4 / 5 diyalog kutusu gelir.

Bu diyalog kutusu kullanılarak Veri serileri ve X eksenindeki verile-


rin isimleriyle ilgili tanımlamalar yapılabilir. İleri düğmesini tıklayın.

6 - Ekrana Graf':ı.k Siltirbazı - Adım 5 / 5 adlı kutusu gelir.

Bu diyalog kutusu kullanılarak grafiğe bir başlık ekleyebilirsiniz.


Bunu Grafik Başlığı kutusuna yazabilirsiniz. Ayrıca X ve Y eksenlerine
adlar da verebilirsiniz. Son düğmesini tıklayın.

298
Grafik görüntülendi. Grafiğin üzerini bir kez tıklarsanız grafik alanı
seçili hale gelir. Seçili durumdayken Sürükle ve Bırak yöntemiyle grafi-
ği ekranda başka bir yere taşıyabilirsiniz. Aynca seçili durumdayken
grafiğin köşe ve kenarlarında oluşan tutamaklardan maus ile tutarak
grafiğin boyutlarını büyütüp küçültebilirsiniz.

Grafik ile sayısal veriler arasındaki bağ devam etmektedk Örneğin


es hücresindeki 9 sayısını 15 olarak değiştirirseniz bu değişikliğin gra-
fiğe de yansıdığını göreceksiniz.

7- Grafiğin çizim alanını çift tıklarsanız çizim alanıyla ilgili değişik­


likler ve tanımlamalar yapabileceğiniz bir diyalog kutusu görüntülenir.

Bu diyalog kutusunu kullanarak çizim alanının


rengini ve desenini
belirleyebilirsiniz. Çizim alanı verileri temsil eden sütunların yer aldığı
alandır.

299
Verileri temsil eden sütunlardan herhangi birisinin üzerini çift tıkla­
dığınızda ise Veri Se:ril.edni Biçimle adlı bir diyalog kutusu gelecektir
ekrana.

Bu diyalog kutusu
desenleri, sınır çizgilerinin renkleri
tunlanm üzerine yazdma biçimi

Uygufan~a 30- Grafik


Bu uygulamada üç marka dört aya Şubat,
Mart, Nisan) ilişkin satış rakamlarının grafiğini oluşturacağız. Buna gö-
re örneğin Ocak ayma ilişkin üç ayn bilgi olacak Burada da sütun tipi
grafik kullanacağız.

İşlem ba."lamalda:n. :

1- Şekildeki çalışma sayfasını hazırlayın.

2 - B4-E8 hücre aralığını seçili hale getirin ve Standart araç çubu-


ğundaki simgesini tıklayın. Kürsör hassas seçim moduna geçe-
cek ve + şeklini alacaktır. Şimdi ekranda grafiğin yer alacağı böl-

300
geyi tayin edebilirsiniz. Kürsör + şeklini alınca sol maus tuşunu basılı
tutarak mausu sağ-aşağı doğru çapraz olarak sürükleyin. Yeteri kadar
bir alan tanımladıktan sonra sol maus tuşunu bırakın. Ekrana Gıraf':ı.k
Sihirbazı - Adım 1/5 yazılı bir diyalog kutusu gelecektir.

Bu diyalog kutusunda grafiğini çizeceğiniz verilerin alanı soruluyor.


Biz daha önceden o alam seçili hale getirdiğimiz metin kutusunda
yazılmış durumda. Bu nedenle İleri düğmesini tıklayarak bir
adıma geçin.

Not : Bu aşamada İ!eıri uu~u''·'-''-'l Son düğmesini


grafi.1< en basit şekliyle v"-''<'''-<•ncu

3 - Ekrana Graf'ıık Sil.tlrbazı - 2/ 5 adlı diyalog kutusu


4 - Ekrana Sihlı·bazı - Adu:n 3 / 5 adlı diyalog kutusu gelir.

kullanarak da Sütun tipi grafiklerin değişik bi-


birisini seçebilirsiniz. İleri düğmesini tıklayarak se-
durumdakini onaylayın.

5 - Ekrana Gıraf'ık Sıl.hirbazı - Adını 4 / 5 adlı diyalog kutusu gelir.

Bu diyalog kutusu kullanılarak da Veri serileri ve X eksenindeki ve-


rilerin isimleriyle ilgili tanımlamalar yapılabilir. İleri düğmesini tıklayın.

6 - Ekrana Grafik Silılrbazı - Adını 5 / 5 adlı diyalog kutusu gelir.

302
Bu diyalog
Bunu
adlar da

Grafikte her aya ilişkin üç adet bilgi yer alıyor. Hangi bilginin hangi
otomobile ait olduğu da sağ taraftaki kodianndan anlaşılıyor.

Uygulama 31- Grafik (3)

Bu uygulamada pasta grafik oluşturacağız.

İşlem basamakları :

1- Şekildeki çalışma sayfasını hazırlayın.

303
2 - B4-C6 hücre aralığım seçili hale getirin ve Standart araç çubu-
ğundaki simgesini tıklayın. Kürsör hassas seçim moduna
geçecek ve + şeklini alacaktır. Şimdi ekranda grafiğin yer alacağı
bölgeyi tayin edebilirsiniz. Kürsör + şeklini alınca sol maus tuşunu ba-
sılı tutarak mausu sağ-aşağı doğru çapraz olarak sürükleyin. Yeteri ka-
dar bir alan tanımladıktan sonra sol maus tuşunu bırakın. Ekrana Gra-
fik Sihirbazı - Adım 1/5 yazılı bir diyalog kutusu gelecektir.

Bu diyalog kutusunda grafiğini çizeceğiniz verilerin alam soruluyor.


Biz daha önceden o alam seçili hale getirdiğimiz için metin kutusunda
yazılmış durumda. Bu nedenle İleri düğmesini tı.klayarak bir somaki
adıma geçin.

3 - Ekrana Graflk Silıfrbazı - Adını 2 / 5 adlı diyalog kutusu gelk

304
Bu diyalog kutusunda Pasta yazılı kutuyu tıklayıp seçili hale getir-
dikten sonra Son düğmesini tıklayın. Grafik görüntülenecektir.

Şehin
36% Doğan
43%

l<aıi:al
21%

Grafik Pasta biçimindedir ve otomobillerin satış paylan farklı renk-


lerle görüntülenmiştir. Aynca satış paylan yüzde olarak da verilmiştir.

Uygulama 32- Senaryo yöneticisi

Bir kundura mağazasında 5000 kundura var. Bunların birim maliyeti


yani bir tanesinin alış fiyatı 100 lira. Toplam maliyet 5000*100=500000
lira olarak bulunur. Satış fiyatı olarak üç ayn rakam belirlenmiş :150 li-
ra, 200 lira ve 250 lira. Bu üç ihtimale göre toplam satış rakamı ve net
kar bulunacak. Burada üç ayn senaryo devreye sokulacak. Her senar-
yoda toplam satış rakamı ve net kar değişecek. Şimdi işe başlayalım.

İşlem basamakları :

1- Şekildeki çalışma sayfasını hazırlaym.

Bunun için:
.. Başlıkları yazın .
., B3 hücresine 5000 yazın.
"' C3 hücresine 100 yazm .
., Toplam maliyeti bulmak için D3 hücresine =B3*C3 formülünü ya-
zın.

305
" E3 hücresine birim satış fiyatı olarak 150 yazın.
" Toplam geliri bulmak için F3 hücresine =B3*E3 formülünü yazın .
.. Net kar formülü olarak G3 hücresine =F3-D3 yazın.

Bu tabloda birim satış fiyatının yazıldığı E3 hücresindeki değer çe-


şitli
senaryolar için farklı farklı olacak. Bu değerdeki değişikliğe göre
toplam satış ve net kar da değişiklik gösterecek.

2 - E3 hücresini tıklayıp aktif duruma getirin.


3 - Menü satırındaki Araçlar seçeneğini tıklayın. Açılan menü pen-
ceresindeki Senaryolar seçeneğini tıklayın.

4 - Senaryo yöneticisi adlı diyalog kutusu ekrana gelecektir.

306
Bu diyalog kutusundaki Ekle düğmesini tıklayın.

5 - Ekrana Senaryo Ekle adlı diyalog kutusu gelir. Bu diyalog kutu-


sundaki Senaryo Adı yazısının altındaki metin kutusuna AZ yazın. Bi-
rinci senaryonun adı AZ olacak. Tamam düğmesini tıklayın.

6 - Farklı
senaryolara göre değeri değişecek olan E3 hücresine ilk
değeri (adı AZ olan senaryo için öngörülen değer) girebileceğiniz bir
diyalog kutusu görüntülenecektir.

Bu diyalog kutusundaki metin kutusuna 150 yazıp Tamam tuşunu


tıklayın. AZ adlı senaryoya göre kunduraların tanesi 150 liradan satıla­
cak. Diğer bütün sonuçlar buna göre hesaplanacak.

7 - Ekrana yine Senaryo Yöneticisi diyalog kutusu gelecektir. Di-


ğer senaryoya ilişkin tanımlamalar yapmak için tekrar Ekle düğmesini
tıklayın.

307
7 - Ekrana gelen Senaryo Ekle diyalog kutusundaki Senaryo Adı
adlı metin kutusuna ORTA yazın. İkinci senaryonun adı tanımlanmış
oldu. Tamam düğmesini tıklayın.

8 - Ekrana Senaryo Değerleri adlı diyalog kutusu gelir. ORTA adlı


senaryoda kundura satış fiyatı 200 lira olacak. Metin kutusuna 200 ya-
zıp Tamam düğmesini tıklayın.

308
9 - Ekrana yine Senaryo Yöneticisi diyalog kutusu gelir. Ekle düğ­
mesini tıklayın.

10 - Ekrana gelen Senaryo Elde diyalog kutusundaki Senaryo Adı


metin kutusuna ÇOK yazıp Tamam düğmesini tıklayın. Üçüncü senar-
yonun adı ÇOK olarak tanımlandı.

11- Ekrana yine Senaryo Değerleri diyalog kutusu gelir. Metin ku-
tusuna 250 yazıp Tamam düğmesini tıklayın. ÇOK adlı üçüncü senar-
yoya göre kundura fiyatı 250 lira olarak belirlenmiştir.

309
12 - Ekrana gelen Senaryo Yöneticisi diyalog kutusunda Senar-
yolar başlığı altında üç senaryo adının yazılı olduğunu göreceksiniz.
Senaryolar tamamlanmış oldu.

13 - Senaryo Yöneticisi diyalog kutusunda ÇOK yazısını tıklayıp


seçili hale getirdikten sonra Göster düğmesini tıklayın. Tablonuzda E2
hücresindeki birim satış fiyatının 250 olduğunu ve bütün hesaplamala-
rın buna göre yapıldığım göreceksiniz.

310
14 - Senaryo Yöneticisi diyalog kutusunda ORTA yazısını tıklayıp
seçili hale getirdikten sonra Göster düğmesini tıklayın. Tablonuzda E2
hücresindeki birim satış fiyatının 200 olduğunu ve bütün hesaplamala-
rın buna göre yapıldığını göreceksiniz.

15 - Senaryo Yöneticisi diyalog kutusunda AZ yazısını tıklayıp se-


çili hale getirdikten sonra Göster düğmesini tıklayın. Tablonuzda E2
hücresindeki birim satış fiyatının 150 olduğunu ve bütün hesaplamala-
rın buna göre yapıldığını göreceksiniz.

16 - Bütün senaryoları tek bir tabloda da görebilirsiniz. Bunun için


Senaryo Yöneticisi diyalog kutusundaki Senaryo Özeti düğmesini
tıkladıktan sonra ekrana gelen Senaryo Özeti adlı diyalog kutusundaki
Tamam düğmesini tıklamanız yeterlidir.

17 - Senaryo özeti görüntülenmiştir.

250000 250000 500000 750000


Not Geçeıii Değerler stilumı Senaryo özeti Raporu yara1ıtdığında değişen
hücrelerin değerlerini gösterir. Her bir senaryonun değişen hücreleri
gri olarak vurgulanmışht

311
Burada E3 hücresinin (birim satış fiyatının bulunduğu hücre) aldığı
çeşitli değerlere göre G3 hücresinin (toplam net karın bulunduğu hüc-
re) aldığı değerler görülmektedir.

Bu yaptığınız çalışmayı bir isim vererekkaydettiğiniz taktirde senar-


yolar da kaydedilmiş olur. İstediğiniz zaman Araçlar menüsündeki Se-
naryolar seçeneğini çalıştırarak bu bu senaryoları çalıştırabilirsiniz.

Uygulama 32- Sayısal bilgilerin formatlı


görüntülenmesi
Şimdi yapacağımız uygulamada çalışma sayfasındaki sayıların gö-
rüntülenme biçimini değiştireceğiz. Sayılara ayraç karakterleri (her üç
sıfırda virgül ve kesirli bölümü ayırmak için nokta) ekleyeceğiz. Aynca
sayının sonuna TL yazısı eklenecek.)

Bir ailenin Ocak, Şubat, Mart ve Nisan aylarına ilişkin harcamalarım


görüntüleyen ve aylık toplam harcamaları bulan bir çalışma sayfası ha-
zırlayacağız.

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını oluşturun.

..................~··· .... .
~

2 - BlO hücresine =TOPLA(B3:B9) yazıp ENTER tuşuna basın.


Ocak ayında yapılan masrafların toplamı B 10 hücresinde görüntülene-
cektir.

312
3 - BlO hücresine yazdığınız fonksiyonu Süriiıhle ve Bırak. yönte-
miyle ClO-ElO hücre aralığına kopyalayın.

Diğer aylarda yapılan harcamaların toplanılan da görüntülenecektir.

4 - Çalışma tablosundaki sayısal bilgilerin tümü TL cinsinden para-


lar. Muhasebecilerin görüntüleme biçimini elde etmek için önce çalış­
ma tablosunda sayısal değerlerin yazılı olduğu tüm bölgeyi (yani B3-
E10 aralığını) seçili hale getirin. Sonra da menü çubuğundaki Biçinı
menüsünü, ardından da açılan menü penceresindeki Hücreler komu-
tunu tıklayın.

313
5 - Ekrana gelen Hücreleri Biçimle adlı diyalog kutusunda Kate-
gori listesindeki Para Birimi seçeneğini tıklayın. Son olarak da aynı
diyalog kutusundaki Tamam düğmesini tıklayın,

esiı
ilimsel
Metin
Özel
isteğe Uyatl<ınmış

6 - Hücrelerdeki sayılar ayraç karakterleriyle ayrılacak, ayrıca sayıla­


rın sonuna TI ibaresi eklenecektir. Hücrelerin genişliği yeterli değilse
hücreler # işaretleriyle dolu olacaktır. Sütun başlıklarında bulunan harf-
lerin aralarındaki çizgileri çift tıklayarak her sütunu o sütundaki en bü-
yük sayıyı da görüntüleyebilmesi için çift tıklayın. Böylece hücreler en
uygun genişliğe ulaşırlar.

Hücrelerdeki sayılar ayraç karakterleriyle ayrılmış, böylece sayının


okunması kolaylaşmıştır. Örneğin bir milyon sayısı 1,000,000.00 şeklin­
de yazılmıştır. Böylece sıfırları saymak kolaylaşmıştır.

314
Ayrıca her sayıdan sonra TL ibaresi yazılmıştır. Böylece para birimi
de anlaşılmaktadır.

~A~t . . ·. ·. ·. ·. ·. ·. ·. ·. .· füŞ~ff•••··············
7J300.000,00 TU 7.E00.000
3s:999:99§.99.••rkr3şçgçı.9çı9 .
.000.00Q,QQI~ . . . §,gQQ,QQQ_,QQ_. I~.·-
- - TU 7.ı:cıo.oocı,oo TL
·.·§.Çgçı:9çı9,çı9yç;
4.ÇOOQOQ,OQ TL
6-Cdö.ooo ,oO 'rL]
. . . . . 4DQ.QQQ.PQI~.·71_.JQiJ:Q9Q. Ç!QI~1 . .

UYGULAMA 34 : DEVRESEL_ÖDEME fonksiyonu (1)

Bu uygulamada muhasebe ve bankacılıkta çok kullanılan DEVRE-


SEL_ÖDEME adlı fonksiyonu inceleyeceğiz. İki kelime arasındaki ayraç
karakteri alt çizgi (_ ) karakteridir, buna dikkat edelim.

Bankadan yıllık %90 faizle 1000000 TI. (bir milyon) borç alıyoruz.
Bu borcu 12 taksitte ödeyeceğiz. Bu fonksiyon ödememiz gereken tak-
sit tutarını hesaplıyor.

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını hazırlayın.

Yıllık
faiz oranını C2 hücresine 0,9 (yani yüzde doksan) olarak ya-
zın. Daha sonra göıüntü formatmı değiştireceğiz. C3 hücresine taksit sa-
yısını 12 olarak yazın. Borçlandığımız ana parayı da C4 hücresine yazın.

2 - C2 hücresini tıklayıp aktif hücre yapın. Biçim araç çubuğundaki


düğmesini tıklayın. Faiz oranı daha anlamlı olarak görüntülene-
cektir.

315
3 - C7 hücresine =DEVRESEI._ÖDEME(C2/12;C3;C4) yazıp ENTER
tuşuna basın.

C7 hücresinde aylık ödeme tutan görüntülenmiştir. Sayının başında­


ki eksi işareti ödemeyi bizim yapacağımızı gösteriyor. Formülde C2/12
yazarak faiz oranını 12'ye bölmemizin nedeni yıllık faizi aylık faize çe-
virme gereğidir.

NOT : İngilizce EXCEL programında bu fonksiyon PMT olarak ad-


landırılmıştır. Yani İngilizce EXCEL kullananlar DEVRESEL_ÖDEME ye-
rine PMT yazmalıdır.

UYGULAMA 35: DEVRESEL_ÖDEME fonksiyonu (2)

Bir kişiye yıllık %80 faizle 3000000 n. (üç milyon) kredi açıyorsu­
nuz. Parayı size 5 ayda eşit taksitlerle geri ödeyecek. Taksit tutarını he-
saplayalım.

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını hazırlayın.

316
C4 hücresine ana para miktarını yazarken başma eksi (-) işareti ko-
yun. Bu, parayı (yani borcu) sizin verdiğinizi gösteriyor.

2 - C7 hücresine =DEVR.ESEL_ÖDEME(C2/12;C3;C4) yazıp EN-


TER tuşuna basın.

Beş ay boyunca size ödenmesi gereken para miktarı C7 hücresinde


göıüntülenmiştir.

UYGULAMA 36 : DEVRESEL_ÖDEME fonksiyonu (3)

Üç yılda 500000000 TI. (Beşyüz milyon) biriktirmek istiyorsunuz.


Bunun için 3 yıl (yani 36 ay) boyunca bir bankaya yıllık %90 faizle pa-
ra yatırmayı planlıyorsunuz. Üç yıl (36 ay) sonra beşyüz milyon liranı­
zm birikmesi için 36 ay boyunca her ay kaç para yatırmalısınız ?

İşlem basamaldaırı :

1- Şekilde görülen çalışma sayfasını hazırlayın.

317
2 - C7 hücresine =DEVRESEL_ÖDEME(C2/12;C3;0;C4) yazıp EN-
TER tuşuna basın.

l-Faı·z-·oranı".... ···gö·-~~r·
··· . .,O.deme sayısı....................$$.1.
Hedef 500000000
·ı·

·. . ···········+·.......... .
;Q~e11l~.~11.~~n.
'" •• •" • ;" "'. ı
:

~r-, ~' f. ...... ··'-· ...... .


ıı..:
r ••-,-qy.
• ;;;;'. '.):Jr .ö.:•.':Jc:

Üç yıl (36 ay) sonra beşyüzmilyon liranızm olması için her ay ban-
kaya yatırmanız gereken para miktarı C7 hücresinde görüntülendi. Sa-
yının başındaki eksi(-) işareti parayı sizin ödeyeceğinizi gösteriyor.

UYGULAMA 37 : GD fonksiyonu

Bir yatırımın gelecekteki değerini bu fonksiyonu kullanarak bulabi-


lirsiniz. GD; Gelecekteki Değer kelimelerinin ilk harflerinden türetil-
miştir.

Bankaya 2 yıl (24 ay) boyunca her ay 1000000 TL. (bir milyon) yatı­
rıyorsunuz. Bankanın paranıza uyguladığı yıllık faiz oranı %90 olduğu­
na göre 24 ay sonra bankada kaç paranız birikmiş olur? GD fonksiyo-
nunu kullanarak bunu hesaplayalım.

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını hazırlayın.

318
2 - C7 hücresine =GD(C2/12;C3;C4) yazıp ENTER tuşuna basın.

24 ay boyunca bankaya her ay bir milyon lira yatırırsanız ve banka-


nın uyguladığı yıllık faiz de %90 ise, 24 ay sonra 62,304,987.44 liranız
olur.

UYGULAMA 38 : BD fonksiyonu

Gelecekte yapılacak bir dizi ödemenin bugünkü değerini verir. BD;


Bugünkü Değer kelimelerinin ilk harflerinden oluşan bir kısaltmadır.
Bu fonksiyonu kullanarak bir yatırımın karlı olup olmadığınızı hesapla-
yabilirsiniz.

Bir TV cihazını ayda 3000000 TI. ödemeli olmak üzere 36 ay taksit-


le veriyorlar. Bugünkü fiyatla kaç para vermiş oluyorsunuz. (Bu dö-
nemde bankalar yıllık %90 faiz veriyorlar.)

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını hazırlayın.

319
2 - C7 hücresine =BD(C2/12;C3;C4) yazıp ENTER tuşuna basın.

36 ay boyunca her ay üç milyon lira yatırırsanız bugünkü değerle


37,039,566.72 TL. ödemiş oluyorsunuz. Eğer televizyonu bu fiyatın al-
tında bir fiyata peşin alabiliyorsanız peşin parayla almayı tercih etmeli-
siniz. Yok, peşin parayla televizyonun bugünkü değeri 37,039,566.72
liradan fazlaysa taksitle alırsanız karlı çıkarsınız.

Bu fonksiyonu otomobil kampanyalarındaki fiyatları değerlendir­


mek için kullanabilirsiniz.

UYGULAMA 39: BAG_DEG_SAY fonksiyonu

Bir dizi hücredeki sayıların kaç tane olduğunu bulur. Bu uygulama-


da bir sınıftaki öğrencilerin adlan ve notları bir listede yer almaktadır.
Biz kaç tane not olduğunu bulacağız.

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını hazırlayın.

320
2 - C13 hücresini tıklayarak aktif hale getirin. Bu hücreye
=BAG_DEG_SAY(C3:C11) formülünü yazın.

C13 hücresinde 9 sayısı oluştu. Çünkü C3-Cll aralığındaki hücreler-


de 9 tane rakam var. Bu aralıktaki hücrelerden birisinde rakam yerine
bir alfanümerik ifade (örneğin bir kelime) bulunsaydı veya boş olsaydı
o hücre sayılmayacaktı. Yani bu fonksiyon sadece içinde sayı bulunan
hücreleri sayar.

UYGULAMA 40 : EGERSAY fonksiyonu

Bir dizi hücre aralığındaki bilgilerden belli bir şartı taşıyanların sa-
yısımbulur. Bu uygulamada bir sınıftaki öğrencilerin adlan ve notlan

321
bir listede yer almaktadır. Bu listedeki öğrencilerin kaç tanesinin notu-
nun 50 ve daha yukarı olduğunu (yani kaç kişinin geçer not almış ol-
duğunu) bulacağız.

İşlem basamakları :

1- Şekilde görülen çalışma sayfasını hazırlayın.

2 - C13 hücresini tıklayarak aktif hale getirin. Bu hücreye =EGJERSAY


(C3:C11;">==50") formülünü yazıp ENTER tuşuna basın.

C13 hücresinde 6 sayısı oluştu. Çünkü C3-C11 aralığındaki hücreler-


deki notlardan sadece 6 tanesi 50 ve daha yukarı.

322
Uygulama 41- Yazıcıdan çıkış alınması

Excel programını kullanarak ürettiğimiz çalışmayı kağıda aktarabili-


riz. Zaten bu çalışmalar çoğu kez kağıda aktarılarak kullanılır. Şimdi
yazıcıdan çıkış alma uygulaması yapacağız.

İşlem basamakları:

1- Şekilde göıülen çalışma sayfasını oluşturun.

2 - Dosya menüsündeki Yazdır komutunu çalıştırın

3 - Ekrana Yazdır adlı diyalog kutusu gelir.

323
3 - Bu diyalog kutusunu kullanarak yazdırma işlemine ilişkin çeşitli
tanımlamalar yapabilirsiniz. Diyalog kutusundaki Yazdırılacak Olan
başlığının altındaki radyo düğmelerini kullanarak şu seçimleri yapabi-·
lirsiniz:

Seçim : Sadece önceden seçili hale getirdiğiniz bölge yazdırılır.


Seçili Sayfalar: Sadece seçili (aktif) durumdaki sayfalar yazdırılır.

Tüm Çalışma Kitabı: Çalışma kitabındaki tüm sayfalardaki bilgiler


yazdırılır.

Hangi sayfaların yazdırılacağını da Sayfa Aralığı başlığı altındaki


bölgeden tanımlayabilirsiniz. Kopya Sayısı başlığı altındaki bölgeden
de belgenin kaç kopya yazdırılacağı tanımlanır. Tüm bu tanırnlamalar­
dan sonra diyalog kutusundaki Tamam düğmesini tıkladığınızda yaz-
dırma işlemi başlar.

Yazdırma işlemi sırasında Çalışma Sayfasının A4 kağıdı boyutlarında


kesik çizgilerle bölümlendirildiğini de göreceksiniz.

Not : Yazdır diyalog kutusundaki Önlıleme düğmesini tıklarsanız


çalışmanızın kağıt üzerindeki duruşu ekrana gelir. Böylece kağıda ak-
tarmadan önce bu görüntüyü elde ederek gerekli düzeltmeleri yapabi-
lirsiniz.

Uygulama 41 - Sayfa yapısının düzenlenmesi

Excel programı kullanılarak üretilen çalışmanın kağıda aktarılmasın­


dan önce kağıda aktarma biçimine ilişkin bazı tanımlamalar gerekli
olabilir. Bu tanımlamalar Dosya menüsündeki Sayfa Yapısı komutunu
çalıştırınca ekrana gelen diyalog kutusu aracılığıyla yapılır.

İşlem basamakları:

1- Şekilde görülen çalışma sayfasını oluşturun.

324
2 - Dosya menüsündeki Sayfa Yapısı komutunu çalıştırın.

3 - Ekrana Sayfa Yapısı adlı diyalog kutusu gelir.

Bu diyalog kutusu dört sayfadan oluşmaktadır. Seçili durumdaki ilk


sayfanın adı Sayfa'dır Bu ilk sayfadaki Yönlendirme başlıklı bölgede
bulunan Dikey ve Yatay seçenekleriyle yazdırılacak bilginin kağıt üze-
rindeki duruş biçimi tanımlanır.

Ölçek başlıklı bölgede ise çalışma sayfasının kağıda hangi ölçekte


aktarılacağı tanımlanır. Varsayım olarak %100 ölçeği seçili dunımdadır
ve çalışmanız kağıda aynen aktarılır. Küçültme/Büyütme oranını %50
olarak tanımlarsanız çalışmalarınız %50 küçültülerek kağıda aktarılır.

Diyalog kutusundaki Kenar Boşlukları adlı başlığı tıklarsanız


Kenar Boşlukları adlı sayfa aktif olur.

Bu sayfa aracılığıyla tablonuzun kağıt üzerine aktarımında kullanıla­


cak kenar boşluklarını tanımlayabilirsiniz.

Not: Dikkat edilirse Sayfa Yapısı diyalog kutusunda Yazdır adlı bir
düğme bulunmaktadır. Bu düğme tıklanırsa da Yazdır adlı diyalog ku-
tusu görüntülenir ve yazdırma sürecini buradan da başlatabilirsiniz. Ay-
rıca bu diyalog kutusundaki Baskı Önizleme düğmesini tıklayarak

325
önizleme yapabilir, tablonuzun kağıt üzerinde nasıl duracağını önce-
den görebilirsiniz.

Uygulama 43- Nöbet listesi hazırlamak


Bir fabrikada üç nöbetçi var. Bunlar vardiyalı olarak çalışıyorlar. Bi-
rinci bekçi 8-16 saatleri arasında çalışıyor. İkinci bekçi 16-24, üçüncüsü
ise 24-8 saatleri arasında çalışıyor. Her hafta bu bekçiler vardiya değiş­
tiriyorlar. Şimdi bu bekçilerin 6 haftalık nöbet listesini hazırlayacağız.

İşlem basamakları:

1- Şekilde görülen çalışma sayfasını oluşturun.

i
• Hafta,····:···
..... ...................

.... .................... ... ,.......~--


'
8-16, 16-24 ve 24-8 bilgilerini yazmadan önce üst tırnak (') karakte-
rine basın. Aksi halde bunlar sayı olarak yorumlanır ve hücrelerde baş­
ka şeyler belirir.

2- C2 hücresine =B4, C3 hücresine =B2, C4 hücresinde de =B3 ya-


zın . Hücrelerde referans yapılan hücrelerdeki bilgiler görüntülenecek-
tir. Örneğin C2 hücresinde B4 hücresindeki bilgi görüntülenir.

326
j 1.Jlaf'lıı .
i.11".k.~t,i
'Burak
. . . . Js~ıi;;~--
3 - C2-C4 aralığını seçili hale getirin.

;1.Hafta :2. Hafta 3. Hafta 4. Hafta Hafta 6. Hafta


8~16 iHakan . . Iseı!rr) ····!Burak Hakan Seiirn Eıüriı!s:
1s.z..ı ·· iB•.ıraİ< !Hak<ın ··· ·· ;s(.)ıiri1 · 'Btıraıi · · Hakan .Snlirrı
u.o · ·· · Tseıim · .Burnk ··· 8~kaf1 · senll~ ·...Burak .'H::ık.an

4 - Maus okunu seçili alanın sağ alt bölgesindeki çok küçük kare-
nin üzerine götürün. Maus işareti + şeklini alır. O anda sol maus tuşu­
na basın ve basılı tutarak altıncı haftanın altına kadar sürükleyin. Kop-
yalama işlemi sonunda nöbet listesi oluşacaktır. Referansların aynı
mantık çerçevesinde kopyalandığını gözleyin.

327
Uygulama 44- Birden fazla çalışma sayfasında çalışmak (1)
Excel programında birden fazla çalışma sayfasında yer alan verilerle
işlem yapabilirsiniz. Farklı sayfalardaki hücrelere bulunan sayılarla ilgili
işlemler de yapılabilir. Bu uygulamada farklı sayfalarda bulunan iki sa-
yı toplanacak ve sonuç diğer bir sayfaya yazılacaktır.
Gerçi daha önce anlatılmıştı ancak bir kez daha hatırlatayım. Excel
programı birden fazla çalışma sayfası sunar. Bu çalışma sayfalarının ad-
ları ekranın alt bölümünde başlıklar biçiminde yazılıdır. Sayfa! adlı ça-
lışma sayfası varsayım olarak aktif durumdadır.

.• •.·.·: .• ·~ .•.., ·········


·,- .,,·,~ ~.-, ,.,, ... ,.. •,, ,., .. ,,,., .•.,::,,., ,,,.,,,,,.,, ,,,,,,.,,,,,,.t•••·••·•w,•

· · . ···•ılh_ş_~J!t~IA~~t~?{ttitş__lı~~l;~~»l~~lt~~l!j
:~~~:~~~~~:~~~*~~:i~:i:~{$~:~~:i~;~:i;~~:t~·~i:~~@i{:~:fi{~~:~~~=~:i::~w~~~~~:~:f:w~~~~~:'.:~{:11~:~~:~&~~:::~~~~~~~~~~{:~@~:

Hangi sayfayı aktif yapmak istiyorsanız o sayfa ismini bir kez tıkla­
manız yeterlidir. Örneğin Sayfa3 adlı sayfayı aktif yapmak için Sayfa3
adını tıklayalım.

Sayfa3 adlı çalışma sayfası aktif oldu.


Herhangi bir anda hangi çalışma sayfası aktif durumdaysa o çalışma
sayfasına ait hücrelere bilgi girişi yapılabilir. Örneğin Sayfa2 adlı çalış­
ma sayfasındaki hücrelere bilgi girişi yapacaksanız önce bu sayfayı ak-
tif hale getirmelisiniz. Bu hatırlatmalardan sonra şimdi işleme geçelim.

İşlem basamakları:

1- Sayfal adlı sayfayı aktif hale getirin. B2 hücresine 6 sayısını ya-


zın.

61
B:m:a:m:mımmımmıııı· ··· ·· ·-- ·· ···· ···· ..·········:····
• "." ........ . ,. ..... . ... .. ... .............. •-, ." •• •• ·:<- •• .••• - ~· .... . .... , ,.

328
2- Sayfa2 adlı sayfayı aktif hale getirin. C3 hücresine 8 sayısını ya-
zın.

3- Şimdi
de Sayfal adlı çalışma sayfasında B2 hücresindeki 6 sayı­
sıyla Sayfa.2 adlı çalışma sayfasında C3 hücresindeki 8 sayısını top-
layacağız. Sonuç Sayfa3 adlı çalışma sayfasında D4 hücresinde görün-
tülenecek.

Bunun için önce Sayfa3 adlı çalışma sayfasını aktif hale getirin. D4
hücresine =Sayfal!B2+Sayfa2!C3 yazıp ENTER tuşuna basın. Diğer
iki çalışma sayfasındaki sayıların toplamı bu sayfada görüntülenecektiı:.

Uygulama 45- Birden fazla çalışma sayfasında çalışmak (2)

Bu uygulamada birden fazla sayfada çalışma konusunu biraz daha


geniş bir örnekle işleyeceğiz. Bir sınıftaki öğrencilerin Fizik, Kimya ve
Matematik derslerinden aldıkları notları hesaplayıp karnelerine işleye­
ceğiz. Her derse ait notlar ve ortalamalar ayn sayfada yer alacak. Karne
de ayrı bir sayfada olacak. Örneğin Fizik notları ve ortalamaları Sayfa
1 adlı sayfada, Kimya notları ve ortamaları Sayfa2 adlı sayfada, Mate-
matik. notları Sayfa3 adlı sayfalar yer alacak. Karne ise Sayfa4 adlı
sayfada olacak.

İşlem Basamakları:

1- Sayfal adlı sayfaya sınıfın Fizik notlarını girin. Lütfen hücre ad-
reslerine dikkat edin, çünkü tüm sayfalardaki formüller birbirleriyle

329
bağlantılı olacak.

'~:z·· Tek_tlJ_k __q~~-~'.--~.~·1!.ffi.~_i_~P.l?.~.i)~.11.tı~r.1 . , ...... ______ . ... . .·


i_'l·~-~~ A~i·i··············ı.f·ş_,-~-~Y.·.·_·_-J?Ji·~~y_. .·-! :fŞ_i·~~Y· ·:Tşö·~·iü. . . . .T<?ri<ıJ~~~-<ı·:·
n:~m f:-l~r:;;ırı ~ }5-:... .. 5o' s5 ; ??.L _ _
'';'5'''' Ne"e . · ' .. Ei5 ' .· 45 40 60 :
~:·:~lil:sü;a·k ..'....·.··45:-·. . _Jo'
:::-;~~-~-~::
1s; __ ....~ 9 ~------- ·--·
2- F4 hücresini aktif yapın. Bu hücreye =ORTAIAMA(B4:E4) fonk-
siyonunu yazıp ENTER tuşuna basın.

Bınlm1Bı1:&1rn@:l)n
ı@1[:1:m: II F
Teknik
..................Lise
..
.,
3. sınıf Fizik Dersi Notları
,:.··""''"'•"•'•"•'•";'•••···" •" ·"·"··· · ··· •."•"•"'"''•"•'•"•"••••.··· ··

· · .: ·J1:sınav - :ı..$.ın':lv :3.siıı·a" _j~-~?ıü · ·roi-taianıar


Hakan ' 35: 50: 55; ··.$~1 51 ,25[
%5@:~8.ie. . ...... -;:..............§~L 4s: 40: 60: ·
~;:~::::; _ş_'JL?~., .....,.. ............1?.:.... ............ ?.P.:........ 75; . ......... ?PL. . . ... ...... .
F4 hücresinde ilk öğrenciye ait Fizik notlarının ortalaması görüntü-
lenir.
3- Süriikle ve Bırak yöntemiyle F4 hücresindeki formülü F5 ve F6
hücrelerine de kaplayın.

i:;:'dd Teknik Lise 3. sınıf Fizik Dersi Notları

•,;.~'·:-_,';· AH:..__:·.a_~dk_~:-:._-a:_n.·._ ·~ -i1·_:.;_~-'~~~-·:_35:~_;i_;·..~-..........


;::.,,:!.:_,i;_:!.'!.:.:_:_:

' !t
.. . .,_[,!
. . .._:_·._-.-.. __ ,t~-~~:.:·50:··:;·~.~-......., t~~v· .:.· :~·~-~~. .~.....1~.-..·55. _· .·~-·•";·~~1.s1.2s·
. . . s5r ~.~~-~--'·
·'"i'-·N 5ı:::' ····· ·4;::···· .. · ·40' .. ..~i:f 52,5:
;~-~:ııı:f3~~:~ . . ,· · . ·tı~' 7~: ' ''''i~J' ''' ''' ' ~b· _6?5:

Diğer öğrencilerin not ortalamaları da görüntülendi. Bu çalışma tab-


losu Sayfal adlı çalışma sayfasındaydı.

4- Şimdi de Sayfa2 adlı çalışma sayfasına aynı sınıfın Kimya notla-


rını gireceğiz. Önce ekranın alt bölümündeki sayfa başlıklarından Say-
fa2 yazılı başlığı tıklayın . Sayfa2 adlı çalışma sayfası aktif olacaktır.

330
,....... ,_ ..;. .................,..... i.... ,..........,....... .

ı~~ımıı~~~~j~~f~~~;~ı~ı~ı111
5- Sayfa2 adlı çalışma sayfasına aynı sınıfın Kimya notlarını girin ve
ortalamalarını alın .

....8..~.~-i-~-~-iS,.~. ~.: -~•.t1.ıf.~1.~Y..<i ..P..e..~i. ~()~1.~.r.ı


·· i~tıilav ti.sıi1av \isınav sözıu lortaıZıfi1a:
·· ·. ·· · ·· ·6tff .... ·. ssr . . . !ci ...... · .·$.0..L.. . ~.1 .~~I
65; 75! 70 G5i 68,75i
... .. ... . ·55 .. .... . "65f ... .... f51 ssr·· ............65T

Bilgi girişi sırasında lütfen hücre adreslerine dikkat edin, çünkü di-
ğer bütün sayfalardaki formüller birbirleriyle bağlantılı olacak

6- Şimdi de Sayfa3 adlı sayfa başlığını tıklayın ve Sayfa3 adlı çalış­


ma sayfasını aktif hale getirin.

Bu sayfaya da aynı sınıfın Matematik dersi notlarını girip ortalama-


ları hesaplayın .

., Teknik lise 3. smıf Matematik Dersi.........


Notları
'-"•'•"'"' .-. ..............i.. ,_ .. ., .. ,. .. ,. ........ .

A.~.~ . . . . . . . ..:J~.Ş,ı.~~Y.... i?'.Şı.~.~Y .....i~ . Şı~.~Y.... ...(Ş~-~.!.Ü. ........ !9.~~.!~.rr.ı~J.


Hakan : 50: 55' 70i 65: 60\
U~.şe.· .. ,... ··_$4L . ~9.L.. .toT·· ....... 79.:. s1.sf
Burak 6Qt 55: 70~ 13?' ... _55:

7- Şimdi de Sayfa4 adlı çalışma sayfasını aktif yapacağız ve bu üç


derse ait ortalamaları (yani karne) orada görüntüleyeceğiz. Önce Sayfa
4'ü aktif yapın.

·~········ ......... ·'.~"' ·~· ............. ······t· ...... ..

~~JrfJŞJlŞ.!'.1,Y.[~.~"'4ill~l!.$§1
:~~~~~~:~:~:~{~~:~~~:i:~~~~;:~~~:fü~g:~:;:~i~~~%~:i:i:~i$i:~:~~:I~:;:~ı~:~i:;:

331
Sayfa4 adlı çalışma sayfasına aşağıdaki bilgileri girin.

"•'• , ••, • • • ' . '•' ·' "" " · • -~· • " M • • • , .... - . ; - •. •__. .~....' • " ' " • ', . ' " • ,,. " .-- -•. "••, " • '..' , . • ....,. , • ._.,• , -·, ,• •,' , ,• •, ' ;. ' . '• • , : • , •• •,

·Fizik

........ . . .- . ··. . . ···•··············]····


""'"'"'="----__;.____· ==~··:··===~.::.~····

8- Şimdi de diğer çalışma sayfalarındaki ortalamaları bu sayfaya ak-


taracağız. Önce Fizik dersinden başlayalım. B4 hücresini seçili hale
getirin ve bu hücreye =Sayfal!F4 yazıp ENTER tuşuna basın. Çünkü
ilk sıradaki öğrencinin Fizik dersi not ortalaması Sayfal adlı sayfada
F4 hücresindedir. Ortalama, Sayfa4 sayfasında B4 hücresinde görüntü-
lenecektir.
9- Sürükle ve Bırak yöntemiyle B4 hücresindeki formülü B5 ve B6
hücrelerine kopyalayın.

~f:::ı:m:1~~:ı~trn: ~~*i!Mis~:rn:ı;:ı; füfüT:rı:füı:~ı~::: ~ırnmı{u:m;m~~ı: i


Teknik Lise 3. sınıf Karnesi . . . .··· r
J\~• . . · ... . JFz.~k.. . .i.~itl1y~ .... M.a~ef!l~!ikJ
Hakan . 51,25:
. r\_ı_·~_ie,:·::.:.:. :.:·.:·.~: .:.·:.::.··.·5_··2.. ·.s.·:..:_:·. :.: :...........................··.,.········
v, ~
.............. --·······.-.....,.,
.".•'·'·•.V.'.• •'•' '''V·•·'-·'·"'"·•···{··
v

Burak 62,5;
...............,. ........ .·.···r··-- ........ ... .,..... ?··· · ...... .................. .. .... . ... .

10- Şimdi de Kimya dersi not ortalamalarını karneye geçireceğiz.


C4 hücresini seçili hale getirin ve bu hücreye =Sayfa2!F4 yazıp EN-
TER tuşuna basın . Çünkü ilk sıradaki öğrencinin Kimya dersi not orta-
laması Sayfa2 adlı sayfada F4 hücresindedir. Ortalama, Sayfa4 sayfa-
sında C4 hücresinde görüntülenecektir.

=Sayfa2!F4

,...."··Teknik Lise 3. srnıf Karnesi


··· ···:···· .........., ......,.,:··· --·····"' •'" '""""· '•:··
: :
Ad.• . . . . _Fizü<.... ._....._.. :·Kimva .......~JUi~!eiTi.~ti'~~· ·
;:::4:\~ ~a.k.~n . . . . 5_1 ,251 61 ,25! . .... . .
.. "·' .~ı~ş_~···· ···· ... L..........~5.?/?..:.................. .L ... ............ .i.
··" Ji .ı?.~r?.~...........~ ............. §g.\5-.:.........................\........ ......................

332
11- Sürükle ve Bırak yöntemiyle C4 hücresindeki formülü C5 ve
C6 hücrelerine kopyalayın.

12- Son olarak Matematik. dersi not ortalamalarını karneye geçire-


ceğiz. D4 hücresini seçili hale getirin ve bu hücreye =Sayfa3!F4 yazıp
ENTER tuşuna basın. Çünkü ilk sıradaki öğrencinin Matematik dersi
not ortalaması Sayfa3 adlı sayfad F4 hücresindedir. Ortalama, Sayfa4
sayfasında D4 hücresinde görüntülenecektir.

Teknik u~e .,;;~11;:~.~yraJH-


J. .. · ı
·.-·jfiii-~5· 1 ·.;~·1Hfo1~~-.~~1Maie.ina~~i 1
; 52.si 68..75: ~-
t:ı.u.r.?.~ ......... :........... _'§i!$.T....-.:. ·.... :.$.$l....... ........ .._., . ,.

13- Sürükle ve Bırak yöntemiyle D4 hücresindeki formülü D5 ve


D6 hücrelerine kopyalayın.

SONUÇ: Karne hazır durumda. Kısaca tekrarlayayım: Sınıfın Fizik


notlarıve ortalamaları Sayfal adlı sayfada bulunuyor. Kimya notları ve
oıtalamalan Sayfa2 adlı sayfada. Matematik notları ve ortalamaları da
Sayfa3 adlı çalışma sayfasında. Karne de Sayfa 4 adlı çahşma sayfasın­
da hazırlanmış. Diğer sayfalardaki ortalamalar toplu halde Sayfa4 adlı
çalışma sayfasında görüntüleniyor.

333
UYGUIAMA 46- Ücret bordrosu (1)

Bu uygulamada bir işyerinde çalışanlara ait ücret bordrosu düzenle-


yeceğiz. Aylık brüt ücret hesaplanırken çalışma saatiyle saat ücreti çar-
pılacak. Elde edilen ücretten yüzde 20 (%20) vergi kesilerek net ücret
bulunacak. Çalışma saati; 'ç.S', Saati Ücreti; 'S.Ü', Vergi Oranı da 'V.O'
başlıkları altında olacak.

Hesapların anlaşılmasında kolaylık olması için Saat Ücreti rakamını


düşük tuttum. Böylece bütün rakamlar küçük olacak.

İşlem Basamakları:

1- Şekildeki tabloyu oluşturun.

Gördüğünüz gibi Saat Ücreti (S.Ü) ve Vergi Oranı (V.O) rakamlarını


biraz açığa yazdım. Çünkü bunlar sık sık değişebilir. Bu rakamlar for-
mülün içine girilseydi değişiklikleri gerçekleştirmek zor olurdu.

2- C2 hücresini aktif yapın. İlk elemanın brüt ücretini hesaplayaca-


ğız. Bunun için B2 hücresindeki çalışma saatiyle G2 hücresindeki saat
ücreti çarpılacak. C2 hücresine =B2*G2 yazın ve ENTER tuşuna basın.
İlk elemanın brüt ücreti görüntülenmiştir.

3- Şimdi de C2 hücresindeki formülü C3-C6 hücre aralığına kopya-


layacağız. Ancak daha önce yapmamız gereken bir iş var. C2 hücresin-
de bulunan =B2*G2 formülündeki G2 adresini sabitleyeceğiz. Bunun
için C2 hücresi aktif durumdayken F2 fonksiyon tuşuna basın. Formül
aktif olacaktır. Ekleme noktasını (kürsöıü) G harfiyle 2 rakamının ara-
sına taşıyın ve F4 fonksiyon tuşuna basın. Formül =B2*$G$2 biçimini

334
alır. Böylece G2 hücresi sabitlenmiştir. Formül nereye kopyalanırsa
kopyalansın bu adres değişmeyecektir.

4- Sürükle ve Bırak yöntemiyle C2 hücresindeki formülü C3-C6


hücre aralığına kopyalayın.

5- Sıra geldi ilk elemanın ödeyeceği vergiyi hesaplamaya. Bunun


için önce D2 hücresini aktif hale getirin. İlk elemanın ödeyeceği vergi
hesaplanırken C2 hücresindeki brüt ücretle H2 hücresindeki vergi ora-
nı çarpılacak. D2 hücresine =C2*H2 formülünü yazın ve ENTER tuşu­
na basın.

İlk elemanın ödeyeceği vergi hesaplandı ve D2 hücresinde görüntü-


lendi. Şimdi de bu formülü D3-D6 hücre aralığına kopyalayacağız.
Ama önce unutmamamız gereken bir şey var: Formüldeki H2 adresini
sabitlememiz gerekiyor. Bunun nasıl yapılacağını biliyorsunuz. Önce
D2 hücresin aktif hale getirin. F2 tuşuna basın. Formül aktif hale gele-
cektir. Ekleme noktasını (kürsörü) formüldeki H harfiyle 2 rakamının
arasına götürün. F4 tuşuna basın. Formül =C2*$H$2 olacaktır. ENTER
tuşuna basıp işlemi tamamlayın.

335
6- D2 hücresindeki formülü Sürükle ve Bırak yöntemiyle D3-D6
hücre aralığına kopyalayın .

7- Şimdi de net ücretleri hesaplayacağız. Brüt ücretten Vergi çıkın­


ca net ücret kalır. E2 hücresine gidin. Bu hücreye =C2-D2 yazıp EN-
TER tuşuna basın. İlk elemanın net ücreti görüntülenir.

_\.... . 150 1Sü00 :


155; .·· 1$s.fJıj
.... ···,14ü·;····· 14000! ":2855~ ........ -...... ..
~-
... - .. -:,................ ... -:..
'
-

'"·..,··!··········---····· ·'"""':.....
L\,kut , T?if · 1ioiiF. 34001
iiT --· .,,,.,.,. .. T2qL:::::J.?9@··-·.·)~oöt··-·.- . .. , ............-:. :... ·.:·...
8- E2 hücresindeki formülü E3-E6 aralığına kopyalayın. Diğer per-
sonelin ücretleri de görüntülenecektir.

9. Tablo tamamlandı. Birkaç eklemeyle daha anlamlı hale getirilebi-


lir. Örneğin bu tablodaki vergi oranı rakamı hariç tüm sayılar parasal
değerleri gösteriyor. Sayının yanında p ara birimi de yer almalı. Önce
B2-G6 hücre aralığını seçili hale getirin.

336
10- Biçim araç çubuğundaki simgesini tıklayın. Sayıların ya-
nında T.L yazısı da belirecektir.

DİKKAT: Para Birimi eklerken hücrelerde 1#######1 işaretleri beli-


rirse, hücrelerin genişliği Para Birimi simgesi için yetersiz kaldı demek-
tir. Hücrelerin genişliği herhangi bir bilgiyi görüntülemekte yetersiz
kaldığında bu işaretler görüntelenir. Bu işaretlerin bulunduğu sütunları
genişletirseniz rakamlar ve para birimi ortaya çıkacaktır.

Not: Hücrelere Para Birimi eklerken simgesini tıklamak yerine


Excel programının Biçim menüsündeki Hücreler komutunu çalıştır­
dığınızda ekrana gelen Hücreleri Biçimle diyalog kutusundaki Para
Birimi seçeneğinden de yararlanabilirsiniz.

Bu diyalog kutusundaki Ondalık Yerleri kutusunda bulunan 2 ra-


kamını O yaparsanız sayıların ondalık bölümleri görüntülenmeyecektir.

Uygulama 47- Ücret bordrosu (2)

Bu uygulamada bir işyerinde çalışan personelden evli olanlara daha


fazla ücret ödenmesi konusu işleniyor. M. Hali (Medeni Hali) sütunun-

337
da evliler için E, bekarlar B harfi yer alacak. Evli olanların net ücretle-
rine 100 TI. eklenecek.
Kolay anlaşılması için sayılan küçük olarak seçtim

İşlem Basamakları:

1- Şekildeki tabloyu oluşturun.

2- D2 hücresine gidin. Bu hücreye =EGER(C2="E";B2+1000;B2)


yazıp ENTER tuşuna basın.

Formüle göre C2 hücresinde E harfi varsa B2 hücresindeki sayıya


1000 eklenecek ve toplam D2 hücresine yazılacaktır. Aksi halde, yani
C2 hücresinde B harfi varsa D2 hücresine aynen B2 hücresindeki sayı
yazılır.
3- D2 hücresindeki formülü D3-D6 aralığına kopyalayın.

4- M. Hali sütununda E yazanların ücretlerine 1000 TI zam yapılmış


olduğunu göreceksiniz.

338
UYGULAMA 48- EGERSAY fonksiyonu (2)
Daha önce ( 40 nolu uygulamada) EGERSAY fonksiyonun kullan-
mış, notları SO ve daha yukarı olan öğrencilerin sayısını bulmuştuk.
Şimdiki uygulamada ise aynı fonksiyonun diğer bir kullanım tarzını gö-
receğiz. Bir sınıfta çeşitli illerden gelen öğrenciler var. Hangi ilden kaç
kişi var, onu hesaplayacağız.

İşlem Basamakları:

-
ı Aşağıdaki bilgileri çalışma sayfasına girin.

1
!
2- cıs hücresine =EGERSAY(D3:D12;"İstanbul") fonksiyonun ya-
zıp ENTER tuşuna basın.

cıs hücresinde istanbul'lu öğrencilerin sayıları görüntülenecektir.


3- cı6 hücresine Ankaralı, cı 7 hücresine de İzmir'li öğrencilerin sa-
yılarını bulan fonksiyonları yazın.

339
UYGUIAMA 49- SIKIJK fonksiyonu
Bu fonksiyon bir grup sayının dağılımını bulur. Örneğin bir sınıftaki
öğrenciler bir sınavda çeşitli notları alırlar. Kaç öğrenci 85-100 arasında
not aldı? Kaç öğrenci 0-50 arasında not aldı? Bu fonksiyon bunu hesap-
lar.

İşlem Basamakları:

1- Aşağıdaki bilgileri çalışma sayfasına girin.

SOYAOI NOTU ARAl.IK O iLiM


45 mo
pgg~1r1 ... 67 -~ .
85
~<arta~ 70
M~~nekşt~ 130
Sümbül 98
- s~·rç~· · Bı(
7,;ırnbak 87
Büibwt 4G
. Jımw 43
Ç~iik ... 82
Öı:türk 83
$ayır ... ?~~~ ......... ....... ....
........ . . . .......,.,......,....-..... .,..,..,,,,,,...,.,.,,,.,.... ~-------------

2- Öğrencilerin notları C2-C13 hücre aralığında yazılı. Biz notların


E2-E5 hücrelerinde verilen aralıklara nasıl dağıldığını bulacağız. Önce
F2-F5 hücre aralığını seçili hale getirin . Daha sonra =SIK-
LIK(C2:Cl3;E2:E5) fonksiyonunu yazın.

SOYAD! 'NOTU
45:
Jo§_r!n . :__ 67 ~
Kart::ıl i_~I ·
r~18;8~~ş8 34
·Sümbül .. 93;
·Sr3rç_
e· 34 :
'Zambak 87 '·
Bülbül .ttG;
Dernrr '~3:
.:x ""
. ··elik 82i
;öztürk 83
· 8a)'ır 78;
............................~····· · - - - -- - - -- "·······""'"""''"""""""-" · - - - --
3- Fonksiyonu yazdıktan sonra CTRL-SHIIT-ENTER tuşlarına basın .
(Önce CTRL ve SHIIT tuşlarına basın. Bunlar basılıyken bir de ENTER
tuşuna basın.) Dağılım rakamları görüntülenecektir.

340
Bu rakamlara göre 4 öğrenci 50 ve daha aşağı not almıştır. 51-70
arasında not alan öğrencilerin sayısı da 2'dir. 4 öğrenci 71-85 arasında,
2 öğrenci de 86-100 arasında not almıştır. Dağılımda sınır olarak veri-
len rakamların nasıl değerlendirildiğine dikkat ediniz. Örneğin 85-100
aralığı 85 rakamını kapsamıyor ve 86'dan başlıyor. Eğer 85 rakamını da
aralığa dahil etmek isterseniz E3 hücresindeki 85 rakamını 84 olarak
değiştirmeniz gerekir.

Not 1: SIKLIK fonkisyonun girerken birden fazla hücrenin seçili du-


nırnda olduğuna dikkat edin.

Not 2: Fonksiyonu yazıp CTRL-SHIFT-ENTER tuşlarına basınca seçili


alanda dağılım rakamları belirecektir. Bu hücrelerden seçili durumday-
ken formül çubuğuna bakarsanız yazdığınız formülün başına ve sonu-
na { } karakterlerinin gelmiş olduğunu göreceksiniz.

341
UYGUIAMA 50- Dizilerde şartlı işlemler

Bazı fonksiyonların çalışmaları şarta bağlanabilir. Örneğin bir dizide


belli şartı taşıyan sayıların toplanmasıistenebilir. Bu uygulamada üç
şirketin çeşitli tarihlerdeki ciroları listelenmekte ve her şirkete ait ciro-
lar ayrı ayrı toplanmaktadır. Üç şirketin adları şöyle: Arçelik, Vestel,
Beko.

İşlem Basamakları:

1- Aşağıdaki bilgileri çalışma sayfasına girin.

}\rçeHk
Vestel
. . ·.·.·.· p~ı("' '
...... •··· .. ···~· ....

. ... , ..........:;. ...

2- Arçelik şirketinin toplam cirosunu hesaplayacağız önce. Bunun


için El hücresini seçerek işe başlayın. El hücresine =TOPLA
(EGER(A2:A15="Arçelik";B2:Bl5) yazdıktan sonra CTRL-SIIlFf-EN-
TER tuşlarına basın. (CTRL ve SHIFT tuşları basılı tutulurken ENTER tu-
şuna basılacak.) Sonuç, yani Arçelik firmasının toplam cirosu El hücre-
sinde görülecektir.
r··:-·-····,,·----··---········-·-········--···- ····-·--·-·····-··--·-·-

ı
!
! 20
·fg;
25;
10
20 ,
20.i.
5 j
·ıo ı

---~:_ J
\eı ;

342
3- Vestel firmasının toplam cirosunu bulup görüntülemek için E2
hücresine =TOPLA(EGER(A2:Al5="Vestel";B2:B15) yazdıktan sonra
CTRL-SIDFT-ENTER tuşlarına basın. Vestel firmasının toplam cirosu
görüntülenir.
4- Beka firmasının toplam cirosunu bulan formülü E3 hücresine ya-
zıp CTRL-SHIFT-ENTER tuşlarına basın. Sonucu göreceksiniz.

Not: Formüller girilip sonucu görüntüledikten sonra bu hücrelerden bi-


risini seçili hale getirip formül çubuğuna bakarsanız yazdığımız formülün
süslü parantezler içinde görüntülendiğini göreceksiniz. Bu, dizilerde CTRL-
SHIFf-ENTER kullanılarak girilen fonksiyonlarla ilgili özelliktir.

Uygulama 51- Excel çalışma sayfasında


metin kutusu oluşturmak

Excel çalışma sayfasında hücrelere alfanümerik bilgi de (kelimeler


ve cümleler) girilebiliyor, bunu daha önce görmüştük. Ancak cümleler
biraz uzun olursa birkaç satırda yazılması gerekir, aksi halde ekran dı­
şına taşar ve aynı anda tüm yazıyı görmeniz zorlaşır. Bu zorluğu yen-
meniz için Excel, çalışma sayfasında metin kutusu oluştunıp içine iste-
diğiniz yazıları yazma şansı veriyor size. Bu uygulamada çalışma sayfa-
sında metin kutusu oluştunıp içine yazı yazacağız.

İşlem Basamakları:

1- Şekildeki çalışma sayfasını hazırlayın.

1 ·jMenel<şe
L.........~..............................................~.......................~......................................................................_ . ___

343
2- Çizim araç çubuğundaki simgesini tıklayın. Maus işareti
+ işaretine benzer bir biçim alır. Bu durumda maus işaretini metin ku-
tusu oluşturacağınız yere götürdükten sonra sol maus tuşunu basılı tu-
tarak sağ-aşağı doğru mausu çapraz biçimde sürükleyin. Metin kutusu
uygun büyüklüğe ulaşınca sol maus tuşunu bırakın.

'.A.iiı . :soyadi
Sedat Han ·············· 56 '
Vedat Tan .· '. .· · 8(
:~;ri~s ··~:~ ···· ·· 1· ·· ···· · f~
Hakan Demir 48
Orhan Çelik 82
Beril .. Menekşe 70

Metin kutusu oluşmuş durumdadır ve ekleme noktası da metin ku-


tusundadır.Metin kutusuna yazınızı yazabilirsiniz.

3- Metin kutusuna öğrencilerin notlarıyla ilgili açıklamalar yazın.

Yazıyı yaz-
dıktan sonra
metin kutusu- Adı . .... Soyadı
Sedat Han 56
nun dışında Tan si
Vedat
bir hücreyi tık­ · 'f..ıergis San 45
layın, metin :Aylin Can 76 '
kutusu seçili ·Hakan Demir 48
durumda ol- 'Orhan Çelik 82
Beril Menekşe 70
maktan çıksın.
Metin kutusu- Bu notlar bilgisayar öğrencilerinin Excel dersinde
mı tekrar seçili almış oldu kları notlardır. Toplam yedi öğrenciden
.......... sadece iki tanesi 50'nin altında not almıştır. Daha
hale getirmek
. · sonra da VVord programından aldıkları notlarla
için maus işa ­ bunların ortalaması alınacaktır.
reti metin ku-
tusunu göste-
rirken sol maus tuşunu bir kez tıklayın. Metin kutusu seçili hale gele-
cek, kenar ve köşelerinde tutamaklar belirecektir.

344
·Hakan Demir 49:
Orhan .çelik 82
Beril ·1v1enekşe 70
.. ~~~~~~cm!J~~~~~~~.,
~ Bu notlar bilgisayar öğrencilerinin Excel dersinde
.~ almış oldukları notlardır. Toplam yedi öğrenciden
.~ sadece iki tanesi 5~'nin altında not almıştır. Daha
·····
sonra da Word programından aldıkları notlarla
bunların ortalaması alınacaktır.

Maus işareti tutamaklarm üzerine götürüldüğünde iki yönlü yatay


veya dikey ok şekline gelir. Bu durumda sol maus tuşunu basılı tutup
mausu sürüklemekle metin kutusunun boyutlarını değiştirebilirsiniz.
4- Maus okunu kenar çizgilerinden birisinin üzerine götürdüğünüz­
de maus işareti uçları oklu artı işaretine dönüşür. Bu durumda sol ma-
us tuşunu basılı tutarak mausu sürüklerseniz metin kutusunu çalışma
sayfasında bir yerden başka bir yere taşıyabilirsiniz.

5- Bazen metin kutusunun çizgileriyle Excel çalışma sayfasındaki kı­


lavuz çizgilerinin çakışmasını isteyebilirsiniz. Bu durumda sayfanın gö-
rünüşü daha şık olur. Bunun için maus işareti çizim moduna geçince
metin kutusunu oluştururken klavyedeki Alt tuşunu da basılı tutmalısı­
nız. Şimdi bu işlemi yapalım.

Önce çizim araç çubuğundaki simgesini tıklayın. Maus işa-


reti çizim moduna geçti. Şimdi de klavyedeki Alt tuşunu basılı tutarak
mausu sağ aşağı çapraz olarak sürükleyin. Metin kutusu oluşurken bü-
yüme basamağı olarak kılavuz çizgilerini kullanır. Yani metin kutusu-
mm kenar çizgileri hep kılavuz çizgileriyle çakışır. Ben birisi yatay, di-
ğeri de dikey olmak üzere iki r·(!liliiJiiiiiiiiiiiü
tane metin kutusu oluşturdum. l
Her ikisinin de kenar çizgileri
kılavuz çizgileriyle çakışıyor.
Şekilde bunları görüyorsunuz.

Bu metin kutularından her-


hangi birisine yazı yazmak is-
terseniz üzerini bir kez tıklama­
nız yeterlidir. Metin kutusu se-
çilecek ve ekleme noktası me-
tin kutusunun başına konumla-
nacaktır.

345
Uygulama 52- Demirbaş listesi hazırlamak

Bu örnekteki uygulama, özellikle bölüm ve atelyelerde demirbaş


listesi tutan arkadaşlarımın çok işine yarayacak. Bilindiği gibi bütün
kurumlardaki araç, gereç, cihaz ve malzemelerin adları, özellikleri ve
miktarları demirbaş listelerinde kayıtlıdır. Bu uygulamada Bilgisayar
bölümleri için bir demirbaş listesi örneği verilmektedir. Kolayca anlaşı­
labilmesi için liste kısa olarak hazırlanmıştır.

İşlem Basamakları:

1- Çalışma sayfasına aşağıdaki bilgileri girin.

CihıımıAd.ı öuılllği Miktarı {Adet) Bulımduğtı Yer ,


1'h ·oSHSSk~p··.-· _____--_-_f_:._'Cı_fi_·__h_:_;i_-· _ .. . ...... ,,... ~ ()ıÇrr}e Cab ··
."'.".C.: .. .': ...::....': .:'. . .. .
12_1, Gııç _}<ayr.ağı .... . ... iOJ2 °{•)it ,ayıırlı , 1 ..... J9.~ .9!çtı:1.~.-~~ ., '" .. . . ~..
.-. ı:gQi!sı2:.§Jat_ .. ! Pentiı;m _ıı _. 2,1 fü!gis~x~~-~ .hı,ıtı.....i
l23 : Yaııcı ;Laser 2 Bilgisayar Lab '
J_?1T<>>JjiCI .... .... __($.ilgi;;~yar L~~ . _
1)5 O;:ıto skw
·-·· - ··-··· ·-- .. ... .. ....- .. .. 1_Şi!gi~~yar !,ab
12G •8i1Ji%ıy;.ır Ha$~ 3_ı ;21 _ Şijgi~ay~rJ~b

2- Bu listenin uzun olduğunu varsayalım. Düşey kaydırma çubuğu­


nu kullanarak listeyi aşağı doğru kaydırırsanız bu defa da başlıklar gö-
rünmeyecektir. Bu gibi durumlarda başlıkları sabitleyebilirsiniz. Başlık­
ları sabitlemek (dondurmak) için önce dondurmak istediğin satırın bir
altına ve ilk sütuna gidin. Örneği biz şimdi 1 numaralı satırı dondur-
mak istiyoruz. O halde 2 numaralı satırda A sütununa gideceğiz. A2
hücresine gidin. Daha sonra da Pencere menüsündeki Bölmeleri
Dondur komutunu çalıştırın.

3- Çalışma sayfasındaki ilk satır


(yani başlıklar) dondurulmuş du-
rumdadır. Başlık satırının altında bir çizgi oluşacaktır. Bundan sonra
Düşey kaydırma çubuğuyla görüntüyü aşağı kaydırsanız bile bilgiler

346
yukarı doğru kayacak buna karşılık başlıklar ekranda görünecektir. Ya-
ni alt sıralardaki
verileri görürken bunların hangi başlıkların altında ol-
duklarını da görebileceksiniz.

....................
-:rcı·i;~~;:c;r-·· . --·· ·"·. · ·
Güç 1r:ı •öıçrrım L<ıtı
122•_f.:ıi!gi%1aı 21_.Bilgisay<1r Lı.ıb
·123: Yaz~o L4:s-er 2 Eilgisııyar Lmb
124 foıayıcı B4 ı •6B~isayar L•!ı
125 fhb ;>how 1 8Hgisayat Lah.
· j;:•f'.;f'Jil!jH'Pl~;llf kleM')l fai!girgyar Lıı!ı

4- Özellikle uzun listelerde, aranan bazı bilgilere kolayca ulaşmak


için Düzen menüsündeki Bul komutundan yararlanabilirsiniz. şimdi
listede Yazıcılarla ilgili bilgiye ulaşmak istediğinizi düşünelim. Önce
Düzen menüsündeki Bul komutunu çalıştırın.

Ekrana Bul adlı bir diyalog kutusu geldi. Diyalog kutusundaki Ara-
nan başlığı altındaki metin kutusuna Yazıcı yazın. sonra da diyalog
kutusundaki Sonrakini Bul düğmesini tıklayın. Listedeki Yazıcı keli-
mesi bulunacaktır.

Sonrakini Bul düğmesini tekrar tıklarsanız listede başka bir Yazıcı


kelimesi varsa onu da bulabilirsiniz. Listede başka bir Yazıcı kelimesi
yoksa· arama işlemi tamamlanır.

347
Uygulama 53- "Böyle Olsa" mantığıyla
veri listesi hazırlamak (1)

Bu uygulamada bir formüldeki değişkenlerden birinin değiştirilme­


siyle oluşacak sonuçların bir listesi elde edilir. Formüldeki değişkene
bir dizi değer uygulanır ve her değer için sonuçlar bulunur.
Bir bankadan %90 oranında faizle 1000000 TI (Bir milyon) borç al-
dığımızı ve bu borcu 12 ayda geri ödeyeceğimizi varsayalım. Ödeme
miktarını bulmak için DEVRESEL_ÖDEME fonksiyonunu kullanıyoruz.
Şimdi ayrıca bankanın uyguladığı faiz oranı %85, %90, %95 ve %99 ol-
saydı ödememiz gereken miktar ne kadar olurdu, bunların bir listesini
çıkaracağız.

İşlem Basamakları:

1- Çalışma sayfasına aşağıdaki bilgileri giren. Bilgi girişlerinde hücre


adreslerine dikkat edin, çünkü anlatım bu hücre adresleri dikate alına­
rak yapılacak.

2- C3 hücresine 0,9 yazdık. Bu da %90 demektir. Görünüşün daha


anlamlı olması için C3 hücresi seçiliyken Biçimlendirme araç çubu-
ğundaki J simgesini bir kez tıklayın. Hücredeki görüntü değişe-
cektir. ·

Faiz Oranı %90


· ~~~n:ı~ ?.<!Yı.s~ : 12.
Ana Para 1000000

3- Şimdi de D3-D6 hücre aralığına aşağıdaki bilgileri girin.

348
4- D3-D6 hücre aralığını seçili hale getirdikten sonra Biçimlendir-
me araç çubuğundaki % simgesini tıklayın.
Hücrelerdeki sayılar ile görüntülenecektir.

%95
%99

5- D2 hücresine =DEVRESEL_ÖDEME(C3/12;C4;C5) yazıp ENTER


tuşuna basın. %90 faizle 12 ayda ödemeniz gereken taksit tutan hesap-
landı.

6- D2-E6 hücre aralığını seçili hale getirin.

349
Veri menüsündeki Tablo komutunu çalıştırın. Ekrana Tablo adında
bir diyalog kutusu gelir. Bir diyalog kutusundaki Sütun Giriş Hücresi
metin kutusunu bir kere tıklayıp ekleme noktasını oraya getirdikten
sonra C3 hücresini tıklayın. Sütun giriş hücresi metin kutusunda $C$3
hücre adresi belirir. Formüldeki değişecek hücreyi böylece tanımlamış
olduk. Son olarak da diyalog kutusundaki Tamam düğmesini tıklayın.

· ltiıiiöi·aiıt
. . . iAna Para
H~t1~1·1~ ş~y·
. ·~-- .. •· . , -~·.. -· ·--~ '

'

7- Çe,şitli faiz oranı seçeneklerinde ödenmesi gereken taksit tutarları


görüntülendi.

Örneğin faiz oranı %85 olursa taksit 126.277,83 TL. oluyor. Buna
karşılık
faiz oranı %95 olursa taksit 132.122,64 TL olarak bulunuyor.
Her sonuç ilgili faiz oranının yanındaki hücrede görüntüleniyor.

Uygulama 54- "Böyle Olsa" mantığıyla


veri listesi hazırlamak (2)

Bir önceki uygulamaya çok benzeyen bir işlem yapacağız şimdi.


Önceki uygulamada faiz oranı değişiyordu, bu uygulamada ise taksit
sayısı değişecek. Farklı taksit sayılarına karşılık taksit tutarının (yani

350
ödeme miktarının) hesaplanmasını ve tablosunun çıkarılmasını görece-
ğiz.
Bir bankadan %90 oranında faizle 1000000 TI (Bir milyon) borç al-
dığımızı varsayalım. Borcumuzu 12 ayda, 14 ayda, 16 ayda, 18 ayda
veya 20 ayda geri ödemeyi planlıyoruz. Her alternatife karşılık taksit
tutarını gösteren veri tablosunu hazırlayalım.

İşlem :Basamakları:

1- Çalışma sayfasına aşağıdaki bilgileri girin. Bilgi girişlerinde hücre


adreslerine dikkat edin, çünkü anlatım bu hücre adresleri dikkate alı­
narak yapılacak.

%90
12
1000000

2- Şimdi de D3-D6 aralığındaki hücrelere taksit sayılarını 12, 14, 16


13 ve 20 olarak yazalım .

.Faiz Oram 12
Ödeme Sayısı 14
Arıa Parn

·········~······················~···········-··--··------~~-------

3- El hücresine =DEVRESEL_ÖDEME(C2/12;C3;C4) yazıp ENTER


tuşuna basın. 12 ayda ödemeniz gereken miktar bulunmuş oldu.

'Faiz Oram
. Ödeme Sayısı
Ana Para

20
1
...........................!

351
4- Dl-E6 hücre aralığını seçili hale getirin. Veri menüsünden Tablo
komutunu çalıştırın. Ekrana gelen Tablo diyalog kutusundaki Sütun
Giriş Hücresi metin kutusunu bir kez tıklayıp ekleme noktasını oraya
getirdikten sonra G3 hücresini tıklayın. Metin kutusunda $C$3 belire-
cektir. Tamam düğmesini tıklayın.

5- Taksit sayılarına göre ödenecek miktarlar listelenir.

,.... __ .... : 12 9?77 .~n TL


Faiz Oranı %90 ' 12. -129277,8313;
·'"'··'-
'. odaılie sa\!ısı
.··· ·· .'.. . .. > .'.. ...
· ·12.,
. . .......;
···_,_-__4:__.:__·. ..~ 1_--_-_1_·_·_-,_.. :_,.,__-_9_·__..·7__--_-_.3___-_7_·_-·_2_·-·_1_·_-_•. __ -_·
Ana Para . 1C!ÖDOOO 16: -109391,1571 ·
18: ~ 1ö3ci28 }35i€!C
·· 201 -.~şq~trnrn~t ·.
Örneğin E3 hücresindeki sayı 14 aylık alternatifteki taksit tutarını
gösteriyor.

352

You might also like