BTT. Modül 17. Yapısal Programlama Temelleri

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    BTT. Modül 17. Yapısal Programlama Temelleri - Presentation Transcript

    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
    6. 2
    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(\"İ Pozitif Programı z\"); lk mı Ad=bilgigirişi(\"İsminizi giriniz \"); yazstb(\"Selam, \"+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(\"Eğ kullanı \"); er mı Ad=bilgigiriş i(\"İsminizi giriniz \"); Eğer(Ad=\"Ali\"); { yazstb(\"Selam, \"+Ad); } değilse(Ad<>\"Ali\"); { yazstb(Ad+\" sen de kimsin?\"); } SON Program içerisinde belli işlemlerin devamlıtekrar edilerek iş lenmesi gerekebilir. “Döngü, İken” komutları yapabiliriz. Bunları ile Pozitif dilinde döngü komut örneği BAŞLA i:sayı; yazstb(\"Döngü komutu, çift sayılar geriye doğ sı ru ralı\"); 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; \"Öğrencinin adı giriniz \", öğ nı rAd Oku; \"Öğrencinin soyadı giriniz \", öğ nı rSoyad Oku; \"Öğrencinin diğ bilgilerini giriniz\", öğ er rDetay Yaz; öğrAd & öğrSoyad & öğrDetay … Oku; \"Velinin adı giriniz \", veliAd nı Oku; \"Velinin soyadı giriniz \", veliSoyad nı Oku; \"Velinin diğ bilgilerini giriniz\", veliDetay er Yaz; veliAd & veliSoyad & veliDetay … Tekrar eden kımları sı modüler (prosedür) hâle getirelim: Prosedür VeriGirişi Oku; \"Kişinin adı giriniz \", kiş nı iAd Oku; \"Kişinin soyadı giriniz \", kiş nı iSoyad Oku; \"Kişinin diğ bilgilerini giriniz\", kiş er iDetay Yaz; kişiAd & kişiSoyad & kişiDetay Prosedür Bitti Başla Yaz; \"Öğrenci için\" VeriGirişi Yaz; \"Veli için\" VeriGirişi Bitir 7
    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 \"çış exit\" 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 & \" adı giriniz \", kiş nı iAd Oku; mesaj & \" soyadı giriniz \", kiş nı iSoyad Oku; mesaj & \" diğ bilgilerini giriniz \", kiş er iDetay Yaz; kişiAd & kişiSoyad & kişiDetay Prosedür Bitti Başla VeriGirişi(\"Öğrencinin\") VeriGirişi(\"Velininin\") Bitir Alt programdan ana programa değ gönderme (fonksiyon) örneğ er i: 8
    13. Örnek 1: Fonksiyon VeriGirişi(Metin mesaj) Oku; mesaj & \" adı giriniz \", kiş nı iAd Oku; mesaj & \" soyadı giriniz \", kiş nı iSoyad Oku; mesaj & \" diğ bilgilerini giriniz \", kiş er iDetay VeriGiriş = kiş i iAd & kişiSoyad & kişiDetay Fonksiyon Bitti Başla Yaz; VeriGirişi(\"Öğrencin\") Yaz; VeriGirişi(\"Velinin\") Bitir Örnek 2: Fonksiyon Toplama(Sayısal sayı 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 = \"Hata\" Çı ş //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 \"Hata\" yazar Bitir Örnek 3: Prosedür Onaylama(Sayısal Giriş) Eğ Giriş <= 0 İ er se Yaz; \"0 veya daha düş rakam girilemez!\" ük Eğ Bitti er Prosedür Bitti Başla Sayısal sayı sayı sonuç 1, 2, Oku; \"Alınan malı miktarı giriniz \", sayı n nı 1 Onayla(sayı1) Oku; \"Alınan malı fiyatı giriniz \", sayı n nı 2 Onayla(sayı2) sonuç = sayı * sayı 1 2 Yaz; \"Ödenmesi gereken fiyat \",sonuç Bitir 9
    14. Örnek 4: Fonksiyon Onaylama(Metin a, b) Eğ (a = \"Yönetici\") Ve (b = \"qweasd_123\") İ er se Onaylama = \"Tamam\" //Eğ yönetici ise onay verilir er Eğ Bitti er Fonksiyon Bitti Başla Metin isim, ş ifre, sonuç Oku; \"Kullanı isminizi giriniz \", isim cı ifrenizi giriniz \", ş Oku; \"Ş ifre sonuç = Onayla(isim, ş ifre) Eğ sonuç = \"Tamam\" İ er se Yaz; \"Kayıtlara ulaşabilirsiniz\" Değilse Yaz; \"Kayıtlara ulaşamazsı z!\" 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 = \"A\" Çı ş //değ aktarı bitince prosedürden çı lı kı er mı kı r Eğ Bitti er Eğ notu > 60 İ er se derece = \"B\" Çı ş kı Eğ Bitti er Eğ notu > 40 İ er se derece = \"C\" Çı ş kı Eğ Bitti er Eğ notu > 20 İ //Son ihtimalde zaten prosedürden çı lı er se kı r derece = \"D\" Değilse derece = \"E\" Eğ Bitti er Prosedür Bitti Başla Oku; \"Öğrenci notunu giriniz\", 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(\"Yaş nı \" & 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ı ı \"İ lem, baş bir iş ka lem tarafı 'C:\\ornekler3\\vb\\metinDosyalama\\dosya.txt' dosyası eriş na emiyor.\" 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
    39. ı zı Rasgele eriş dosyada kayıhazı imli t rlarken, ne tür verileri saklayacağnı, kaç adet ı ı alana sahip olacağ kararlaşrmalını Alanları kaç karakter büyüklüğ sahip olacağ nı tı sı z. n e nı planlamalını “Daha sonradan değ tiririm” derseniz, yeni alan boyutlarıeskisi ile sı z. iş ı ı uymayacağiçin veri kaybı karş abilirsiniz. ile laş Silme ve isim ile arama iş lemlerini tasarlayı z. nı  kı na yanlı kla yazı çok büyük bir sayı ş Yaş smı lı veya girilirse ne olur? Hatalıveri giriş önlemek için ne yapabilirsiniz? ini Resim 4.4: Rasgele dosya iş lemleri 4.3. İ kilik Dosyalar Rasgele dosyalamada her kaydı sal olarak kullanma zorluğ yapı u, programcı n yeni bir yol araması sebep olmuş Hem hı ları na tur. zlı imli, hem de uzun metinleri saklayacak ş eriş ekilde ikilik (binary) sistemde yapı dosyalamayıkullanabiliriz. Metin uzunluklarısabit lan olmak zorunda olmadıı ğndan, bu yöntem dosya boyutu olarak tasarruf sağ lar. İkilik dosyalar; *.pdf dosya oluş turma, kayı bilgileri saklama (*.log dosyaları t ), program ayarları nısaklama (*.bin dosyaları internette dosya aktarı ), mısı nda (FTP, rası eposta), veritabanıiçine resim, ses dosyası eklemek istendiğ kullanıyor. inde lı Basit bir işiçin bu kadar uzun program yazmak gereksiz görünebilir. Zaten genellikle programları bizim veri saklamamı yardı ederler. Microsoft Access gibi “veritabanı ” za m ı Daha karmaş ve yoğ veri saklama ve okuma iş k un lemleri gereken yerlerde veritabanı programları yüksek performans sağ larlar. 35
    40. Bazıdurumlarda ise metin dosyası kaydetmek daha pratiktir. Mesela, sitenizin na ziyaretçi sayını sı saklamak, programı zı pencerelerinin en son boyutları saklamak için nın nı ıiçin gidip bir veritabanı bağ bu yöntemi kullanabilirsiniz. Çok az bilgi tutulacağ na lantı ğıve hı gerektiren yerlerde “metin yapmaya gerek yoktur. Güvenliğ önemli olmadı in z dosyalama” ile veri saklayabilirsiniz. Dosyalara dı dan eriş şarı ilebildiğ göre, eğ çok gizli bilgiler saklanması ine er gerekiyor ise ne gibi önlemler almamı gerekir? Mesela evinize tek kapı değ de baş z dan il ka ıl yerlerden girilebiliyor ise, hı zlara karşnasıönlemler alı nı rsı rsı z? Programlar veritabanı kullanmadan baş hangi yöntemler ile ayarları saklar? ka nı t defterini§ (registry) kullanmak gibi … Mesela, Windows’un kayı Yapı Kisi Metin Ad Sayı sal Yas Yapı Bitti Basla birKisi Kisi dosyaAdi = \"dosya.txt\" binDosya DosyaAc (dosyaAdi, AçveyaKaydet) yazici İkilikYazar (binDosya) Oku; birKisi.Ad Oku; birKisi.Yas yazici.DosyaBasinaGit yazici.Yaz birKisi.Ad yazici.Yaz birKisi.Yas yazici.DosyaKapat Bitir § ş “Baş lat*Çalı r…*regedit” ile kayı tı t defterini görüntüleyebilirsiniz. 36
    41. UYGULAMA FAALİ YETİ UYGULAMA FAALİYETİ İlem Basamakları ş Öneriler  Veri dosyası metin, rasgele veya ikilik 1.“DosyaAç” komutu ile dosya nı oluş turunuz. yöntemi ile oluş turunuz.  Bilgi yazma ve okuma için uygun komutu 2.“Satı rYaz, SatırOku” komutu ile dosyaya veri giriniz veya ekrana verinin seçiniz. çı sı nı ktı alız.  Belirleyeceğ alanları hâline 3.“Structure – Yapıiçinde alanları ” n iniz yapı boyutunu, türünü belirtiniz. getiriniz.  Kaydolmuş 4.“DosyaKaydet” ve “DosyaGetir” ile bilgileri ekrana listeleyiniz. ı belli bir kayda ulaş z. nı  Peş e iş 5.Döngü içinde verileri ekrana peş lemleri döngü komutları kolay ile listeleyiniz. programlanabilir hâle getiriniz.  Her alt programısonunda dosyayı 6.“DosyaKapat” komutu ile dosyayı n kapatız. nı kapatı z. nı 37
    42. Ö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. Programı z tüm dosya türlerini açıokuyabilmelidir. ( ) mı p 2. Tüm dosyalar not defteri veya edit ile açı labilir. ( ) 3. Dosya içine kod saklayı programı zdan kodları şrabiliriz. ( ) p, mı çalıtı 4. İ program aynı ki anda bir metin dosyayıkullanabilir. ( ) 5. Hangisi ile en kolay veritabanı rlanabilir? hazı A) Word B) Excel C) Access D) Powepoint 6. Hangisini dosyalamada bir dosya uzantı olarak seçmemeliyiz? sı A) *.txt B) *.dat C) *.bin D) *.doc 38
    43. MODÜL DEĞERLENDİ RME MODÜL DEĞERLENDİ RME PERFORMANS TESTİ(YETERLİ ÖLÇME) K Modül ile kazandıız yeterliğ öğ ğnı i, retmeniniz iş basamakları göre 0 ile 6 puan lem na arası olacak ş nda eklinde değ erlendirecektir. DEĞERLENDİ RME KRİ TERLERİ Puan Sıralıolarak program komutları nıyazma, dallanan programlama yöntemi ile program yazma, döngü komutları program yazma ile Çok tekrar eden komut blokları bir alt programa toplama nı Alt programlara uygun bir tekil isim verme Bir alt programa değ yollayı z ve değ döndürme er nı er Programa pencere ekleme Pencerenin boyut ve koordinatları uygun hâle getirme nı Pencere ve içindeki nesneleri uygun bir ş ekilde renklendirme Kullanıya yardı cı mcıkı yol menüleri tasarlama, pencere üzerine temel sa kontrolleri ekleme, kontrollere program yazma ı Bir programıdenerken karş za çı yazı hataları mı kan m nıgörme, programdaki yazı hataları düzeltme m nı ş ldı Program çalı rı ktan sonra denemek için veri girme tı Adı adı programı şrarak, programıakını n ş kontrol etme ı mm çalıtı “DosyaAç” komutu ile dosya oluş turma “SatırYaz, Satı rOku” komutu ile dosyaya veri girip, ekrana verinin çı sı ktı alma “Structure – Yapıiçinde alanlarıboyutunu belirtme ” n “DosyaKaydet” ve “DosyaGetir” ile belli bir kayda ulaşrmatı Döngü içinde verileri ekrana listeleme, “DosyaKapat” komutu ile dosyayı kapatma Toplam (en fazla 96 puan olabilir) DEĞERLENDİ RME Yaptıız değ ğnı erlendirme sonucunda eksikleriniz varsa öğ renme faaliyetlerini tekrarlayız. nı Modülü tamamladı z, tebrik ederiz. Öğ nı retmeniniz size çeş ölçme araçları itli uygulayacaktı Öğ r. retmeninizle iletiş geçiniz. ime 39
    44. CEVAP ANAHTARLARI CEVAP ANAHTARLARI ÖĞRENME FAALİ YETİ CEVAP ANAHTARI -1 1 D 2 Y 3 D 4 B 5 A 6 C ÖĞRENME FAALİ YETİ CEVAP ANAHTARI -2 1 Y 2 D 3 Y 4 A 5 D 6 D ÖĞRENME FAALİ YETİ CEVAP ANAHTARI -3 1 Y 2 Y 3 Y 4 Y 5 C 6 A ÖĞRENME FAALİ YETİ CEVAP ANAHTARI -4 1 Y 2 D 3 Y 4 Y 5 B 6 D ı rarak kendinizi değ Cevapları zı nı cevap anahtarları karş tı ile laş erlendiriniz. 40
    45. SÖZLÜK SÖZLÜK İ sim Okunuş Anlam install instol kurmak, installation – kurulum instruction ı instrakşn komut instrument instrumı nt enstrüman, araç integer intecı r tamsayı ı introduction introdakşn tanım, intro tı item aytı m nesne, öğ e kernel kernı l çekirdek log log kayı t tutmak, döküm yapmak logical locikı l mantı boolean ksal, match meç uymak, oyun, birbirini tutmak message mesic mesaj, ileti minimize minimayz en küçük yapmak, simge durumuna küçült missing mising eksik, kaçı rmak multimedia maltimedya çoklu ortam network netwörk ağ object ı bcekt nesne Optical Character Recognition – Optik karakter tanı yazımı ma, lı OCR ou si ar tarayıları yanı verilir cı n nda optimize optimayz en iyi hale getirmek, optimize optional op ş l ını isteğ bağ, opsiyonel e lı page peyç sayfa parameter perı r mitı parametre, argüman, anahtar parity perı ti parite, eş lik ı partition partişn disk bölümü (c: gibi) path pet yol, izlek, patika pattern pet ı rn doku, dizi perform pörform gerçekleş tirmek peripheral perifirı l çevresel birim pin çı ş pin giriş kıiçin kullanı port – veriyolu iğ lan nesi Ekrandaki yazı lı elde edilebilen nokta (picture element/picture mla pixel piksı l cell) pointer pointı r işaretçi, fare imleci port port kapıiletiş hattı , im present prezı nt var olmak previous privi ı s önceki primary praymı ri birincil 41
    46. KOD ÖRNEKLERİ KOD ÖRNEKLERİ Tupol dilinde alt program örneği PROGRAM altProgProgrami; TANIM TANIMSONU ALTPROGRAMLAR {Alt Programimiz} paletCiz(); TANIM Sayi i,j; TANIMSONU Basla Dongu j<=0 >> 199 Blok Dongu i<=0 >> 319 Blok Pixel(i,j,j); Son; Son; Bitti; ALTPROGRAMLARSONU Basla {Ana Programimiz} Grafikekran(); paletCiz(); Okugh(); Yaziekran(); Bitti. Yunus dilinde alt program, fonksiyon (prosedür ile aynıamaçlıyazmak ) 42
    47. Fonksiyon, parametre olarak değ alı ona göre hesap yapı sonuç üreten alt er p, p, programdı Genellikle \"return\" komutu ile değ geri aktarır. r. er lı C dilinde fonksiyon örneği #include <stdio.h> float kupAl(float a) { return a*a*a; } main() { float sayi = 0; printf(\"Küpü alinacak sayiyi giriniz\\n\"); scanf(\"%f\",sayi); printf(\"Sonuc: %f\",kupAl(sayi)); getch(); } PHP dilinde alt program örneği <? //zararlı HTML kodları temizleme nı function temizle($metin){ $metin = str_replace(\"\\n\",\"\",$metin); $metin = str_replace(\"\\'\",\"`\",$metin); $metin = str_replace(\"\\\"\",\"“\",$metin); $metin = @strip_tags($metin); $metin = trim(htmlspecialchars($metin)); return $metin; } $kullaniciad = temizle ($kullaniciad); ?> Visual Basic’te metin dosyaları eriş için “StreamWriter” ve “StreamReader” na im nesneleri kullanı labilir. Genellikle oluş turulan dosyanıuzantını n sı *.txt seçiyoruz. Pascal dilinde fonksiyon örneği uses crt; var x,y:integer; (* global değ kenler *) iş procedure degistir(var xx:integer;var yy:integer); var zz: integer; (* yerel değ ken *) iş Begin (* kova yöntemi ile değ tir *) iş zz:=xx; xx:=yy; yy:=zz; end; begin clrscr; (* ekran sil *) x:=10;y:=20; writeln(x,y); (* ilk değerler *) degistir(x,y); (* yerlerini değ tir *) iş writeln(x,y); (* yeni değerlerimiz *) end. 43
    48. Visual Basic dilinde sıralı dosya örneği Imports System Imports System.IO Dim DosyaAdi As String = \"dosya.txt\" '*.exe ile aynı klasörde oluşacaktır Private Sub Button1_Click If File.Exists(DosyaAdi) = False Then Dim yazar As StreamWriter = File.CreateText(DosyaAdi) 'ilk dosya oluş turma yazar.WriteLine(TextBox1.Text) 'ilk satı yazı rı yoruz yazar.WriteLine(TextBox2.Text) 'ikinci satı yazı rı yoruz yazar.WriteLine(TextBox3.Text) 'üçüncü satı yazı rı yoruz yazar.Flush() yazar.Close() 'dosyayı kapat End If End Sub Private Sub Button2_Click If File.Exists(DosyaAdi) = True Then Dim okur As StreamReader = File.OpenText(DosyaAdi) 'okumak için dosyayı açıyoruz TextBox1.Text = okur.ReadLine() 'ilk satı dosyadan alı rı yoruz TextBox2.Text = okur.ReadLine() 'ikinci satı dosyadan alı rı yoruz TextBox3.Text = okur.ReadLine() 'üçüncü satı dosyadan alı rı yoruz okur.Close() 'dosyayı kapat End If End Sub Private Sub Button3_Click File.Delete(DosyaAdi) 'tekrar oluşturabilmek için dosyayı silme End Sub Private Sub Button4_Click End 'programı kapatır End Sub 44
    49. Visual Basic dilinde rasgele dosyalama örneği Structure Kisi <VBFixedString(15)> Public Ad As String Public Yas As Short End Structure Private Sub Button6_Click End End Sub Private Sub Button5_Click 'kaydet düğmesi Dim birKisi As New Kisi Dim dosyaNo As Integer = FreeFile() Dim kayNo As Integer FileOpen(dosyaNo, \"dosya.txt\", OpenMode.Random, _ OpenAccess.Write, OpenShare.Default, Len(birKisi)) birKisi.Ad = TextBox1.Text birKisi.Yas = TextBox2.Text If TextBox3.Text = \"*\" Then TextBox3.Text = LOF(dosyaNo) \\ Len(birKisi) + 1 End If kayNo = TextBox3.Text FilePut(dosyaNo, birKisi, kayNo) FileClose(dosyaNo) End Sub Private Sub Button1_Click 'ilk kayı düğ t mesi Dim birKisi As New Kisi Dim dosyaNo As Integer = FreeFile() FileOpen(dosyaNo, \"dosya.txt\", OpenMode.Random, _ OpenAccess.Read, OpenShare.Default, Len(birKisi)) FileGet(dosyaNo, birKisi, 1) TextBox1.Text = birKisi.Ad TextBox2.Text = birKisi.Yas TextBox3.Text = 1 FileClose(dosyaNo) End Sub Private Sub Form1_Load Button1_Click(sender, e) End Sub 45
    50. Private Sub Button5_Click_1 TextBox1.Text = \"\" TextBox2.Text = \"\" TextBox3.Text = \"*\" End Sub Private Sub Button4_Click 'son kayı düğ t mesi Dim birKisi As New Kisi Dim dosyaNo As Integer = FreeFile() FileOpen(dosyaNo, \"dosya.txt\", OpenMode.Random, _ OpenAccess.Read, OpenShare.Default, Len(birKisi)) FileGet(dosyaNo, birKisi, LOF(dosyaNo) \\ Len(birKisi)) TextBox1.Text = birKisi.Ad TextBox2.Text = birKisi.Yas TextBox3.Text = LOF(dosyaNo) \\ Len(birKisi) FileClose(dosyaNo) End Sub 46
    51. Visual Basic dilinde ikilik dosyalama örneği Imports System Imports System.IO Structure Kisi Public Ad As String Public Yas As Short End Structure Dim birKisi As New Kisi Dim dosyaAdi As String = \"dosya.txt\" Private Sub Button6_Click End End Sub Private Sub Form1_Load Button1_Click(sender, e) End Sub Private Sub Button8_Click 'kaydet düğmesi Dim binDosya As New FileStream(dosyaAdi, _ FileMode.OpenOrCreate, FileAccess.ReadWrite) Dim yazici As New BinaryWriter(binDosya) Dim okuyucu As New BinaryReader(binDosya) Dim kno As Integer Dim Ad As String Dim Yas As Short birKisi.Ad = TextBox1.Text birKisi.Yas = TextBox2.Text If TextBox3.Text = \"*\" Then yazici.BaseStream.Seek(0, SeekOrigin.End) Else kno = 1 While okuyucu.PeekChar() > -1 If TextBox3.Text = kno Then Exit While Ad = okuyucu.ReadString Yas = okuyucu.ReadInt16 kno += 1 End While End If yazici.Write(birKisi.Ad) yazici.Write(birKisi.Yas) yazici.Close() okuyucu.Close() If TextBox3.Text = \"*\" Then Button4_Click(sender, e) 'kayı no güncelleniyor t End Sub 47
    52. Private Sub Button1_Click 'ilk kayı düğ t mesi If File.Exists(dosyaAdi) Then Dim binDosya As New FileStream(dosyaAdi, _ FileMode.Open, FileAccess.Read) Dim okuyucu As New BinaryReader(binDosya) okuyucu.BaseStream.Seek(0, SeekOrigin.Begin) TextBox1.Text = okuyucu.ReadString TextBox2.Text = okuyucu.ReadInt16 TextBox3.Text = 1 okuyucu.Close() End If End Sub Private Sub Button4_Click 'son kayı düğ t mesi Dim kno As Integer If File.Exists(dosyaAdi) Then Dim binDosya As New FileStream(dosyaAdi,_ FileMode.Open, FileAccess.Read) Dim okuyucu As New BinaryReader(binDosya) kno = 0 Do While okuyucu.PeekChar() > -1 TextBox1.Text = okuyucu.ReadString TextBox2.Text = okuyucu.ReadInt16 kno += 1 TextBox3.Text = kno Loop okuyucu.Close() End If End Sub Private Sub Button5_Click TextBox1.Text = \"\" : TextBox2.Text = \"\" TextBox3.Text = \"*\" End Sub 48
    53. ÖNERİ LEN KAYNAKLAR ÖNERİ LEN KAYNAKLAR  en.wikipedia.org/wiki/Fitts'_law  en.wikipedia.org/wiki/Pentium_FDIV_bug  msdn2.microsoft.com  news.bbc.co.uk/onthisday/hi/dates/stories/may/4/newsid_2504000/2504155.stm  samples.gotdotnet.com  www.eecs.tufts.edu/~jacob/171/slides/therac.butler.html  www.sourgeforge.net  www.wikipedia.org  www.yunus.projesi.com 49
    54. KAYNAKÇA KAYNAKÇA  AYFER Can Uğ Kim Güler Bilgisayarlara?, Pusula Yayı nevi, İ ur, stanbul, 1998  RIYANIK Tarı Programlama Ders Notlarıve UygulamalıGenel BAĞ k, Programlama Kitabı(www.yunus.projesi.com)  NIIT Global Learning Solutions, Fundamentals of Programming  WALLACE Wang, Beginning Programming for Dummies, Wiley Bası mevi, Indianapolis, 2004 50
    SlideShare Zeitgeist 2009

    + deniz armutludeniz armutlu Nominate

    custom

    1745 views, 0 favs, 0 embeds more stats

    BTT. Modül 17. Yapısal Programlama Temelleri
    Alt more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1745
      • 1745 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 13
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories