Bilişim Teknolojileri - 17 - Veri Yapıları

Embed Size (px)

Citation preview

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    1/44

    T.C.

    MLL ETM BAKANLII

    MEGEP(MESLEK ETM VE RETM SSTEMNN

    GLENDRLMES PROJES)

    BLM TEKNOLOJLER

    VER YAPILARI

    ANKARA 2007

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    2/44

    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 Kurumlarnda kademeli olarakyaygnlatrlan 42 alan ve 192 dala ait ereve retim programlarndaamalanan mesleki yeterlikleri kazandrmaya ynelik gelitirilmi retim

    materyalleridir (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 deiikliklerBakanlkta 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 karlnda

    satlamaz.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    3/44

    i

    AIKLAMALAR ................................................................................................................iiGR .................................................................................................................................. 1RENME FAALYET - 1 ............................................................................................... 31. DZLER......................................................................................................................... 3

    1.1. Dizi Deikenini Tanmlama................................................................................... 41.2. Dizi Deikeni ile Veri Saklama ............................................................................. 51.3. ok Boyutlu Diziler ................................................................................................ 51.4. Dinamik Diziler ...................................................................................................... 71.5. Yaplar.................................................................................................................... 81.6. Yaplar Dizi Olarak Kullanmak.............................................................................. 9UYGULAMA FAALYET......................................................................................... 10LME VE DEERLENDRME............................................................................... 11

    RENME FAALYET - 2 ............................................................................................. 122. ARETLER.............................................................................................................. 12

    2.1. areti Nedir? ...................................................................................................... 122.2. Bal Liste Tanmlama .......................................................................................... 142.3. Bal Listeyi Kullanma ......................................................................................... 152.4. ift Bal Listeler................................................................................................. 162.5. Dairesel Bal Listeler.......................................................................................... 162.6. Yn .................................................................................................................... 172.7. Kuyruk ................................................................................................................. 17

    2.8. Aa..................................................................................................................... 18

    2.9. Grafik ................................................................................................................... 19UYGULAMA FAALYET......................................................................................... 21LME VE DEERLENDRME............................................................................... 22

    RENME FAALYET - 3 ............................................................................................. 233. NESNE TABANLI PROGRAMLAMA ......................................................................... 23

    3.1. Kolay Programlama Yntemi ................................................................................ 233.2. Nesne Kullanm ................................................................................................... 243.3. Dil Seimi ............................................................................................................. 27UYGULAMA FAALYET......................................................................................... 29LME VE DEERLENDRME............................................................................... 30

    MODL DEERLENDRME........................................................................................... 31CEVAP ANAHTARLARI ................................................................................................. 32SZLK ........................................................................................................................... 33KOD RNEKLER ........................................................................................................... 34NERLEN KAYNAKLAR.............................................................................................. 39KAYNAKA .................................................................................................................... 40

    NDEKLER

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    4/44

    ii

    AIKLAMALARKOD 481BB0027

    ALAN Biliim Teknolojileri

    DAL/MESLEK Alan Ortak

    MODLN ADI Veri Yaplar

    MODLN TANIMIDizi, iaretilerve nesneye ynelik program yazma ileilgili renme materyalidir.

    SRE 40/24

    N KOUL Yapsal Programlama Temelleri modln alm olmak.

    YETERLK Veri yaplar ile almak

    MODLN AMACI

    Genel AmaGerekli ortam salandnda,dizi ve iaretileri

    tanyp nesneye ynelik program yazabileceksiniz.Amalar1. Dizi mantn anlayacak ve dizi deikenleri

    kullanabileceksiniz2. aretiler ile program yazabileceksiniz3. Nesneye ynelik program yazabileceksiniz

    ETM RETMORTAMLARI VEDONANIMLARI

    Bilgisayar laboratuvar ve bu ortamda bulunan;bilgisayar, yazc, bilgisayar masalar,kt, kalem, lisansliletim sistemi programve ak diyagram sembolleri ileilgili panolar.

    LME VEDEERLENDRME

    Her faaliyet sonrasnda o faaliyetle ilgilideerlendirme 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 gerekletireceksiniz..

    AIKLAMALAR

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    5/44

    1

    GRSevgili renci,

    Bu modl ile sizlere diziler, iaretiler ve nesnetabanl programlama konular ile ilgiliyeterlik kazandracaktr. ncelikle bu modl daha iyi anlamanz iin, daha ncekiprogramlama temelleri modllerinde kavrayamadnz yerler varsa onlar pekitiriniz.Deikenler, dnglerve dosyalama konularn tekrar gzden geirmeniz tavsiye edilir.

    nceki modlleri anlayarak buraya gelmi iseniz, daha ileri seviye programlamakonularna geebilirsiniz. Veri Yaplar modl ile bir program yazmnda gerekli olan

    baz eksikliklerimizi gidereceksiniz. Bilgisayarn belleini ve programnzdaki verileri dahaetkin kullanacaksnz.

    Programlamada veri yaplar en nemli unsurlardan birisidir. Program yazarkenkullanlacak veri yapsnn en ideal ekilde belirlenmesi, programclkta biraz dahaustalaman anlamna gelmektedir. Program ierisinde ilenecek veriler diziler iletanmlanm bir veri blou ierisinden seilebilecei gibi, iaretiler kullanlarak daha etkinekilde hafzada saklanabilir. Veri yaplar, dizi ve iaretiler ile yaplmasnn yannda,nesneler ile de gerekletirilebilir.

    GR

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    6/44

    2

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    7/44

    3

    RENME FAALYET - 1

    Dizi mantn anlayacak, dizi ve yapdeikenleri kullanabileceksiniz.

    Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrma faaliyetleriniyapmalsnz.

    Banka ve hastane gibi yerlerde kuyrukta bekleyenlerin iini kolaylatranSramatik isimliprogram inceleyiniz. Sizce buprogram nasl daha kullanlhle getirilebilir?

    Kargo firmalarnn (Aras, Fedex ve DHL gibi) kargo takip programninceleyiniz. Paketlerin internet zerinden nasl takip edildiini inceleyiniz.

    1. DZLERBirka tane deiken ile kk programlar idare edebilirsiniz. Programlamada uzun

    ve benzer bilgilerle dolu deer listelerin oluturulmas dizi - array ile yaplmaktadr. Veriyapsnaadaki gibi ayrdeiken yapabileceiniz gibi:

    Ad1 = "Ali"

    Ad2 = "Veli"

    Ad3 = "Mehmet"

    Bunun yerine dizi kullanarak, tek deiken ile u ekilde yapabilirsiniz:

    Ad(1) = "Ali"

    Ad(2) = "Veli"

    Ad(3) = "Mehmet"

    Dikkat ederseniz, nceki rnekte 3 ayr deikenimiz varken, sonrakinde ise tekdeiken olan Ad kullanlmtr. Dizi sayesinde tek deiken ismi ile birden fazla deersaklanabilmektedir.

    3 elemanl bir dizi; Ad

    Ali Veli Mehmet

    Ad(2) Ad(3)Ad(1)

    RENME FAALYET1

    AMA

    ARATIRMA

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    8/44

    4

    1.1. Dizi Deikenini Tanmlama

    Normalde bir deikenin bir ad ve bir deeri olabilir. Dizi deikenlerinin de bir advardr, ama iinde ayn trde ok sayda veri saklanabilir. Tanmlarken dizinin boyutunubelirtmemiz mecburidir. Dizi boyutu tam say olarak belirtilmeli, negatif girilmemelidir.

    Not: Programlama dillerinde genellikle ilk dizi elemannn indis numaras 0dr. QBasic dilindeOption Base Taban Seenei ile varsaylan alt limiti 0 veya 1 olarak deitirebilirsiniz.

    Dizi elemanlarn tanmlanmadan nce Option Base 1 olarakseilmi ise, 0. elemandan deil 1.elemandan balanr.

    1. Bala2.

    Metin Dizi Ad(3)3. Ad(1) = Ali

    4. Ad(2) = Veli5. Ad(3) = Mehmet6. Yaz; Ad(1)7. Yaz; Ad(2)8. Yaz; Ad(3)9. Bitir

    Resim 1.1: Dizi rnei ve ekran kts

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    9/44

    5

    1.2. Dizi Deikeni ile Veri Saklama

    Programdaki dizi deikenlerinin tanmlandklar satrlar altrldnda, ana bellektedizi boyutunca yer ayrlr. Deiken ile olan ilem bitince ayrlan bellek blgesi silinir. Belli

    bir bellek alan ayrlmasndan dolay dizinin maksimum snr dndaki dier bellekblgesine eriemeyiz.

    Dizilere deer aktarma veya okuma ilemlerinde dng komutlar kullanlmaktadr.Hangi dngy kullanrsanz kullann, balang ve biti deerlerini iyi belirleyiniz, yoksa

    programnz hata verip kapanr. Snrn altnda veya stnde indis vermemek gerekir.

    1. Bala2. Metin Dizi Ad(3)3. Saysal i, j4. Dng i = 1, 3, 15. Yaz; i & . ismi giriniz6. Oku; Ad(i)7. Dng Bitti8. Yaz; Girilen isim listesi9. Dng i = 1, 3, 110.Yaz; Ad(i)11.Dng Bitti12.Bitir

    Resim 1.2: Dng ile dizi kullanm

    1.3. ok Boyutlu Diziler

    imdiye kadar verdiimiz rnekler tek boyutlu dizi rnekleridir. Bu tip diziler aynentren vagonlar gibi bellektepe pee deerlere sahip olan deikenlerdir.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    10/44

    6

    Tablolama programlarndaki gibi satr ve stunlu hcrelerden oluan dizilere; iki

    boyutlu dizi denir. Resim 1.3te grld gibi herhangi bir hcrenin deerine satr ve stunbilgisini kullanarak eriilebilmektedir. Matematikteki matrisler de ok boyutlu dizilerdir.

    Resim 1.3: Excelde bir sayfa 2 boyutlu diziye benzetilebilir

    Bir boyut daha eklendiinde kp ekline benzeyen 3 boyutlu dizi elde edilir. Budizilerde satr ve stun bilgisinin yannda derinlik bilgisi de eklenir.

    Resim 1.4: 3 boyutlu dizi

    Resim 1.5: ok boyutlu dizi rnei, burada dizi 0 indis numaras ile balyor

    ok boyutlu dizilerin tanmlanmas tek boyutlu diziye benzer ekilde yaplmaktadr:

    TextBox6

    TextBox5

    1. boyut

    2. boyut

    3. boyut

    1. boyut 2. boyut

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    11/44

    7

    BalaMetin Dizi bilgi(2, 6)

    Saysal i, j, satr, stunDng i = 1, 2, 1

    Dng j = 1, 6, 1

    Oku; bilgi(i, j)

    Dng Bitti

    Dng Bitti

    Oku; "Satr ve stun bilgisini giriniz", satr, stunYaz; "Aranan bilgi: ", bilgi(satr, stun)

    Bitir

    Bu rnekte 2 satr ve 6 stun olduu iin, 2 * 6 yani 12 adet metin bilgisibulunmaktadr. ki boyut olduundan i ie iki dnghazrladk. lk dngnn i deikenisatr seicisi, ikinci i dngnn j deikeni de stun seici olarak alyor. Bilgi(i, j)zerine veri aktarp, dng sonunda hangi satr ve stun isteniyor ise ekrana deerigetiriliyor.

    1.4. Dinamik Diziler

    ou dil sadece statik snrl dizi imkn sunar, yani alma zamannda dizilerineleman saysnnsnrndeitiremezsiniz.Eer dizi byk gelmi ise dizi ksaltlamaz, yada tam tersi uzatlamaz. Statik dizi ii bo bile olsa hafzada yer kaplamaktadr.

    Resim 1.6: C dilinde dinamik dizi yoktur

    Hafzay etkin kullanmak iin dinamik dizi kullanabilirsiniz. sterseniz diziyiboyutlandrabilirsiniz, ya da silebilirsiniz.

    Not: Basic dilinde dinamik diziler iin Redim -Boyutlandr komutu kullanlr. Bu komut ile eski dizi

    bilgileri silinir.Dizinin deiken trn deitiremezsiniz.

    Dizilerde dizi snrn deitirebilirsiniz, ama 2 boyutlu bir diziyi 3 boyutlu diziyapamazsnz.

    Resim 1.7: Dinamik dizi rnei

    TextBox7TextBox8

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    12/44

    8

    1. Bala2.

    Metin Dizi dinamikDizi()3. Saysal i, snr, eleman

    4. Oku; Dizi snrn giriniz, snr5. Boyutlandr dinamikDizi(snr)6. Dng i = 1, snr, 17. Oku; dinamikDizi(i)8. Dng Bitti9. Oku; Eleman numarasn giriniz, eleman10.Yaz; dinamikDizi(eleman)11.BitirDizilerde farkl veri trlerini saklama imkn yoktur. Yani renci listesinde renciisimleri metin, renci numaralar say trnde olsun diyemezsiniz. Tm elemanlarn tr

    ayndr. Bu eksiklik yap kullanm ile giderilmektedir. Bir yapda istediiniz trdedeikenleri beraber tanmlayarak tek isim altnda kullanabilirsiniz.

    1.5. Yaplar

    Yapsal Programlama Temelleri modldeki dosyalama ksmnda, yaplar ve kaytlarhakknda az da olsa giribilgisi verilmiti. Say ve metin deikenleri kark olarak bir yap(structure) iine kaydedebiliyoruz.

    Ad1 = "Ali"Notu1 = 45

    Ad2 = "Veli"

    Notu2 = 55

    Ad3 = "Mehmet"

    Notu3 = 75

    Bunun yerine artk u ekilde yapabiliriz:

    Ogrenci1.Ad = "Ali"

    Ogrenci1.Notu = 45

    Ogrenci2.Ad = "Veli"

    Ogrenci2.Notu = 55

    Ogrenci3.Ad = "Mehmet"Ogrenci3.Notu = 75

    Grld gibi farkl trlerde birbiri ile ilikili yap elemanlar Ad ve Notudeikenleri beraber, tek bir isim olan Ogrenci yapsnda toplanyor.

    Yap KisiMetin Ad

    Saysal YasYap BittibirKisi Kisi

    Dosyalama konusunda Kisi deiken isminde yap hazrlamtk. Programcnnkendi yapt deikenlere kullanc tanml veri tr user defined variable de denir.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    13/44

    9

    1.6. Yaplar Dizi Olarak Kullanmak

    Dizi olarak kullanmda sadece yapy kullanacak deikenin yazm deimektedir.Yani yap ksm ayn ekilde tanmlanrken deiken ksm deiir.

    BalaYap birrenci

    Metin Ad

    Saysal NotuYap Bitti

    birrenci Dizirenci(3)Saysal i

    Dng i = 1, 3, 1

    Oku; "renci adn giriniz ", renci(i).AdOku; "renci notunu giriniz ", renci(i).Notu

    Dng Bitti

    Dng i = 1, 3, 1

    Yaz; "renci ad ", renci(i).AdYaz; "renci notu ", renci(i).Notu

    Dng Bitti

    Bitir

    Yapnn Genel KullanmKayitDegiskeni.Degisken = "Veri"

    Degisken = KayitDegiskeni.Degisken

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    14/44

    10

    UYGULAMA FAALYET

    lem Basamaklar neriler

    Bir dizi oluturunuz. simlendirmede deiken isimlendirmekurallarna uyunuz.

    Dizi elemanna deer aktarnz. Dizilerin ilk indis numaras genellikle 0 veya 1ile balar. Deer aktardktan sonra ekrandadeerlerini listeleyiniz.

    Dng iinde diziye veri giriniz vegsteriniz.

    Genellikle Dng For dngs ile veri girik yaplabilir. Dngnn deikeni dizininilerlemesi iin kullanlr.

    Bir yap oluturunuz. eitli veri trlerine sahipdeikenleri yapiine tanmlaynz. Program iindetanmladnz yapy kullannz.

    Yap deikeni ile verileri kontrolediniz.

    Yap dizi olarak tanmlanp, dng iinde verigirii ve ekrana listeleme yaplabilir.

    UYGULAMA FAALYET

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    15/44

    11

    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. ( ) Ayr ayr deiken tanmlamak, diziden daha az bellek alan igal eder.2. ( ) Dizi deikenlerinin indis numaralar sadece tamsay olabilir.3. ( ) Dizi iinde ondalkl deerler saklayabiliriz.4. ( ) Dizi iindeki veriler otomatik olarak sralanr.5. ( ) Hangisini dizi olarak tanmlayamayz

    A) Yap?

    B) MetinC) KarakterD) Dng

    6. ( ) Genellikle dizi indisi hangi karakterler arasna yazlrA) ( )

    ?

    B) [ ]C) { }D) { ( ) }

    LME VE DEERLENDRME

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    16/44

    12

    RENME FAALYET - 2

    Bu renme faaliyetinde iaretiler ve iareti yaplar ile program yazabileceksiniz.

    Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrma faaliyetleriniyapmalsnz.

    Hangi dillerde bal liste veya iareti (pointer) kullanm vardr? aretikullanmnn avantajlar ve dezavantajlarnaratrnz.

    Posta grevlisi mektuplar adresine nasl ulatryor? Bir mektup gnderendenalcya giderken hangi aamalardan geer, aratrnz.

    2. ARETLERBir dizi yaptnzda boyutunu belirtmek zorunda kalrsnz. Eer dizi ok kk ise,

    bilgilerinizi saklamak iin yeterli olmaz, ya da diziniz ok bykse bilgisayarn deerli ana belleini bouna megul edersiniz. Dizilerde baka bir problem de ieriin kolayca tekrar

    dzenlenememesidir. Yani dizi ieriinialfabetik olarak sralamak isterseniz, tm bilgileridar alp, dzenleyip, iine tekrar atmak zorunda kalrsnz.

    aretiler ve bal listeler sayesinde dizinizin uzunluunu esnek olarakkullanabilirsiniz.

    2.1. areti Nedir?

    Dizilerdeki bilgiler pe pee kutulara benzetilebilir. Bal listeler ise birbirinebalanm ayr kutular olarak dnebiliriz.aretiler birbiri ile ilgili olan, dm halindekibilgileri birbirinebalar.

    Tupol dilinde iareti, yap ve dizi rneklerini inceleyiniz.areti deikenler sadece bellek adresi bilgisini saklayan deikenlerdir. Dier

    deikenler ise metin veya say olabilirler. stenilen deeri hafzadan armak iin adresinibilmeniz yeterlidir.

    aretiler C ve C++ programlama dillerinin temel blmdr. Yanl bellek blgesineulamak, kt bir ekilde programn kmesi ile sonulanabilir. Bunu beyninize rastgele

    batrlan sivri bir ine gibi dnebilirsiniz. aretileri hatal kullanmak bilgisayarnbelleini rastgele kurcalamak anlamna gelir.

    AMA

    ARATIRMA

    RENME FAALYET2

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    17/44

    13

    Resim 2.1a: areti deikeni tanmlanan programn almadan nceki bellek grnts

    Resim 2.1b: areti deikeni ve normal bir deikenin bellek grnts

    C dilinde iareti rnei#include

    main(){int i; /* "i" tamsay deikenlerdir */int *iptr; /* "*" iareti olduunu belirtir */iptr = &i;

    /* iaretiye muhakkak bir deiken adresi atanr, "&" adres simgesidir */*iptr = 55;

    /* aslnda iaretinin iaret ettii deikene 55 deeri atand */

    clrscr();

    printf("%d\n",i); /* ekrana 55 yazar */

    printf("%d\n",*iptr); /* 55 "i" deikeninin deeri*/printf("%X\n",iptr); /* FFC8 "i" deikeninin hafzadaki adresi*/

    printf("%X\n",&iptr); /* FFCA iaretinin adresi*/printf("%X\n",&i); /* FFC8 "i" deikeninin hafzadaki adresi*/

    getch();

    }

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    18/44

    14

    2.2. Bal Liste Tanmlama

    Bal listelerde (linkedlist) ekil 2.1de grld gibi her eleman birbirine iaretilerile baldr. aretinin en son gsterdii ise nil veya null ad verilen bo bir deerdir.Nil liste sonunu belirtir.

    Asl verileri yer deitirerek dzenlemek yerine, iaretiler tekrar dzenlenerek yerdeitirme ilemi hzl bir ekilde yaplr.

    ekil 2.1: Diziler ve bal listeler

    Pascaldilinde bal listeleri aadaki ekilde kullanabiliriz.

    Yeni bir iareti tanmlayalm:TYPE

    isaretciAdi= ^KayitTuru;

    Hemen tanmlamann altnda da yapmz KayitTuru tanmlayalm:KayitTuru= RECORD

    Adi: String[15];

    Notu: integer;

    Sonraki: isaretciAdi;

    END;

    3 elemanl bir dizi; Ad

    Ali Veli Mehmet

    Ad(2) Ad(3)Ad(1)

    3 elemanl bal liste (linkedlist)

    Ali Veli Mehmet

    Dm

    Bo (nil)

    areti (pointer) areti areti

    Dm (node) Dm

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    19/44

    15

    Alt alta yazlan bu satrlar ile yeni bir yap ve onun adresinisaklayacak bir iaretimiz

    oldu. Sonraki deikeni dier dmn adresini saklayacaktr. Son olarak bu kayt yapsn belirten bir deiken tanmlayalm:VAR

    Dugum: isaretciAdi;

    Kodlar bir araya getirelim:

    Artk programmzn kurulum ksm tamamlanmtr.

    Yaptmz deikenlerden sonra, ana programn kod yazmnda ise: Bir dm oluturalm. Dme veri aktaralm Dmn iaretisini dzenleyelim(balang, orta, biti olarak)

    BEGIN

    New(Dugum); {Yeni dm oluturduk}Dugum^.Adi := 'Ali Can'; {Veri aktardk}

    Dugum^.Notu:= 45;Dugum^.Sonraki:= nil; {Bal Listeyi sonlandryoruz}

    writeln('Ad: ', Dugum^.Adi);writeln('Notu: ', Dugum^.Notu);

    readln;

    Release(Dugum); {dm sildik}END.

    2.3. Bal Listeyi Kullanma

    Bir dizi iindeki bir eleman sildiinizde, hala bellekte yer kaplayan bir bo alan

    oluur.Ayrca ie yaramayan birboluk, programda istenmeyen hatalara neden olabilir.

    Pascal dilinde bal liste rnei

    PROGRAM bagliListeler;

    TYPEisaretciAdi= ^KayitTuru; {"KayitTuru" yapsnn iaretcisi}

    KayitTuru= RECORD {yap veya veri kmesi}

    Adi: String [15];

    Notu: integer;

    Sonraki: isaretciAdi; {sonraki kayt}

    END;

    VAR

    Dugum: isaretciAdi;

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    20/44

    16

    Bal listelerde ise dm silmek ok kolaydr:

    Dmlerdeki iaretileri dzenleyin Dm silin

    Tek bal listelerin dezavantaj ilk kayd bulmann mmkn olmamasdr. Yani sizgeri ynde gidemezsiniz. Hep sonraki kaydn ban sakladmz iin bu mmkn deildir.Ali dm, Veli dmn gsteriyor, ama Veli dmnn nceki dm ile ilgilihibir ipucu yoktur.

    2.4. ift Bal Listeler

    ki iareti kullanarak nceki ve sonraki dmlerin adres bilgilerini tutabilirsiniz.

    2.5. Dairesel Bal Listeler

    lk ve son dmn iaretileri birbirini gsterebilir.

    Ali Veli Mehmet

    Ali Veli Mehmet

    Bo (nil)Bo (nil)

    Ali Veli Mehmet Bo (nil)

    Ali Veli Mehmet

    Ali Veli Mehmet

    Bo

    Bo

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    21/44

    17

    2.6. Yn

    Yn (stack), zel tek ynl bal listelere benzetebiliriz.Ekleme ve silme ilemlerinisadece listenin en bandakiler zerinde yapabilirsiniz. st ste tabaklar gibidnebilirsiniz. Alttaki tabaklara ulamak iin mecburen stteki tabaklar kaldrmakzorundasnzdr.Yeni bir tabak gelince de ynn stne koyarsnz.

    Ters Polonyal Yazm Reverse Polish NotationRPN yntemi bunu kullanr:

    Forml:(1 + 2) * 4

    Ayn formln RPN hali:1 2 + 4 *

    Normalde 1 ve 2 toplar, sonucu 4 ile arparz. Sonu 12 olur. RPN ynteminde iseadm olarak yle yaplr:

    1 rakam ynn en stne konur. 2 rakam ynn stne konur, 1 alta iner. 2 ve 1 rakam yndan ekilerek toplama ilemi yaplr, sonu olan 3 ynn en

    stne konur. 4 rakam ynn en stne konur, 3 alta iner.

    4 ve 3 rakam yndan ekilerek arpma ilemi yaplr, sonu olan 12 ynn enstne konur.

    Resim 2.2: RPN yntemi

    Ynlar genellikle LIFO (Last in First out Son giren lk kar)yntemini temel alr.

    2.7. Kuyruk

    Kuyruk (queue) listelerinin iki kural vardr. Birincisi yeni eklenen bilgiler sadecesona eklenebilir, ikincisi de silinecek bilgi sadece batan silinebilir.FIFO (First in First out lk giren ilk kar), yntemi de denilmektedir.

    Sinema kuyruundaki insanlar dnn, ilk giren ilk kuyruktan kar. Son gelen iseson kar.Kuyrua girmek isterseniz en sona gitmeniz gerekir, biletini alan mteri ise en

    bata olduundan kuyruktan ayrlr.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    22/44

    18

    Resim 2.3: Kuyruk yntemi

    2.8. Aa

    Aa Tree listeleri dorusal veya dairesel ekilde gitmezler. Kk dm zerindedallarn bulunduu bir listedir.

    Baz programclar bu ynteme ikilik aa binary tree demektedir. Bir dm;bolua, baka bir dme veya iki dme iaret edebilir.

    Genellikle yapay zek programlarnda kullanlr. Mesela bir satran oyunu olabilir. lkhamle en stteki kktr. Yaplabilecek her hamlenin ihtimalleri dallara ayrlr. Karoyuncunun hareketine gre de ihtimaller deierek dallar oluur. En son dal ah mat ilebiter.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    23/44

    19

    Resim 2.4: Aa listesi ve satran oyunundaki dallanma*

    2.9. Grafik

    Belli bir ekli olmayan bal listelerdir.Bir dm bir veya daha fazla dme iaretedebilir.

    Resim 2.5: Grafik yntemi

    Genellikle sinir alar neural network kurulumunda kullanlr. Beyin de buyntemle ilem yapmaktadr. Her dm (neuron), siniri (synapses) temsil eder. Programnzkarmaklatka bu gelimi yntemleri kefederek algoritmalarnz yenidenekillendireceksiniz.

    *Toplam 10 ^ 120 ihtimal vardr. Evrendeki tahmini atom says 10 ^ 75 olduuna gre bu rakam ilesatran ihtimallerini karlatrnz.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    24/44

    20

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    25/44

    21

    UYGULAMA FAALYET

    lem Basamaklar neriler

    Yapsal veri tanmlanabilen bir dildeiareti oluturunuz.

    Her dil iareti imkn salamaz. Uygun dilibulmanz gereklidir.

    aretiyi bir deikene balaynz. Bir deiken tanmlayp, ona ait iaretideiken tanmlaynz.aretiyi deikenin adresine balaynz.Dorudan iaretiyi kullanarak deer atamalaryapnz.

    Kayt yapsnda bir deikentanmlaynz.

    Bir yap tanmlayp, iareti ile yapnn adresinisaklaynz.Deer atayp, ekrana deeri listeleyiniz.

    UYGULAMA FAALYET

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    26/44

    22

    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. areti tanmlandnda muhakkak bir deikene balanmaldr. ( )2. Dm (record) iinde sadece say bilgisi saklayabiliriz. ( )3. Kayt ve yap ayn kavramlardr. ( )4. Listeler dorusalbir ekilde birbirine bal olarak yaplrlar. ( )5. Her listenin sonu nil - null ile belirtilmelidir. ( )6. Hangisi bir veri listesi deildir

    A) Bal?

    B) ift balC) Grafiksel

    D) Yn

    LME VE DEERLENDRME

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    27/44

    23

    RENME FAALYET - 3

    Nesneye ynelik programlama yapabileceksiniz.

    Bu faaliyet ncesinde hazrlk amal aada belirtilen aratrma faaliyetleriniyapmalsnz.

    Klasik programlama dilleri ile nesne tabanl programlama dillerinin farklarnelerdir?

    Yapay zek ile ilgili programlar inceleyiniz. Mesela bilgisayar ile sohbetprogramlar ve oyunlar gibi.

    3. NESNE TABANLI PROGRAMLAMAYaplan programlar rahat anlalr, hzl ve grsel nitelikleri zenginletirilmi duruma

    getirmek iin nesne tabanl programlama dilleri kullanlabilir. Nesne tabal programlamadilleri ile gvenilir ve hatadan uzak programlama yaplabilir. Yine de OOP (Object OrientedProgramming nesne tabanl programlama) tek bana bir program daha okunakl halegetiremez.

    QBasic ve Visual Basic 6 nesne tabanl programlama dilleri deildir. C#, C++ ve Javanesne tabanl dillere rnektir. Hangi dilin OOP olduu tartladursun, biz imdilikC++ ileilk denemelerimizi yapacaz.

    3.1. Kolay Programlama Yntemi

    Bilgisayarnzn ne kadar gl olduu nemli deildir, onun snrlarn yazlmkontrol eder. Yazlmlarn en byk problemi gvenilirlik

    Gvenilir bir program planlanan zamanda bitmelidir. Tam test etmeden piyasayasrmek kt sonular verebilir.

    konusudur. Program sk sk

    gmemeli, hata vermemeli ve garip davranmamaldr. Daha nceki derslerde bununneminden yaanm rnekler ilebahsetmitik.

    Eski zamanlarda programlar kk olduu iin pek plan ve organizasyon yapmayagerek duyulmazd. almayan program programc tekrar yazyordu. Kk programlardadene ve hata bul ilemi pek zor deildir. Byk programlarda bceklerin daha fazlasaklanacak yerleri vardr.Milyonlarca satr programda dene ve hata bul pek ie yaramaz.Bu nedenle rnein bir mimar gkdeleni plansz olarak ina edemez.

    nceki derslerde de anlatld gibi, byk programlar alt programlara blerek kolay programlanr hle getirmitik. Ana program yaymlanmadan nce alt program kodlar

    AMA

    ARATIRMA

    RENME FAALYET3

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    28/44

    24

    kopyala yaptr ile birletirilir ve derlenir. Burada siz de bir phe duyuyor musunuz?

    Mesela alma zamannda alt programlar dieralt programlardan etkileniyor olabilir mi?OOPde temel olan konu da alt modllerin dier modllere mdahale etmemesidir.

    Yani aralarnda yaltmvardr. Modllere object nesne de denir.

    Bir nesnenin iki temel zellii vardr: Veri: zellikler de denir. Komutlar: Metod da denir. Veriyi kontrol eden kodlardr.Nesne dier kodlara mdahale etmeyecei iin kazancmz unlar olur: Gvenilirlik: Program almadnda, bcekli nesne alnr ve dzeltilir, tm

    programn elden geirilmesine gerek kalmaz. Tekrar kullanlabilme: Teorik olarak nesneleri alp baka program iinderahatlkla kullanabilirsiniz. Bylece yeni program yazarken daha hzl ilerinizibitirebilirsiniz.

    Bu kazanlar inheritance miras alma, kalt alma, devralma sayesinde eldeederiz. Var olan kodu tekrar kullanabilmek,programcnndaha fazla ilerlemesini salar.

    Resim 3.1: Klasik programlama ve nesne tabal programlamaKlasik programlamada alt program dier alt programn verisine ulaabilir. Nesne

    tabanl programlamada ise nesneler verilerini korurlar. Bu korumaya encapsulation kuatma denir.

    3.2. Nesne Kullanm

    Programlamada en byk sorun, var olan kodu gncellemektir. Programc bunayllarn verir.Zaten alan bir program gncellemek yepyeni program yazmaktan kolaydr.Nesne tabanl programlamada, sadece gncellenmesi gerekli nesne zerine alldndan

    programcnn ii kolaylar.Nesne tabanl programlama bu sebeple ok tutulmutur.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    29/44

    25

    Uzayllar vurduuzbir oyunda, ekrana gelen uzayllarn grnmn deitirmek iin

    yapmanz gereken; uzayl nesnesini alp, deitirip, yeniden eski yerine koymaktr. Sadeceekil deil, hareketlerini de bu ekilde gncelleyebilirsiniz.

    Nesnedeki Veriyi Saklama veya GstermeNesneler de birbirleri ile veri alveriinde bulunabilir. private,public veprotected

    bu ilem iin yaplmtr. Private (zel): Nesne verisini ve kodunupaylama amaz. Public (paylamaak): Herkes nesnenin verisini ve kodunu kullanabilir. Protected (korumal): Eer varolan bir nesne miras alma yntemiyle

    kopyalanp yeni bir nesne oluturulursa, yeni nesne sadece paylama ak(public), korumal (protected) veri ve komutlar miras alr. zel (Private) veri

    ve komutlar eski nesnede kalr, yeni nesneye aktarlmaz.

    Yeni bir nesne oluturmann ilk adm class snf oluturmaktr. Snf daha ncekiderste grdmz yapya benzer. Bir snf, veriyi kullanmak iin veri ve kodtanmlamalarn tanmlar. Bir snf nesne deildir. Nesneyi bir deiken gibi tanmlayp,snftan oluturursunuz.

    Bir snftan nesneler tretebilirsiniz:class canavar

    {

    public:

    int x_koordinati;int y_koordinati;

    void hareketEt(int, int);

    void ilklendirme(int, int);

    };

    te ilk snfmz yazdk. Grdnz gibi snfmzn x_koordinati ve y_koordinatiolarak tam say trnde 2 zellii var. hareketEt ve ilklendirme olarak da 2 metodumuzvar.

    Bu hazrlktan sonra, yapmamz gereken metotlarn kodlarn hazrlamaktr:void canavar::hareketEt(int yeni_x, int yeni_y)

    {

    x_koordinati = x_koordinati + yeni_x;

    y_koordinati = y_koordinati + yeni_y;

    }

    void canavar::ilklendirme(int ilk_x, int ilk_y)

    {

    x_koordinati = ilk_x;

    y_koordinati = ilk_y;

    }

    Son olarak da ana programmz yazyoruz:

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    30/44

    26

    int main(int argc, char *argv[])

    {

    canavar zombi; //canavar snfndan zombi nesnesi retiyoruzzombi.ilklendirme(12, 15);

    printf("Ilk C++ Programimiz\n");

    cout

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    31/44

    27

    Resim 3.3: Snf(class) ve nesne (object)

    Resim 3.4: Nesnelerin mesajlamas

    3.3. Dil Seimi

    Nesne tabanl programlama dilleri ana olarak u ekilde gruplandrlrlar:

    Karma (hybrid) nesne tabanl programlama dili: Eski bir dil zerine OOPzellikleri eklenmi ise dil karma olur. Mesela Pascal zerine yaplm Delphi,C zerinde C++ gibi

    Saf (pure) nesne tabanl programlama dili: SmallTalk, Eiffel, C# ve Java gibidorudan OOP zelliklerine sahip olarak yazlm diller.

    Karma bir dil eski dili bilen birinin, nesne tabanl dile geiini kolaylatrmak iinyaplmtr. En az eitim ve deneyim ile OOPye geii salar. Programn kk bir ksmn

    nesne tabanl, kalan byk ksmn eski klasik programlama yntemleri ile yazabilirsiniz.Aslnda en iyisi dorudan saf bir OOP dili ile programlamaya balamaktr. Bylece programlarmz karmak ve dzensiz olmaz. Tabii tek bana OOP ile dzenli ve kolayokunur program yazamazsnz. Yazlm tekniinizi, problem zm yntemlerinizigelitirmelisiniz.

    Yazlm kullanacak olanlar, sizin gece ge saatlere kadar altnz, hangiprogramlama dilini kullandnz umursamaz.Zamannda biten, alr halde olan programsatlr, rabet grr. Ondan sonra da artk siz patron olursunuz, kravatnz takar, rakibinizigemek iin politikalar gelitirirsiniz.

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    32/44

    28

    Resim 3.5: Program yapm aamalar

    Resim 3.6: renme grafii

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    33/44

    29

    UYGULAMA FAALYET

    lem Basamaklar neriler

    Snf tanmlamak iin uygun bir dilseiniz

    Karma veya saf nesne tabanl programlamadillerini karlatrnz.

    Bir snf tanmlaynz canavar rneindeki gibi siz de snfoluturabilirsiniz. Mesela tatlar iin tasitsnf gibi.canavar rneindeki gibi snfa hareketEtgibi metod ekleyiniz.tasit nesnesinden de rnein araba, kamyonnesneleri yaplabilir.

    Snfa ait olaylar oluturunuz Snftan nesne oluturunuz

    Nesnenin ilklenme (initialize) vedier olaylarnyaznz

    Program iinde nesnenin olaylarn kontrolediniz.

    UYGULAMA FAALYET

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    34/44

    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. Nesne tabanl programlamada, klasik programlamadaki dng ve dallanma gibikomutlar yoktur. ( )

    2. Her nesne oluturulur oluturulmaz, hemen ilklendirilmelidir. ( )3. Programmz nesnelere bldmzde, dnyadaki tm programclar bizim

    programmz anlayabi lirler. ( )

    4. Encapsulation kuatma nesnenin dier nesnelerin komutlarna eriememesidir.( )5. Aadakilerden hangisi ile nesnenin deikendeerlerini koruyamayz

    A) private - zel?

    B) void -boC) protected - korumal

    D) public paylamaak

    6. Nesne tabanl programlamada hangisi nesne ile ilgili deildirA) Miras alma

    ?

    B) KuatmaC) Alt programD) Metod

    LME VE DEERLENDRME

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    35/44

    31

    MODL DEERLENDRME

    PERFORMANS TEST (YETERLK LME)Modl ile kazandnz yeterlii, retmeniniz ilem basamaklarna gre 0 ile 10 puan

    arasnda olacak eklinde deerlendirecektir.

    Deerlendirme ltleri Puan

    Tek isim vererek, birok veriye dizi kullarak ulama Bir dizi elemanna deer aktarma Dng iinde diziye veri girme ve gsterme eitli veri trlerine sahip deikenleri yap ile kontrol etme Yapsal veri tanmlanabilen bir dilde iareti oluturma Kayt yapsnda bir deiken tanmlama aretiyi bir deikene balama Snf tanmlamak iin uygun bir dil seme Bir snf tanmlayan nesne yazmaNesnenin ilklenme olayn yazma

    Toplam (en fazla 100 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 - 17 - Veri Yaplar

    36/44

    32

    CEVAP ANHTARLARIRENME FAALYET 1 CEVAP ANAHTARI

    1 D2 D3 D4 Y5 D6 A

    RENME FAALYET-2 CEVAP ANAHTARI1 D2 Y3 Y4 Y5 D6 C

    RENME FAALYET-3 CEVAP ANAHTARI

    1 Y2 D3 Y4 D5 D6 C

    Cevaplarnz cevap anahtarlar ile karlatrarak kendinizi deerlendiriniz.

    CEVAP ANAHTARLARI

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    37/44

    33

    SZLKsim Okunu Anlam

    priority prayoriti ilemciye yaptrlan ilemlerin ncelik deerleri

    procedure pirsiicr yordam, prosedr

    project pricekt proje, tasar

    prompt prompt uyar, MS-DOS sistem hazr simgesi c:\> gibi

    protect prtekt korumak, protection koruma

    queue kyu kuyruk

    real ril ondalklsaylar

    recognize rikgnayz tanmak

    record rikrd rekor, kayt

    recover rikavr bilgileri kurtarmak

    recursive rikrsiv kendini aran fonksiyon

    register recstr yazma, kaytl kullanc olmak

    registry recstri Windows kayt bilgileri

    reserve rizrv ayrmak, rezervasyon

    revert rivrt geri dntrmek, kurtarmak

    root ruut kk, ana dizin

    scene sin sahne

    script skript yardmc programlama dili, el yazsscroll skrol kaydrmak

    sector sektr blge, disk iz paras

    sequence sikuins sra

    server srvr ana bilgisayar, sunucu

    set set kme, takm, ayarlamak (setting)

    SZLK

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    38/44

    34

    KOD RNEKLER

    Her iki rnekte de 3 isim bilgisi saklanr. Ekran grntleri ayndr. Acaba nedendeikenlerin tanmland yer olan DIM ksmnda birinci rnekte 3, ikinci rnekte 2yazmaktadr?

    KOD RNEKLER

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    39/44

    35

    Dizinin snrlar dnda bir deer arlmas hatas; Index Out Of Range

    Visual Basic ok boyutlu dizi rneinde eer DataGridView1de yeterli verigirilmemi ise nasl bir hata meydana gelebilir? Nasl bir nlem alrsnz?

    TextBox4TextBox1

    TextBox2

    TextBox3

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    40/44

    36

    Dinamik dizi rnekprogramnda, dizi hazrlanmadan arama yaplrsa nasl bir hatameydana gelebilir? Nasl bir nlem alrsnz?

    Visual Basic dilinde ok boyutlu dizi rnei

    PrivateSub Button4_Click

    Dim bilgi(1, 5) AsString 'ki boyutlu dizi tanmlama ksmDim i, j AsInteger

    For i = 0 To 1

    For j = 0 To 5

    bilgi(i, j) = DataGridView1.Item(i, j).Value

    Next

    Next

    MsgBox("Arama sonucu " & bilgi(TextBox5.Text, _

    TextBox6.Text))

    EndSub

    Visual Basic dilinde dinamik dizi rnei

    Dim DinamikDizi() AsString'dizi boyutu belli deil

    PrivateSub Button6_Click

    ReDim DinamikDizi(TextBox8.Text) 'kullanc boyutu girdiDim i AsInteger

    For i = 0 To TextBox8.Text'kullanc deerleri giriyorDinamikDizi(i) = InputBox("Eleman deeri")

    Next

    EndSub

    PrivateSub Button5_Click 'aranan eleman ekrana gelir

    MsgBox(DinamikDizi(TextBox7.Text))

    EndSub

    C dilinde yap rnei

    struct birOgrenci{

    char *Ad;

    int Notu;

    }Ogrenciler;

    main()

    {

    Ogrenciler.Ad = "Ali Can";

    Ogrenciler.Notu = 34;

    printf("Bir rencinin ad ve notu: %s %d",Ogrenciler.Ad, Ogrenciler.Notu);

    }

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    41/44

    37

    Yap dizisi kullanm

    Aadaki iaretiler ile ilgili C dilinde olan satrlarn inceleyiniz.char *hata = "Dosya yok!" //metin iaretilere ilk deer atanabilir

    int *iptr;

    iptr = (int *) 0x1b64;

    //Belli bir adres iaretiye atanabilir, amatehlikelidir, neden?*iptr = 2001; //iaretiye deer aktarmprintf ("\n%p", iptr); //ekrana 1B64 yazar

    printf ("\n%d", *iptr); //ekrana 2001 yazar

    printf ("\n%X", &iptr); //ekrana FFF2 benzeri iaretinin adresini yazar

    charfar *cptr; //1 MB (0-FFFFF) iinde tanmlanabilen iareti

    p = (charfar *) 0x124532bc //1245 segment, 32bc offset adresidir

    charfar *ekran = (charfar *) 0xb8000000;

    //B800 DOSun ekran bilgilerinin tutulduu yerdir*(ekran+20) = '#';

    *(ekran+21) = 10;

    //metin ekrann ilk satrnn 11. stununa # karakterini basar//Neden 20 deyince 11. stun oldu?

    //Not: ift adresler veri, tek adresler renk bilgisi olarak kullanlr

    int a[3] = {12, 55, 88}; // elemanl dizi ve ilk deer atamalar

    int *iptr; //int *iptr = a; da olabilirdiiptr = a;

    C dilinde yap dizisi rnei

    #include

    struct birOgrenci{

    char *Ad[15];

    int Notu;

    }Ogrenciler[2]; //Dizi olarak yap tanmlanmas

    main()

    {

    int i;

    clrscr(); //Yap iine veri aktarmafor (i=0; i

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    42/44

    38

    //dizi balang adresi & ile gsterilemezprintf ("\n%d",*(iptr+1));

    //ekrana 55 yazarprintf ("\n%d", iptr[2]);

    //ekrana 88 yazar; *(iptr+2) ile iptr[2] ayn anlamdadr

    void deneme (int *iptr) //fonksiyona bir deikenin adresi gelecek{

    *iptr=100; //iaretinin gsterdii yere deer aktarlr}

    void main(void) //void ne anlama gelir?

    {

    int x;

    deneme (&x); //x deikeninin adresi fonksiyona yollanr

    printf ("%d", x); //ekrana 100 yazar}

    char *ad_oku (void) //deer dndren fonksiyon{

    char s[50];

    printf ("Adnz=");gets(s);

    return s; //okunan metnin deeri gnderilir}

    main()

    {

    char *cptr;

    cptr= ad_oku();

    //dnecek deer ancak bir char tipi iaretiye aktarlabilirprintf("%s", cptr);

    }

    stte ekran belleine ulama ile ilgili bir rnek vardr. Sizce bellein istediinizyerine ulalmas programcya zgrlk m salyor, yoksa tam tersine, hazr ekrana yazyazma komutlar dururken byle ilem yapmak, daha da kstl bir ortam m salyor?

  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    43/44

    39

    NERLEN KAYNAKLAR computer.howstuffworks.com en.wikipedia.org/wiki/Pointer java.sun.com/docs/books/tutorial/java www.bloodshed.net/devcpp.html www.robsite.de/programme.php?prog=ccompiler www.seslisozluk.com www.yunus.projesi.com

    NERLEN KAYNAKLAR

    http://computer.howstuffworks.com/http://en.wikipedia.org/wiki/Pointerhttp://java.sun.com/docs/books/tutorial/java/http://www.bloodshed.net/devcpp.htmlhttp://www.robsite.de/programme.php?prog=ccompilerhttp://www.seslisozluk.com/http://www.yunus.projesi.com/http://www.yunus.projesi.com/http://www.seslisozluk.com/http://www.robsite.de/programme.php?prog=ccompilerhttp://www.bloodshed.net/devcpp.htmlhttp://java.sun.com/docs/books/tutorial/java/http://en.wikipedia.org/wiki/Pointerhttp://computer.howstuffworks.com/
  • 8/9/2019 Biliim Teknolojileri - 17 - Veri Yaplar

    44/44

    KAYNAKA BARIYANIK Tark, Programlama Ders Notlar ve Uygulamal Genel

    Programlama Kitab(www.yunus.projesi.com)

    WALLACE Wang, Beginning Programming for Dummies, Wiley Basmevi,Indianapolis, 2004

    KAYNAKA

    http://www.yunus.projesi.com/http://www.yunus.projesi.com/