You are on page 1of 54

T.C.


LLÎ EĞİ
TİM BAKANLIĞI

MEGEP
(MESLEKİEĞİTİ
M VE ÖĞRETİ
M Sİ
STEMİ
NİN
GÜÇLENDİRİ
LMESİPROJESİ)


LİŞİ
M TEKNOLOJİ
LERİ

YAPISAL PROGRAMLAMA TEMELLERİ

ANKARA 2007
ğıtarafı
Milli Eğitim Bakanlı ndan geliş
tirilen modüller;
 Talim ve Terbiye Kurulu Baş kanlığı nı
n 02.06.2006 tarih ve 269 sayı lıKararıile
onaylanan, Mesleki ve Teknik Eğ itim Okul ve Kurumları nda kademeli olarak
yaygınlaştı
rılan 42 alan ve 192 dala ait çerçeve öğretim programları nda
amaçlanan mesleki yeterlikleri kazandı rmaya yönelik geliş tirilmişöğretim
materyalleridir (Ders Notları
dır).

 Modüller, bireylere mesleki yeterlik kazandı rmak ve bireysel öğ renmeye


rehberlik etmek amacıyla öğrenme materyali olarak hazı ş
rlanmı, denenmek ve
geliş
tirilmek üzere Mesleki ve Teknik Eğ itim Okul ve Kurumları nda
uygulanmaya baş ş
lanmıtır.

 Modüller teknolojik geliş melere paralel olarak, amaçlanan yeterliği


kazandı rmak koş ulu ile eğitim öğ retim sı rası
nda geliş tirilebilir ve yapı
lması
önerilen değiş
iklikler Bakanlı kta ilgili birime bildirilir.

 Örgün ve yaygın eğitim kurumları , iş


letmeler ve kendi kendine mesleki yeterlik
ı
kazanmak isteyen bireyler modüllere internet üzerinden ulaşlabilirler.

 Bası şmodüller, eğitim kurumları


lmı rencilere ücretsiz olarak dağı
nda öğ tı

r.

 Modüller hiçbir ş
ekilde ticari amaçla kullanı ı
lamaz ve ücret karş ğ
lıında
satı
lamaz.
İ
ÇİNDEKİ
LER

AÇIKLAMALAR ....................................................................................................................ii
Gİ RİŞ.......................................................................................................................................1
ÖĞRENME FAALİ YETİ- 1 ...................................................................................................3
1. ALT PROGRAMLAR ......................................................................................................... 3
1.1. Modüller Halinde Programlama ...............................................................................3
1.2. Alt Program Tanı mlama ...........................................................................................7
1.3. Alt ProgramıKesmek ve Değ er Göndermek ............................................................8
1.4. Değ er Aktarı mı ....................................................................................................... 10
UYGULAMA FAALİ YETİ .......................................................................................... 12
ÖLÇME VE DEĞERLENDİ RME ................................................................................13
ÖĞRENME FAALİ YETİ- 2 ................................................................................................. 14
2. KULLANICI ARABİ Rİ Mİ ................................................................................................ 14
2.1. Kullanı cı Arabiriminde Pencere Tasarı mı .............................................................. 15
2.2. Örnek Uygulama..................................................................................................... 15
UYGULAMA FAALİ YETİ .......................................................................................... 20
ÖLÇME VE DEĞERLENDİ RME ................................................................................21
ÖĞRENME FAALİ YETİ- 3 ................................................................................................. 22
3. HATA Gİ DERME.............................................................................................................. 22
3.1. Kod Böceği Nedir? ................................................................................................. 22
3.2. Yazı m Hataları ........................................................................................................23
3.3. Çalı şma ZamanıHataları ........................................................................................ 24
3.4. Mantı k Hataları ....................................................................................................... 24
3.5. Adı mlamak ............................................................................................................. 25
UYGULAMA FAALİ YETİ .......................................................................................... 29
ÖLÇME VE DEĞERLENDİ RME ................................................................................30
ÖĞRENME FAALİ YETİ- 4 ................................................................................................. 31
4. DOSYALAMA .................................................................................................................. 31
4.1. Metin Dosyalar ....................................................................................................... 31
4.2. Rasgele Eriş imli Dosyalar ...................................................................................... 33
4.3. İkilik Dosyalar ........................................................................................................35
UYGULAMA FAALİ YETİ .......................................................................................... 37
ÖLÇME VE DEĞERLENDİ RME ................................................................................38
MODÜL DEĞERLENDİ RME .............................................................................................. 39
CEVAP ANAHTARLARI ..................................................................................................... 40
SÖZLÜK ................................................................................................................................ 41
KOD ÖRNEKLERİ ................................................................................................................42
ÖNERİ LEN KAYNAKLAR.................................................................................................. 49
KAYNAKÇA .........................................................................................................................50

i
AÇIKLAMALAR

AÇIKLAMALAR
KOD 481BB0026

ALAN Biliş
im Teknolojileri

DAL/MESLEK Alan Ortak

MODÜLÜN ADI Yapı


sal Programlama Temelleri
Programlama dilinde alt program yazı mı , hata düzeltme ve
MODÜLÜN TANIMI
dosyalama ile ilgili öğretim materyalidir.
SÜRE 40/16

ÖN KOŞUL şDiyagramlarımodülünü almı


Akı şolmak.

YETERLİ
K ş
Alt programlar ve dosyalarla çalımaya hazı
rlı
k yapmak

Genel Amaç
Gerekli ortam sağlandı ğında, alt program
yazabilecek, kullanıcıdostu arabirimleri yapabilecek ve
hata düzeltme yöntemleri ile hatalarıdüzeltebileceksiniz.
MODÜLÜN AMACI Amaçlar
1. Alt program yazabileceksiniz.
2. Kullanı cı arabirimi yapabileceksiniz.
3. Programıtest edip, hataları nıdüzeltebileceksiniz.
4. Dosyaya bilgi yazmayıve okumayıyapabileceksiniz.

EĞİ
TİM ÖĞRETİ M Bilgisayar laboratuvarıve bu ortamda bulunan
ORTAMLARI VE bilgisayar, lisanslıiş ş
letim sistemi programıve akı
DONANIMLARI diyagramısembolleri ile ilgili panolar.

Her faaliyet sonrasında o faaliyetle ilgili


değerlendirme sorularıile kendi kendinizi
değerlendireceksiniz. Modül içinde ve sonunda verilen
öğretici sorularla edindiğiniz bilgileri pekiş tirecek,
ÖLÇME VE
uygulama örneklerini ve testleri gerekli süre içinde
DEĞERLENDİ
RME
tamamlayarak etkili öğ renmeyi gerçekleş tireceksiniz.
Sırasıyla araştı
rma yaparak, grup çalı şmaları na katılarak ve
en son aş amada alan öğretmenlerine danı ş arak ölçme ve
değerlendirme uygulamaları nıgerçekleş tiriniz.

ii

RİŞ


RİŞ
Sevgili Öğrenci,

Her şeyden önce herkes bir programlama dilini öğ


renebilir. Bilgisayarıprogramlama
yüksek bir zekâ ve matematik bilgisi gerektirmez. Sadece asla vazgeçmeme sabrıve
öğrenme isteği yeterlidir.

Programlama bir hünerdir. Bazıinsanlar doğal olarak diğ erlerinden daha iyidir, ama
herkes pratik yaparak iyi olabilir. Baş
aramamaktan korkmak yerine, kendinizi bu maharete
vererek, öğ renmek için uğraş ın. Programlama eğ lencelidir, fakat sinir bozucu olabilir ve
zamanı nızın da boşa geçmesine neden olabilir. Bu sebeple bu modülleri takip ederek, en az
sıkı
ntıve en yüksek memnuniyet ile programlamayıöğ reneceğiz.

Bu modül ile kazanacağı nız konular alt program yazmak, kullanı


cıdostu arabirim
yapmak, hata düzeltme yöntemleri ile hatalarıdüzeltme ve dosyalamadı r. Modülü
ğ
bitirdiğinizde anlamadıı
nız yerleri tekrar okuyup uygulayı

z.

Konular kapsamlıolarak, derinlemesine anlatılmamıştı ı


r. Buzdağnı
n sadece üstünü
görüyorsunuz. Ne kadar çok uygulama ve araş tırma yaparsanı
z kendinizi o kadar
geliş
tirirsiniz, ilerletirsiniz.

Her programlama dilinin kendine has kurallarıbulunmaktadı r. Bu kurallar kimi zaman


birbirine benzerken kimi zaman farklı lı
klar göstermektedir. Kuralları n anlaş ılı
r olmasıher
zaman programcı lar tarafı
ndan istenen bir özelliktir. Siz de bu modülde çeş itli programlama
dillerinden örnekler görerek iş
in özünü kavramanı z sağ lanacaktır.

Belli yerlerde geçen araş



rma konularıiçin “Önerilen Kaynaklar” kı
smı
ndan yardı
m
almayıunutmayı nız.

1
2
ÖĞRENME FAALİ
YETİ
–1

ÖĞRENME FAALİ
YETİ- 1
AMAÇ
Mehmet
Programı
n tekrarlanan belli yerlerini alt program hâline getirebileceksiniz.

ARAŞ
TIRMA

Bu faaliyet öncesinde hazı


rlı
k amaçlıaş
ağı
da belirtilen araş

rma
faaliyetlerini yapmalı
sınız.

 Tek programlama dili ile çoğ u istediğimizi yapabiliyoruz. Aynıprogramıdiğer


dillerde yazmanı n amacıne olabilir, araştı
rınız.
 Seri üretim ile üretilen bir malın yapım aş amalarınıaraş tı
rarak arkadaş
ları
nıza
anlatınız. Mesela, bir otomobilin üretim aşamalarıgibi…

1. ALT PROGRAMLAR

Bilgisayarda yazı lan programlar genellikle bellek ve disk gibi kaynaklarıen az


tüketecek ş ekilde olan, hı zlıçalışan ve az kod yazı larak yapı
lmışprogramlardı r. Basit
programlarıçoğ u kişi rahat okur ve anlar. Program büyüdükçe karmaşık hâle geleceği için,
en baş tan planlıhareket etmek gerekir. Daha sonra zaman kaybıolmamasıiçin önceden
önlem almamı zda fayda vardı r.

