İleri Seviye C Programlama – Data Structures

Yapı (Structure)

  • Oluşum Composition, bir şeyin ufak parçaların bir araya getirilmesi ile oluşturulması anlamına gelmektedir. Buna göre örneğin bir araba, motor, koltuklar, tekerlekler vs. gibi parçalardan oluşmaktadır.
  • Programlama dillerinde modellenmek istenen varlık alt varlıklara bölünebiliyorsa, composition kullanılarak modellenebilir. Bu yaklaşım nesne yönelimli programlama dillerinin temelini oluşturmaktadır. Ancak nesne yönelimli olmayan C gibi dillerde de sınırlı da olsa destek bulunmaktadır.
  • C dilinde ilkel veri yapılarının (primitive data structures) üzerine kurulan ve kullanıcı tarafından tanımlanabilen yapılar için struct kelimesi kullanılır. Programcı tanımladığı yapıları (struct) daha ileride yeni yapılar (struct) içerisinde de ilkel veri yapısı gibi kullanabilir.

Nesne Yönelimli Programlama (Object Oriented Programming)

  • Bütün dünyayı nesneler ( objects) ve nesneler arası ilişki olarak gören model kullanılarak yapılan programlama. Bu programlama tekniğine göre her nesne bir sınıfa ( class ) aittir ve bu classtan türetilir.
  • Her sınıfın özellikleri ( attributes, properties) ve eylemleri (methods) bulunur.
  •  Örneğin, köpeklerin boyu, kilosu ve yaşı vardır. (bu cümlede köpek sınıfının (ve dolayısıyla bu sınıftan olan nesnelerin) boy, kilo ve yaş özellikleri oldugu belirtilmiştir)
     Örneğin, köpekler koşarlar, kemik yerler ve uyurlar. (Bu cümlede ise köpeklerin 3 ayrı methodu, koşmak, kemik yemek ve uyumak olarak verilmiştir.)
  • En meşhur object oriented programming languages (Nesne yönelimli programlama dilleri ) JAVA, C++ ve PHP gibi dillerdir.

Yapı tiplerinin tanımlanması:

typedef struct {

   type1 id1;

   type2 id2;

}struct_type;

Örenek:

typedef struct {

   char name[20];

   int age;

}student_info;

Tanımlama:

student_info student1, student2 = {"Wang", 18};

Hiyerarşik olarak bir yapı daha önce tanımlanmış bir yapıyı içerebilir.

typedef struct {

   int NumOfStuents;

 student_info students[20];

}class_info;

Bir yapının herhangi bir elemanını direct eleman seçme operatörü ile çağırabiliriz.

strcpy(student1.name, "Chao");

student1.age = 18;

printf("%s is in age %d\n"student1.name,student1.age);

C programlama dili indirect eleman seçme operatörünü de destekler.

&plnp->diameter     // indirect  

&(*plnp).diameter   // direct

iki ifade de aynı anlama gelmektedir.

Konu ile ilgili kod örneklerini görmek için tıklayın.

Leave a Reply

Your email address will not be published. Required fields are marked *

fourteen − 6 =