1. T.C.
Mİ EĞİ M BAKANLIĞI
LLÎ Tİ
MEGEP
(MESLEKİ İ M VE ÖĞ
EĞ Tİ RETİ Sİ
M STEMİ N
Nİ
GÜÇLENDİ LMESİ
Rİ PROJESİ
)
Bİ ŞM TEKNOLOJİ
Lİİ LERİ
YAPISAL PROGRAMLAMA TEMELLERİ
ANKARA 2007
2. Milli Eğ Bakanlıı
ğ tarafı geliş
itim ndan tirilen modüller;
Talim ve Terbiye Kurulu Baş ğnı 02.06.2006 tarih ve 269 sayı Kararı
ı
kanlı n lı ile
onaylanan, Mesleki ve Teknik Eğ Okul ve Kurumları kademeli olarak
itim nda
yaygı tılan 42 alan ve 192 dala ait çerçeve öğ
nlaşrı retim programlarında
amaçlanan mesleki yeterlikleri kazandı rmaya yönelik geliş
tirilmişöğretim
materyalleridir (Ders Notları r).
dı
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ı r.
tı
Modüller teknolojik geliş melere paralel olarak, amaçlanan yeterliğ i
kazandı rmak koş ile eğ
ulu itim öğ retim sı nda geliş
rası tirilebilir ve yapı
lması
önerilen değ iklikler Bakanlı ilgili birime bildirilir.
iş kta
Örgün ve yaygı eğ kurumları letmeler ve kendi kendine mesleki yeterlik
n itim , iş
ı
kazanmak isteyen bireyler modüllere internet üzerinden ulaşlabilirler.
Bası ş ılı
lmımodüller, eğ kurumları öğ
itim nda rencilere ücretsiz olarak dağtır.
Modüller hiçbir ş lamaz ve ücret karş ğ
ıı
ekilde ticari amaçla kullanı lı nda
satı
lamaz.
3. İ NDEKİ
Çİ LER
AÇIKLAMALAR ....................................................................................................................ii
Gİ Ş.......................................................................................................................................1
Rİ
ÖĞ 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ğ Göndermek ............................................................8
er
1.4. Değ Aktarı ....................................................................................................... 10
er mı
UYGULAMA FAALİ YETİ .......................................................................................... 12
ÖLÇME VE DEĞ ERLENDİ RME ................................................................................13
ÖĞ RENME FAALİ YETİ 2 ................................................................................................. 14
-
2. KULLANICI ARABİ Mİ Rİ ................................................................................................ 14
2.1. Kullanı Arabiriminde Pencere Tasarı .............................................................. 15
cı mı
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ğ Nedir? ................................................................................................. 22
i
3.2. Yazı Hataları
m ........................................................................................................23
ş
3.3. Çalı Zamanı
ma Hataları ........................................................................................ 24
3.4. MantıHataları
k ....................................................................................................... 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ş Dosyalar ...................................................................................... 33
imli
4.3. İ Dosyalar ........................................................................................................35
kilik
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
4. AÇIKLAMALAR
AÇIKLAMALAR
KOD 481BB0026
ALAN Biliş Teknolojileri
im
DAL/MESLEK Alan Ortak
MODÜLÜN ADI Yapı Programlama Temelleri
sal
Programlama dilinde alt program yazı , hata düzeltme ve
mı
MODÜLÜN TANIMI
dosyalama ile ilgili öğretim materyalidir.
SÜRE 40/16
ÖN KOŞUL ş ş
AkıDiyagramlarımodülünü almıolmak.
ş
YETERLİ
K Alt programlar ve dosyalarla çalımaya hazı k yapmak
rlı
Genel Amaç
ğı
Gerekli ortam sağlandında, alt program
yazabilecek, kullanı dostu arabirimleri yapabilecek ve
cı
hata düzeltme yöntemleri ile hatalarıdüzeltebileceksiniz.
MODÜLÜN AMACI Amaçlar
1. Alt program yazabileceksiniz.
2. Kullanı arabirimi yapabileceksiniz.
cı
3. Programı edip, hataları düzeltebileceksiniz.
test nı
4. Dosyaya bilgi yazmayı okumayı
ve yapabileceksiniz.
EĞİ M ÖĞRETİ
Tİ M Bilgisayar laboratuvarı bu ortamda bulunan
ve
ORTAMLARI VE ş
bilgisayar, lisanslı letim sistemi programı akı
iş ve
DONANIMLARI diyagramı sembolleri ile ilgili panolar.
Her faaliyet sonrası o faaliyetle ilgili
nda
değ erlendirme soruları kendi kendinizi
ile
değ erlendireceksiniz. Modül içinde ve sonunda verilen
öğ retici sorularla edindiğ bilgileri pekiş
iniz tirecek,
ÖLÇME VE
uygulama örneklerini ve testleri gerekli süre içinde
DEĞERLENDİ
RME
tamamlayarak etkili öğ renmeyi gerçekleş tireceksiniz.
ş
Sı yla araşrma yaparak, grup çalı
rası tı maları katı
na larak ve
ş ölçme ve
en son aş amada alan öğ retmenlerine danı arak
değ erlendirme uygulamaları gerçekleş
nı tiriniz.
ii
5. Gİ Ş
Rİ
Gİ Ş
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ğyeterlidir.
i
Programlama bir hünerdir. Bazı insanlar doğ olarak diğ
al erlerinden daha iyidir, ama
herkes pratik yaparak iyi olabilir. Baş
aramamaktan korkmak yerine, kendinizi bu maharete
renmek için uğ ı Programlama eğ
vererek, öğ raş n. lencelidir, fakat sinir bozucu olabilir ve
zamanı zı da boş geçmesine neden olabilir. Bu sebeple bu modülleri takip ederek, en az
nın a
sıntı en yüksek memnuniyet ile programlamayı reneceğ
kı ve öğ iz.
ız
Bu modül ile kazanacağnı konular alt program yazmak, kullanı
cıdostu arabirim
yapmak, hata düzeltme yöntemleri ile hatalarıdüzeltme ve dosyalamadı Modülü
r.
ğz
ı
bitirdiğinizde anlamadınıyerleri tekrar okuyup uygulayız.
nı
ş ı
Konular kapsamlı olarak, derinlemesine anlatılmamı r. Buzdağ n sadece üstünü
tı nı
görüyorsunuz. Ne kadar çok uygulama ve araşrma yaparsanı kendinizi o kadar
tı z
geliş
tirirsiniz, ilerletirsiniz.
Her programlama dilinin kendine has kuralları bulunmaktadı Bu kurallar kimi zaman
r.
ı
birbirine benzerken kimi zaman farklıklar göstermektedir. Kuralları anlaş r olması
lı n lı her
zaman programcı tarafı
lar ndan istenen bir özelliktir. Siz de bu modülde çeş programlama
itli
dillerinden örnekler görerek iş özünü kavramanısağ
in z lanacaktır.
Belli yerlerde geçen araşrma konuları “Önerilen Kaynaklar” kı ndan yardı
tı için smı m
almayıunutmayı z.
nı
1
7. ÖĞRENME FAALİ
YETİ
–1
ÖĞRENME FAALİ
YETİ 1
-
AMAÇ
Mehmet
Programıtekrarlanan belli yerlerini alt program hâline getirebileceksiniz.
n
ARAŞ
TIRMA
aş ı
Bu faaliyet öncesinde hazı k amaçlı ağda belirtilen araşrma
rlı tı
faaliyetlerini yapmalını
sı z.
Tek programlama dili ile çoğ istediğ
u imizi yapabiliyoruz. Aynıprogramı er
diğ
dillerde yazmanıamacı olabilir, araşrız.
n ne tını
Seri üretim ile üretilen bir malı yapı aş
n m amaları araşrarak arkadaş nı
nı tı ları za
anlatız. Mesela, bir otomobilin üretim aş
nı amalarıgibi…
1. ALT PROGRAMLAR
Bilgisayarda yazı programlar genellikle bellek ve disk gibi kaynaklarıen az
lan
tüketecek ş ş larak yapı şprogramlardı Basit
ekilde olan, hızlıçalı ve az kod yazı
an lmı r.
ı
programları u kişrahat okur ve anlar. Program büyüdükçe karmaş hâle geleceğ için,
çoğ i k i
en baş planlı
tan hareket etmek gerekir. Daha sonra zaman kaybı olmamasıiçin önceden
önlem almamı fayda vardı
zda r.
lmamalı r. Basit ş
Hikâye veya roman yazar gibi, plansı olarak program yazı
z dı ekilde
ş ş
ı ı
çalıması lanan programa yeni eklentiler yaptı program karık ve anlaş
sağ kça lmaz hâle
gelebilir. Kodları z okunması olan çöp kodlara dönüş
nı zor memelidir.
1.1. Modüller Hâlinde Programlama
Programlamayıkolaylaşrmak için programcı bazı
tı lar yöntemler geliş
tirmiş bunlar:
tir,
Sı komutlar,
ralı
Dallanma komutlarıve
Döngü komutlarır.
dı
3
8. “Sı komutları ş ana kadar yaptımı programlarda ifade ettik. Bu tip komutlar
ğz
ı
ralı ”u
alt alta yazır, en sonunda program sonlandılı
lı rır.
Pozitif dilinde sıralı komut örneği
BAŞLA
Ad:metin;
yazstb(quot;İ Pozitif Programı zquot;);
lk mı
Ad=bilgigirişi(quot;İsminizi giriniz quot;);
yazstb(quot;Selam, quot;+Ad);
SON
Tabii ki bir program, değ en durumlara göre baş iş
iş ka lemler de yapı
labilmelidir. Bunu
er”
“Eğ komutu ile yapabiliriz.
Pozitif dilinde dallanma komut örneği
BAŞLA
Ad:metin;
yazstb(quot;Eğ kullanı quot;);
er mı
Ad=bilgigiriş i(quot;İsminizi giriniz quot;);
Eğer(Ad=quot;Aliquot;);
{
yazstb(quot;Selam, quot;+Ad);
}
değilse(Ad<>quot;Aliquot;);
{
yazstb(Ad+quot; sen de kimsin?quot;);
}
SON
Program içerisinde belli işlemlerin devamlıtekrar edilerek iş
lenmesi gerekebilir.
“Döngü, İken” komutları yapabiliriz.
Bunları ile
Pozitif dilinde döngü komut örneği
BAŞLA
i:sayı;
yazstb(quot;Döngü komutu, çift sayılar geriye doğ sı
ru ralıquot;);
döngü(i=10,i>=0,-2);
{
yazstb(i);
}
SON
Diğ programcı sizin programızı
er lar nı anlayabilir ise, kendileri de değ tirebilirler ve
iş
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ı (alt program da denir) birleş
n mesi
ile yapır. Alt programları ka programcı yazabilir. En sonunda çalı ğndan emin
şı
lı baş lar tı
ş
olunan küçük programlar kopyala yapı r ile birleş
tı tirilir. Bunu bir evin tuğlalarına
benzetebiliriz. Birine bir ş olunca tüm ev çöküp gitmez. Bozuk kım tekrar yazı
ey sı larak
yerine konur. Bu yöntem ile programı za olan güvenirliğartırı
mı i rız.
4
9. Alt programlara “modül” diyebiliriz. Alt programlar hâlinde yazı
larak yapı
lan
programlamaya “modüler programlama” denir.
Şimdiye kadar yapı programlar tek parça halindeki “ana program”dan oluş
lan uyordu.
Sadece bir çeş işgörev yapabilir hâlde idi.
it ,
Sı kullanı komut kümelerini alt program hâline getirebiliriz. Bu alt programlar
k lan
kod yazı nda genellikle “ana program”ı üst kı na yazır. Değ ken adlandı
mı n smı lı iş rması ile
ı
aynı kurallar çerçevesinde isimlendirilir ve alt programa neler yollanacağ, alt programdan
neler döneceğbelirlenir. Açı
i klama satı ile önemli noktaları
rları belirtebilir, alt programların
ne iş yaradıı anlatabiliriz.
ğnı
e
Başla Hesapla
2 sayı
sonuc = a^4 – 2*a*b
giriniz: a, b
Hesapla
Geri Dön
Sonucu
göster
Bitir
Ş 1.1: Alt program yazmak
ekil
1. Baş (Ana Program)
la
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ı ana programda olduğ gibi, belli bir
nda u
baş ç ve geri dönüşbloğ içinde olan programlardı Alt programlar çağ lmadı
langı u r. rı kları
ş lamazlar.
sürece çalı rı
tı
5
10. Alt programı ismini gerektiğyerlere yazı çağ ğ zda program akı o program
ıı şı
n i p, rdı mı
lemler tamamlanı ana program kaldıı ğ yerden devam
kı na yönelir. Alt programda iş
smı nca
eder.
Alt programlarıayrıdosya olarak kaydetmeyiz. Hâlâ tek dosya hâlinde, ana program
ve alt programları zdan oluş bir programı z vardı
mı an mı r.
İ olarak bir alt program ekrana sıacak kadar uzun olmalır. Böylece anlaş r,
ğ ı
deal dı lı
okunaklı hata ayı
ve klaması kolay programlar yazabiliriz. Hatalıolan satı n tespiti bu
rları
ı
sayede kolaylaşr.
Not:Şekillerdeki siyah olmayan diğ mavi ve kı zırenklerdeki oklarış
er rmı ema çizerken sizin
yapmanı gerek yoktur. Alt programa gidiş dönüş belirtmek için yapı şr.
za ve ü lmıtı
Ş 1.2: “ Crocodile Technology” programı alt program yapı
ekil ile mı
dillerde alt program kelime olarak fonksiyon ile aynı
Bazı anlamdadı C dilinde
r.
sadece fonksiyon yazabilirsiniz. Basic dilinde ise prosedür ve fonksiyon yapı benzer
mı
mantı yazır. Terimler değ ik olsa da temel aynır.
kla lı iş dı
Prosedür: Bir iş bloğ çalı rır, ama değ döndürmez.
ş lı
lem u tı er
Fonksiyon: İçine değ yollanı iş
er r, lenir ve kendi adı bir sonuç değ
na eri
döndürür.
6
11. 1.2. Alt Program Tanı
mlama
Her alt programı yaptıı i kı ifade eden uygun bir ismi olmalı r. İ
ğ iş saca
n dı çinde en az
bir satı komut bulunan bu alt programlara “kendi tanı
mladıı z” komutlar diyebiliriz.
ğmı
r
Önceki derslerde gördüğ ümüz matematik ve metin komutlarıise programlama dilinde
tanı hazıalt programlardı
mlı r r.
ğz
ı
Yazdı mı mini programlarda bazı değ ön erlerin girilmesi gerekebilir. Bunu bayrak
ş ı
yarındaki atletlerin birbirlerine bayraklarıvermelerine benzetebiliriz. Genellikle gönderilen
bilgileri parantez içine alız.
rı
Bir alt programa birden fazla parametre yollanabilir. Parametreler aslı bildiğ
nda imiz
değ kenlerdir. İ
iş simlendirme ve tür seçimini düzgün yapmamıgereklidir.
z
Klasik programlama örneğ i:
…
Oku; quot;Öğrencinin adı giriniz quot;, öğ
nı rAd
Oku; quot;Öğrencinin soyadı giriniz quot;, öğ
nı rSoyad
Oku; quot;Öğrencinin diğ bilgilerini girinizquot;, öğ
er rDetay
Yaz; öğrAd & öğrSoyad & öğrDetay
…
Oku; quot;Velinin adı giriniz quot;, veliAd
nı
Oku; quot;Velinin soyadı giriniz quot;, veliSoyad
nı
Oku; quot;Velinin diğ bilgilerini girinizquot;, veliDetay
er
Yaz; veliAd & veliSoyad & veliDetay
…
Tekrar eden kımları
sı modüler (prosedür) hâle getirelim:
Prosedür VeriGirişi
Oku; quot;Kişinin adı giriniz quot;, kiş
nı iAd
Oku; quot;Kişinin soyadı giriniz quot;, kiş
nı iSoyad
Oku; quot;Kişinin diğ bilgilerini girinizquot;, kiş
er iDetay
Yaz; kişiAd & kişiSoyad & kişiDetay
Prosedür Bitti
Başla
Yaz; quot;Öğrenci içinquot;
VeriGirişi
Yaz; quot;Veli içinquot;
VeriGirişi
Bitir
7
12. 1.3. Alt Programı
Kesmek ve Değ Göndermek
er
ş
Döngülerde olduğ gibi, bazıartlar meydana geldiğ
u inde alt programı sonlanı ana
n p,
programa dönmesi gerekebilir. Genellikle quot;çış exitquot; komutu ile alt programlar istenilen
kı–
yerden bitirilebilir.
Başla Hesapla
2 sayı
Evet “0’a bölünemez”
giriniz: a, b b=0 hata mesajını
göster
Hayı
r
Hesapla
sonuc = a / b
sonuc
değerini
göster
Çı ş
kı
Geri Dön
Bitir
Ş 1.3: Alt programdan istenmeyen ihtimalde çı
ekil kmak
ekil 1.3’deki örnekte acaba “b” değ keni, 0 olunca ekrana ne sonuç yazır?
Ş iş lı
Alt program içine değ gönderme (parametreli prosedür) örneğ
er i:
Prosedür VeriGirişi(Metin mesaj)
Oku; mesaj & quot; adı giriniz quot;, kiş
nı iAd
Oku; mesaj & quot; soyadı giriniz quot;, kiş
nı iSoyad
Oku; mesaj & quot; diğ bilgilerini giriniz quot;, kiş
er iDetay
Yaz; kişiAd & kişiSoyad & kişiDetay
Prosedür Bitti
Başla
VeriGirişi(quot;Öğrencininquot;)
VeriGirişi(quot;Velinininquot;)
Bitir
Alt programdan ana programa değ gönderme (fonksiyon) örneğ
er i:
8
13. Örnek 1:
Fonksiyon VeriGirişi(Metin mesaj)
Oku; mesaj & quot; adı giriniz quot;, kiş
nı iAd
Oku; mesaj & quot; soyadı giriniz quot;, kiş
nı iSoyad
Oku; mesaj & quot; diğ bilgilerini giriniz quot;, kiş
er iDetay
VeriGiriş = kiş
i iAd & kişiSoyad & kişiDetay
Fonksiyon Bitti
Başla
Yaz; VeriGirişi(quot;Öğrencinquot;)
Yaz; VeriGirişi(quot;Velininquot;)
Bitir
Örnek 2:
Fonksiyon Toplama(Sayısal sayı sayı
1, 2)
Toplama = sayı + sayı
1 2
Fonksiyon Bitti
Fonksiyon Bölme(Sayısal sayı sayı
1, 2)
Eğ sayı = 0 İ
er 2 se
Bölme = quot;Hataquot;
Çı ş //alttaki bölme iş
kı lemi yapılmamalı r
dı
Eğ Bitti
er
Bölme = sayı / sayı
1 2
Fonksiyon Bitti
Başla
Yaz; Toplama(2, 4) //Ekrana 6 yazar
Yaz; Bölme(3, 0) //Ekrana quot;Hataquot; yazar
Bitir
Örnek 3:
Prosedür Onaylama(Sayısal Giriş)
Eğ Giriş <= 0 İ
er se
Yaz; quot;0 veya daha düş rakam girilemez!quot;
ük
Eğ Bitti
er
Prosedür Bitti
Başla
Sayısal sayı sayı sonuç
1, 2,
Oku; quot;Alınan malı miktarı giriniz quot;, sayı
n nı 1
Onayla(sayı1)
Oku; quot;Alınan malı fiyatı giriniz quot;, sayı
n nı 2
Onayla(sayı2)
sonuç = sayı * sayı
1 2
Yaz; quot;Ödenmesi gereken fiyat quot;,sonuç
Bitir
9
14. Örnek 4:
Fonksiyon Onaylama(Metin a, b)
Eğ (a = quot;Yöneticiquot;) Ve (b = quot;qweasd_123quot;) İ
er se
Onaylama = quot;Tamamquot; //Eğ yönetici ise onay verilir
er
Eğ Bitti
er
Fonksiyon Bitti
Başla
Metin isim, ş ifre, sonuç
Oku; quot;Kullanı isminizi giriniz quot;, isim
cı
ifrenizi giriniz quot;, ş
Oku; quot;Ş ifre
sonuç = Onayla(isim, ş ifre)
Eğ sonuç = quot;Tamamquot; İ
er se
Yaz; quot;Kayıtlara ulaşabilirsinizquot;
Değilse
Yaz; quot;Kayıtlara ulaşamazsı z!quot;
nı
Eğ Bitti
er
Bitir
1.4. Değ Aktarı
er mı
er”
Alt programa veri ya “değ ya da “referans” olarak aktarır. Parametreler ana
lı
ş sağ
ı
program ile alt program arası veri akını layan bir köprü kurulması sağ
nda nı lar.
Değ olarak aktarmak demek, veriyi gönderen değ ken ile veriyi alan değ kenin
er iş iş
hafı farklı
zada yerlerde olmasır. Araları bir yalım vardı Ana program ile alt program
dı nda tı r.
şı
arası tek yönde veri akı vardı
nda r.
Not: İ değ kenin aynı iş
ki iş değ kenmiş gibi değerinin güncellenmesi istenir ise Basic dilinde “ByRef,
ByVal” veya Pascal “Var” gibi terimleri kullanır. C dilinde ise iş aretçiler ile değ
lı erleri güncel
tutabiliriz. Ana program ile alt program arası çift yönlü veri alı
nda ş i için dildeki uygun yöntemi
veriş
kullanmanıgerekir.
z
Ana Program
Modül 1 Modül 2 Modül 3
Ş 1.4 : Alt programlar ve ana programı ş
ekil n eması
mlanan değ kenlere “yerel değ kenler”; kod kı nda en üstte
iş
Alt programda tanı iş smı
tanı , tüm programda geçerli değ kenlere “global değ kenler” denir. Alt programlar ile
iş
mlı iş
global değ kenler ile de haberleş sağ
iş me lanabilir. Fakat program büyüdükçe, çok sayıda
ı ı
değ ken tanı
iş mlamak zorunda kalı nacağiçin, bu daha karmaş bir yöntem haline gelir.
k
Parametrelerde tanı
mlanan değ kenler, yerel değ kenler ile aynı
iş iş ömre sahiptir. Alt
program bitince, hafı zadan silinirler. Global değ kenler ise program kapanı hafı
iş nca, zadan
silinirler. Aş ı
ağdaki örnekte global değ kenler ile alt program ve ana programı
iş n
haberleş vardı
mesi r.
10
15. Örnek:
Sayısal notu
Metin derece
Prosedür KademeHesabı
Eğ notu > 80 İ
er se
derece = quot;Aquot;
Çı ş //değ aktarı bitince prosedürden çı lı
kı er mı kı r
Eğ Bitti
er
Eğ notu > 60 İ
er se
derece = quot;Bquot;
Çı ş
kı
Eğ Bitti
er
Eğ notu > 40 İ
er se
derece = quot;Cquot;
Çı ş
kı
Eğ Bitti
er
Eğ notu > 20 İ //Son ihtimalde zaten prosedürden çı lı
er se kı r
derece = quot;Dquot;
Değilse
derece = quot;Equot;
Eğ Bitti
er
Prosedür Bitti
Başla
Oku; quot;Öğrenci notunu girinizquot;, notu
KademeHesabı
Yaz; derece
Bitir
11
16. UYGULAMA FAALİ
YETİ
UYGULAMA FAALİYETİ
İlem Basamakları
ş Öneriler
1. Sı olarak program komutları akı
nı ş
ralı Mesela, kullanıdan doğ yını
cı um lı isteyip
ş ı
eması yapı z.
nı nı ekrana yaş bulan program yapabilirsiniz
nı
2. Dallanan programlama yöntemi ile Mesela, kullanıya sevdiğ spor türü
cı i
ğı
program yazı z.
nı sorulup ekrana kaç kişile oynandını
i
gösteren programı yapabilirsiniz.
3. Döngü komutları program yazı z.
ile nı Kullanıdan 5 adet not girişistenir ve
cı i
ekrana bu sayı n ortalaması
ları gösterilebilir.
ş lan
4. Programda sı çalı rı komut
k tı Hangi sayı n çarpı tablosu ekrana
nı m
ı alt
blokları bir alt programa toplayız.
nı nı çıkacağnı program hâlinde
yapabilirsiniz.
İ seçiminde programlama dilinin
5. Alt programlara uygun bir tekil isim sim
veriniz. komutları (File, Not…) kullanmamalız.
nı yı
6. Bir alt programa değ yollayı z ve
er nı Girilen bir il plaka değerinin uygun olup
ğ ı
değ döndürünüz.
er olmadı (1 ile 81 arasıdeğ) erini kontrol
eden programı nı yapı z.
12
17. ÖLÇME VE DEĞ ERLENDİ
ERLENDİRME
ÖLÇME VE DEĞ RME
Ad(1)
OBJEKTİ TESTLER (ÖLÇME SORULARI)
F
Aş ı sorulardan, sonunda parantez olanlar doğ / yanlı şsoruları r. Verilen
ağ daki ru dı
ifadeye göre parantez içine doğ ise “D”, yanlıise “Y” yazız. Şklı
ş nı ı sorularda uygun şı
ru kkı
işaretleyiniz.
1. Bir programıbir baş cı
n langı vardı birçok kere sonlandılması
r, rı olabilir. ( )
2. ğz
ı
Diğ programcı n yaptımıprogramları zı
er ları mı anlaması gerek yoktur. ( )
na
3. Her programıbir ana program kı vardı ( )
n smı r.
4. Hangisi ile değ döndüren bir alt program yapabiliriz?
er
A) Prosedür
B)Fonksiyon
5. İiçe komut yazı nda ne yapmamalı z?
ç mı yı
A) Tüm komutlar aynı hizada yazı dı
lmalı r
B) Blok baş ç ve bitiş
langı komutları yapmalı z
nı yı
C) İ kapatı
lk lması gereken blok, en son yapı blok olmalı r.
lan dı
D) Blok açma ve kapatma sayı birbirine eş olmalı r.
ları it dı
6. Hangisi yapı bir programlama komutu olarak kabul edilmez?
sal
A) Döndür
B) Eğ er
C) Git
D) Durum
13
18. ÖĞRENME FAALİ
YETİ
–2
ÖĞRENME FAALİ
YETİ 2
-
AMAÇ
Programıza kullanı dostu (user friendly) arabirim yapabileceksiniz.
nı cı
ARAŞTIRMA
aş ı
Bu faaliyet öncesinde hazı k amaçlı ağda belirtilen araşrma
rlı tı
faaliyetlerini yapmalını
sı z.
ş
Bilgisayarı zda kurulu programlardan hangisinin arabirimi size daha kullanı
nı lı
geliyor?
MS-DOS pencereleri, Windows pencereleri ve web sayfaların ara yüzlerini
nı
ı rız,
karş tını farkları belirleyiniz.
laş nı
Oyunlarda, oyuncu ile diğ nesneler (para çekme makinesi, bilgisayar, el
er
,ş
bilgisayarı ifreli kapı
lar…) arası nasıiletiş kuruluyor, örnek araşrı z.
nda l im tını
2. KULLANICI ARABİ Mİ
Rİ
cı
Kullanıcıile program arası iletiş kurulması
nda im nısağ layan ara yüze “kullanı
arabirimi” denir. Genellikle programı arabiriminde bilgilendirme nesneleri ve bilgi giriş
n i
için gerekli olan nesneler bulunur. Çevremizdeki birçok araç da bir arabirime sahiptir.
Mesela asansör düğ ve gösterge kı , merdiven otomatiğ müzik seti, televizyon,
me smı i,
ş ı
fotokopi makinesi… Bazı çok kullanı ve kullanı dostu iken, bazı çok karmaş
ları lı cı ları k
olabilir.
14
19. 2.1. Kullanı Arabiriminde Pencere Tasarı
cı mı
İ
ş ş
letim sisteminizdeki pencereleri incelediyseniz, bazıkullanı noktalar dikkatinizi
lı
çekmiş
tir.
ı
Pencereler olabildiğ sade ve anlaş r bir yazı dili ile tasarlanı
ince lı m r.
Her pencerenin başk çubuğ
lı unda programıismi ve yardı bilgiler yazıdı
n mcı lır.
Kapat veya simge durumuna küçültmek için düğ meler vardı r.
ğ
Pencereye sımayan nesneleri kaydı çubukları denetleyebiliriz.
rma ile
Durum çubuğ ile kullanıya ekstra bilgilendirme sağ r.
u cı lanı
Benzer görevli düğ meler sağtarafta veya pencerenin altı yan yana hizalı r.
nda dı
Menüler sol üst kenardan seçilebilir
Belli yerlerde sağ menüleri ile hı iş
tuş zlı lemler yapı labilir.
Klavye kı sayolları fare kullanmadan hı iş yapı
ile zlı lem labilir.
Klavye ve fare birlikte kullanı kolay iş yapı
larak lem labilir.
Kritik anlarda kullanıdan onay istenir.
cı
cı rahatsıetmeyecek ş
Hata mesajları kullanıyı z ekilde sunulur.
ğ ı
Fare simgeleri ile programıne tür iş yaptı belirtilir.
n lem
Kullanınıdikkatini çekmesi için uygun renkler ve yazı seçilmiş
cı n tipi tir.
Kullanınıuygulamayı
cı n özelleş tirebilmesi için seçenekler sağ r. lanı
Pencerenizin (form da denir) boyutları ilk açış
ve lı
yeri gözü rahatsıetmemelidir. Kullanı en az hareket veya
z cı
ini zlıbir ş ekilde elde etmelidir. Fitts*
çaba ile istediğ hı
kanunu bunu belirlemiş tir.
Şimdiye kadar yapı görsel programlama örneklerinde genellikle Visual Basic ve
lan
Yunus dili kullanı şr. Birçok programlama dili görsel arabirim yapabilmemize imkân
lmıtı
sağ Sı kullanı programlama dillerine diğ örnekler Delphi ve Visual C’dir.
lar. k lan er
İ
ş ı
letim sisteminden bağ z yazım yapmak isterseniz, Java, Python ve web
msı lı
programcığ ıile ilgilenebilirsiniz. Ş
lı imdilik burada Visual Basic ile arabirim oluş
turma
ı
denemesi yapacağz.
2.2. Örnek Uygulama
Yeni bir “Windows Uygulamasıaçalı İ adı projenizin adı
” m. lk mda sorulur. Varsayı
lan
isimle bı
rakabilirsiniz.
Ş ş
imdilik içinde program kodu olmayan, sadece görüntü olarak çalı bir program
an
yapalı Ş ana kadar kod yazı ile ilgili birçok örnek yaptı görüntü ile ilgilenmemiş
m. u mı k, tik.
mladıığergonomi ile ilgili kitabı bir iş tamamlamak için gerekli
*
Paul Fitts, 1954 yında yayı
lı nda, lemi
hareketleri formül hâlinde belirlemiş
tir.
15
20. İ düş ı zdı
lk üneceğ imiz konu, ne ile ilgili program yapacağmı r. Örneğ dosya, düzen
in
ve yardı menüsü olan basit bir not defteri tasarlayalı Boşformu uygun bir boyuta
m m.
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ınesnesidir, içine yazı lacak kımdı
l yazı sı r
StatusStrip1: “İ programı z” yazı
lk mı lı
MenuStrip1: Ana menüyü bununla hazı ı
rlayacağz
ContextMenuStrip1: RichEdit1’e sağ menüsü ekleyeceğ
tuş iz
Resim 2.1: Yeni bir proje açmak
Nesneler ve özellikleri çok sayı olduğ için burada tek tek özelliklerini
da u
ı
anlatamayacağz. Deneme yanı ile çok güzel özellikler keş
lma fedebilirsiniz.
ş il
Basit bir not defterinde ne çok nesne varmıdeğ mi? Kim bilir kod kı kaç satı r,
smı rdı
raş ş
ya da programcı kaç saat program ile uğ mı r. Saatlerce uğ an programcıprogramı
tı raş ,
eğ kendi isteğile ücretsiz olarak yayı yor ise çabaları takdir etmek, maddi ve manevi
er i nlı nı
olarak destek vermek gereklidir.
Programcı ticari olarak program yazı ama yazımıkaçak
, yor, lı
yollardan, kanuni olmayan yollar ile çoğ lı ise, hem programcı
altıyor hem
de kullanı zarar görür. Yazımları da diğ ürünlerdeki gibi, garantisi,
cı lı n er
destek ve yükseltme seçenekleri vardı Kaçak olarak kullanı
r. lan
yazımda bu hizmetler yoktur. Aynı
lı haklar müzik, kitap, resim ve film
ş
gibi üzerinde emek harcanmıürünlerde de geçerlidir.
16
21. Resim 2.2: İte programı zı ilk hâli olan boş form
ş nın bir
Resim 2.3: Programı tasarı hâli
n m
17
22. Resim 2.4: Programı zı çalı rı ğan
mın ş ldıı
tı
Görüntü olarak hazı hâle gelince artı programlama kı na geçilebilir. Tüm
r k smı
nesneleri, tüm komutlarıkullanmanıgerekmez, zaten önemli olan bu değ
z ildir. Çok sevilen
programlarıincelerseniz bazı nı çok sade olduğ
ları n unu görürsünüz. Mesela “Biliş im
Sözlüğ gibi. Sadece aranacak kelime giriliyor ve anlamı ediliyor.
ü” elde
Metin kutusu, düğ etiket, resim, onay kutusu, açır kutu, liste kutusu, radyo
me, lı
düğmesi, menüler, grup kutusu web siteleri dâhil her programda genelde vardı
r.
Resim 2.5: Sı kullanı nesneler
k lan
18
23. Resim 2.6: Bir alarm ve ıtı sistemi arabirimi yapı ; akış
sıcı mı şeması ve resmini inceleyiniz
nı
19
24. UYGULAMA FAALİ
YETİ
UYGULAMA FAALİYETİ
İlem Basamakları
ş Öneriler
Proje ilk açı ğ boş form vardı
ı
1.Yeni bir proje açı z.
nı ldında bir r.
2.Pencerenin boyut ve koordinatları
nı Çok büyük veya çok küçük olmamalır. dı
uygun hale getiriniz. Ekranıtuhaf bir yerinde açı
n lmamalır.
dı
Diğ ekran çözünürlüklerinde nası
er l
göründüğ kontrol ediniz.
ünü
3.Pencere ve içindeki nesneleri uygun Zırenkler kullanı z. Siyah ile turuncu, sarı
t nı
bir ş
ekilde renklendiriniz. ile kahverengi gibi…
Siyah ile gri, yeş ile mavi çok okunaksı
il z
olabilir.
4.Kullanıya yardı kı yol
cı mcı sa Baş bir programdaki menünün benzerini
ka
menüleri tasarlayı z.
nı yapmayı deneyebilirsiniz.
5.Pencere üzerine temel kontrolleri Nesneleri form üzerine ekleyerek deneyiniz.
ekleyiniz.
Bir düğ
6.Kontrollere program yazı z.
nı meye basit bir komut ekleyiniz.
20
25. ÖLÇME VE DEĞ ERLENDİ
ERLENDİRME
ÖLÇME VE DEĞ RME
Ad(1)
OBJEKTİ TESTLER (ÖLÇME SORULARI)
F
Aş ı sorulardan, sonunda parantez olanlar doğ / yanlı şsoruları r. Verilen
ağ daki ru dı
ifadeye göre parantez içine doğ ise “D”, yanlıise “Y” yazız. Şklı
ş nı ı sorularda uygun şı
ru kkı
işaretleyiniz.
1. MS-DOS uygulamaları kullanı arabirimi yoktur. ( )
nda cı
2. Kullanı arabirimi herkesin anlayacağş
ıekilde sade olmalır. ( )
cı dı
3. Ergonomik program olmaz, istediğimiz biçimde form tasarlayabiliriz. ( )
4. Kullanı arabirimi yapı nda hangisi yapı
cı mı lmamalı r?
dı
A) Kullanı hatalar mesajları görmemelidir.
cı nı
B) Kullanıya devamlımesaj kutuları soru sormamalır.
cı , ile dı
C) Kullanı uygulamayı
cı özelleştirebilmelidir.
ş ğ rmalız.
lı ı
D) Gizli kı
sayollar yaparak kullanı lı artı yı
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ş lamaz?
yapı
A) Metin kutusu
B) Açır kutu
lı
C) Yazı kutusu
D) Liste kutusu
21
26. ÖĞRENME FAALİ
YETİ
–3
ÖĞRENME FAALİ
YETİ 3
-
AMAÇ
Programda oluş hataları
an giderme yolları öğ
nı reneceksiniz.
ARAŞ
TIRMA
renci, bu faaliyet öncesinde hazı k amaçlıaş ı
Sevgili öğ rlı ağda
belirtilen araşrma faaliyetlerini yapmalını
tı sı z.
hatalar vardı Ş
Sadece yazımda mı
lı r? imdiye kadar meydana
gelen donanı hataları
m nıaraşrı z. Mesela, 1994 yında intel Pentium
tını lı
işlemcilerde FDIV bölme hatası bulunmuştu.
Bilgisayarda oluş ilginç hata mesajları araşrı z. Mesela, çöken bir iş
an nı tını letim
sisteminde (mavi ekran) neler yazı olabilir?
yor
3. HATA Gİ
DERME
ş labilir, yanlıyere yazı
ş ş
Programda bir komut yanlıyazı labilir, bir satıyanlı kla iptal
r lı
ı bilemez ve program çöker. Problemli
edilmişolabilir. Bilgisayar bu durumda ne yapacağnı
programlara, böcekli program da denir.
3.1. Kod BöceğNedir?
i
Birçok böcek zararsı görünen küçük problemlere sebep olabilirler. Asısorun olan
z l
ş na engel olanlardı Bu böcekler programı son hâlinin
böcekler, tüm programı çalı
n ması r. n
ş
satı(piyasaya çıkma) tarihini erteleyebilir.
Bir böceğ oluş nıbirçok sebebi olabilir:
in ması n
Yazı hatalarıKomutun yanlıyazı , unutulan noktalama iş
m ş lması
: aretleri gibi
derleyicinin hemen bulduğ kolay düzeltilebilen hatalardı
u, r.
Çalı anı
şma hatalarıProgram hatası derlendikten ve çalı rı ktan sonra
ş ldı
: z tı
meydana gelen hatalardı Genellikle kullanını istenmeyen veri girmesi
r. cı n
sonucu oluş Programcı
ur. önlemini önceden almalı r.
dı
Mantı hataları Program normalde çalıyor gözükür, ama istenmeyen sonuç
k ş
ı
:
üretir. Hatayı düzeltmek veya oluş nı engellemek, programcı n
ması nı
programlama yeteneğ bağ dı
ine lı r.
22
27. 3.2. Yazı Hataları
m
Yazı hataları, dikkatle kodları
m nı gözden geçirerek ve program derlenirken verdiğ
i
hata mesajı iyi inceleyerek çözebilirsiniz.
nı
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ı kodu ve türünü belirtir. Ama hata mesajı
n verilmeyen hatalarda ne olacak?
Aş ı hikâyeyi okuyunuz.
ağ daki
Yazı Hatası
m
1962 yında NASA, Venüs gezegenini incelemek için “Mariner 1” adlıuydu
lı
ı
gönderdi. Uyduyu taş roket hatalı izlemeye baş
yan rota lamasıüzerine, patlatı
lmak zorunda
kalı .
ndı
ş
Bir hikâyeye göre, bu bir “Döngü”den kaynaklanmı . Normalde 3 kere dönmesi
tı
ş
gereken döngü, basit bir yazı hatası
m sebebi ile hataya yol açmı .
tı
FOR I = 1.3 'I değ kenine 1.3 değ
iş erini atar
FOR I = 1,3 'I döngü değ kenidir, 1’den 3’e kadar döngü yapı r
iş lı
Bu muhtemel hatalıkomut kullanı NASA’nı milyon dolarlı roketi kaybetmesine
mı n k
sebep olmuş
tu.
Sı yapı bir hata da değ ken isimlendirmesinde yapır. Program büyüdükçe, üst
k lan iş lı
ş
satı
rlarda kullanı değ ken adı yanlı kla diğ yerlerde farklıkullanı
lan iş , lı er labilir. Garip
erlerle karş ı z değ ken isimlerini kontrol ediniz. Aslı kı ve ş
ı rsanı
değ laş iş nda sa ifreli gibi
değ ken adı
iş vermemek en iyisidir.
Sağ k
lı
ş
Therac–25, radyasyon ile tedavi makinesi olarak tasarlamı . Hastalara yavaş
tı yavaş
ı
radyasyon veriyordu. Aş radyasyon verilmemesi için yazım ile denetlenen bir güvenlik
rı lı
mekanizması vardıAma yazımda “ölümcül” bir hata
. lı
vardı.
ş
Makinenin 2 durumlu çalı prensibi vardıX
ma :
ını elektron ınıX ını
ş ve
ı ş.
ı ş durumu, yüksek seviye
ı
enerji seviyesine sahipti. Yüksek seviye enerji,
şı
elektron durumu ile dengelenmeye çalıyordu.
Yanlı kla X ını
ş ş durumunda kalı nca, hastalara aş
ı ı
lı nı rı
radyasyon verilerek yanı ve ardı
klar ndan ölüme sebep
olunabiliyordu.
Sonunda hata bulundu, ama birçok hasta için artıçok geçti!
k
23
28. 3.3. Çalı Zamanı
şma Hataları
ş
Çalı zamanı
ma hataları sinsidir. Programcı
çok programı test etmemiş hatayı
iyi ise,
kullanını keş
cı n fetmesine fı vermişdemektir. Test etmek için kendimizi kullanı nı
rsat cı n
yerine koyup, her değ iklikten sonra bol bol denemeler yapmamı gereklidir. Uç değ
iş z erler
denenmelidir.
Yaş bilgisinin girilmesi için 203 bin gibi bir sayıbir de sır rakamı deneyin. Hatta
, fı nı
negatif ve ondalı sayı deneyin. Bakalı ne sonuçlar veriliyor:
klı ları m
Visual Basic dilinde örnek
Private Sub Button2_Click
Dim yas As Byte 'Byte değ ken 0-255 arası değ alı
iş er r
yas = TextBox1.Text
ız
MessageBox.Show(quot;Yaş nı quot; & Val(yas))
End Sub
Hata sebebi
Resim 3.2: Programı değ
test erleri ile deniyoruz
3.4. Mantı Hataları
k
Mantı hataları n tespiti çok zordur. Parantez hatasıunutulan karakterleri bulmak
k nı ,
ş
daha kolaydı Hatta programı zı edip çalı zamanı
r. nı test ma hatalarırahatlı bulunabilir.
kla
yazarken doğ kabul ettiğ komutlar, aslı baş ş ş ı
Programı ru iniz nda ka ekilde çalıyor
mlama ve iz sürme” teknikleri ile hatalar
olabilir. Bu hatalarıgidermek için “Adı
yakalanmaya çalılı
ş r.
ı
24
29. Stratejik Hata
1982 yında İ
lı ngiltere ile Arjantin arası
nda yapı lan
ı
nda, 37 yı ilk kez İ
Falkland adalarısavaş lda ngilizler gemi
kaybetmiş lerdi.
Her iki taraf Fransı ürünü olan Exocet füzeleri
z
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ı yangı çı . Mürettebattan 20 asker
nda n ktı
öldü, 27 asker yaralandı
.
3.5. Adı
mlamak
ı nı lar. Adı
Satıolarak adı
r mlamak programı daha iyi anlaş
n lması sağ mlama sayesinde
zlı ş
normalde çok hı çalı programıyavaş
an , yavaş da duraklatı
ya larak izleyebiliriz.
Basic dilinde adı
mlama komutları
:
Run: Çalı r
ş tı
Break All: Çalı rmaya ara ver veya kı
ştı r
Stop: Programı tamamen durdur
Step Into: Adı adı çalı rş
mm tı
Step Over: Alt programlara girmeden adımla
Step Out: Alt programdan çı p, hı ca ana
kı zlı
programa dönülür, adımlamaya devam edilir
Adı mlarken ve değ kenleri izlerken genellikle hatanı gözden kaçmasımümkün
iş n
unuzu renklendirilen satı anlayabilirsiniz, ş
olmaz. Adı mlama sı nda nerede olduğ
rası rdan u
anda 9. satı program donmuş ş
rda bir ekilde bekliyor:
Resim 3.3: Adı
mlama ve değ kenleri izleme
iş
Çok uzun programlarda ise hatanı olduğ tahmin edilen satı kadar adı
n u ra mlamak
yerine “durak noktaları kullanır.
” lı
25
30. Hatanıolduğ tahmin edilen yere yakı “durak noktası eklenir.†
n u n ”
ş lı
Program normal çalı rır.
tı
“Durak noktası gelindiğ
”na inde, programlama diline otomatik olarak dönülür ve
o satırenklendirilir.
r
ş
Bundan sonrasısize kalı ister adı
yor, mlamaya devam edin, ister “Çalı r”
tı
ş na devam edin.
komutu ile tekrar programıçalı
n ması
Resim 3.4: Kı zı
rmı renkli kım “durak noktasıolan bir satı r
sı ” rdı
Resim 3.5: “ Command Window” kullanı ‡
mı
Not: İ
sterseniz “çalı anı – Run Time”, değ kenler üzerinde oynama yapabilirsiniz.
şma nda iş
Eğ programlama dilinde böcek ayı
er klama imkânı kadar kolay değ ise, daha basit
bu il
yöntemler deneyebilirsiniz. Mesela hatalıyere yakı ekrana değ ken değ
n, iş erini bir mesaj ile
gösteren komut eklenebilir. Programdaki hata giderildikten sonra bu sat ı n temizlenmesi
rları
unutulmamalır.
dı
ş
Programızdaki hatalarıgidermeye çalı
nı mazsanı yazımı zı kalitesi düş
z, lı nın er.
Yazımı
lı yazan ekip kadar, test ekibinin de çok sorumluluğ vardı Ama programdaki hatayı
u r.
bulamadıdiye test ekibi suçlanmamalı r. Programcı
dı hatalarıotomatik olarak yakalayan
kodlar yazabilir. Kullanınıhataları fetmesi firma için daha kötüdür.
cı n keş
†
“Debug*Toggle Breakpoint F9” ile yapabilirsiniz
‡
“View*Other Windows*Command Window Ctrl+Alt+A” ile pencereyi açabilirsiniz
26
31. Kullanını hatalı
cı n
girişyapmaması
için kısa
açı klamalar
yazı dı
lmalı r
Kullanını
cı n
nı ş
kafası karı ran
tı
mesajlar
olmamalı r
dı
Resim 3.6: Kullanıya yardı olunuz, doğ bilgi vererek yönlendiriniz
cı mcı ru
Resim 3.7: Programcıkendisi için yaptıı
ğbasit hata ve ayrı lı
ntı hata mesaj örnekleri
Bir program yazarken aş ı öneriler iş
ağdaki inize yarayabilir:
Yazımı z ne kadar büyürse o kadar içinde böcek bulunma ihtimali artar.
lı nı
Böcek oluş nı nası önleyebileceğ
ması l inizi, otomatik olarak nası l
yakalayabileceğ düş
inizi ünmelisiniz.
ı
Algoritmanı oluş
zı tururken, kullanacağ z dili tam olarak öğ
nı renerek
koşullarızı
nı tamamlayı z. nı
Birden fazla yol göz önüne alarak alternatifler ekleyiniz.
ş
Çalı anı beliren böcek sinyallerini göz ardı
ma nda etmeyiniz. Kendi kendilerine
kaybolmazlar. Kaybolması beklerseniz daha da büyürler.
nı
Değ kenlerinizin değ
iş erlerini takip ediniz ve aykı değ
rı erler almaları zaman
ne
ve nerede oluşuyor böcek ayı klama ile görünüz.
27
32. Eğ programı zı
er nı kontrol amacı adı adı iş
ile m m lemekten çekinirseniz, tahmin
etmediğ hatalarla kullanı muhatap olmak zorunda kalı
cı
iniz r.
Denetlenmesi kolay adlandı rmalar ve algoritmalar oluşturunuz.
zlı ş
Hı çalı program yapmak için dayanı z kodlar oluş
an ksı turmayı z.
nı
Kestirme ve pratik programlama risklidir. Kendi ihtiyacıza göre çözüm nı
üretiniz.
Ara sı temizlik yaparak, artı yani artan kodları zı böceğ sebep
ra k nın e
olmamaları sağ nı
nı layız.
ğzı
Yaptını değ iklik çok küçük olabilir, ama hata oluş
iş turabileceğini
unutmayı z. nı
Sürümler oluş turarak ilerleyiniz. Son ticari halinden hata ayı klama kodları zı
nı
çıkararak küçülterek ilgililere teslim ediniz.
tirdiğ açı klama satırları ve öz olmalı da hiç
Program içine yerleş iniz az ya
yazmayı z. nı
İmkânsı olan bir girdi olabilir mi? Kullanı her zaman sizin gibi düş
z cı ünmez.
Bu ihtimallere önlem almalını Sorunları
sı z. sessizce çözen kodlar yazabilirsiniz.
ş z.
ı
Böceğgizlemekten çok onu yok etmeye çalını
i
Farklı algoritma yöntemleri kullanarak böceklerin sebebini çözebilirsiniz.
Devamlı mesajları kullanıyı landı
hata ile cı telaş rmayı z. nı
ğ karmanı yöntemi, onu bulduğ
Böceğ açıa çı
i n unuz anda ortadan kaldı rmaktır.
Böcekleri tekrar çı kmaya zorlayız. nı
Çok az sayı programcı
da kodlara “durak noktalarıekleyerek, kod içinde adı
” m
ş ğ sahip.
kanlıı
adı ilerleme ve girdilerin çı ya dönüş ü yerlere bakma alı
m ktı tüğ na
Bu iş lemler angarya değ ildir.
şı
Kodunuzda adı adı ilerlerken veri akına odaklanız.
mm nı
Arabiriminizdeki aksaklı bulup yok ediniz.
kları
Kaybolan bir böceğ göz ardı
i etmeyin, gizleniyor olabilir.
Zamanı bulunan böcek daha fazla böcek oluş na engel olur.
nda ması
Belirtiyi değ oluş nedenini düzeltiniz.
il, um
ş
Aptal böcek yoktur. Asısorun programcı n onu bulamamıolması r.
l nı dı
Aynı böceğ sizi iki kere sokması izin vermeyiniz!
in na
28
33. UYGULAMA FAALİ
YETİ
UYGULAMA FAALİYETİ
İlem Basamakları
ş Öneriler
İ kez karş tınıhataları çözüm
ı ğz
laş ı
1.Bir programlama dilinde program lk ve
ı
yazıdenerken, karş za çı yazı
p mı kan m yolları defterinizin arkası yazı z,
nı na nı
hatayla karş ı
ı nca
hataları inceleyiniz.
nı böylece aynı laş
bocalamazsı z.nı
Arkadaş nın yaptıı ğprogramlardaki
2.Programdaki yazı hataları
m nı ları zı
düzeltiniz. yazı hataları yardı ediniz. En çok
m na m
nerede hata yapı ğ , sebebini tartını
ı ş z.
ı
ldını
ş ldı ğz
ı
3.Program çalı rı ktan sonra
tı Yaptınıprogramları er insanlarınası
diğ n l
kullandıı gözlemleyiniz. Nasıveri
ğnı
denemek için veri giriniz. l
girdiklerini inceleyiniz. Sizin istemediğ iniz
değ erleri girerlerse ekrana nasıbir hata
l
mesajı geliyor?
4.Adı adı programı şrarak,
mm çalıtı Adı mlama komutu ile programızı nı
n ş kontrol ediniz.
ı
programıakını inceleyiniz.
29
34. ÖLÇME VE DEĞ ERLENDİ
ERLENDİRME
ÖLÇME VE DEĞ RME
Ad(1)
OBJEKTİ TESTLER (ÖLÇME SORULARI)
F
Aş ı şsoruları r. Verilen
ağ daki sorulardan; sonunda parantez olanlar doğ / yanlı
ru dı
ifadeye göre parantez içine doğ ise “D”, yanlıise “Y” yazız. Şklı
ş nı ı sorularda uygun ş ı
ru kkı
işaretleyiniz.
1. Kod böcekleri çok akı dı ( )
llı r.
2. Derleyici tüm hatalarıyakalar, bize hatanıyerini gösterir. ( )
n
3. Basit bir değ iklik yapınca, program test edilmese de olur. ( )
iş lı
4. 1.500,45 bir sayı i olabilir. ( )
giriş
5. Hangi komut ile programı mlayabiliriz?
adı
ş
A) Çalı r - Run
tı
B) Dur - Stop
C) Adı - Step Into
mla
D) Kı- Break All
r
6. Hangi hatanıtespiti ve giderilmesi çok kolaydı
n r?
A) Yazı hataları
m
ş
B) Çalı anı
ma hataları
C) Mantıhataları
k
D) Ölümcül hatalar (disk, bellek hatalarıgibi)
30
35. ÖĞRENME FAALİ
YETİ
–4
ÖĞRENME FAALİ
YETİ 4
-
AMAÇ
Programda saklanması gereken bilgileri dosyalara saklayabilecek ve tekrar
okuyabileceksiniz.
ARAŞTIRMA
aş ı
Bu faaliyet öncesinde hazı k amaçlı ağda belirtilen araşrma
rlı tı
faaliyetlerini yapmalını
sı z.
ş
Birçok program değ ik dosya türlerini çalı rabilir ve
iş tı
ğıdosya türlerini araşrız. Mesela ofis
değ tirebilir. Programları kullandı
iş n tını
programları *.doc, *.xls dosya uzantı vardı
nda ları r.
ş labilen bir dosya (*.exe gibi) diğ iş
Windows iş letim sisteminde çalı rı
tı er letim
ş labilir mi? Ya da tam tersi, Linux’ta kurulabilen bir
sistemlerinde de çalı rı
tı
program Windows’a kurulabilir mi?
4. DOSYALAMA
Bir önceki derste değ kenlerin ömürleri bitince hafı
iş zadan silindiğinden bahsettik.
Zaten böyle olmasaydı bellek birçok programı şrmaya yetmezdi. Ya bize kalı, her
, ana çalı tı cı
program açı ğnda, önceden saklanan bilginin gösterilmesi gibi bir durum gerekirse ne
ldıı
yapabiliriz? Oyunlardaki rekor bilgileri gibi düş
ünebiliriz. Bilgiler çoğ
unlukla ayrı veri
bir
dosyası saklanı
nda r.
4.1. Metin Dosyalar
İ ı ı gibi, metin dosyaları içinde sadece yazı vardı
sminden de anlaş lacağ n r.
Biçimlendirilmemişmetin dosyaları tüm iş
nı letim sistemleri tanı değ tirebilir.
r, iş
Metin dosyalara “sı dosyalar” diyebiliriz. Bir metin dosyası kullanabilmemiz
ralı nı
için önce onu oluş turmamı gereklidir. Daha sonra da sı ile satı satı metin dosyası
z ra r r nı
okuyabilir, değ tirebiliriz.
iş
31
36. Sı dosya olduğ için dosyaya bilgileri sı ile yazı yine sı ile okuyoruz. Peş
ralı u ra p, ra
peş bilgi iş yapı ğ için “For - Döndür” komutu ile daha az komut yazarak, çok satı
ldıı
e lemi rlı
bilgileri alabilir, yazabiliriz. 3 satıbilgi için basit olarak aş ı gibi bir örneğ
r ağdaki imiz var.
Resim 4.1: Metin dosyaya bilgi yazma
1. Baş la
2. DosyaAdi = “dosya.txt”
Eğ DosyaAdi mevcut İ Git 9
3. er se
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ı ktan sonra dosya kapatı dı Eğ kapatmayı
ldı lmalı r. er
unutursak, programda hatalar meydana gelebilir. Açı kalan dosyayı
k üzerinde baş iş
ka lem
yapmak için tekrar açamayı Aş ı
z. ağ dakine benzer bir hata mesajı abilir:
oluş
ş ndan kullanı ğ ndan
ldı ı
quot;İ lem, baş bir iş
ka lem tarafı
'C:ornekler3vbmetinDosyalamadosya.txt'
dosyası eriş
na emiyor.quot;
Metin dosyası kendi programı z haricinde, not defterini kullanarak
nı mı
görüntüleyebilirsiniz. Test etmek için satı
rlarıdeğ tirip, programı zda tekrar okumayı
iş nı
deneyebilirsiniz.
32
37. Resim 4 .2: Metin dosya iş
lemleri ekran görüntüsü
Programları zı
nı piyasada yaygı olarak kullanı programlar ile uyumlu yapmaya
n lan
ı
dikkat ediniz. Eğ kendi dosya türünüzü oluş
er turursanı sadece sizin programıza bağmlı
z, nı
hâle gelir. Mesela programı z hesap tablosu halinde verilerini kaydedebiliyor ise, hesap
nı
tablosunu kullanarak iş yapan kullanıya destek sağ şolursunuz. Programı zı
lem cı lamı nın
kalitesi daha artar.
Siz de programa daha fazla satı bilgi kaydetme imkânısağ nı Döngüler
r layız.
kullanarak daha az kod nasıyazı
l labilir?
4.2. Rasgele Eriş Dosyalar
imli
Metin dosyalarda satırlarıtek tek okumak küçük dosyalar için hı problemi
z
oluşturmaz iken, büyük dosyalarda belli bir satı gidip iş yapmak büyük problemdir.
ra lem
Son satı okumak için tüm dosyayı
rı taramanıgerekir.
z
t”
Rasgele erişimli dosyalar sabit boyutlu küçük parçalar halinde “kayı isminde
bölümlerden oluş Kayıiçinde bir veri kümesi saklanı Her kayıiçinde “alan” isminde
ur. t r. t
daha küçük parçalar vardı
r.
Kayıuzunlukları n belirli olması
t nı sayesinde istenen bilgiye rahatlı gidilebilir. Bu
kla
leme anlamı gelmektedir. Veritabanıkonusuna bu sayede girmiş
daha etkin veri iş na
oluyoruz.
33
38. Ali Can
Ali Can
2344224 Bir
2344224
1.Kayı
t
T10C Kayıt
T10C
Mehmet Demirci
2323434
Mehmet Demirci
T11C
2323434
2.Kayı
t
İ Kı
dris vanç Bir
T11C
2323443 Alan
T11C
İ Kı
dris vanç
3.Kayı
t
2323443
T11C
Metin Dosyaları yapı
n sı Rasgele Erişimli Dosyaları yapı
n sı
Resim 4.3: Rasgele dosyalamada kaydetme iş
lemi
34