Hikâye veya roman yazar gibi, plansız olarak program yazılmamalı dır. Basit ş
ekilde
çalış
masısağ lanan programa yeni eklentiler yaptıkça program karı ş
ık ve anlaş ı
lmaz hâle
gelebilir. Kodları
nız okunmasızor olan çöp kodlara dönüş memelidir.

1.1. Modüller Hâlinde Programlama


Programlamayıkolaylaş

rmak için programcı
lar bazı
yöntemler geliş
tirmiş
tir, bunlar:

 Sı
ralıkomutlar,
 Dallanma komutlarıve
 Döngü komutlarıdır.

3
“Sıralıkomutları ”ş ğ
u ana kadar yaptıı
mı z programlarda ifade ettik. Bu tip komutlar
alt alta yazılı
r, en sonunda program sonlandı


r.

Pozitif dilinde sıralı komut örneği


BAŞLA
Ad:metin;
yazstb("İlk Pozitif Programımız");
Ad=bilgigirişi("İsminizi giriniz ");
yazstb("Selam, "+Ad);
SON

Tabii ki bir program, değ iş


en durumlara göre baş
ka iş
lemler de yapı
labilmelidir. Bunu
er” komutu ile yapabiliriz.
“Eğ
Pozitif dilinde dallanma komut örneği
BAŞLA
Ad:metin;
yazstb("Eğer kullanımı");
Ad=bilgigirişi("İsminizi giriniz ");
Eğer(Ad="Ali");
{
yazstb("Selam, "+Ad);
}
değilse(Ad<>"Ali");
{
yazstb(Ad+" sen de kimsin?");
}
SON

Program içerisinde belli işlemlerin devamlıtekrar edilerek iş


lenmesi gerekebilir.
Bunları“Döngü, İken” komutları ile yapabiliriz.

Pozitif dilinde döngü komut örneği


BAŞLA
i:sayı;
yazstb("Döngü komutu, çift sayılar geriye doğru sıralı");
döngü(i=10,i>=0,-2);
{
yazstb(i);
}
SON

Diğer programcı lar sizin programı nızıanlayabilir ise, kendileri de değ


iştirebilirler ve
geliş
tirebilirler. Tabi bu kural sizin için daha çok geçerlidir. Tek küme hâlinde tüm programı
yazmak kumdan kale yapmak gibidir. Eninde sonunda bir yerden çökecektir.

Büyük programlar genellikle küçük programları n (alt program da denir) birleşmesi


ile yapılı
r. Alt programlarıbaş ka programcı lar yazabilir. En sonunda çalıştığından emin
olunan küçük programlar kopyala yapı ştır ile birleştirilir. Bunu bir evin tuğlaları na
benzetebiliriz. Birine bir ş
ey olunca tüm ev çöküp gitmez. Bozuk kı sım tekrar yazı larak
yerine konur. Bu yöntem ile programımı za olan güvenirliği artı rı

z.

4
Alt programlara “modül” diyebiliriz. Alt programlar hâlinde yazı
larak yapı
lan
programlamaya “modüler programlama” denir.

Şimdiye kadar yapı lan programlar tek parça halindeki “ana program”dan oluş
uyordu.
Sadece bir çeş
it iş
, görev yapabilir hâlde idi.

Sık kullanılan komut kümelerini alt program hâline getirebiliriz. Bu alt programlar
kod yazı mı nda genellikle “ana program”ı n üst kısmına yazı lı
r. Değ işken adlandı rmasıile
aynıkurallar çerçevesinde isimlendirilir ve alt programa neler yollanacağı , alt programdan
neler döneceğ i belirlenir. Açı klama satı
rlarıile önemli noktalarıbelirtebilir, alt programların
ne işe yaradığınıanlatabiliriz.

Başla Hesapla

2 sayı
sonuc = a^4 – 2*a*b
giriniz: a, b

Hesapla
Geri Dön

Sonucu
göster

Bitir

Şekil 1.1: Alt program yazmak

1. Baş la (Ana Program)


1. Hesapla
2. Oku; a, b
2. sonuc = a ^ 4 – 2 * a * b
3. Hesapla
3. Geri Dön
4. Yaz; sonuc
5. Bitir

Örneklerdeki gibi alt programlar aslı


nda ana programda olduğ u gibi, belli bir
başlangıç ve geri dönüşbloğu içinde olan programlardı
r. Alt programlar çağrı
lmadı kları
ş
sürece çalıtı

lamazlar.

5
Alt programın ismini gerektiği yerlere yazıp, çağı ğ
rdıımı ş
zda program akııo program
kısmı na yönelir. Alt programda işlemler tamamlanı nca ana program kaldığıyerden devam
eder.
Alt programlarıayrıdosya olarak kaydetmeyiz. Hâlâ tek dosya hâlinde, ana program
ve alt programlarımı zdan oluş
an bir programı mız vardır.

İ ğacak kadar uzun olmalı


deal olarak bir alt program ekrana sı dı
r. Böylece anlaş ılı
r,
okunaklıve hata ayı klamasıkolay programlar yazabiliriz. Hatalıolan satı
rları
n tespiti bu
sayede kolaylaşır.

Not:Şekillerdeki siyah olmayan diğer mavi ve kı rmızırenklerdeki oklarış ema çizerken sizin
yapmanı za gerek yoktur. Alt programa gidişve dönüş
ü belirtmek için yapı
lmı
ştı
r.

Şekil 1.2: “ Crocodile Technology” programıile alt program yapı


Bazıdillerde alt program kelime olarak fonksiyon ile aynıanlamdadı r. C dilinde


sadece fonksiyon yazabilirsiniz. Basic dilinde ise prosedür ve fonksiyon yapımıbenzer
mantıkla yazı
lır. Terimler değ
işik olsa da temel aynı
dır.

 Prosedür: Bir iş
lem bloğ ş
u çalıtı
rılır, ama değer döndürmez.
 Fonksiyon: İçine değ er yollanır, iş lenir ve kendi adı
na bir sonuç değ
eri
döndürür.

6
1.2. Alt Program Tanı
mlama

Her alt programı n yaptığ ıiş


i kı
saca ifade eden uygun bir ismi olmalı
dır. İ
çinde en az
bir satır komut bulunan bu alt programlara “kendi tanı mladı ğımız” komutlar diyebiliriz.
Önceki derslerde gördüğ ümüz matematik ve metin komutlarıise programlama dilinde
tanımlı hazır alt programlardır.

Yazdı ğımız mini programlarda bazıön değ erlerin girilmesi gerekebilir. Bunu bayrak
yarış ı
ndaki atletlerin birbirlerine bayraklarıvermelerine benzetebiliriz. Genellikle gönderilen
bilgileri parantez içine alı
rız.

Bir alt programa birden fazla parametre yollanabilir. Parametreler aslı


nda bildiğ
imiz
değ
işkenlerdir. İ
simlendirme ve tür seçimini düzgün yapmamı z gereklidir.
Klasik programlama örneği:


Oku; "Öğrencinin adını giriniz ", öğrAd
Oku; "Öğrencinin soyadını giriniz ", öğrSoyad
Oku; "Öğrencinin diğer bilgilerini giriniz", öğrDetay
Yaz; öğrAd & öğrSoyad & öğrDetay

Oku; "Velinin adını giriniz ", veliAd
Oku; "Velinin soyadını giriniz ", veliSoyad
Oku; "Velinin diğer bilgilerini giriniz", veliDetay
Yaz; veliAd & veliSoyad & veliDetay

Tekrar eden kı

mlarımodüler (prosedür) hâle getirelim:

Prosedür VeriGirişi

Oku; "Kişinin adını giriniz ", kişiAd


Oku; "Kişinin soyadını giriniz ", kişiSoyad
Oku; "Kişinin diğer bilgilerini giriniz", kişiDetay
Yaz; kişiAd & kişiSoyad & kişiDetay

Prosedür Bitti

Başla
Yaz; "Öğrenci için"
VeriGirişi
Yaz; "Veli için"
VeriGirişi
Bitir

7
1.3. Alt Programı
Kesmek ve Değ
er Göndermek
Döngülerde olduğu gibi, bazışartlar meydana geldiğinde alt programı n sonlanıp, ana
programa dönmesi gerekebilir. Genellikle "çı
kış– exit" komutu ile alt programlar istenilen
yerden bitirilebilir.

Başla Hesapla

2 sayı
giriniz: a, b Evet “0’a bölünemez”
b=0 hata mesajını
göster

Hesapla Hayı
r
sonuc = a / b

sonuc
değerini
göster
Geri Dön Çı
kış
Bitir

Şekil 1.3: Alt programdan istenmeyen ihtimalde çı


kmak

Şekil 1.3’deki örnekte acaba “b” değişkeni, 0 olunca ekrana ne sonuç yazı

r?

Alt program içine değer gönderme (parametreli prosedür) örneğ


i:

Prosedür VeriGirişi(Metin mesaj)


Oku; mesaj & " adını giriniz ", kişiAd
Oku; mesaj & " soyadını giriniz ", kişiSoyad
Oku; mesaj & " diğer bilgilerini giriniz ", kişiDetay
Yaz; kişiAd & kişiSoyad & kişiDetay
Prosedür Bitti

Başla
VeriGirişi("Öğrencinin")
VeriGirişi("Velininin")
Bitir

Alt programdan ana programa değ


er gönderme (fonksiyon) örneğ
i:

8
Örnek 1:
Fonksiyon VeriGirişi(Metin mesaj)
Oku; mesaj & " adını giriniz ", kişiAd
Oku; mesaj & " soyadını giriniz ", kişiSoyad
Oku; mesaj & " diğer bilgilerini giriniz ", kişiDetay
VeriGirişi = kişiAd & kişiSoyad & kişiDetay
Fonksiyon Bitti

Başla
Yaz; VeriGirişi("Öğrencin")
Yaz; VeriGirişi("Velinin")
Bitir

Örnek 2:
Fonksiyon Toplama(Sayısal sayı1, sayı2)
Toplama = sayı1 + sayı2
Fonksiyon Bitti

