1 / 30

Algorİtma ve Programlama I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.tr

Algorİtma ve Programlama I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr. Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi. YZM 1101. Genel Bakış…. Karakter Dizileri Karakter Dizilerini Okumak ve Yazmak Karakter Dizilerinin Uzunluğunu Bulmak

manchu
Download Presentation

Algorİtma ve Programlama I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.tr

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorİtma ve Programlama IYrd. Doç. Dr. Deniz KILINÇdeniz.kilinc@cbu.edu.tr Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM 1101

  2. Genel Bakış… • Karakter Dizileri • Karakter Dizilerini Okumak ve Yazmak • Karakter Dizilerinin Uzunluğunu Bulmak • Karakter Dizilerini Birleştirmek • Karakter Dizisi Kopyalamak • Karakter Dizilerini Karşılaştırmak • Çok Boyutlu Diziler YZM 1101 – Algoritma ve Programlama I

  3. 7. BÖLÜM Karakter Dizileri YZM 1101 – Algoritma ve Programlama I

  4. Karakter Dizileri (Strings) • Bazı programlama dillerinde karakter dizilerini tutmak için özel veri türleri (string, vb.) bulunmaktadır. • Ancak C programlama dilinde böyle bir veri türü olmadığı için yerine karakterlerden oluşan bir boyutlu diziler kullanılır. • Karakter dizilerine özel olarak, karakter dizilerinin sonuna sonlandırıcı karakter olarak adlandırılan bir simge eklenir. • Sonlandırıcı karakter: • Dizinin bittiği yeri gösterir. • ASCII tablosunun sıfır numaralı ('\0') karakteridir. YZM 1101 – Algoritma ve Programlama I

  5. Karakter Dizileri (Strings) devam… • Karakter dizilerine 2 şekilde başlangıç değeri verilebilir: (1) chars[7] = {'d','e','n','e','m','e','\0'}; (2) chars[7] = "deneme"; • Birinci tanımlamada sonlandırıcı karakter programcı tarafından konmalıdır. • İkinci tanımlamada ise buna gerek yoktur. Çünkü, sonlandırıcı karakter bu atamayla, derleyici tarafından eklenir. YZM 1101 – Algoritma ve Programlama I

  6. Karakter Dizilerini Okumak • Bir karakter dizisini klavyeden okumak için C'nin standart gets( )fonksiyonu kullanılır. • stdio.hdışında yeni bir kitaplığı C programına dahil etmeye gerek yoktur. • Bu fonksiyon herhangi bir indeks tanımlamadan karakter dizilerinin okunmasını sağlar. • Okuduğu karakter dizisinin sonuna satır sonu işaretini değil, NULL değerini yerleştirir. YZM 1101 – Algoritma ve Programlama I

  7. Karakter Dizilerini Okumak (devam…) • gets() fonksiyonu, klavyeden girilen karakter dizilerini, herhangi bir ek tanımlamaya gerek duymadan bir dizi içine yerleştirir. • Dizinin her bir karakteri dizinin farklı bir hücresi içine yerleşir. • Örnek: charad[20]; ... gets(ad); YZM 1101 – Algoritma ve Programlama I

  8. Örnek-5:Karakter Dizisi Okuma ve Yazma • Maksimum 50 karakter okuyabilecek bir karakter dizisi tanımlayın. • Klavyeden karakter dizisini okuyun ve ekrana karakterleri yazdırın. • Tek tek karakterleri yazdırın • Tüm metni tek seferde yazdırın YZM 1101 – Algoritma ve Programlama I

  9. Örnek-5:Karakter Dizisi Okuma ve Yazma (devam…) YZM 1101 – Algoritma ve Programlama I

  10. Karakter Dizilerinin Uzunluğu Bulmak • Bazı uygulamalarda bir karakter dizisinin uzunluğunu bulmak gerekebilir. • Bir karakter dizisinin uzunluğunu, yani kaç karakter içerdiğini bulmak için C'nin standart strlen() fonksiyonu kullanılır. • Uzunluk bulunurken, içerdiği en son karakter olan NULL karakteri göz özüne alınmaz. • Örneğin, karakter dizisi "abc" değerlerini içeriyorsa, strlen() fonksiyonu bu uzunluk olarak "3" değerini döndürür. YZM 1101 – Algoritma ve Programlama I

  11. Örnek-6:Girilen Karakter Dizisinin Uzunluğunu Bulmak YZM 1101 – Algoritma ve Programlama I

  12. Karakter Dizilerini Birleştirmek • İki karakter dizisini birleştirilerek tek bir karakter dizisi haline dönüştürmek için C'nin strcat() fonksiyonu kullanılır. • Bu fonksiyon, var olan bir karakter dizisinin sonuna bir başka karakter dizisini ekleyecektir. • Örneğin "abc" karakter dizisinin sonuna "def"karakter dizisi strcat() fonksiyonu kullanılarak eklenebilir. YZM 1101 – Algoritma ve Programlama I

  13. Örnek-7:Girilen Karakter Dizilerini Birleştirmek YZM 1101 – Algoritma ve Programlama I

  14. Karakter Dizisi Kopyalama • Karakter dizilerine direk atama yapılamamaktadır. • Örneğin aşağıdaki atama ifadesi yanlıştır: char dizi[50]; katar = "abcde"; • Çünkü bu atama göstergeye yapılan atamadır. • Göstergelerin ne olduğunu daha sonra detaylı olarak ele alınacaktır. • Atamanın bir karakter dizisine yapılabilmesi için, C'nin standart strcpy() fonksiyonu kullanılır. YZM 1101 – Algoritma ve Programlama I

  15. Örnek-8:Karakter Dizilerini Kopyalamak YZM 1101 – Algoritma ve Programlama I

  16. Karakter Dizilerini Karşılaştırmak • İki karakter dizisinin birbirleriyle karşılaştırılarak, içerdiği karakterlerin aynı olup olmadıkları test edilebilir. • Bu amaçla strcmp() fonksiyonu kullanılır. • Karşılaştırma sonucunda, her iki karakter dizisi birbirinin aynı ise "0"; birbirinden farklı ise "1" değeri üretilir. Elde edilen bu değer kullanılarak programın akışı yönlendirilebilir. YZM 1101 – Algoritma ve Programlama I

  17. Örnek-9:Karakter Dizilerini Karşılaştırmak YZM 1101 – Algoritma ve Programlama I

  18. 8. BÖLÜM Çok Boyutlu Diziler YZM 1101 – Algoritma ve Programlama I

  19. Çok Boyutlu Dizi • Bir dizi aşağıdaki gibi bildirildiğinde bir boyutlu (tek indisli) dizi olarak adlandırılır. Bu tip dizilere vektördenir. intx[5]; • Bir dizi birden çok boyuta sahip olabilir. Örneğin iki boyutlu y dizisi şöyle tanımlanabilir: inty [5] [10]; • İki boyutlu diziler matrisolarak adlandırılır. • İlk boyuta satır, ikinci boyuta sütün denir. y matrisinin eleman sayısı 5x10=50 dir. YZM 1101 – Algoritma ve Programlama I

  20. Çok Boyutlu Dizi (devam…) • Çok boyutlu dizi örnekleri: YZM 1101 – Algoritma ve Programlama I

  21. Çok Boyutlu Dizilerin Bildirimi • Çok boyutlu diziler tek boyuta indirgenerek bellekte tutulurlar. • Tek indisli dizilerde olduğu gibi, çok indisli dizilere de başlangıç değeri vermek mümkündür. • Örneğin 3 satır ve 4 sütunlu (3x4=12 elemanlı) bir x matrisinin elemanları şöyle tanımlanabilir: int x[3][4] = {11,34,42,60, 72,99,10,50, 80,66,21,38}; int x[3][4] = {11,34,42,60, /* 1. satır elemanları */ 72,99,10,50, /* 2. satır elemanları */ 80,66,21,38}; /* 3. satır elemanları */ YZM 1101 – Algoritma ve Programlama I

  22. Örnek1: Çok Boyutlu Dizi Bildirimi ve Dizi Elemanlarını Yazdırma YZM 1101 – Algoritma ve Programlama I

  23. Satranc 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 3,1 3,2 3,3 3,4 3,5 3,6 3,7 3,8 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 Satranc(6,3) Satranc(3,7) 5,1 5,2 5,3 5,4 5,5 5,6 5,7 5,8 6,1 6,2 6,3 6,4 6,5 6,6 6,7 6,8 7,1 7,2 7,3 7,4 7,5 7,6 7,7 7,8 8,1 8,2 8,3 8,4 8,5 8,6 8,7 8,8 Örnek2: Satranç Tahtası • Bir satranç oyunundaki 64 bölgeyi nasıl tanımlarız? intSatranc [8][8]; YZM 1101 – Algoritma ve Programlama I

  24. İki Matrisin Toplamı • İki matrisin karşılıklı elemanları toplanarak, toplam matris elde edilir. • Bunu matris ifadeleriyle gösterelim: YZM 1101 – Algoritma ve Programlama I

  25. İki Matrisin Toplamı (devam…) YZM 1101 – Algoritma ve Programlama I

  26. İki Matrisin Çarpımı • Göz önünde bulundurulması gereken en önemli koşul, çarpımı yapılacak birinci matrisin sütun sayısınınikinci matrisin satır sayısınaeşit olması gerektiğidir. • İki matrisin çarpımı aşağıdaki şekilde gösterilir: YZM 1101 – Algoritma ve Programlama I

  27. İki Matrisin Çarpımı (devam…) YZM 1101 – Algoritma ve Programlama I

  28. İki Matrisin Çarpımı (devam…) YZM 1101 – Algoritma ve Programlama I

  29. KAYNAKLAR • N. Ercil Çağıltay ve ark., C DERSİ PROGRAMLAMAYA GİRİŞ, Ada Matbaacılık, ANKARA; 2009. • Milli Eğitim Bakanlığı "ProgramlamayaGiriş ve AlgoritmalarDersNotları", 2007 • http://tr.wikipedia.org/wiki/Code::Blocks • http://www.codeblocks.org • http://www.AlgoritmaveProgramlama.com • http://www1.gantep.edu.tr/~bingul/c YZM 1101 – Algoritma ve Programlama I

  30. İYİ ÇALIŞMALAR… Yrd. Doç. Dr. Deniz KILINÇdeniz.kilinc@cbu.edu.tr YZM 1101 – Algoritma ve Programlama I

More Related