Post on 29-May-2018
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
1/54
T.C.
MLL ETM BAKANLII
MEGEP(MESLEK ETM VE RETM SSTEMNN
GLENDRLMES PROJES)
BLM TEKNOLOJLER
YAPISAL PROGRAMLAMA TEMELLER
ANKARA 2007
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
2/54
Milli Eitim Bakanl tarafndan gelitirilen modller;
Talim ve Terbiye Kurulu Bakanlnn 02.06.2006 tarih ve 269 sayl Karar ileonaylanan, Mesleki ve Teknik Eitim Okul ve Kurumlar nda kademeli olarakyaygnlatrlan 42 alan ve 192 dala ait ereve retim programlarndaamalanan mesleki yeterlikleri kazandrmaya ynelik gelitirilmi retimmateryalleridir (Ders Notlardr).
Modller, bireylere mesleki yeterlik kazandrmak ve bireysel renmeyerehberlik etmek amacyla renme materyali olarak hazrlanm, denenmek vegelitirilmek zere Mesleki ve Teknik Eitim Okul ve Kurumlarndauygulanmaya balanmtr.
Modller teknolojik gelimelere paralel olarak, amalanan yeterliikazandrmak koulu ile eitim retim srasnda gelitirilebilir ve yaplmasnerilen deiiklikler Bakanlkta ilgili birime bildirilir.
rgn ve yaygn eitim kurumlar, iletmeler ve kendi kendine mesleki yeterlikkazanmak isteyen bireyler modllere internet zerinden ulalabilirler.
Baslm modller, eitim kurumlarnda rencilere cretsiz olarak datlr.
Modller hibir ekilde ticari amala kullanlamaz ve cret karlndasatlamaz.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
3/54
i
AIKLAMALAR ....................................................................................................................iiGR .......................................................................................................................................1RENME FAALYET - 1 ...................................................................................................31. ALT PROGRAMLAR .........................................................................................................3
1.1. Modller Halinde Programlama ...............................................................................31.2. Alt Program Tanmlama ...........................................................................................71.3. Alt Program Kesmek ve Deer Gndermek ............................................................81.4. Deer Aktarm ....................................................................................................... 10UYGULAMA FAALYET .......................................................................................... 12LME VE DEERLENDRME ................................................................................13
RENME FAALYET - 2 ................................................................................................. 142. KULLANICI ARABRM ................................................................................................ 14
2.1. Kullanc Arabiriminde Pencere Tasarm .............................................................. 152.2. rnek Uygulama.....................................................................................................15UYGULAMA FAALYET .......................................................................................... 20LME VE DEERLENDRME ................................................................................21
RENME FAALYET - 3 ................................................................................................. 223. HATA GDERME..............................................................................................................22
3.1. Kod Bcei Nedir? ................................................................................................. 223.2. Yazm Hatalar ........................................................................................................233.3. alma Zaman Hatalar ........................................................................................ 24
3.4. Mantk Hatalar....................................................................................................... 243.5. Admlamak .............................................................................................................25UYGULAMA FAALYET .......................................................................................... 29LME VE DEERLENDRME ................................................................................30
RENME FAALYET - 4 ................................................................................................. 314. DOSYALAMA ..................................................................................................................31
4.1. Metin Dosyalar ....................................................................................................... 314.2. Rasgele Eriimli Dosyalar ...................................................................................... 334.3. kilik Dosyalar ........................................................................................................35UYGULAMA FAALYET .......................................................................................... 37LME VE DEERLENDRME ................................................................................38
MODL DEERLENDRME ..............................................................................................39CEVAP ANAHTARLARI .....................................................................................................40SZLK ................................................................................................................................ 41KOD RNEKLER................................................................................................................42NERLEN KAYNAKLAR..................................................................................................49KAYNAKA .........................................................................................................................50
NDEKLER
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
4/54
ii
AIKLAMALARKOD 481BB0026
ALAN Biliim Teknolojileri
DAL/MESLEK Alan Ortak
MODLN ADI Yapsal Programlama Temelleri
MODLN TANIMIProgramlama dilinde alt program yazm , hata dzeltme vedosyalama ile ilgili retim materyalidir.
SRE 40/16
N KOUL Ak Diyagramlar modln alm olmak.
YETERLK Alt programlar ve dosyalarla almaya hazrlk yapmak
MODLN AMACI
Genel AmaGerekli ortam salandnda, alt program
yazabilecek, kullanc dostu arabirimleri yapabilecek vehata dzeltme yntemleri ile hatalar dzeltebileceksiniz.Amalar
1. Alt program yazabileceksiniz.2. Kullanc arabirimi yapabileceksiniz.3. Program test edip, hatalarn dzeltebileceksiniz.4. Dosyaya bilgi yazmay ve okumay yapabileceksiniz.
ETM RETMORTAMLARI VEDONANIMLARI
Bilgisayar laboratuvar ve bu ortamda bulunanbilgisayar, lisansl iletim sistemi program ve akdiyagram sembolleri ile ilgili panolar.
LME VEDEERLENDRME
Her faaliyet sonrasnda o faaliyetle ilgili
deerlendirme sorular ile kendi kendinizideerlendireceksiniz. Modl iinde ve sonunda verilenretici sorularla edindiiniz bilgileri pekitirecek,uygulama rneklerini ve testleri gerekli sre iindetamamlayarak etkili renmeyi gerekletireceksiniz.Srasyla aratrma yaparak, grup almalarna katlarak veen son aamada alan retmenlerine danarak lme vedeerlendirme uygulamalarn gerekletiriniz.
AIKLAMALAR
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
5/54
1
GR
Sevgili renci,
Her eyden nce herkes bir programlama dilini renebilir. Bilgisayar programlamayksek bir zek ve matematik bilgisi gerektirmez. Sadece asla vazgememe sabr verenme istei yeterlidir.
Programlama bir hnerdir. Baz insanlar doal olarak dierlerinden daha iyidir, amaherkes pratik yaparak iyi olabilir. Baaramamaktan korkmak yerine, kendinizi bu maharetevererek, renmek iin uran. Programlama elencelidir, fakat sinir bozucu olabilir vezamannzn da boa gemesine neden olabilir. Bu sebeple bu modlleri takip ederek, en azsknt ve en yksek memnuniyet ile programlamay reneceiz.
Bu modl ile kazanacanz konular alt program yazmak, kullanc dostu arabirimyapmak, hata dzeltme yntemleri ile hatalar dzeltme ve dosyalamadr. Modlbitirdiinizde anlamadnz yerleri tekrar okuyup uygulaynz.
Konular kapsaml olarak, derinlemesine anlatlmamtr. Buzdann sadece stngryorsunuz. Ne kadar ok uygulama ve aratrma yaparsanz kendinizi o kadargelitirirsiniz, ilerletirsiniz.
Her programlama dilinin kendine has kurallar bulunmaktadr. Bu kurallar kimi zamanbirbirine benzerken kimi zaman farkllklar gstermektedir. Kurallarn anlalr olmas herzaman programc lar tarafndan istenen bir zelliktir. Siz de bu modlde eitli programlamadillerinden rnekler grerek i in zn kavramanz salanacaktr.
Belli yerlerde geen aratrma konular iin nerilen Kaynaklar ksmndan yardmalmay unutmaynz.
GR
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
6/54
2
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
7/54
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
8/54
4
Sral komutlar u ana kadar yaptmz programlarda ifade ettik. Bu tip komutlar
alt alta yazlr, en sonunda program sonlandrlr.
Tabii ki bir program, deien durumlara gre baka ilemler de yaplabilmelidir. BunuEer komutu ile yapabiliriz.
Program ierisinde belli ilemlerin devaml tekrar edilerek ilenmesi gerekebilir.Bunlar Dng, ken komutlar ile yapabiliriz.
Dier programclar sizin programnz anlayabilir ise, kendileri de deitirebilirler vegelitirebilirler. Tabi bu kural sizin iin daha ok geerlidir. Tek kme hlinde tm programyazmak kumdan kale yapmak gibidir. Eninde sonunda bir yerden kecektir.
Byk programlar genellikle kk programlarn (alt program da denir) birlemesiile yaplr. Alt programlar baka programclar yazabilir. En sonunda altndan eminolunan kk programlar kopyala yaptr ile birletirilir. Bunu bir evin tulalarnabenzetebiliriz. Birine bir ey olunca tm ev kp gitmez. Bozuk ksm tekrar yazlarakyerine konur. Bu yntem ile programmza olan gvenirlii artrrz.
Pozitif dilinde sral komut rnei
BALAAd:metin;yazstb("lk Pozitif Programmz");Ad=bilgigirii("sminizi giriniz ");
yazstb("Selam, "+Ad);SON
Pozitif dilinde dallanma komut rnei
BALAAd:metin;yazstb("Eer kullanm");Ad=bilgigirii("sminizi giriniz ");
Eer(Ad="Ali");{yazstb("Selam, "+Ad);}
deilse(Ad"Ali");
{yazstb(Ad+" sen de kimsin?");}
SON
Pozitif dilinde dng komut rnei
BALAi:say;yazstb("Dng komutu, ift saylar geriye doru sral");dng(i=10,i>=0,-2);
{yazstb(i);}
SON
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
9/54
5
Alt programlara modl diyebiliriz. Alt programlar hlinde yaz larak yaplan
programlamaya modler programlama denir.imdiye kadar yaplan programlar tek para halindeki ana programdan oluuyordu.
Sadece bir eit i, grev yapabilir hlde idi.
Sk kullanlan komut kmelerini alt program hline getirebiliriz. Bu alt programlarkod yazmnda genellikle ana programn st ksmna yazlr. Deiken adlandrmas ileayn kurallar erevesinde isimlendirilir ve alt programa neler yollanaca, alt programdanneler dnecei belirlenir. Aklama satrlar ile nemli noktalar belirtebilir, alt programlarnne i e yaradn anlatabiliriz.
ekil 1.1: Alt program yazmak
1. Bala (Ana Program)2. Oku; a, b3. Hesapla4. Yaz; sonuc5. Bitir
rneklerdeki gibi alt programlar aslnda ana programda olduu gibi, belli birbalang ve geri dn blou iinde olan programlardr. Alt programlar arlmadklarsrece alt rlamazlar.
Bala
Bitir
2 saygiriniz: a, b
Sonucugster
Hesapla
Hesapla
Geri Dn
sonuc = a^4 2*a*b
1. Hesapla2. sonuc = a ^ 4 2 * a * b3. Geri Dn
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
10/54
6
Alt programn ismini gerektii yerlere yazp, ardmzda program ak o program
ksmna ynelir. Alt programda ilemler tamamlannca ana program kald yerden devameder.Alt programlar ayr dosya olarak kaydetmeyiz. Hl tek dosya hlinde, ana program
ve alt programlarmzdan oluan bir programmz vardr.
deal olarak bir alt program ekrana sacak kadar uzun olmaldr. Bylece anlalr,okunakl ve hata ayklamas kolay programlar yazabiliriz. Hatal olan satrlarn tespiti busayede kolaylar.
Not:ekillerdeki siyah olmayan dier mavi ve krmz renklerdeki oklar ema izerken sizinyapmanza gerek yoktur. Alt programa gidi ve dn belirtmek iin yaplmtr.
ekil 1.2: Crocodile Technology program ile alt program yapm
Baz dillerde alt program kelime olarak fonksiyon ile ayn anlamdadr. C dilindesadece fonksiyon yazabilirsiniz. Basic dilinde ise prosedr ve fonksiyon yapm benzermantkla yazlr. Terimler deiik olsa da temel ayndr.
Prosedr: Bir ilem blou altrl r, ama deer dndrmez. Fonksiyon: ine deer yollanr, ilenir ve kendi adna bir sonu deeri
dndrr.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
11/54
7
1.2. Alt Program Tanmlama
Her alt programn yapt ii ksaca ifade eden uygun bir ismi olmaldr. inde en azbir satr komut bulunan bu alt programlara kendi tanmladmz komutlar diyebiliriz.nceki derslerde grdmz matematik ve metin komutlar ise programlama dilindetanml hazr alt programlardr.
Yazdmz mini programlarda baz n deerlerin girilmesi gerekebilir. Bunu bayrakyarndaki atletlerin birbirlerine bayraklar vermelerine benzetebiliriz. Genellikle gnderilenbilgileri parantez iine alrz.
Bir alt programa birden fazla parametre yollanabilir. Parametreler aslnda bildiimizdeikenlerdir. simlendirme ve tr seimini dzgn yapmamz gereklidir.
Klasik programlama rnei:
Oku; "rencinin adn giriniz ", rAd
Oku; "rencinin soyadn giriniz ", rSoyadOku; "rencinin dier bilgilerini giriniz", rDetayYaz; rAd & rSoyad & rDetayOku; "Velinin adn giriniz ", veliAdOku; "Velinin soyadn giriniz ", veliSoyad
Oku; "Velinin dier bilgilerini giriniz", veliDetayYaz; veliAd & veliSoyad & veliDetay
Tekrar eden ksmlar modler (prosedr) hle getirelim:
Prosedr VeriGirii
Oku; "Kiinin adn giriniz ", kiiAdOku; "Kiinin soyadn giriniz ", kiiSoyadOku; "Kiinin dier bilgilerini giriniz", kiiDetayYaz; kiiAd & kiiSoyad & kiiDetay
Prosedr Bitti
BalaYaz; "renci iin"
VeriGiriiYaz; "Veli iin"VeriGirii
Bitir
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
12/54
8
1.3. Alt Program Kesmek ve Deer Gndermek
Dnglerde olduu gibi, baz artlar meydana geldiinde alt programn sonlanp, anaprograma dnmesi gerekebilir. Genellikle "k exit" komutu ile alt programlar istenilenyerden bitirilebilir.
ekil 1.3: Alt programdan istenmeyen ihtimalde kmak
ekil 1.3deki rnekte acaba b deikeni, 0 olunca ekrana ne sonu yazlr?Alt program iine deer gnderme (parametreli prosedr) rnei:
Prosedr VeriGirii(Metin mesaj)
Oku; mesaj & " adn giriniz ", kiiAdOku; mesaj & " soyadn giriniz ", kiiSoyadOku; mesaj & " dier bilgilerini giriniz ", kiiDetayYaz; kiiAd & kiiSoyad & kiiDetay
Prosedr Bitti
BalaVeriGirii("rencinin")VeriGirii("Velininin")
Bitir
Alt programdan ana programa deer gnderme (fonksiyon) rnei:
Bala
Bitir
2 saygiriniz: a, b
sonucdeerini
ster
Hesapla
Hesapla
Geri Dn
sonuc = a / b
b = 00a blnemez
hata mesajn
gster
Evet
Hayr
k
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
13/54
9
rnek 1:
Fonksiyon VeriGirii(Metin mesaj)Oku; mesaj & " adn giriniz ", kiiAd
Oku; mesaj & " soyadn giriniz ", kiiSoyadOku; mesaj & " dier bilgilerini giriniz ", kiiDetayVeriGirii = k iiAd & kiiSoyad & kiiDetay
Fonksiyon Bitti
BalaYaz; VeriGirii("rencin")Yaz; VeriGirii("Velinin")
Bitir
rnek 2:
Fonksiyon Toplama(Saysal say1, say2)Toplama = say1 + s a y2
Fonksiyon Bitti
Fonksiyon Blme(Saysal say1, say2)Eer say2 = 0 se
Blme = "Hata"k //alttaki blme ilemi yaplmamaldr
Eer BittiBlme = say1 / say2
Fonksiyon Bitti
Bala
Yaz; Toplama(2, 4) //Ekrana 6 yazarYaz; Blme(3, 0) //Ekrana "Hata" yazar
Bitir
rnek 3:
Prosedr Onaylama(Saysal Giri)Eer Giri
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
14/54
10
rnek 4:
Fonksiyon Onaylama(Metin a, b)Eer (a = "Ynetici") V e ( b = "qweasd_123") se
Onaylama = "Tamam" //Eer ynetici ise onay verilirEer Bitti
Fonksiyon Bitti
Bala
Metin isim, ifre, sonuOku; "Kullanc isminizi giriniz ", isimOku; "ifrenizi giriniz ", ifresonu = Onayla(isim, ifre)Eer sonu = "Tamam" se
Yaz; "Kaytlara ulaabilirsiniz"
DeilseYaz; "Kaytlara ulaamazsnz!"
Eer BittiBitir
1.4. Deer Aktarm
Alt programa veri ya deer ya da referans olarak aktarlr. Parametreler anaprogram ile alt program arasnda veri akn salayan bir kpr kurulmasn salar.
Deer olarak aktarmak demek, veriyi gnderen deiken ile veriyi alan deikeninhafzada farkl yerlerde olmasdr. Aralarnda bir yaltm vardr. Ana program ile alt program
arasnda tek ynde veri ak vardr.Not: ki deikenin ayn deikenmi gibi deerinin gncellenmesi istenir ise Basic dilinde ByRef,ByVal veya Pascal Var gibi terimleri kullanlr. C dilinde ise iaretiler ile deerleri gnceltutabiliriz. Ana program ile alt program arasnda ift ynl veri alverii iin dildeki uygun yntemikullanmanz gerekir.
ekil 1.4: Alt programlar ve ana programn emas
Alt programda tanmlanan deikenlere yerel deikenler; kod ksmnda en sttetanml, tm programda geerli deikenlere global deikenler denir. Alt programlar ileglobal deikenler ile de haberleme salanabilir. Fakat program bydke, ok saydadeiken tanmlamak zorunda kalnaca iin, bu daha karmak bir yntem haline gelir.
Parametrelerde tanmlanan deikenler, yerel deikenler ile ayn mre sahiptir. Altprogram bitince, hafzadan silinirler. Global deikenler ise program kapannca, hafzadan
silinirler. Aadaki rnekte global deikenler ile alt program ve ana programnhaberlemesi vardr.
Ana Program
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
15/54
11
rnek:
Saysal notuMetin derece
Prosedr KademeHesab
Eer notu > 80 sederece = "A"k //deer aktarm bitince prosedrden klr
Eer BittiEer notu > 60 se
derece = "B"
kEer BittiEer notu > 40 se
derece = "C"k
Eer BittiEer notu > 20 se //Son ihtimalde zaten prosedrden klr
derece = "D"Deilse
derece = "E"
Eer BittiProsedr Bitti
BalaOku; "renci notunu giriniz", notu
KademeHesab
Yaz; dereceBitir
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
16/54
12
UYGULAMA FAALYET
lem Basamaklar neriler1. Sral olarak program komutlarn akemasn yapnz.
Mesela, kullancdan doum yln isteyipekrana yan bulan program yapabilirsiniz
2. Dallanan programlama yntemi ileprogram yaznz.
Mesela, kullancya sevdii spor trsorulup ekrana ka kii ile oynandngsteren program yapabilirsiniz.
3. Dng komutlar ile program yaznz. Kullancdan 5 adet not girii istenir veekrana bu saylarn ortalamas gsterilebilir.
4. Programda sk altrlan komutbloklarn bir alt programa toplaynz.
Hangi saynn arpm tablosu ekranakacan alt program hlindeyapabilirsiniz.
5. Alt programlara uygun bir tekil isimveriniz.
sim seiminde programlama dilininkomutlarn (File, Not) kullanmamalyz.
6. Bir alt programa deer yollaynz vedeer dndrnz.
Girilen bir il plaka deerinin uygun olupolmad (1 ile 81 aras) deerini kontroleden program yapnz.
UYGULAMA FAALYET
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
17/54
13
LME VE DEERLENDRME
OBJEKTF TESTLER (LME SORULARI)
Aadaki sorulardan, sonunda parantez olanlar doru / yanl sorulardr. Verilenifadeye gre parantez iine doru ise D, yanl ise Y yaznz. kl sorularda uygun kkiaretleyiniz.
1. Bir programn bir balangc vardr, birok kere sonlandrlmas olabilir. ( )
2. Dier programclarn yaptmz programlarmz anlamasna gerek yoktur. ( )
3. Her programn bir ana program ksm vardr. ( )
4. Hangisi ile deer dndren bir alt program yapabiliriz?A) ProsedrB)Fonksiyon
5. ie komut yazmnda ne yapmamalyz?A) Tm komutlar ayn hizada yazlmaldrB) Blok balang ve biti komutlarn yapmalyzC) lk kapatlmas gereken blok, en son yaplan blok olmaldr.
D) Blok ama ve kapatma saylar birbirine eit olmaldr.
6. Hangisi yapsal bir programlama komutu olarak kabul edilmez?A) DndrB) EerC) GitD) Durum
LME VE DEERLENDRME
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
18/54
14
RENME FAALYET - 2
Programnza kullanc dostu (user friendly) arabirim yapabileceksiniz.
Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrmafaaliyetlerini yapmalsnz.
Bilgisayarnzda kurulu programlardan hangisinin arabirimi size daha kullanlgeliyor? MS-DOS pencereleri, Windows pencereleri ve web sayfalarnn ara yzlerini
karlatrnz, farklarn belirleyiniz. Oyunlarda, oyuncu ile dier nesneler (para ekme makinesi, bilgisayar, el
bilgisayar, ifreli kaplar) arasnda nas l iletiim kuruluyor, rnek aratrnz.
2. KULLANICI ARABRM
Kullanc ile program arasnda iletiim kurulmasn salayan ara yze kullancarabirimi denir. Genellikle programn arabiriminde bilgilendirme nesneleri ve bilgi giriiiin gerekli olan nesneler bulunur. evremizdeki birok ara da bir arabirime sahiptir.Mesela asansr dme ve gsterge ksm, merdiven otomatii, mzik seti, televizyon,fotokopi makinesi Bazlar ok kullanl ve kullanc dostu iken, bazlar ok karmakolabilir.
AMA
ARATIRMA
RENME FAALYET2
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
19/54
15
2.1. Kullanc Arabiriminde Pencere Tasarm
letim sisteminizdeki pencereleri incelediyseniz, baz kullanl noktalar dikkatiniziekmitir.
Pencereler olabildiince sade ve anlalr bir yazm dili ile tasarlanr. Her pencerenin balk ubuunda programn ismi ve yardmc bilgiler yaz ldr. Kapat veya simge durumuna kltmek iin dmeler vardr. Pencereye smayan nesneleri kaydrma ubuklar ile denetleyebiliriz. Durum ubuu ile kullancya ekstra bilgilendirme salanr. Benzer grevli dmeler sa tarafta veya pencerenin altnda yan yana hizaldr. Menler sol st kenardan seilebilir
Belli yerlerde sa tu menleri ile hzl ilemler yaplabilir. Klavye ksayollar ile fare kullanmadan hzl ilem yaplabilir. Klavye ve fare birlikte kullanlarak kolay ilem yaplabilir. Kritik anlarda kullancdan onay istenir. Hata mesajlar kullancy rahatsz etmeyecek ekilde sunulur. Fare simgeleri ile programn ne tr ilem yapt belirtilir. Kullancnn dikkatini ekmesi iin uygun renkler ve yaz tipi seilmitir. Kullancnn uygulamay zelletirebilmesi iin seenekler salanr.
Pencerenizin (form da denir) boyutlar ve ilk alyeri gz rahatsz etmemelidir. Kullanc en az hareket veya
aba ile istediini hzl bir ekilde elde etmelidir. Fitts*
kanunu bunu belirlemitir.
imdiye kadar yaplan grsel programlama rneklerinde genellikle Visual Basic veYunus dili kullanlmtr. Birok programlama dili grsel arabirim yapabilmemize imknsalar. Sk kullanlan programlama dillerine dier rnekler Delphi ve Visual Cdir.
letim sisteminden bamsz yazlm yapmak isterseniz, Java, Python ve webprogramcl ile ilgilenebilirsiniz. imdilik burada Visual Basic ile arabirim oluturmadenemesi yapacaz.
2.2. rnek Uygulama
Yeni bir Windows Uygulamas aalm. lk admda projenizin ad sorulur. Varsaylanisimle brakabilirsiniz.
imdilik iinde program kodu olmayan, sadece grnt olarak alan bir programyapalm. u ana kadar kod yazm ile ilgili birok rnek yaptk, grnt ile ilgilenmemitik.
* Paul Fitts, 1954 y lnda yaymlad ergonomi ile ilgili kitabnda, bir ilemi tamamlamak iin gereklihareketleri forml hlinde belirlemitir.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
20/54
16
lk dneceimiz konu, ne ile ilgili program yapacamzdr. rnein dosya, dzen
ve yardm mens olan basit bir not defteri tasarlayalm. Bo formu uygun bir boyutagetirdikten sonra gerekli nesneleri Toolbox penceresinden alyoruz.
Nesnelerimiz: Button1: Kapat dmesi Combobox1: Dosya tr semek iin (iinde metin ve zengin metin yazyor) Label1: Dosya tr yaz s RichEdit1: Not defterinin asl nesnesidir, iine yaz yazlacak ksmdr StatusStrip1: lk programmz yazl MenuStrip1: Ana meny bununla hazrlayacaz ContextMenuStrip1: RichEdit1e sa tu mens ekleyeceiz
Resim 2.1: Yeni bir proje amak
Nesneler ve zellikleri ok sayda olduu iin burada tek tek zelliklerinianlatamayacaz. Deneme yan lma ile ok gzel zellikler kefedebilirsiniz.
Basit bir not defterinde ne ok nesne varm deil mi? Kim bilir kod ksm ka satrdr,ya da programc ka saat program ile uramtr. Saatlerce uraan programc, programeer kendi istei ile cretsiz olarak yaynlyor ise abalarn takdir etmek, maddi ve maneviolarak destek vermek gereklidir.
Programc , ticari olarak program yazyor, ama yazlm kaakyollardan, kanuni olmayan yollar ile oaltlyor ise, hem programc hemde kullanc zarar grr. Yaz lmlarn da dier rnlerdeki gibi, garantisi,destek ve ykseltme seenekleri vardr. Kaak olarak kullanlanyazlmda bu hizmetler yoktur. Ayn haklar mzik, kitap, resim ve film
gibi zerinde emek harcanm rnlerde de geerlidir.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
21/54
17
Resim 2.2: te programnzn ilk hli olan bo bir form
Resim 2.3: Programn tasarm hli
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
22/54
18
Resim 2.4: Programmzn altrld an
Grnt olarak hazr hle gelince artk programlama ksmna geilebilir. Tmnesneleri, tm komutlar kullanmanz gerekmez, zaten nemli olan bu deildir. ok sevilenprogramlar incelerseniz baz larnn ok sade olduunu grrsnz. Mesela Biliim
Szl gibi. Sadece aranacak kelime giriliyor ve anlam elde ediliyor.
Metin kutusu, dme, etiket, resim, onay kutusu, alr kutu, liste kutusu, radyodmesi, menler, grup kutusu web siteleri dhil her programda genelde vardr.
Resim 2.5: Sk kullanlan nesneler
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
23/54
19
Resim 2.6: Bir alarm ve stc sistemi arabirimi yapm; ak emasn ve resmini inceleyiniz
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
24/54
20
UYGULAMA FAALYET
lem Basamaklar neriler1.Yeni bir proje anz. Proje ilk aldnda bo bir form vardr.2.Pencerenin boyut ve koordinatlarnuygun hale getiriniz.
ok byk veya ok kk olmamaldr. Ekrann tuhaf bir yerinde a lmamaldr. Dier ekran znrlklerinde nasl
grndn kontrol ediniz.3.Pencere ve iindeki nesneleri uygunbir ekilde renklendiriniz.
Zt renkler kullannz. Siyah ile turuncu, sarile kahverengi gibi
Siyah ile gri, yeil ile mavi ok okunakszolabilir.
4.Kullancya yardmc ksa yolmenleri tasarlaynz.
Baka bir programdaki mennn benzeriniyapmay deneyebilirsiniz.
5.Pencere zerine temel kontrolleriekleyiniz.
Nesneleri form zerine ekleyerek deneyiniz.
6.Kontrollere program yaznz. Bir dmeye basit bir komut ekleyiniz.
UYGULAMA FAALYET
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
25/54
21
LME VE DEERLENDRME
OBJEKTF TESTLER (LME SORULARI)
Aadaki sorulardan, sonunda parantez olanlar doru / yanl sorulardr. Verilenifadeye gre parantez iine doru ise D, yanl ise Y yaznz. kl sorularda uygun kkiaretleyiniz.
1. MS-DOS uygulamalarnda kullanc arabirimi yoktur. ( )
2. Kullanc arabirimi herkesin anlayaca ekilde sade olmaldr. ( )
3. Ergonomik program olmaz, istediimiz biimde form tasarlayabiliriz. ( )
4. Kullanc arabirimi yapmnda hangisi yaplmamaldr?A) Kullanc hatalar mesajlarn grmemelidir.B) Kullancya devaml, mesaj kutular ile soru sormamaldr.C) Kullanc uygulamay zelletirebilmelidir.D) Gizli ksayollar yaparak kullanll artrmalyz.
5. Hangi dilin grsel programlama srm yoktur?A) C
B) PascalC) BasicD) Tupol
6. Hangi nesne ile yaz olarak giri yaplamaz?A) Metin kutusuB) Al r kutuC) Yaz kutusuD) Liste kutusu
LME VE DEERLENDRME
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
26/54
22
RENME FAALYET - 3
Programda oluan hatalar giderme yollarn reneceksiniz.
Sevgili renci, bu faaliyet ncesinde hazrlk amal aadabelirtilen aratrma faaliyetlerini yapmalsnz.
Sadece yazlmda m hatalar vardr? imdiye kadar meydanagelen donanm hatalarn aratrnz. Mesela, 1994 ylnda intel Pentium
ilemcilerde FDIV blme hatas bulunmutu. Bilgisayarda oluan ilgin hata mesajlarn aratrnz. Mesela, ken bir iletim
sisteminde (mavi ekran) neler yazyor olabilir?
3. HATA GDERME
Programda bir komut yanl yazlabilir, yanl yere yazlabilir, bir satr yanllkla iptaledilmi olabilir. Bilgisayar bu durumda ne yapacan bilemez ve program ker. Problemliprogramlara, bcekli program da denir.
3.1. Kod Bcei Nedir?
Birok bcek zararsz grnen kk problemlere sebep olabilirler. Asl sorun olanbcekler, tm programn almasna engel olanlardr. Bu bcekler programn son hlininsat (piyasaya kma) tarihini erteleyebilir.
Bir bcein olumasnn birok sebebi olabilir:
Yazm hatalar: Komutun yanl yaz lmas, unutulan noktalama iaretleri gibiderleyicinin hemen bulduu, kolay dzeltilebilen hatalardr.
alma an hatalar: Program hatasz derlendikten ve altrldktan sonrameydana gelen hatalardr. Genellikle kullancnn istenmeyen veri girmesisonucu oluur. Programc nlemini nceden almaldr.
Mantk hatalar: Program normalde alyor gzkr, ama istenmeyen sonu
retir. Hatay dzeltmek veya olumasn engellemek, programcnnprogramlama yeteneine baldr.
AMA
ARATIRMA
RENME FAALYET3
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
27/54
23
3.2. Yazm Hatalar
Yazm hatalarn, dikkatle kodlar gzden geirerek ve program derlenirken verdiihata mesajn iyi inceleyerek zebilirsiniz.
Resim 3.1: Pascal derleyicisi neden hata mesaj vermitir?
Derleyici genellikle hatal yere imleci getirerek, dzeltmenizi bekler. Resim 3.1deki
gibi hatann kodu ve trn belirtir. Ama hata mesaj verilmeyen hatalarda ne olacak?Aadaki hikyeyi okuyunuz.
Yazm Hatas1962 ylnda NASA, Vens gezegenini incelemek iin Mariner 1 adl uydu
gnderdi. Uyduyu tayan roket hatal rota izlemeye balamas zerine, patlatlmak zorundakalnd.
Bir hikyeye gre, bu bir Dngden kaynaklanmt. Normalde 3 kere dnmesigereken dng, basit bir yazm hatas sebebi ile hataya yol amt.
FOR I = 1.3 'I deikenine 1.3 deerini atar
FOR I = 1,3 'I dng deikenidir, 1den 3e kadar dng yaplr
Bu muhtemel hatal komut kullanm NASAnn milyon dolarlk roketi kaybetmesinesebep olmutu.
Sk yaplan bir hata da deiken isimlendirmesinde yaplr. Program bydke, stsatrlarda kullanlan deiken ad, yanllkla dier yerlerde farkl kullanlabilir. Garipdeerlerle karlarsanz deiken isimlerini kontrol ediniz. Aslnda ksa ve ifreli gibideiken ad vermemek en iyisidir.
SalkTherac25, radyasyon ile tedavi makinesi olarak tasarlamt. Hastalara yava yava
radyasyon veriyordu. Ar radyasyon verilmemesi iin yazlm ile denetlenen bir gvenlikmekanizmas vard. Ama yazlmda lmcl bir hatavard.
Makinenin 2 durumlu alma prensibi vard: Xn ve elektron n. X n durumu, yksek seviyeenerji seviyesine sahipti. Yksek seviye enerji,elektron durumu ile dengelenmeye alyordu.Yanllkla X n durumunda kalnnca, hastalara arradyasyon verilerek yanklar ve ardndan lme sebepolunabiliyordu.
Sonunda hata bulundu, ama birok hasta iin artk ok geti!
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
28/54
24
3.3. alma Zaman Hatalar
alma zaman hatalar ok sinsidir. Programc program iyi test etmemi ise, hataykullancnn kefetmesine frsat vermi demektir. Test etmek iin kendimizi kullancnnyerine koyup, her deiiklikten sonra bol bol denemeler yapmamz gereklidir. U deerlerdenenmelidir.
Ya bilgisinin girilmesi iin 203 bin gibi bir say, bir de sfr rakamn deneyin. Hattanegatif ve ondalkl say lar deneyin. Bakalm ne sonular veriliyor:
Resim 3.2: Program test deerleri ile deniyoruz
3.4. Mantk Hatalar
Mantk hatalarnn tespiti ok zordur. Parantez hatas, unutulan karakterleri bulmakdaha kolaydr. Hatta programnz test edip alma zaman hatalar rahatlkla bulunabilir.
Program yazarken doru kabul ettiiniz komutlar, aslnda baka ekilde alyorolabilir. Bu hatalar gidermek iin Admlama ve iz srme teknikleri ile hatalar
yakalanmaya allr.
Visual Basic dilinde rnek
Private Sub Button2_Click
Dim yas As Byte 'Byte deiken 0-255 aras deer alryas = TextBox1.TextMessageBox.Show("Yanz " & Val(yas))
End Sub
Hata sebebi
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
29/54
25
3.5. Admlamak
Satr olarak admlamak programn daha iyi anlalmasn salar. Admlama sayesindenormalde ok hzl alan program, yava yava ya da duraklatlarak izleyebiliriz.
Basic dilinde admlama komutlar:
Run: altr Break All: altrmaya ara ver veya kr Stop: Program tamamen durdur
Step Into: Adm adm altr Step Over: Alt programlara girmeden admla Step Out: Alt programdan kp, hzlca ana
programa dnlr, admlamaya devam edilir
Admlarken ve deikenleri izlerken genellikle hatann gzden kamas mmknolmaz. Admlama srasnda nerede olduunuzu renklendirilen satrdan anlayabilirsiniz, uanda 9. satrda program donmu bir ekilde bekliyor:
Resim 3.3: Admlama ve deikenleri izleme
ok uzun programlarda ise hatann olduu tahmin edilen satra kadar admlamakyerine durak noktalar kullanlr.
Stratejik Hata1982 ylnda ngiltere ile Arjantin arasnda yap lan
Falkland adalar savanda, 37 ylda ilk kez ngilizler gemikaybetmilerdi.
Her iki taraf Fransz rn olan Exocet fzelerikullanyordu. H.M.S. Sheffield isimli gemi, zerine gelendman fzelerini dost sanarak, hava savunma sisteminigemelerine izin verdi. Gemi birok ynden gelen fzelerlevuruldu. Kontrol odasnda yangn kt. Mrettebattan 20 askerld, 27 asker yaraland.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
30/54
26
Hatann olduu tahmin edilen yere yakn durak noktas eklenir.
Program normal altrlr.
Durak noktasna gelindiinde, programlama diline otomatik olarak dnlr veo satr renklendirilir.
Bundan sonras size kalyor, ister admlamaya devam edin, ister altrkomutu ile tekrar programn almasna devam edin.
Resim 3.4: Krmz renkli ksm durak noktas olan bir satrdr
Resim 3.5: Command Window kullanm
Not: sterseniz alma annda Run Time, deikenler zerinde oynama yapabilirsiniz.
Eer programlama dilinde bcek ayklama imkn bu kadar kolay deil ise, daha basityntemler deneyebilirsiniz. Mesela hatal yere yakn, ekrana deiken deerini bir mesaj ilegsteren komut eklenebilir. Programdaki hata giderildikten sonra bu satrlarn temizlenmesiunutulmamaldr.
Programnzdaki hatalar gidermeye almazsanz, yazlmnzn kalitesi der.Yazlm yazan ekip kadar, test ekibinin de ok sorumluluu vardr. Ama programdaki hataybulamad diye test ekibi sulanmamaldr. Programc hatalar otomatik olarak yakalayankodlar yazabilir. Kullancnn hatalar kefetmesi firma iin daha ktdr.
Debug*Toggle Breakpoint F9 ile yapabilirsiniz View*Other Windows*Command Window Ctrl+Alt+A ile pencereyi aabilirsiniz
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
31/54
27
Resim 3.6: Kullancya yardmc olunuz, doru bilgi vererek ynlendiriniz
Resim 3.7: Programc kendisi iin yapt basit hata ve ayrntl hata mesaj rnekleri
Bir program yazarken aadaki neriler iinize yarayabilir:
Yazlmnz ne kadar byrse o kadar iinde bcekbulunma ihtimali artar. Bcek olumasn nasl nleyebileceinizi, otomatik olarak nasl
yakalayabileceinizi dnmelisiniz. Algoritmanz olutururken, kullanacanz dili tam olarak renerek
koullarnz tamamlaynz. Birden fazla yol gz nne alarak alternatifler ekleyiniz. alma annda beliren bcek sinyallerini gz ard etmeyiniz. Kendi kendilerine
kaybolmazlar. Kaybolmasn beklerseniz daha da byrler. Deikenlerinizin deerlerini takip ediniz ve aykr deerler almalar ne zaman
ve nerede oluuyor bcek ayklama ile grnz.
Kullancnnkafasn kart ranmesajlarolmamaldr
Kullancnn hatalgiri yapmamasiin ksaaklamalar
yazlmaldr
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
32/54
28
Eer programnz kontrol amac ile adm adm ilemekten ekinirseniz, tahmin
etmediiniz hatalarla kullanc muhatap olmak zorunda kalr. Denetlenmesi kolay adlandrmalar ve algoritmalar oluturunuz. Hzl alan program yapmak iin dayanksz kodlar oluturmaynz. Kestirme ve pratik programlama risklidir. Kendi ihtiyacnza gre zm
retiniz. Ara sra temizlik yaparak, artk yani artan kodlarnzn bcee sebep
olmamalarn salaynz. Yaptnz deiiklik ok kk olabilir, ama hata oluturabileceini
unutmaynz. Srmler oluturarak ilerleyiniz. Son ticari halinden hata ayklama kodlarnz
kararak klterek ilgililere teslim ediniz.
Program iine yerletirdiiniz aklama satrlar az ve z olmal ya da hiyazmaynz. mknsz olan bir girdi olabilir mi? Kullanc her zaman sizin gibi dnmez.
Bu ihtimallere nlem almalsnz. Sorunlar sessizce zen kodlar yazabilirsiniz. Bcei gizlemekten ok onu yok etmeye al nz. Farkl algoritma yntemleri kullanarak bceklerin sebebini zebilirsiniz. Devaml hata mesajlar ile kullancy telalandrmaynz. Bcei aa karmann yntemi, onu bulduunuz anda ortadan kaldrmaktr.
Bcekleri tekrar kmaya zorlaynz. ok az sayda programc kodlara durak no ktalar ekleyerek, kod iinde adm
adm ilerleme ve girdilerin ktya dnt yerlere bakma alkanlna sahip.
Bu ilemler angarya deildir. Kodunuzda adm adm ilerlerken veri akna odaklannz. Arabiriminizdeki aksaklklar bulup yok ediniz. Kaybolan bir bcei gz ard etmeyin, gizleniyor olabilir. Zamannda bulunan bcek daha fazla bcek olumasna engel olur. Belirtiyi deil, oluum nedenini dzeltiniz. Aptal bcek yoktur. Asl sorun programcnn onu bulamam olmasdr. Ayn bcein sizi iki kere sokmasna izin vermeyiniz!
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
33/54
29
UYGULAMA FAALYET
lem Basamaklar neriler1.Bir programlama dilinde programyazp denerken, karmza kan yazmhatalarn inceleyiniz.
lk kez karlatnz hatalar ve zmyollarn defterinizin arkasna yaznz,bylece ayn hatayla karlancabocalamazsnz.
2.Programdaki yazm hatalarndzeltiniz.
Arkadalarnzn yapt programlardakiyazm hatalarna yardm ediniz. En oknerede hata yapldn, sebebini tartnz.
3.Program altrldktan sonradenemek iin veri giriniz.
Yaptnz programlar dier insanlarn naslkullandn gzlemleyiniz. Nasl verigirdiklerini inceleyiniz. Sizin istemediinizdeerleri girerlerse ekrana nasl bir hatamesaj geliyor?
4.Adm adm program altrarak,programn akn kontrol ediniz.
Admlama komutu ile programnzinceleyiniz.
UYGULAMA FAALYET
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
34/54
30
LME VE DEERLENDRME
OBJEKTF TESTLER (LME SORULARI)
Aadaki sorulardan; sonunda parantez olanlar doru / yanl sorulardr. Verilenifadeye gre parantez iine doru ise D, yanl ise Y yaznz. kl sorularda uygun kkiaretleyiniz.
1. Kod bcekleri ok aklldr. ( )
2. Derleyici tm hatalar yakalar, bize hatann yerini gsterir. ( )
3. Basit bir deiiklik yaplnca, program test edilmese de olur. ( )
4. 1.500,45 bir say girii olabilir. ( )
5. Hangi komut ile program admlayabiliriz?A) altr - RunB) Dur - StopC) Admla - Step IntoD) Kr - Break All
6. Hangi hatann tespiti ve giderilmesi ok kolaydr?A) Yazm hatalarB) alma an hatalarC) Mantk hatalarD) lmcl hatalar (disk, bellek hatalar gibi)
LME VE DEERLENDRME
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
35/54
31
RENME FAALYET - 4
Programda saklanmas gereken bilgileri dosyalara saklayabilecek ve tekrarokuyabileceksiniz.
Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrmafaaliyetlerini yapmalsnz.
Birok program deiik dosya trlerini altrabilir vedeitirebilir. Programlarn kulland dosya trlerini aratrnz. Mesela ofisprogramlarnda *.doc, *.xls dosya uzantlar vardr.
Windows iletim sisteminde altrlabilen bir dosya (*.exe gibi) dier iletimsistemlerinde de altrlabilir mi? Ya da tam tersi, Linuxta kurulabilen birprogram Windowsa kurulabilir mi?
4. DOSYALAMA
Bir nceki derste deikenlerin mrleri bitince hafzadan silindiinden bahsettik.Zaten byle olmasayd, ana bellek birok program altrmaya yetmezdi. Ya bize kalc, herprogram a ldnda, nceden saklanan bilginin gsterilmesi gibi bir durum gerekirse neyapabiliriz? Oyunlardaki rekor bilgileri gibi d nebiliriz. Bilgiler ounlukla ayr bir veridosyasnda saklanr.
4.1. Metin Dosyalar
sminden de anlalaca gibi, metin dosyalarn iinde sadece yaz vardr.Biimlendirilmemi metin dosyalarn tm iletim sistemleri tanr, deitirebilir.
Metin dosyalara sral dosyalar diyebiliriz. Bir metin dosyasn kullanabilmemiziin nce onu oluturmamz gereklidir. Daha sonra da sra ile satr satr metin dosyasnokuyabilir, deitirebiliriz.
AMA
ARATIRMA
RENME FAALYET4
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
36/54
32
Sral dosya olduu iin dosyaya bilgileri sra ile yazp, yine sra ile okuyoruz. Pe
pee bilgi ilemi yapld iin For - Dndr komutu ile daha az komut yazarak, ok sat rlbilgileri alabilir, yazabiliriz. 3 satr bilgi iin basit olarak aadaki gibi bir rneimiz var.
Resim 4.1: Metin dosyaya bilgi yazma
1. Bala2. DosyaAdi = dosya.txt3. Eer DosyaAdi mevcut se Git 94. yazar = DosyaA (DosyaAdi)5. yazar.SatrYaz 1. satr6. yazar.SatrYaz 2. satr7. yazar.SatrYaz 3. satr8. yazar.DosyaKapat9. Bitir
Okuma veya yazma ilemi yapldktan sonra dosya kapatlmaldr. Eer kapatmay
unutursak, programda hatalar meydana gelebilir. Ak kalan dosyay zerinde baka ilemyapmak iin tekrar aamayz. Aadakine benzer bir hata mesaj oluabilir:
"lem, baka bir ilem tarafndan kullanldndan'C:\ornekler3\vb\metinDosyalama\dosya.txt'
dosyasna eriemiyor."
Metin dosyasn kendi programmz haricinde, not defterini kullanarakgrntleyebilirsiniz. Test etmek iin satrlar deitirip, programnzda tekrar okumaydeneyebilirsiniz.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
37/54
33
Resim 4.2: Metin dosya ilemleri ekran grnts
Programlarnz piyasada yaygn olarak kullanlan programlar ile uyumlu yapmayadikkat ediniz. Eer kendi dosya trnz oluturursanz, sadece sizin programnza bamlhle gelir. Mesela programnz hesap tablosu halinde verilerini kaydedebiliyor ise, hesaptablosunu kullanarak ilem yapan kullancya destek salam olursunuz. Programnznkalitesi daha artar.
Siz de programa daha fazla satr bilgi kaydetme imkn salaynz. Dnglerkullanarak daha az kod nas l yazlabilir?
4.2. Rasgele Eriimli Dosyalar
Metin dosyalarda satrlar tek tek okumak kk dosyalar iin hz problemioluturmaz iken, byk dosyalarda belli bir satra gidip ilem yapmak byk problemdir.Son sat r okumak iin tm dosyay taramanz gerekir.
Rasgele eriimli dosyalar sabit boyutlu kk paralar halinde kayt ismindeblmlerden oluur. Kayt iinde bir veri kmesi saklanr. Her kayt iinde alan ismindedaha kk paralar vardr.
Kayt uzunluklarnn belirli olmas sayesinde istenen bilgiye rahatlkla gidilebilir. Budaha etkin veri ileme anlamna gelmektedir. Veritaban konusuna bu sayede girmi
oluyoruz.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
38/54
34
Resim 4.3: Rasgele dosyalamada kaydetme ilemi
BirKayt
li Can2344224T10C
Mehmet Demirci2323434T11Cdris Kvan
2323443T11C
Metin Dosyalarn yaps Rasgele Eriimli Dosyalarn yaps
li Can
2344224T10C
Mehmet Demirci2323434T11C
dris Kvan2323443
T11C
BirAlan
1.Kayt
2.Kayt
3.Kayt
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
39/54
35
Rasgele eriimli dosyada kayt hazrlarken, ne tr verileri saklayacanz, ka adet
alana sahip olacan kararlatrmalsnz. Alanlarn ka karakter bykle sahip olacanplanlamalsnz. Daha sonradan deitiririm derseniz, yeni alan boyutlar eskisi ileuymayaca iin veri kayb ile karlaabilirsiniz.
Silme ve isim ile arama ilemlerini tasarlaynz.
Ya ksmna yanllkla yaz veya ok byk bir say girilirse ne olur? Hatal verigiriini nlemek iin ne yapabilirsiniz?
Resim 4.4: Rasgele dosya ilemleri
4.3. kilik Dosyalar
Rasgele dosyalamada her kayd yapsal olarak kullanma zorluu,programclarn yeni bir yol aramasna sebep olmutur. Hem hzleriimli, hem de uzun metinleri saklayacak ekilde ikilik (binary)sistemde yaplan dosyalamay kullanabiliriz. Metin uzunluklar sabit
olmak zorunda olmadndan, bu yntem dosya boyutu olarak tasarrufsalar.
kilik dosyalar; *.pdf dosya oluturma, kayt bilgileri saklama (*.log dosyalar),program ayarlarn saklama (*.bin dosyalar), internette dosya aktarm srasnda (FTP,eposta), veritaban iine resim, ses dosyas eklemek istendiinde kullanlyor.
Basit bir i iin bu kadar uzun program yazmak gereksiz grnebilir. Zaten genellikleMicrosoft Access gibi veritaban programlar bizim veri saklamamza yardm ederler.Daha karmak ve youn veri saklama ve okuma ilemleri gereken yerlerde veritabanprogramlar yksek performans salarlar.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
40/54
36
Baz durumlarda ise metin dosyasna kaydetmek daha pratiktir. Mesela, sitenizin
ziyareti saysn saklamak, programnzn pencerelerinin en son boyutlarn saklamak iinbu yntemi kullanabilirsiniz. ok az bilgi tutulaca iin gidip bir veritabanna balantyapmaya gerek yoktur. Gvenliin nemli olmad ve hz gerektiren yerlerde metindosyalama ile veri saklayabilirsiniz.
Dosyalara dardan eriilebildiine gre, eer ok gizli bilgiler saklanmasgerekiyor ise ne gibi nlemler almamz gerekir? Mesela evinize tek kapdan deil de bakayerlerden girilebiliyor ise, hrszlara kar nasl nlemler alrsnz?
Programlar veritaban kullanmadan baka hangi yntemler ile ayarlarn saklar?Mesela, Windowsun kayt defterini (registry) kullanmak gibi
Yap KisiMetin AdSaysal Yas
Yap Bitti
BaslabirKisi KisidosyaAdi = "dosya.txt"
binDosya DosyaAc (dosyaAdi, AveyaKaydet)yazici kilikYazar (binDosya)
Oku; birKisi.AdOku; birKisi.Yas
yazici.DosyaBasinaGityazici.Yaz birKisi.Adyazici.Yaz birKisi.Yas
yazici.DosyaKapatBitir
Balat*altr*regedit ile kayt defterini grntleyebilirsiniz.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
41/54
37
UYGULAMA FAALYET
lem Basamaklar neriler1.DosyaA komutu ile dosyaoluturunuz.
Veri dosyasn metin, rasgele veya ikilikyntemi ile oluturunuz.
2.SatrYaz, SatrOku komutu iledosyaya veri giriniz veya ekrana verininkts alnz.
Bilgi yazma ve okuma iin uygun komutuseiniz.
3.Structure Yap iinde alanlarnboyutunu, trn belirtiniz.
Belirleyeceiniz alanlar yap hlinegetiriniz.
4.DosyaKaydet ve DosyaGetir ilebelli bir kayda ulanz.
Kaydolmu bilgileri ekrana listeleyiniz.
5.Dng iinde verileri ekranalisteleyiniz.
Pe pee ilemleri dng komutlar ile kolayprogramlanabilir hle getiriniz.
6.DosyaKapat komutu ile dosyaykapatnz.
Her alt programn sonunda dosyaykapatnz.
UYGULAMA FAALYET
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
42/54
38
LME VE DEERLENDRME
OBJEKTF TESTLER (LME SORULARI)
Aadaki sorulardan, sonunda parantez olanlar doru / yanl sorulardr. Verilenifadeye gre parantez iine doru ise D, yanl ise Y yaznz. kl sorularda uygun kkiaretleyiniz.
1. Programmz tm dosya trlerini ap okuyabilmelidir. ( )
2. Tm dosyalar not defteri veya edit ile alabilir. ( )
3. Dosya iine kod saklayp, programmzdan kodlar altrabiliriz. ( )
4. ki program ayn anda bir metin dosyay kullanabilir. ( )
5. Hangisi ile en kolay veritaban hazrlanabilir?A) WordB) ExcelC) AccessD) Powepoint
6. Hangisini dosyalamada bir dosya uzant s olarak sememeliyiz?A) *.txtB) *.datC) *.binD) *.doc
LME VE DEERLENDRME
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
43/54
39
MODL DEERLENDRMEPERFORMANS TEST (YETERLK LME)
Modl ile kazandnz yeterlii, retmeniniz ilem basamaklarna gre 0 ile 6 puanarasnda olacak eklinde deerlendirecektir.
DEERLENDRME KRTERLER Puan
Sral olarak program komutlarn yazma, dallanan programlama yntemi ileprogram yazma, dng komutlar ile program yazma
ok tekrar eden komut bloklarn bir alt programa toplamaAlt programlara uygun bir tekil isim vermeBir alt programa deer yollaynz ve deer dndrmePrograma pencere eklemePencerenin boyut ve koordinatlarn uygun hle getirmePencere ve iindeki nesneleri uygun bir ekilde renklendirmeKullancya yardmc ksa yol menleri tasarlama, pencere zerine temelkontrolleri ekleme, kontrollere program yazmaBir program denerken karmza kan yazm hatalarn grme, programdakiyazm hatalarn dzeltmeProgram altrldktan sonra denemek iin veri girmeAdm adm program altrarak, programn akn kontrol etmeDosyaA komutu ile dosya oluturmaSatrYaz, SatrOku komutu ile dosyaya veri girip, ekrana verinin kts almaStructure Yap iinde alanlarn boyutunu belirtmeDosyaKaydet ve DosyaGetir ile belli bir kayda ulatrmaDng iinde verileri ekrana listeleme, DosyaKapat komutu ile dosyaykapatma
Toplam (en fazla 96 puan olabilir)
DEERLENDRME
Yaptnz deerlendirme sonucunda eksikleriniz varsa renme faaliyetlerinitekrarlaynz.
Modl tamamladnz, tebrik ederiz. retmeniniz size eitli lme aralaruygulayacaktr. retmeninizle iletiime geiniz.
MODL DEERLENDRME
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
44/54
40
CEVAP ANAHTARLARIRENME FAALYET-1 CEVAP ANAHTARI
1 D2 Y3 D4 B5 A6 C
RENME FAALYET-2 CEVAP ANAHTARI
1 Y2 D3 Y4 A5 D6 D
RENME FAALYET-3 CEVAP ANAHTARI
1 Y2 Y3 Y4 Y5 C6 A
RENME FAALYET-4 CEVAP ANAHTARI
1 Y
2 D3 Y4 Y5 B6 D
Cevaplarnz cevap anahtarlar ile karlatrarak kendinizi deerlendiriniz.
CEVAP ANAHTARLARI
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
45/54
41
SZLKsim Okunu Anlam
install instol kurmak, installation kurulum
instruction instrakn komut
instrument instrumnt enstrman, ara
integer intecr tamsay
introduction introdakn tantm, intro
item aytm nesne, e
kernel kernl ekirdek
log log kayt tutmak, dkm yapmak
logical locikl mantksal, boolean
match me uymak, oyun, birbir ini tutmak
message mesic mesaj, ileti
minimize minimayz en kk yapmak, simge durumuna klt
missing mising eksik, karmak
multimedia maltimedya oklu ortam
network netwrk a
object bcekt nesne
OCR ou si ar Optical Character Recognition Optik karakter tanma, yazlm
tarayclarn yannda veriliroptimize optimayz en iyi hale getirmek, optimize
optional op nl istee bal, opsiyonel
page pey sayfa
parameter permitr parametre, argman, anahtar
parity perti parite, elik
partition partin disk blm (c: gibi)
path pet yol, izlek, patika
pattern pet rn doku, dizi
perform prform gerekletirmek
peripheral perifirl evresel birim
pin pin giri k iin kullanlan port veriyolu inesi
pixel piksl Ekrandaki yazlmla elde edilebilen nokta (picture element/picturecell)
pointer pointr iareti, fare imleci
port port kap, iletiim hatt
present preznt var olmak
previous privi s nceki
primary praymri birincil
SZLK
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
46/54
42
KOD RNEKLERTupol dilinde alt program rnei
PROGRAM altProgProgrami;TANIM
TANIMSONUALTPROGRAMLAR{Alt Programimiz}
paletCiz();TANIM
Sayi i,j;TANIMSONUBaslaDongu j> 199
Blok
Dongu i> 319Blok
Pixel(i,j,j);Son;
Son;
Bitti;ALTPROGRAMLARSONU
Basla{Ana Programimiz}
Grafikekran();paletCiz();Okugh();Yaziekran();
Bitti.
Yunus dilinde alt program, fonksiyon (prosedr ile ayn amal) yazmak
KOD RNEKLER
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
47/54
43
Fonksiyon, parametre olarak deer alp, ona gre hesap yapp, sonu reten alt
programdr. Genellikle "return" komutu ile deer geri aktarlr.
Visual Basicte metin dosyalarna eriim iin StreamWriter ve StreamReadernesneleri kullan labilir. Genellikle oluturulan dosyann uzantsn *.txt seiyoruz.
C dilinde fonksiyon rnei
#include float kupAl(float a)
{return a*a*a;
}main(){float sayi = 0;printf("Kp alinacak sayiyi giriniz\n");
scanf("%f",sayi);printf("Sonuc: %f",kupAl(sayi));
getch();}
PHP dilinde alt program rnei
Pascal dilinde fonksiyon rnei
uses crt;
var x,y:integer; (* global deikenler *)procedure degistir(var xx:integer;var yy:integer);var zz: integer; (* yerel deiken *)
Begin (* kova yntemi ile deitir *)zz:=xx; xx:=yy; yy:=zz;
end;
beginclrscr; (* ekran sil *)x:=10;y:=20;
writeln(x,y); (* ilk deerler *)degistir(x,y); (* yerlerini deitir *)writeln(x,y); (* yeni deerlerimiz *)
end.
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
48/54
44
Visual Basic dilinde sral dosya rnei
Imports SystemImports System.IO
Dim DosyaAdi As String = "dosya.txt"'*.exe ile ayn klasrde oluacaktr
Private Sub Button1_ClickIf File.Exists(DosyaAdi) = False Then
Dim yazar As StreamWriter = File.CreateText(DosyaAdi)'ilk dosya oluturma
yazar.WriteLine(TextBox1.Text) 'ilk satr yazyoruzyazar.WriteLine(TextBox2.Text) 'ikinci satr yazyoruzyazar.WriteLine(TextBox3.Text) 'nc satr yazyoruz
yazar.Flush()yazar.Close() 'dosyay kapat
End If
End Sub
Private Sub Button2_ClickIf File.Exists(DosyaAdi) = True Then
Dim okur As StreamReader = File.OpenText(DosyaAdi)'okumak iin dosyay ayoruzTextBox1.Text = okur.ReadLine()
'ilk satr dosyadan alyoruzTextBox2.Text = okur.ReadLine()'ikinci satr dosyadan alyoruzTextBox3.Text = okur.ReadLine()'nc satr dosyadan alyoruz
okur.Close() 'dosyay kapatEnd If
End Sub
Private Sub Button3_Click
File.Delete(DosyaAdi)'tekrar oluturabilmek iin dosyay silme
End Sub
Private Sub Button4_Click
End 'program kapatrEnd Sub
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
49/54
45
isual Basic dilinde rasgele dosyalama rnei
Structure Kisi
Public Ad As StringPublic Yas As Short
End Structure
Private Sub Button6_Click
EndEnd Sub
Private Sub Button5_Click'kaydet dmesi
Dim birKisi As New KisiDim dosyaNo As Integer = FreeFile()Dim kayNo As Integer
FileOpen(dosyaNo, "dosya.txt", OpenMode.Random, _
OpenAccess.Write, OpenShare.Default, Len(birKisi))
birKisi.Ad = TextBox1.TextbirKisi.Yas = TextBox2.TextIf TextBox3.Text = "*" Then
TextBox3.Text = LOF(dosyaNo) \ Len(birKisi) + 1End IfkayNo = TextBox3.TextFilePut(dosyaNo, birKisi, kayNo)
FileClose(dosyaNo)End Sub
Private Sub Button1_Click'ilk kayt dmesi
Dim birKisi As New KisiDim dosyaNo As Integer = FreeFile()
FileOpen(dosyaNo, "dosya.txt", OpenMode.Random, _OpenAccess.Read, OpenShare.Default, Len(birKisi))
FileGet(dosyaNo, birKisi, 1)
TextBox1.Text = birKisi.AdTextBox2.Text = birKisi.Yas
TextBox3.Text = 1
FileClose(dosyaNo)End Sub
Private Sub Form1_Load
Button1_Click(sender, e)End Sub
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
50/54
46
Private Sub Button5_Click_1TextBox1.Text = ""TextBox2.Text = ""TextBox3.Text = "*"
End Sub
Private Sub Button4_Click'son kayt dmesiDim birKisi As New KisiDim 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.AdTextBox2.Text = birKisi.YasTextBox3.Text = LOF(dosyaNo) \ Len(birKisi)
FileClose(dosyaNo)
End Sub
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
51/54
47
isual Basic dilinde ikilik dosyalama rnei
Imports SystemImports System.IO
Structure KisiPublic Ad As String
Public Yas As ShortEnd StructureDim birKisi As New KisiDim dosyaAdi As String = "dosya.txt"
Private Sub Button6_ClickEnd
End Sub
Private Sub Form1_Load
Button1_Click(sender, e)End Sub
Private Sub Button8_Click'kaydet dmesi
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 IntegerDim Ad As String
Dim Yas As Short
birKisi.Ad = TextBox1.Text
birKisi.Yas = TextBox2.Text
If TextBox3.Text = "*" Thenyazici.BaseStream.Seek(0, SeekOrigin.End)
Elsek n o = 1While okuyucu.PeekChar() > -1
If TextBox3.Text = kno Then Exit WhileAd = okuyucu.ReadStringYas = okuyucu.ReadInt16kno += 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)'kayt no gncelleniyor
End Sub
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
52/54
48
Private Sub Button1_Click'ilk kayt dmesi
If File.Exists(dosyaAdi) ThenDim 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.ReadInt16TextBox3.Text = 1okuyucu.Close()
End IfEnd Sub
Private Sub Button4_Click
'son kayt dmesiDim kno As IntegerIf File.Exists(dosyaAdi) Then
Dim binDosya As New FileStream(dosyaAdi,_FileMode.Open, FileAccess.Read)
Dim okuyucu As New BinaryReader(binDosya)k n o = 0Do While okuyucu.PeekChar() > -1
TextBox1.Text = okuyucu.ReadStringTextBox2.Text = okuyucu.ReadInt16kno += 1TextBox3.Text = kno
Loop
okuyucu.Close()
End IfEnd Sub
Private Sub Button5_Click
TextBox1.Text = "" : TextBox2.Text = ""TextBox3.Text = "*"
End Sub
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
53/54
49
NERLEN 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
NERLEN KAYNAKLAR
8/9/2019 Biliim Teknolojileri - 18 - Yapsal Programlama Temelleri
54/54
KAYNAKA AYFER Can Uur, Kim Gler Bilgisayarlara?, Pusula Yaynevi, stanbul,
1998
BARIYANIK Tark, Programlama Ders Notlar ve Uygulamal GenelProgramlama Kitab (www.yunus.projesi.com)
NIIT Global Learning Solutions, Fundamentals of Programming
WALLACE Wang, Beginning Programming for Dummies, Wiley Basmevi,Indianapolis, 2004
KAYNAKA