Fonksiyon Bölme(Sayısal sayı1, sayı2)


Eğer sayı2 = 0 İse
Bölme = "Hata"
Çıkış //alttaki bölme işlemi yapılmamalıdır
Eğer Bitti
Bölme = sayı1 / sayı2
Fonksiyon Bitti

Başla
Yaz; Toplama(2, 4) //Ekrana 6 yazar
Yaz; Bölme(3, 0) //Ekrana "Hata" yazar
Bitir

Örnek 3:
Prosedür Onaylama(Sayısal Giriş)
Eğer Giriş <= 0 İse
Yaz; "0 veya daha düşük rakam girilemez!"
Eğer Bitti
Prosedür Bitti

Başla
Sayısal sayı1, sayı2, sonuç
Oku; "Alınan malın miktarını giriniz ", sayı1
Onayla(sayı1)
Oku; "Alınan malın fiyatını giriniz ", sayı2
Onayla(sayı2)
sonuç = sayı1 * sayı2
Yaz; "Ödenmesi gereken fiyat ",sonuç
Bitir

9
Örnek 4:
Fonksiyon Onaylama(Metin a, b)
Eğer (a = "Yönetici") Ve (b = "qweasd_123") İse
Onaylama = "Tamam" //Eğer yönetici ise onay verilir
Eğer Bitti
Fonksiyon Bitti

Başla
Metin isim, şifre, sonuç
Oku; "Kullanıcı isminizi giriniz ", isim
Oku; "Şifrenizi giriniz ", şifre
sonuç = Onayla(isim, şifre)
Eğer sonuç = "Tamam" İse
Yaz; "Kayıtlara ulaşabilirsiniz"
Değilse
Yaz; "Kayıtlara ulaşamazsınız!"
Eğer Bitti
Bitir

1.4. Değ
er Aktarı

Alt programa veri ya “değer” ya da “referans” olarak aktarı lır. Parametreler ana
program ile alt program arası ş
nda veri akıı
nısağ
layan bir köprü kurulmasını sağlar.
Değ er olarak aktarmak demek, veriyi gönderen değişken ile veriyi alan değiş kenin
hafızada farklıyerlerde olmasıdı
r. Araları
nda bir yalı

m vardı
r. Ana program ile alt program
arasında tek yönde veri akış
ıvardır.
Not: İ ki değiş kenin aynıdeğişkenmişgibi değerinin güncellenmesi istenir ise Basic dilinde “ByRef,
ByVal” veya Pascal “Var” gibi terimleri kullanı r. C dilinde ise iş
lı aretçiler ile değerleri güncel
tutabiliriz. Ana program ile alt program arası
nda çift yönlü veri alı
şveriş
i için dildeki uygun yöntemi
kullanmanı z gerekir.

Ana Program

Modül 1 Modül 2 Modül 3


Şekil 1.4 : Alt programlar ve ana programı
nşeması

Alt programda tanı mlanan değ işkenlere “yerel değ işkenler”; kod kı smı nda en üstte
tanımlı, tüm programda geçerli değişkenlere “global değ işkenler” denir. Alt programlar ile
global değ iş
kenler ile de haberleşme sağ lanabilir. Fakat program büyüdükçe, çok sayı da
değişken tanımlamak zorunda kalı nacağıiçin, bu daha karmaş ık bir yöntem haline gelir.

Parametrelerde tanımlanan değiş kenler, yerel değişkenler ile aynıömre sahiptir. Alt
program bitince, hafı zadan silinirler. Global değ işkenler ise program kapanınca, hafızadan
silinirler. Aş ağıdaki örnekte global değ işkenler ile alt program ve ana programı n
haberleş mesi vardır.
10
Örnek:

Sayısal notu
Metin derece

Prosedür KademeHesabı
Eğer notu > 80 İse
derece = "A"
Çıkış //değer aktarımı bitince prosedürden çıkılır
Eğer Bitti
Eğer notu > 60 İse
derece = "B"
Çıkış
Eğer Bitti
Eğer notu > 40 İse
derece = "C"
Çıkış
Eğer Bitti
Eğer notu > 20 İse //Son ihtimalde zaten prosedürden çıkılır
derece = "D"
Değilse
derece = "E"
Eğer Bitti
Prosedür Bitti

Başla
Oku; "Öğrenci notunu giriniz", notu
KademeHesabı
Yaz; derece
Bitir

11
UYGULAMA
UYGULAMAFAALİYETİ
FAALİ
YETİ

İşlem Basamakları Öneriler


1. Sı
ralıolarak program komutları
nıakış Mesela, kullanı cıdan doğ um yı lınıisteyip
şeması nıyapınız. ekrana yaş ınıbulan program yapabilirsiniz
2. Dallanan programlama yöntemi ile  Mesela, kullanı cıya sevdiği spor türü
program yazı nız. sorulup ekrana kaç kiş i ile oynandı ğını
gösteren programıyapabilirsiniz.
3. Döngü komutlarıile program yazı
nız.  Kullanı cıdan 5 adet not giriş i istenir ve
ekrana bu sayı ları
n ortalamasıgösterilebilir.
4. Programda sı k çalıştı

lan komut  Hangi sayı nı n çarpım tablosu ekrana
bloklarınıbir alt programa toplayı
nız. çıkacağı nıalt program hâlinde
yapabilirsiniz.
5. Alt programlara uygun bir tekil isim  İsim seçiminde programlama dilinin
veriniz. komutları nı(File, Not…) kullanmamalı yı
z.
6. Bir alt programa değ
er yollayını z ve  Girilen bir il plaka değerinin uygun olup
değer döndürünüz. olmadı ğ ı(1 ile 81 arası ) değerini kontrol
eden programıyapı nız.

12
ÖLÇME
ÖLÇMEVE
VEDEĞERLENDİ
DEĞ RME
ERLENDİ
RME
Ad(1)
OBJEKTİ
F TESTLER (ÖLÇME SORULARI)

Aş ağıdaki sorulardan, sonunda parantez olanlar doğ ru / yanlışsorularıdır. Verilen


ifadeye göre parantez içine doğ şise “Y” yazı
ru ise “D”, yanlı z. Şı
nı klısorularda uygun şıkkı
işaretleyiniz.

1. Bir programı
n bir baş
langı
cıvardı
r, birçok kere sonlandı

lması
olabilir. ( )

2. Diğ
er programcı
ları ğ
n yaptıı
mız programları
mızıanlaması
na gerek yoktur. ( )

3. Her programı
n bir ana program kı
smıvardı
r. ( )

4. Hangisi ile değ


er döndüren bir alt program yapabiliriz?
A) Prosedür
B)Fonksiyon

5. İ
ç içe komut yazı mı nda ne yapmamalı yız?
A) Tüm komutlar aynıhizada yazı lmalıdır
B) Blok baş langıç ve bitişkomutlarınıyapmalı yı z
C) İlk kapatılmasıgereken blok, en son yapı lan blok olmalıdı
r.
D) Blok açma ve kapatma sayı larıbirbirine eşit olmalı
dır.

6. Hangisi yapı
sal bir programlama komutu olarak kabul edilmez?
A) Döndür
B) Eğer
C) Git
D) Durum

13
ÖĞRENME FAALİ
YETİ
–2

AMAÇ
ÖĞRENME FAALİ
YETİ- 2

Programı
nı cıdostu (user friendly) arabirim yapabileceksiniz.
za kullanı

ARAŞTIRMA

Bu faaliyet öncesinde hazı


rlı
k amaçlıaş
ağı
da belirtilen araş

rma
faaliyetlerini yapmalı
sınız.

 Bilgisayarı
nızda kurulu programlardan hangisinin arabirimi size daha kullanı şlı
geliyor?
 MS-DOS pencereleri, Windows pencereleri ve web sayfaları nın ara yüzlerini
karşılaştı


z, farklarınıbelirleyiniz.
 Oyunlarda, oyuncu ile diğer nesneler (para çekme makinesi, bilgisayar, el

bilgisayarı ifreli kapı
lar…) arası nda nası
l iletiş
im kuruluyor, örnek araş

rınız.

2. KULLANICI ARABİ
RİMİ

Kullanıcıile program arası nda iletiş im kurulması


nısağ layan ara yüze “kullanı cı
arabirimi” denir. Genellikle programın arabiriminde bilgilendirme nesneleri ve bilgi girişi
için gerekli olan nesneler bulunur. Çevremizdeki birçok araç da bir arabirime sahiptir.
Mesela asansör düğ me ve gösterge kı smı , merdiven otomatiğ i, müzik seti, televizyon,
fotokopi makinesi… Bazı larıçok kullanı şlıve kullanıcıdostu iken, bazılarıçok karmaş ık
olabilir.

14
2.1. Kullanı
cıArabiriminde Pencere Tasarı

İ
ş ş
letim sisteminizdeki pencereleri incelediyseniz, bazıkullanılınoktalar dikkatinizi
çekmiş
tir.

 Pencereler olabildiğ ince sade ve anlaş ı



r bir yazım dili ile tasarlanı r.
 Her pencerenin baş lık çubuğ unda programı n ismi ve yardı mcıbilgiler yazı lı

r.
 Kapat veya simge durumuna küçültmek için düğ meler vardı r.
 Pencereye sı ğmayan nesneleri kaydı rma çubuklarıile denetleyebiliriz.
 Durum çubuğu ile kullanı cıya ekstra bilgilendirme sağ lanı r.
 Benzer görevli düğ meler sağtarafta veya pencerenin altı nda yan yana hizalı dı
r.
 Menüler sol üst kenardan seçilebilir
 Belli yerlerde sağtuşmenüleri ile hı zlıişlemler yapı labilir.
 Klavye kı sayollarıile fare kullanmadan hı zlı işlem yapı labilir.
 Klavye ve fare birlikte kullanı larak kolay iş lem yapı labilir.
 Kritik anlarda kullanı cıdan onay istenir.
 Hata mesajlarıkullanı cıyı rahatsı z etmeyecek ş ekilde sunulur.
 Fare simgeleri ile programı n ne tür işlem yaptı ğıbelirtilir.
 Kullanı cının dikkatini çekmesi için uygun renkler ve yazıtipi seçilmiş tir.
 Kullanı cının uygulamayıözelleş tirebilmesi için seçenekler sağ lanı
r.

Pencerenizin (form da denir) boyutlarıve ilk açı lış


yeri gözü rahatsız etmemelidir. Kullanı
cıen az hareket veya
çaba ile istediğini hızlıbir ş ekilde elde etmelidir. Fitts*
kanunu bunu belirlemiş tir.

Şimdiye kadar yapı lan görsel programlama örneklerinde genellikle Visual Basic ve
Yunus dili kullanılmı ş
tır. Birçok programlama dili görsel arabirim yapabilmemize imkân
sağ
lar. Sı
k kullanılan programlama dillerine diğ er örnekler Delphi ve Visual C’dir.

İ
şletim sisteminden bağ ımsı z yazılı
m yapmak isterseniz, Java, Python ve web
programcılığıile ilgilenebilirsiniz. Şimdilik burada Visual Basic ile arabirim oluş
turma
denemesi yapacağız.

2.2. Örnek Uygulama


Yeni bir “Windows Uygulaması m. İ
” açalı lk adı
mda projenizin adısorulur. Varsayı
lan
isimle bı
rakabilirsiniz.

Şimdilik içinde program kodu olmayan, sadece görüntü olarak çalı şan bir program
m. Şu ana kadar kod yazı
yapalı mıile ilgili birçok örnek yaptı
k, görüntü ile ilgilenmemiş tik.

*
Paul Fitts, 1954 yı
lında yayımladı ğıergonomi ile ilgili kitabı
nda, bir iş
lemi tamamlamak için gerekli
hareketleri formül hâlinde belirlemiş
tir.
15
İlk düşüneceğ imiz konu, ne ile ilgili program yapacağımızdır. Örneğ
in dosya, düzen
ve yardı m menüsü olan basit bir not defteri tasarlayalı m. Boşformu uygun bir boyuta
getirdikten sonra gerekli nesneleri “Toolbox” penceresinden alı
yoruz.

Nesnelerimiz:
 Button1: Kapat düğ mesi
 Combobox1: Dosya türü seçmek için (içinde metin ve zengin metin yazı
yor)
 Label1: “Dosya türü” yazı sı
 RichEdit1: Not defterinin ası
l nesnesidir, içine yazıyazı
lacak kı

mdı
r
 StatusStrip1: “İ
lk programı mı z” yazı

 MenuStrip1: Ana menüyü bununla hazı rlayacağı z
 ContextMenuStrip1: RichEdit1’e sağtuşmenüsü ekleyeceğiz

Resim 2.1: Yeni bir proje açmak

Nesneler ve özellikleri çok sayı da olduğu için burada tek tek özelliklerini
anlatamayacağız. Deneme yanılma ile çok güzel özellikler keş
fedebilirsiniz.

Basit bir not defterinde ne çok nesne varmı şdeğ il mi? Kim bilir kod kı
smıkaç satı
rdır,
ya da programcıkaç saat program ile uğ raşmı ştı
r. Saatlerce uğraşan programcı, programı
eğer kendi isteği ile ücretsiz olarak yayı
nlıyor ise çabalarınıtakdir etmek, maddi ve manevi
olarak destek vermek gereklidir.

Programcı, ticari olarak program yazı yor, ama yazı lımıkaçak


yollardan, kanuni olmayan yollar ile çoğaltılı
yor ise, hem programcıhem
de kullanıcızarar görür. Yazılı
mları n da diğer ürünlerdeki gibi, garantisi,
destek ve yükseltme seçenekleri vardı r. Kaçak olarak kullanı lan
yazı lı
mda bu hizmetler yoktur. Aynıhaklar müzik, kitap, resim ve film
gibi üzerinde emek harcanmı şürünlerde de geçerlidir.

16
Resim 2.2: İ
şte programı
nızı
n ilk hâli olan boşbir form

Resim 2.3: Programı


n tasarı
m hâli

17
Resim 2.4: Programı
mızı
n çalı
ştı

ldı
ğıan

Görüntü olarak hazı r hâle gelince artı k programlama kı smı na geçilebilir. Tüm
nesneleri, tüm komutlarıkullanmanı z gerekmez, zaten önemli olan bu değ ildir. Çok sevilen
programlarıincelerseniz bazı ları
nın çok sade olduğunu görürsünüz. Mesela “Biliş im
Sözlüğ ü” gibi. Sadece aranacak kelime giriliyor ve anlamıelde ediliyor.

Metin kutusu, düğ me, etiket, resim, onay kutusu, açı lı


r kutu, liste kutusu, radyo
düğmesi, menüler, grup kutusu web siteleri dâhil her programda genelde vardır.

Resim 2.5: Sı
k kullanı
lan nesneler

18
Resim 2.6: Bir alarm ve ı
sıtı
cısistemi arabirimi yapı
mı; akı
şşeması
nıve resmini inceleyiniz

19
UYGULAMA
UYGULAMAFAALİYETİ
FAALİ
YETİ

İş lem Basamakları Öneriler


1.Yeni bir proje açınız.  Proje ilk açı ğ
ldı ında boşbir form vardı r.
2.Pencerenin boyut ve koordinatları
nı  Çok büyük veya çok küçük olmamalı dır.
uygun hale getiriniz.  Ekranı n tuhaf bir yerinde açı lmamalı dı
r.
 Diğ er ekran çözünürlüklerinde nası l
göründüğ ünü kontrol ediniz.
3.Pencere ve içindeki nesneleri uygun  Zı t renkler kullanı nı z. Siyah ile turuncu, sarı
bir ş
ekilde renklendiriniz. ile kahverengi gibi…
 Siyah ile gri, yeş il ile mavi çok okunaksı z
olabilir.
4.Kullanıcıya yardımcıkı sa yol  Baş ka bir programdaki menünün benzerini
menüleri tasarlayınız. yapmayıdeneyebilirsiniz.
5.Pencere üzerine temel kontrolleri  Nesneleri form üzerine ekleyerek deneyiniz.
ekleyiniz.
6.Kontrollere program yazı nız.  Bir düğ
meye basit bir komut ekleyiniz.

20
ÖLÇME
ÖLÇMEVE
VEDEĞ
DEĞERLENDİRME
ERLENDİ
RME
Ad(1)
OBJEKTİ
F TESTLER (ÖLÇME SORULARI)

Aş ağıdaki sorulardan, sonunda parantez olanlar doğ ru / yanlışsorularıdır. Verilen


ifadeye göre parantez içine doğ şise “Y” yazı
ru ise “D”, yanlı z. Şı
nı klısorularda uygun şıkkı
işaretleyiniz.

1. MS-DOS uygulamaları
nda kullanı
cıarabirimi yoktur. ( )

2. cıarabirimi herkesin anlayacağı


Kullanı şekilde sade olmalı

r. ( )

3. Ergonomik program olmaz, istediğimiz biçimde form tasarlayabiliriz. ( )

4. Kullanıcıarabirimi yapımında hangisi yapı lmamalı dır?


A) Kullanıcıhatalar mesajları
nıgörmemelidir.
B) Kullanıcıya devamlı, mesaj kutularıile soru sormamalı

r.
C) Kullanıcıuygulamayıözelleş tirebilmelidir.
D) Gizli kı
sayollar yaparak kullanışlı ğ
lııartırmalıyı
z.

5. Hangi dilin görsel programlama sürümü yoktur?


A) C
B) Pascal
C) Basic
D) Tupol

6. Hangi nesne ile yazıolarak girişyapı


lamaz?
A) Metin kutusu
B) Açılır kutu
C) Yazıkutusu
D) Liste kutusu

21
ÖĞRENME FAALİ
YETİ
–3

AMAÇ
ÖĞRENME FAALİ
YETİ- 3
Programda oluş
an hatalarıgiderme yolları
nıöğreneceksiniz.

ARAŞ
TIRMA
Sevgili öğrenci, bu faaliyet öncesinde hazı
rlı
k amaçlıaş
ağı
da
belirtilen araştı
rma faaliyetlerini yapmalı

nız.
 Sadece yazı lı
mda mıhatalar vardı r? Şimdiye kadar meydana
gelen donanı m hataları nıaraş tı
rınız. Mesela, 1994 yı lı
nda intel Pentium
işlemcilerde FDIV bölme hatasıbulunmuş tu.
 Bilgisayarda oluşan ilginç hata mesajlarınıaraş tı

nız. Mesela, çöken bir iş
letim
sisteminde (mavi ekran) neler yazıyor olabilir?

3. HATA Gİ
DERME

Programda bir komut yanlı şyazı şyere yazı


labilir, yanlı labilir, bir satı ş
r yanlılı
kla iptal
edilmişolabilir. Bilgisayar bu durumda ne yapacağı nıbilemez ve program çöker. Problemli
programlara, böcekli program da denir.

3.1. Kod Böceğ


i Nedir?
Birçok böcek zararsı z görünen küçük problemlere sebep olabilirler. Asıl sorun olan
böcekler, tüm programı n çalışması na engel olanlardı
r. Bu böcekler programı n son hâlinin
ş(piyasaya çı
satı kma) tarihini erteleyebilir.
Bir böceğin oluş
ması
nın birçok sebebi olabilir:
 Yazı m hataları : Komutun yanlı şyazılması , unutulan noktalama iş aretleri gibi
derleyicinin hemen bulduğ u, kolay düzeltilebilen hatalardı
r.
 Çalı şma anıhataları : Program hatası z derlendikten ve çalı ştırı
ldıktan sonra
meydana gelen hatalardı r. Genellikle kullanı cı
nın istenmeyen veri girmesi
sonucu oluş ur. Programcıönlemini önceden almalı dır.
 Mantı k hataları : Program normalde çalı şıyor gözükür, ama istenmeyen sonuç
üretir. Hatayı düzeltmek veya oluş ması nı engellemek, programcı nın
programlama yeteneğine bağlı dır.
22
3.2. Yazı
m Hataları
Yazım hatalarını, dikkatle kodlarıgözden geçirerek ve program derlenirken verdiğ
i
hata mesajı
nıiyi inceleyerek çözebilirsiniz.

Resim 3.1: Pascal derleyicisi neden hata mesajıvermiş


tir?

Derleyici genellikle hatalıyere imleci getirerek, düzeltmenizi bekler. Resim 3.1’deki


gibi hatanın kodu ve türünü belirtir. Ama hata mesajıverilmeyen hatalarda ne olacak?
Aş ağıdaki hikâyeyi okuyunuz.

Yazım Hatası
1962 yılı
nda NASA, Venüs gezegenini incelemek için “Mariner 1” adlıuydu
ı
gönderdi. Uyduyu taşyan roket hatalırota izlemeye baş
lamasıüzerine, patlatı
lmak zorunda
kalı
ndı.
Bir hikâyeye göre, bu bir “Döngü”den kaynaklanmı ş

. Normalde 3 kere dönmesi
gereken döngü, basit bir yazı
m hatasısebebi ile hataya yol açmıştı
.
FOR I = 1.3 'I değişkenine 1.3 değerini atar
FOR I = 1,3 'I döngü değişkenidir, 1’den 3’e kadar döngü yapılır

Bu muhtemel hatalıkomut kullanı


mıNASA’nı
n milyon dolarlı
k roketi kaybetmesine
sebep olmuş
tu.

Sık yapı
lan bir hata da değ işken isimlendirmesinde yapı lı
r. Program büyüdükçe, üst
satı
rlarda kullanılan değ işken adı , yanlışlı
kla diğer yerlerde farklıkullanı labilir. Garip
değerlerle karşı
laş ırsanı
z değişken isimlerini kontrol ediniz. Aslı nda kı sa ve ş ifreli gibi
değişken adıvermemek en iyisidir.
Sağlık
Therac–25, radyasyon ile tedavi makinesi olarak tasarlamı ştı
. Hastalara yavaşyavaş
radyasyon veriyordu. Aş ı
rıradyasyon verilmemesi için yazı lım ile denetlenen bir güvenlik
mekanizmasıvardı . Ama yazılı
mda “ölümcül” bir hata
vardı.
Makinenin 2 durumlu çalışma prensibi vardı :X
ışınıve elektron ışı
nı.Xı şınıdurumu, yüksek seviye
enerji seviyesine sahipti. Yüksek seviye enerji,
elektron durumu ile dengelenmeye çalı şı
yordu.
Yanlı ş kla X ı
lı ş ı
nıdurumunda kalı nı
nca, hastalara aşı

radyasyon verilerek yanı
klar ve ardı
ndan ölüme sebep
olunabiliyordu.
Sonunda hata bulundu, ama birçok hasta için artı
k çok geçti!
23
3.3. Çalı
şma ZamanıHataları
Çalışma zamanıhatalarıçok sinsidir. Programcıprogramıiyi test etmemişise, hatayı
kullanıcı
nın keşfetmesine fırsat vermişdemektir. Test etmek için kendimizi kullanıcının
yerine koyup, her değ
işiklikten sonra bol bol denemeler yapmamız gereklidir. Uç değ
erler
denenmelidir.

Yaşbilgisinin girilmesi için 203 bin gibi bir sayı


, bir de sı
fır rakamı
nıdeneyin. Hatta
negatif ve ondalı
klısayı larıdeneyin. Bakalı m ne sonuçlar veriliyor:

Visual Basic dilinde örnek


Private Sub Button2_Click
Dim yas As Byte 'Byte değişken 0-255 arası değer alır
yas = TextBox1.Text
MessageBox.Show("Yaşınız " & Val(yas))
End Sub

Hata sebebi

Resim 3.2: Programıtest değerleri ile deniyoruz

3.4. Mantı
k Hataları
Mantık hatalarının tespiti çok zordur. Parantez hatası
, unutulan karakterleri bulmak
daha kolaydı
r. Hatta programı nı ş
zıtest edip çalıma zamanıhatalarırahatlıkla bulunabilir.

Programıyazarken doğru kabul ettiğ


iniz komutlar, aslı ka ş
nda baş ş
ekilde çalıı
yor
olabilir. Bu hatalarıgidermek için “Adı mlama ve iz sürme” teknikleri ile hatalar
yakalanmaya çalışılı
r.

24
Stratejik Hata
1982 yı nda İ
lı ngiltere ile Arjantin arası
nda yapı lan
Falkland adalarısavaş ı
nda, 37 yı lda ilk kez İngilizler gemi
kaybetmiş lerdi.

Her iki taraf Fransı z ürünü olan Exocet füzeleri


kullanıyordu. H.M.S. Sheffield isimli gemi, üzerine gelen
düş man füzelerini dost sanarak, hava savunma sistemini
geçmelerine izin verdi. Gemi birçok yönden gelen füzelerle
vuruldu. Kontrol odası nda yangı
n çı
ktı
. Mürettebattan 20 asker
öldü, 27 asker yaralandı
.

3.5. Adı
mlamak
Satır olarak adımlamak programı ı
n daha iyi anlaşlması
nısağ lar. Adımlama sayesinde
normalde çok hı ş
zlıçalıan programı, yavaşyavaşya da duraklatı
larak izleyebiliriz.

Basic dilinde adı


mlama komutları
:

 Run: Çalış tı
r
 Break All: Çalıştı
rmaya ara ver veya kı
r
 Stop: Programıtamamen durdur
 Step Into: Adım adım çalıştı
r
 Step Over: Alt programlara girmeden adı mla
 Step Out: Alt programdan çıkı p, hı
zlı
ca ana
programa dönülür, adımlamaya devam edilir

Adı mlarken ve değ iş


kenleri izlerken genellikle hatanın gözden kaçmasımümkün
olmaz. Adı mlama sı rası
nda nerede olduğ rdan anlayabilirsiniz, ş
unuzu renklendirilen satı u
rda program donmuşbir ş
anda 9. satı ekilde bekliyor:

Resim 3.3: Adı


mlama ve değiş
kenleri izleme

Çok uzun programlarda ise hatanı


n olduğ
u tahmin edilen satı
ra kadar adı
mlamak
yerine “durak noktaları
” kullanı

r.

25
 Hatanı n “durak noktası
n olduğu tahmin edilen yere yakı ” eklenir.†

 ş
Program normal çalıtı


r.

 “Durak noktası ”na gelindiğ


inde, programlama diline otomatik olarak dönülür ve
o satı
r renklendirilir.

 Bundan sonrasısize kalı yor, ister adı ş


mlamaya devam edin, ister “Çalıtı
r”
komutu ile tekrar programı
n çalışması na devam edin.

Resim 3.4: Kı
rmı
zırenkli kı
sım “durak noktası
” olan bir satı
rdı
r

Resim 3.5: “ Command Window” kullanı


mı‡

Not: İ
sterseniz “çalı
şma anı
nda – Run Time”, değiş
kenler üzerinde oynama yapabilirsiniz.

Eğer programlama dilinde böcek ayı klama imkânıbu kadar kolay değil ise, daha basit
yöntemler deneyebilirsiniz. Mesela hatalıyere yakın, ekrana değişken değ erini bir mesaj ile
gösteren komut eklenebilir. Programdaki hata giderildikten sonra bu sat ı
rların temizlenmesi
unutulmamalı dı
r.

Programı nızdaki hatalarıgidermeye çalı şmazsanı z, yazı lımı


nızın kalitesi düşer.
Yazılımıyazan ekip kadar, test ekibinin de çok sorumluluğ u vardır. Ama programdaki hatayı
bulamadıdiye test ekibi suçlanmamalı dır. Programcıhatalarıotomatik olarak yakalayan
kodlar yazabilir. Kullanı

nın hatalarıkeş fetmesi firma için daha kötüdür.


“Debug*Toggle Breakpoint F9” ile yapabilirsiniz

“View*Other Windows*Command Window Ctrl+Alt+A” ile pencereyi açabilirsiniz
26
Kullanı cını
n hatalı
girişyapmaması
için kısa
açı klamalar
yazı lmalıdı
r

Kullanıcı
nın
kafasınıkarış
tıran
mesajlar
olmamalı dı
r

Resim 3.6: Kullanı


cıya yardı
mcıolunuz, doğru bilgi vererek yönlendiriniz

Resim 3.7: Programcıkendisi için yaptı


ğıbasit hata ve ayrı
ntı
lıhata mesaj örnekleri

ağı
Bir program yazarken aş daki öneriler iş
inize yarayabilir:

 Yazı lı
mı z ne kadar büyürse o kadar içinde böcek bulunma ihtimali artar.

 Böcek oluş ması nı nası l önleyebileceğ inizi, otomatik olarak nası l
yakalayabileceğ inizi düşünmelisiniz.
 Algoritmanı zı oluş tururken, kullanacağ ınız dili tam olarak öğ renerek
koşullarını
zıtamamlayı nız.
 Birden fazla yol göz önüne alarak alternatifler ekleyiniz.
 Çalış ma anında beliren böcek sinyallerini göz ardıetmeyiniz. Kendi kendilerine
kaybolmazlar. Kaybolması nıbeklerseniz daha da büyürler.
 Değ işkenlerinizin değerlerini takip ediniz ve aykı rıdeğerler almalarıne zaman
ve nerede oluş uyor böcek ayı klama ile görünüz.

27
 Eğ er programı nızıkontrol amacıile adı m adı m iş lemekten çekinirseniz, tahmin
etmediğ iniz hatalarla kullanı cımuhatap olmak zorunda kalı r.
 Denetlenmesi kolay adlandı rmalar ve algoritmalar oluş turunuz.
 Hı zlıçalı şan program yapmak için dayanı ksız kodlar oluş turmayı nız.
 Kestirme ve pratik programlama risklidir. Kendi ihtiyacı nı
za göre çözüm
üretiniz.
 Ara sı ra temizlik yaparak, artı k yani artan kodları nı zı
n böceğ e sebep
olmamaları nısağ layını z.
 Yaptı ğını z değiş iklik çok küçük olabilir, ama hata oluş turabileceğ ini
unutmayı nız.
 Sürümler oluş turarak ilerleyiniz. Son ticari halinden hata ayı klama kodları nızı
çıkararak küçülterek ilgililere teslim ediniz.
 Program içine yerleş tirdiğ iniz açı klama satı rlarıaz ve öz olmalıya da hiç
yazmayı nız.
 İmkânsı z olan bir girdi olabilir mi? Kullanı cıher zaman sizin gibi düş ünmez.
Bu ihtimallere önlem almalı sınız. Sorunlarısessizce çözen kodlar yazabilirsiniz.
 Böceğ i gizlemekten çok onu yok etmeye çalı şını z.
 Farklıalgoritma yöntemleri kullanarak böceklerin sebebini çözebilirsiniz.
 Devamlıhata mesajlarıile kullanı cıyı telaşlandı rmayı nız.
 Böceğ i açı ğa çı karmanı n yöntemi, onu bulduğ unuz anda ortadan kaldı rmaktı
r.
Böcekleri tekrar çı kmaya zorlayı nı z.
 Çok az sayı da programcıkodlara “durak noktaları ” ekleyerek, kod içinde adı m
adı m ilerleme ve girdilerin çı ktı
ya dönüş tüğü yerlere bakma alı şkanlı ğına sahip.
Bu iş lemler angarya değ ildir.
 Kodunuzda adı m adı m ilerlerken veri akı şına odaklanı nız.
 Arabiriminizdeki aksaklı klarıbulup yok ediniz.
 Kaybolan bir böceği göz ardıetmeyin, gizleniyor olabilir.
 Zamanı nda bulunan böcek daha fazla böcek oluş ması na engel olur.
 Belirtiyi değ il, oluş um nedenini düzeltiniz.
 Aptal böcek yoktur. Ası l sorun programcı nın onu bulamamı şolması dır.
 Aynıböceğ in sizi iki kere sokması na izin vermeyiniz!

28
UYGULAMA
UYGULAMAFAALİYETİ
FAALİ
YETİ

İşlem Basamakları Öneriler


1.Bir programlama dilinde program  İlk kez karş ılaştığınız hatalarıve çözüm
yazıp denerken, karş ı
mıza çı
kan yazı
m yollarınıdefterinizin arkası na yazı nı z,
hatalarınıinceleyiniz. böylece aynıhatayla karş ı
laşınca
bocalamazsı nız.
2.Programdaki yazı
m hataları
nı  Arkadaş larınızın yaptı ğı programlardaki
düzeltiniz. yazım hataları na yardı m ediniz. En çok
nerede hata yapı ldığ
ını , sebebini tartı ş ı
nız.
3.Program çalış
tırıldıktan sonra  Yaptı ğınız programlarıdiğ er insanları n nası l
denemek için veri giriniz. kullandı ğınıgözlemleyiniz. Nası l veri
girdiklerini inceleyiniz. Sizin istemediğ iniz
değerleri girerlerse ekrana nası l bir hata
mesajıgeliyor?
4.Adım adım programıçalı ştı
rarak,  Adı mlama komutu ile programı nızı
programı ş
n akıınıkontrol ediniz. inceleyiniz.

29
ÖLÇME
ÖLÇMEVE
VEDEĞ
DEĞERLENDİRME
ERLENDİ
RME
Ad(1)
OBJEKTİ
F TESTLER (ÖLÇME SORULARI)

Aş ağıdaki sorulardan; sonunda parantez olanlar doğ ru / yanlışsorularıdır. Verilen


ifadeye göre parantez içine doğ şise “Y” yazı
ru ise “D”, yanlı z. Şı
nı klısorularda uygun şıkkı
işaretleyiniz.

1. Kod böcekleri çok akı


llı
dır. ( )

2. Derleyici tüm hatalarıyakalar, bize hatanı


n yerini gösterir. ( )

3. Basit bir değ


işiklik yapı

nca, program test edilmese de olur. ( )

4. 1.500,45 bir sayıgiriş


i olabilir. ( )

5. Hangi komut ile programıadı


mlayabiliriz?
A) Çalış tı
r - Run
B) Dur - Stop
C) Adımla - Step Into
D) Kır - Break All

6. Hangi hatanı
n tespiti ve giderilmesi çok kolaydır?
A) Yazım hataları
B) Çalış
ma anıhataları
C) Mantık hataları
D) Ölümcül hatalar (disk, bellek hatalarıgibi)

30
ÖĞRENME FAALİ
YETİ
–4

AMAÇ
ÖĞRENME FAALİ
YETİ- 4
Programda saklanması gereken bilgileri dosyalara saklayabilecek ve tekrar
okuyabileceksiniz.

ARAŞTIRMA
Bu faaliyet öncesinde hazı
rlı
k amaçlıaş
ağı
da belirtilen araş

rma
faaliyetlerini yapmalı
sınız.

 Birçok program değ iş


ik dosya türlerini çalı ştırabilir ve
değ iş
tirebilir. Programları n kullandı ğıdosya türlerini araş tı


z. Mesela ofis
programları nda *.doc, *.xls dosya uzantı larıvardı r.
 Windows iş letim sisteminde çalı ştı
rılabilen bir dosya (*.exe gibi) diğ
er iş
letim
sistemlerinde de çalı ştı
rılabilir mi? Ya da tam tersi, Linux’ta kurulabilen bir
program Windows’a kurulabilir mi?

4. DOSYALAMA

Bir önceki derste değiş kenlerin ömürleri bitince hafı zadan silindiğinden bahsettik.
Zaten böyle olmasaydı , ana bellek birçok programıçalı ştırmaya yetmezdi. Ya bize kalı
cı, her
program açı ğı
ldı nda, önceden saklanan bilginin gösterilmesi gibi bir durum gerekirse ne
yapabiliriz? Oyunlardaki rekor bilgileri gibi düşünebiliriz. Bilgiler çoğ
unlukla ayrıbir veri
dosyası nda saklanı
r.

4.1. Metin Dosyalar


İ
sminden de anlaş ılacağı gibi, metin dosyaları n içinde sadece yazı vardı
r.
Biçimlendirilmemişmetin dosyaları
nıtüm iş
letim sistemleri tanı
r, değ
iştirebilir.

Metin dosyalara “sı ralıdosyalar” diyebiliriz. Bir metin dosyası nıkullanabilmemiz


için önce onu oluş turmamı z gereklidir. Daha sonra da sıra ile satı
r satı
r metin dosyası

okuyabilir, değ
iştirebiliriz.

31
Sı ralıdosya olduğ u için dosyaya bilgileri sı ra ile yazı
p, yine sıra ile okuyoruz. Peş
peş e bilgi iş
lemi yapı ldığıiçin “For - Döndür” komutu ile daha az komut yazarak, çok satı rlı
bilgileri alabilir, yazabiliriz. 3 satı
r bilgi için basit olarak aş ağı
daki gibi bir örneğimiz var.

Resim 4.1: Metin dosyaya bilgi yazma

1. Baş la
2. DosyaAdi = “dosya.txt”
3. Eğer DosyaAdi mevcut İ se Git 9
4. yazar = DosyaAç (DosyaAdi)
5. yazar.Satı
rYaz “1. satı
r”
6. yazar.Satı
rYaz “2. satı
r”
7. yazar.Satı
rYaz “3. satı
r”
8. yazar.DosyaKapat
9. Bitir

Okuma veya yazma iş lemi yapıldı


ktan sonra dosya kapatı lmalıdır. Eğ
er kapatmayı
unutursak, programda hatalar meydana gelebilir. Açı k kalan dosyayıüzerinde başka işlem
yapmak için tekrar açamayız. Aşağ ı
dakine benzer bir hata mesajıoluşabilir:

"İşlem, başka bir işlem tarafından kullanıldığından


'C:\ornekler3\vb\metinDosyalama\dosya.txt'
dosyasına erişemiyor."

Metin dosyası nı kendi programı mı z haricinde, not defterini kullanarak


görüntüleyebilirsiniz. Test etmek için satı
rlarıdeğiş
tirip, programı
nızda tekrar okumayı
deneyebilirsiniz.

32
Resim 4 .2: Metin dosya iş
lemleri ekran görüntüsü

Programları nı
zıpiyasada yaygı n olarak kullanılan programlar ile uyumlu yapmaya
dikkat ediniz. Eğ er kendi dosya türünüzü oluşturursanız, sadece sizin programı za bağı
nı mlı
hâle gelir. Mesela programı nız hesap tablosu halinde verilerini kaydedebiliyor ise, hesap
tablosunu kullanarak iş lem yapan kullanı cıya destek sağlamı şolursunuz. Programı nızın
kalitesi daha artar.

Siz de programa daha fazla satı r bilgi kaydetme imkânısağ


layı

z. Döngüler
kullanarak daha az kod nası
l yazı
labilir?

4.2. Rasgele Eriş


imli Dosyalar
Metin dosyalarda satı rlarıtek tek okumak küçük dosyalar için hı z problemi
oluşturmaz iken, büyük dosyalarda belli bir satı
ra gidip iş
lem yapmak büyük problemdir.
Son satırıokumak için tüm dosyayıtaramanı z gerekir.

Rasgele erişimli dosyalar sabit boyutlu küçük parçalar halinde “kayı t” isminde
bölümlerden oluşur. Kayıt içinde bir veri kümesi saklanı
r. Her kayı
t içinde “alan” isminde
daha küçük parçalar vardı
r.

Kayıt uzunlukları
nın belirli olmasısayesinde istenen bilgiye rahatlı
kla gidilebilir. Bu
daha etkin veri işleme anlamı na gelmektedir. Veritabanıkonusuna bu sayede girmiş
oluyoruz.

33
Ali Can
Ali Can
2344224 Bir
1.Kayı
t 2344224
T10C Kayıt
T10C
Mehmet Demirci
2323434
T11C Mehmet Demirci
İdris Kıvanç 2.Kayı
t 2323434
T11C Bir
2323443 Alan
T11C
İdris Kı
vanç
3.Kayı
t
2323443
T11C

Metin Dosyaları
n yapı
sı Rasgele Erişimli Dosyaları
n yapı

Resim 4.3: Rasgele dosyalamada kaydetme iş


lemi

34
Rasgele eriş imli dosyada kayı t hazı rlarken, ne tür verileri saklayacağ ı
nızı, kaç adet
alana sahip olacağı nıkararlaştı
rmalısınız. Alanları n kaç karakter büyüklüğ e sahip olacağını
planlamalısınız. “Daha sonradan değiş tiririm” derseniz, yeni alan boyutlarıeskisi ile
uymayacağ ıiçin veri kaybıile karş
ılaşabilirsiniz.

Silme ve isim ile arama işlemlerini tasarlayı


nız.

Yaşkı smı na yanlışlı


kla yazıveya çok büyük bir sayıgirilirse ne olur? Hatalıveri
giriş
ini önlemek için ne yapabilirsiniz?

Resim 4.4: Rasgele dosya iş


lemleri

4.3. İ
kilik Dosyalar
Rasgele dosyalamada her kaydıyapısal olarak kullanma zorluğ u,
programcı ları
n yeni bir yol araması na sebep olmuş tur. Hem hı zlı
erişimli, hem de uzun metinleri saklayacak ş ekilde ikilik (binary)
sistemde yapı lan dosyalamayıkullanabiliriz. Metin uzunluklarısabit
olmak zorunda olmadı ğından, bu yöntem dosya boyutu olarak tasarruf
sağ lar.

İkilik dosyalar; *.pdf dosya oluş turma, kayı t bilgileri saklama (*.log dosyaları
),
program ayarları nısaklama (*.bin dosyaları ), internette dosya aktarı mısı rası
nda (FTP,
eposta), veritabanıiçine resim, ses dosyasıeklemek istendiğ inde kullanılı
yor.

Basit bir işiçin bu kadar uzun program yazmak gereksiz görünebilir. Zaten genellikle
Microsoft Access gibi “veritabanıprogramları ” bizim veri saklamamı za yardım ederler.
Daha karmaş ık ve yoğun veri saklama ve okuma iş lemleri gereken yerlerde veritabanı
programlarıyüksek performans sağ larlar.

35
Bazıdurumlarda ise metin dosyası na kaydetmek daha pratiktir. Mesela, sitenizin
ziyaretçi sayı
sınısaklamak, programı nı

n pencerelerinin en son boyutlarınısaklamak için
bu yöntemi kullanabilirsiniz. Çok az bilgi tutulacağ ıiçin gidip bir veritabanına bağlantı
yapmaya gerek yoktur. Güvenliğin önemli olmadı ğıve hı z gerektiren yerlerde “metin
dosyalama” ile veri saklayabilirsiniz.

 Dosyalara dı şarı dan eriş ilebildiğ


ine göre, eğ er çok gizli bilgiler saklanması
gerekiyor ise ne gibi önlemler almamı z gerekir? Mesela evinize tek kapı
dan değil de baş
ka
yerlerden girilebiliyor ise, hırsı
zlara karş ınasıl önlemler alı
rsı
nız?

Programlar veritabanıkullanmadan başka hangi yöntemler ile ayarları


nısaklar?
t defterini§ (registry) kullanmak gibi …
Mesela, Windows’un kayı

Yapı Kisi
Metin Ad
Sayısal Yas
Yapı Bitti

Basla
birKisi Kisi
dosyaAdi = "dosya.txt"

binDosya DosyaAc (dosyaAdi, AçveyaKaydet)


yazici İkilikYazar (binDosya)

Oku; birKisi.Ad
Oku; birKisi.Yas

yazici.DosyaBasinaGit
yazici.Yaz birKisi.Ad
yazici.Yaz birKisi.Yas

yazici.DosyaKapat
Bitir

§
“Baş ş
lat*Çalıtı
r…*regedit” ile kayı
t defterini görüntüleyebilirsiniz.
36
UYGULAMA
UYGULAMAFAALİYETİ
FAALİ
YETİ

İ
şlem Basamakları Öneriler
1.“DosyaAç” komutu ile dosya  Veri dosyasınımetin, rasgele veya ikilik
oluş turunuz. yöntemi ile oluş
turunuz.
2.“Satı rYaz, Satı
rOku” komutu ile  Bilgi yazma ve okuma için uygun komutu
dosyaya veri giriniz veya ekrana verinin seçiniz.
çıktı sıalınız.
3.“Structure – Yapı ” içinde alanları
n  Belirleyeceğiniz alanlarıyapıhâline
boyutunu, türünü belirtiniz. getiriniz.
4.“DosyaKaydet” ve “DosyaGetir” ile  Kaydolmuşbilgileri ekrana listeleyiniz.
belli bir kayda ulaşı
nı z.
5.Döngü içinde verileri ekrana  Peşpeş e işlemleri döngü komutları
ile kolay
listeleyiniz. programlanabilir hâle getiriniz.
6.“DosyaKapat” komutu ile dosyayı  Her alt programı n sonunda dosyayı
kapatı nız. kapatını z.

37
ÖLÇME
ÖLÇMEVE
VEDEĞ
DEĞERLENDİRME
ERLENDİ
RME
Ad(1)
OBJEKTİ
F TESTLER (ÖLÇME SORULARI)

Aş ağıdaki sorulardan, sonunda parantez olanlar doğ ru / yanlışsorularıdır. Verilen


ifadeye göre parantez içine doğ şise “Y” yazı
ru ise “D”, yanlı z. Şı
nı klısorularda uygun şıkkı
işaretleyiniz.

1. Programı
mız tüm dosya türlerini açı
p okuyabilmelidir. ( )

2. Tüm dosyalar not defteri veya edit ile açı


labilir. ( )

3. Dosya içine kod saklayı


p, programı
mı ş
zdan kodlarıçalıtı
rabiliriz. ( )

4. İ
ki program aynı
anda bir metin dosyayıkullanabilir. ( )

5. Hangisi ile en kolay veritabanıhazı


rlanabilir?
A) Word
B) Excel
C) Access
D) Powepoint

6. Hangisini dosyalamada bir dosya uzantı


sıolarak seçmemeliyiz?
A) *.txt
B) *.dat
C) *.bin
D) *.doc

38
MODÜL DEĞERLENDİ
RME

MODÜL DEĞERLENDİ
RME
PERFORMANS TESTİ(YETERLİ
K ÖLÇME)

Modül ile kazandığını


z yeterliği, öğretmeniniz iş
lem basamakları
na göre 0 ile 6 puan
nda olacak ş
arası eklinde değ
erlendirecektir.

DEĞERLENDİ
RME KRİ
TERLERİ Puan
Sıralıolarak program komutları nıyazma, dallanan programlama yöntemi ile
program yazma, döngü komutlarıile program yazma
Çok tekrar eden komut blokları nı bir alt programa toplama
Alt programlara uygun bir tekil isim verme
Bir alt programa değ er yollayı nız ve değ er döndürme
Programa pencere ekleme
Pencerenin boyut ve koordinatları nıuygun hâle getirme
Pencere ve içindeki nesneleri uygun bir ş ekilde renklendirme
Kullanı cıya yardı mcıkı sa yol menüleri tasarlama, pencere üzerine temel
kontrolleri ekleme, kontrollere program yazma
Bir programıdenerken karş ımı za çı kan yazı m hataları nıgörme, programdaki
yazım hataları nıdüzeltme
Program çalı ş
tırıldıktan sonra denemek için veri girme
Adı m adı m programıçalı ştırarak, programı n akışınıkontrol etme
“DosyaAç” komutu ile dosya oluş turma
“SatırYaz, Satı rOku” komutu ile dosyaya veri girip, ekrana verinin çı ktı
sıalma
“Structure – Yapı ” içinde alanları n boyutunu belirtme
“DosyaKaydet” ve “DosyaGetir” ile belli bir kayda ulaş tı
rma
Döngü içinde verileri ekrana listeleme, “DosyaKapat” komutu ile dosyayı
kapatma
Toplam (en fazla 96 puan olabilir)

DEĞERLENDİ
RME

ğı
Yaptı nı
z değ
erlendirme sonucunda eksikleriniz varsa öğ
renme faaliyetlerini
tekrarlayı
nız.

Modülü tamamladı nız, tebrik ederiz. Öğ retmeniniz size çeş


itli ölçme araçları
uygulayacaktı
r. Öğretmeninizle iletiş
ime geçiniz.

39
CEVAP ANAHTARLARI

CEVAP ANAHTARLARI
ÖĞRENME FAALİ
YETİ
-1 CEVAP ANAHTARI

1 D
2 Y
3 D
4 B
5 A
6 C

ÖĞRENME FAALİ
YETİ
-2 CEVAP ANAHTARI

1 Y
2 D
3 Y
4 A
5 D
6 D

ÖĞRENME FAALİ
YETİ
-3 CEVAP ANAHTARI

1 Y
2 Y
3 Y
4 Y
5 C
6 A

ÖĞRENME FAALİ
YETİ
-4 CEVAP ANAHTARI

1 Y
2 D
3 Y
4 Y
5 B
6 D

Cevapları
nı ı
zıcevap anahtarlarıile karşlaş

rarak kendinizi değ
erlendiriniz.

40
SÖZLÜK

SÖZLÜK
İ
sim Okunuş Anlam
install instol kurmak, installation – kurulum
instruction ı
instrakşn komut
instrument instrumı
nt enstrüman, araç
integer intecı
r tamsayı
introduction ı
introdakşn tanı

m, intro
item aytı
m nesne, öğ
e
kernel kernı
l çekirdek
log log kayı
t tutmak, döküm yapmak
logical locikı
l mantı
ksal, boolean
match meç uymak, oyun, birbirini tutmak
message mesic mesaj, ileti
minimize minimayz en küçük yapmak, simge durumuna küçült
missing mising eksik, kaçı
rmak
multimedia maltimedya çoklu ortam
network netwörk ağ
object ı
bcekt nesne
Optical Character Recognition – Optik karakter tanı
ma, yazı


OCR ou si ar
tarayıcıların yanında verilir
optimize optimayz en iyi hale getirmek, optimize
optional op ş
ını
l isteğ
e bağ
lı, opsiyonel
page peyç sayfa
parameter perı
mitı
r parametre, argüman, anahtar
parity perı
ti parite, eş
lik
partition ı
partişn disk bölümü (c: gibi)
path pet yol, izlek, patika
pattern pet ı
rn doku, dizi
perform pörform gerçekleş
tirmek
peripheral perifirı
l çevresel birim
pin pin girişçı kı şiçin kullanı
lan port – veriyolu iğnesi
Ekrandaki yazı lı
mla elde edilebilen nokta (picture element/picture
pixel piksı
l
cell)
pointer pointı
r işaretçi, fare imleci
port port kapı
, iletiş
im hattı
present prezı
nt var olmak
previous privi ı
s önceki
primary praymı
ri birincil

41
KOD ÖRNEKLERİ

KOD ÖRNEKLERİ
Tupol dilinde alt program örneği
PROGRAM altProgProgrami;
TANIM
TANIMSONU
ALTPROGRAMLAR
{Alt Programimiz}
paletCiz();
TANIM
Sayi i,j;
TANIMSONU
Basla
Dongu j<=0 >> 199
Blok
Dongu i<=0 >> 319
Blok
Pixel(i,j,j);
Son;
Son;
Bitti;
ALTPROGRAMLARSONU

Basla
{Ana Programimiz}
Grafikekran();
paletCiz();
Okugh();
Yaziekran();
Bitti.

Yunus dilinde alt program, fonksiyon (prosedür ile aynıamaçlı


) yazmak

42
Fonksiyon, parametre olarak değ er alıp, ona göre hesap yapı
p, sonuç üreten alt
programdır. Genellikle "return" komutu ile değer geri aktarı

r.
C dilinde fonksiyon örneği
#include <stdio.h>
float kupAl(float a)
{
return a*a*a;
}
main()
{
float sayi = 0;
printf("Küpü alinacak sayiyi giriniz\n");
scanf("%f",sayi);
printf("Sonuc: %f",kupAl(sayi));
getch();
}

PHP dilinde alt program örneği


<?
//zararlı HTML kodlarını temizleme
function temizle($metin){
$metin = str_replace("\n","",$metin);
$metin = str_replace("\'","`",$metin);
$metin = str_replace("\"","“",$metin);
$metin = @strip_tags($metin);
$metin = trim(htmlspecialchars($metin));
return $metin;
}

$kullaniciad = temizle ($kullaniciad);


?>

Visual Basic’te metin dosyaları na erişim için “StreamWriter” ve “StreamReader”


nesneleri kullanı
labilir. Genellikle oluş
turulan dosyanın uzantı

nı*.txt seçiyoruz.
Pascal dilinde fonksiyon örneği
uses crt;
var x,y:integer; (* global değişkenler *)
procedure degistir(var xx:integer;var yy:integer);
var zz: integer; (* yerel değişken *)
Begin (* kova yöntemi ile değiştir *)
zz:=xx; xx:=yy; yy:=zz;
end;

begin
clrscr; (* ekran sil *)
x:=10;y:=20;
writeln(x,y); (* ilk değerler *)
degistir(x,y); (* yerlerini değiştir *)
writeln(x,y); (* yeni değerlerimiz *)
end.

43
Visual Basic dilinde sıralı dosya örneği
Imports System
Imports System.IO

Dim DosyaAdi As String = "dosya.txt"


'*.exe ile aynı klasörde oluşacaktır

Private Sub Button1_Click


If File.Exists(DosyaAdi) = False Then
Dim yazar As StreamWriter = File.CreateText(DosyaAdi)
'ilk dosya oluşturma
yazar.WriteLine(TextBox1.Text) 'ilk satırı yazıyoruz
yazar.WriteLine(TextBox2.Text) 'ikinci satırı yazıyoruz
yazar.WriteLine(TextBox3.Text) 'üçüncü satırı yazıyoruz
yazar.Flush()
yazar.Close() 'dosyayı kapat
End If
End Sub

Private Sub Button2_Click


If File.Exists(DosyaAdi) = True Then
Dim okur As StreamReader = File.OpenText(DosyaAdi)
'okumak için dosyayı açıyoruz
TextBox1.Text = okur.ReadLine()
'ilk satırı dosyadan alıyoruz
TextBox2.Text = okur.ReadLine()
'ikinci satırı dosyadan alıyoruz
TextBox3.Text = okur.ReadLine()
'üçüncü satırı dosyadan alıyoruz
okur.Close() 'dosyayı kapat
End If
End Sub

Private Sub Button3_Click


File.Delete(DosyaAdi)
'tekrar oluşturabilmek için dosyayı silme
End Sub

Private Sub Button4_Click


End 'programı kapatır
End Sub

44
Visual Basic dilinde rasgele dosyalama örneği
Structure Kisi
<VBFixedString(15)> Public Ad As String
Public Yas As Short
End Structure

Private Sub Button6_Click


End
End Sub

Private Sub Button5_Click


'kaydet düğmesi
Dim birKisi As New Kisi
Dim dosyaNo As Integer = FreeFile()
Dim kayNo As Integer

FileOpen(dosyaNo, "dosya.txt", OpenMode.Random, _


OpenAccess.Write, OpenShare.Default, Len(birKisi))

birKisi.Ad = TextBox1.Text
birKisi.Yas = TextBox2.Text
If TextBox3.Text = "*" Then
TextBox3.Text = LOF(dosyaNo) \ Len(birKisi) + 1
End If
kayNo = TextBox3.Text
FilePut(dosyaNo, birKisi, kayNo)

FileClose(dosyaNo)
End Sub

Private Sub Button1_Click


'ilk kayıt düğmesi
Dim birKisi As New Kisi
Dim dosyaNo As Integer = FreeFile()

FileOpen(dosyaNo, "dosya.txt", OpenMode.Random, _


OpenAccess.Read, OpenShare.Default, Len(birKisi))

FileGet(dosyaNo, birKisi, 1)

TextBox1.Text = birKisi.Ad
TextBox2.Text = birKisi.Yas
TextBox3.Text = 1

FileClose(dosyaNo)
End Sub

Private Sub Form1_Load


Button1_Click(sender, e)
End Sub

45
Private Sub Button5_Click_1
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = "*"
End Sub

Private Sub Button4_Click


'son kayıt düğmesi
Dim birKisi As New Kisi
Dim dosyaNo As Integer = FreeFile()

FileOpen(dosyaNo, "dosya.txt", OpenMode.Random, _


OpenAccess.Read, OpenShare.Default, Len(birKisi))

FileGet(dosyaNo, birKisi, LOF(dosyaNo) \ Len(birKisi))

TextBox1.Text = birKisi.Ad
TextBox2.Text = birKisi.Yas
TextBox3.Text = LOF(dosyaNo) \ Len(birKisi)

FileClose(dosyaNo)
End Sub

46
Visual Basic dilinde ikilik dosyalama örneği
Imports System
Imports System.IO

Structure Kisi
Public Ad As String
Public Yas As Short
End Structure
Dim birKisi As New Kisi
Dim dosyaAdi As String = "dosya.txt"

Private Sub Button6_Click


End
End Sub

Private Sub Form1_Load


Button1_Click(sender, e)
End Sub

Private Sub Button8_Click


'kaydet düğmesi
Dim binDosya As New FileStream(dosyaAdi, _
FileMode.OpenOrCreate, FileAccess.ReadWrite)
Dim yazici As New BinaryWriter(binDosya)
Dim okuyucu As New BinaryReader(binDosya)
Dim kno As Integer
Dim Ad As String
Dim Yas As Short

birKisi.Ad = TextBox1.Text
birKisi.Yas = TextBox2.Text

If TextBox3.Text = "*" Then


yazici.BaseStream.Seek(0, SeekOrigin.End)
Else
kno = 1
While okuyucu.PeekChar() > -1
If TextBox3.Text = kno Then Exit While
Ad = okuyucu.ReadString
Yas = okuyucu.ReadInt16
kno += 1
End While
End If

yazici.Write(birKisi.Ad)
yazici.Write(birKisi.Yas)
yazici.Close()
okuyucu.Close()

If TextBox3.Text = "*" Then Button4_Click(sender, e)


'kayıt no güncelleniyor
End Sub

47
Private Sub Button1_Click
'ilk kayıt düğmesi
If File.Exists(dosyaAdi) Then
Dim binDosya As New FileStream(dosyaAdi, _
FileMode.Open, FileAccess.Read)
Dim okuyucu As New BinaryReader(binDosya)
okuyucu.BaseStream.Seek(0, SeekOrigin.Begin)
TextBox1.Text = okuyucu.ReadString
TextBox2.Text = okuyucu.ReadInt16
TextBox3.Text = 1
okuyucu.Close()
End If
End Sub

Private Sub Button4_Click


'son kayıt düğmesi
Dim kno As Integer
If File.Exists(dosyaAdi) Then
Dim binDosya As New FileStream(dosyaAdi,_
FileMode.Open, FileAccess.Read)
Dim okuyucu As New BinaryReader(binDosya)
kno = 0
Do While okuyucu.PeekChar() > -1
TextBox1.Text = okuyucu.ReadString
TextBox2.Text = okuyucu.ReadInt16
kno += 1
TextBox3.Text = kno
Loop
okuyucu.Close()
End If
End Sub

Private Sub Button5_Click


TextBox1.Text = "" : TextBox2.Text = ""
TextBox3.Text = "*"
End Sub

48
ÖNERİ
LEN KAYNAKLAR

ÖNERİ
LEN KAYNAKLAR
 en.wikipedia.org/wiki/Fitts'_law

 en.wikipedia.org/wiki/Pentium_FDIV_bug

 msdn2.microsoft.com

 news.bbc.co.uk/onthisday/hi/dates/stories/may/4/newsid_2504000/2504155.stm

 samples.gotdotnet.com

 www.eecs.tufts.edu/~jacob/171/slides/therac.butler.html

 www.sourgeforge.net

 www.wikipedia.org

 www.yunus.projesi.com

49
KAYNAKÇA

KAYNAKÇA
 AYFER Can Uğur, Kim Güler Bilgisayarlara?, Pusula Yayı
nevi, İ
stanbul,
1998

 BAĞRIYANIK Tarı k, Programlama Ders Notlarıve UygulamalıGenel


Programlama Kitabı(www.yunus.projesi.com)

 NIIT Global Learning Solutions, Fundamentals of Programming

 WALLACE Wang, Beginning Programming for Dummies, Wiley Bası


mevi,
Indianapolis, 2004

50

You might also like