Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi



Benzer belgeler
Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

2. SAYI SİSTEMLERİ VE KODLAR

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

C Programlama Dilininin Basit Yapıları

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

HSancak Nesne Tabanlı Programlama I Ders Notları

2. SAYI SİSTEMLERİ. M.İLKUÇAR - imuammer@yahoo.com

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BÖLÜM 11: YAPISAL VERİ TİPLERİ

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Bölüm 6. Veri Türleri ISBN

1. Bölüm Sayı Sistemleri

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

Floating Point (Kayan Noktalı Sayılar)

PASCAL PROGRAMLAMA DİLİ YAPISI

PROGRAMLAMAYA GİRİŞ DERS 2

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Programlama Dilleri 1. Ders 4: Diziler

2. SAYI SİSTEMLERİ 2. SAYI SİSTEMLERİ

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Nesne Tabanlı Programlama

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Access e Nasıl Ulaşılır. Araç çubuklarını yeniden düzenlemek için Görünüm komutunun Araç çubukları seçeneği kullanılır.

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

SAYISAL DEVRELER. İTÜ Bilgisayar Mühendisliği Bölümündeki donanım derslerinin bağlantıları

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

in en küçük değeri için x + y =? (24) + + =? ( a ) a a a b a

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada,

Dr. Fatih AY Tel: fatihay@fatihay.net

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

C Programlama Dilinde Değişkenler

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Algoritmalar ve Programlama. DERS - 2 Yrd. Doç. Dr. Ahmet SERBES

Veri Yapıları ve Algoritmalar

Nesne Yönelimli Programlama

ALGORİTMA VE PROGRAMLAMA II

Bölüm 6. Veri Tipleri ISBN

Pointer Kavramı. Veri Yapıları

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Özyineleme (Recursion)

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

BLM 111 ALGORİTMA VE PROGRAMLAMA I

C Konsol Giriş Çıkış Fonksiyonları

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Her veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

/*int sayi1, sayi2,toplam=0;

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

{\} /\ Suhap SAHIN Onur GÖK

C Dersi Bölüm 1. Bilgisayar Donanımı

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.

Elektroniğe Giriş 1.1

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Temel Kavramlar 1 Doğal sayılar: N = {0, 1, 2, 3,.,n, n+1,..} kümesinin her bir elamanına doğal sayı denir ve N ile gösterilir.

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Veri Yapıları Laboratuvarı

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

Atatürk Anadolu. Temel Kavramlar Üzerine Kısa Çalışmalar

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

140. 2< a< 1 ise kesrinin değeri aşağıdakilerden hangisi olamaz? (3,7) a 1,9 2,4 2,7 3,2 3,7. a a c b ve c a a b c

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

BILGISAYAR ARITMETIGI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

Bilgisayarların Gelişimi

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler


İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

Transkript:

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları

Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar sistemleri ikili taban üzerine kurulmuş olup hemen her şey 1 ve 0 ların anlamlı sırada dizilerek birbirinden farklı kodlar oluşturulmasına dayanır. Veri yapısı verilerin saklanış biçimiyle ilgilenirken, veri modeli ise veriler arasındaki ilişki ve bağlantılar konusu ile ilgilenir.

1) Veri Yapısı Ham haliyle 01000001 şeklinde bit dizisinde oluşan verilerin anlamlı hale gelmesi veya bilgi olması için onun formatının da bilinmesi gerekir. Örneğin verilen 01000001 bit dizisi ASCII kümeye göre A harfine, ikili sayı sistemine göre 65 sayısına karşılık düşer. Veri yapıları, sayısal sistemlerin iç yapısında bit dizisi şeklinde bulunan verilerin anlamlı hale getirilmesi için kullanılan bir biçimleme-kalıplama yöntemdir, yani verinin tutulacağı yerin şeklidir. Örneğin 16-bit biraraya getirilip tamsayı, 8-bit bir araya getirilip karakter veri türü oluşturulur.

1) Veri Yapısı Her programlama dili tarafından desteklenen temel veri o o o o türleri; Tamsayı (21, 5678, vs.) Karakter (A, B, ~, @, vs.) Gerçel Sayı (3.5, 2.68, 3.6*10 3 vs.) Sözce/Sözcük (ali, elma vs.) Veri yapıları; temel veri yapıları ve tanımlamalı veri yapıları olmak üzere ikiye ayrılabilir. Temel veri yapıları, daha çok programlama dilleri tarafından doğrudan değişken veya sabit bildirimi yapılarak kullanılırken, tanımlamalı veri yapıları kendisinden önceki tanımlamalı veya temel veri yapıları üzerine kurulurlar.

2) Temel Veri Yapıları Tüm programlama dilleri genel olarak karakter, tamsayı, gerçel sayı, sözce/sözcük ve dizi için temel veri yapılarını destekler, bazıları da karmaşık sayı, mantıksal değer tutulması gibi veri yapılarını da desteklemektedir. 62 10 sayısı bilgisayar belleğinde; o Sayının ikili tabandaki karşılığına göre 0011 1110 o ASCII karakter kümesine göre 0011 0110 0011 0010 o BCD kodlamaya göre 0110 0010

2-1. Karakter Karakter, en temel veri yapılarından birisi olup tek tek karakterlerin veya art arda gelerek sözcüklerin, cümlelerin tutulduğu bir yapıdır. Kodlama işlemi bir karakter tablosuna göre yapılır, tablo değiştirildiğinde karakterlere karşı düşen kodlar değişeceğinden ham verinin içerdiği bilgi farklı görülür. Bilgisayar uygulamasında en yaygın kullanılan karakter tabloları ASCII dir; Unikod kodlama standardı da yaygınlaşmaktadır.

ASCII ASCII tabloda her bir karakter 7 bit olup 128 farklı karakterden oluşmaktadır. Genişletilmiş ASCII tabloda ise her bir karakter 8 bit olup tabloda 256 karakter bulunmaktadır. Bilgisayar uygulamalarında daha çok genişletilmiş ASCII kod tablosu kullanılmaktadır. Bu kod tablosu kullanan her yapı karakter başına 1 byte (8 bit) yer işgal eder. Örneğin yalın metin dosyalarının(*.txt) boyutu yaklaşık olarak içerdiği karakter sayısı kadardır. Tablodaki ilk 32 karakter (yazdırılamayan) kontrol amaçlı olarak kullanılır ve kontrol karakteri olarak adlandırılır. Dosyalama işlemleri, veri aktarımı vs gibi uygulamalarda belirli anlamlara sahiptirler.

Unikod (Unicode) Unikod, metin tabanlı verilerin sayısal ortamda gösterilmesi ve bellekte tutulması için evrensel bir kodlama şeklidir. Ortaya çıkışının ana temeli Dünya üzerinde konuşulan/yazılan ulusal dillerden bağımsız ortak bir kodlama sisteminin gereksinimidir. Unikod kodlama sisteminde herbir karakter bellekte 16 bit yer işgal eder(2 16 =65536 farklı karakter). Unikod kodlama sistemi kod blokları şeklinde düzenlenmiştir. Örneğin; Genişletilmiş Latin-A, Mathematical Alphanumeric Symbols, vb.

2-2. Tamsayılar Bir tamsayı, bellekte en yalın haliyle ikili tabandaki doğal karşılığı ile saklanır. Tamsayı formatları; o o o o Doğal ikili kod 1 e Tümleyen 2 ye Tümleyen BCD Kodlamalı

Doğal İkili Kod Sayı doğrudan ikili tabandaki karşılığı ile saklanır. Sayının mutlak değeri S S=b n-1 2 n-1 +b n-2 2 n-2 +b n-3 2 n-3 +..+b 2 2 2 +b 1 2 1 +b 0 2 0 S 10 =(b n-1 b n-2 b n-3 b 2 b 1 b 0 ) 2 Bit dizisinin en solundaki bit en anlamlı, en sağındaki bit en anlamsız olarak adlandırılır. 10 luk tabandaki sayı 2 ye bölünerek ikili taban karşılığı elde edilir.

1 e Tümleyen Bu yöntemde sayının doğal ikili tabandaki karşılığının 1 e tümlenmişi kullanılır. 1 e tümleme bit dizisi içerisindeki 1 lerin 0, 0 ların 1 yapılması ile elde edilir. 2 ye Tümleyen Bu yöntemde sayının doğal ikili tabandaki karşılığının 2 ye tümlenmişi kullanılır. 2 e tümleme bit dizisi içerisindeki 1 lerin 0, 0 ların 1 yapılıp sonuca 1 eklenmesi ile elde edilir. Aynı zamanda 1 e tümlenmiş olan ikili diziye 1 eklenmiş halidir.

BCD Kodlama BCD kodlama, [0,9] arasındaki rakamların 4 bitlik kodlaması kullanılarak gerçekleştirilir. Rakam BCD Kodu Rakam BCD Kodu 0 0000 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001 123 sayısı 1=0001; 2=0010; 3=0011 0001 0010 0011

İşaretsiz Tamsayı (Unsigned Integer) İşaretsiz tam sayılar, pozitif tamsayılar anlamına gelir. Hiçbir zaman eksi olamayacağı için sayının işaret bilgisinin tutulmasına gerek yoktur. n bitlik işaretsiz bir tamsayı 0 ile 2 n -1 arasında bir değere sahiptir.

İşaretli Tamsayı (Signed Integer) İşaretli tamsayı hem artı hem de eksi sayıların olabileceği anlamına gelir. Bu nedenle sayı içerisinde işaret bilgisi de tutulmalıdır. Genel olarak, 1 tane bit işaret biti olarak değerlendirilir. Bu bit 1 iken sayı eksi bölgede, 0 iken sayı artı bölgede anlamındadır. 10 bitlik bir işaretli tamsayıda, 9 bit sayının mutlak değerini, 1 bit ise sayının işaretini temsil eder. Tamsayıları işaretli göstermek için o o Doğal ikili kodun en soluna işaret biti eklenmesi 2 ye tümleyen şekliyle gösterilmesi

İşaretli Tamsayı - Örnek 8 bitlik -1 ve +1 sayısının hem doğal hem de 2 ye tümleme yöntemi ile gösterilmesi 1 sayısı => 0000 0001 Doğal ikili kod ile -1 için; 1000 0001 2 ye tümleme ile -1 için; 1111 1111

Tamsayının bit Uzunluğu ve Bölgesi Uzunluklar konusunda belirli standartlar vardır. Sayının bit uzunluğu 1 bit olsa dahi çalışılan tamsayı türü 32 bitlik ise sayı bu alanda tutulmak zorundadır. Tamsayı Türü İşaretsiz İşaretli 8 bitlik [0, 255] [-128, +127] 16 bitlik [0, 65 535] [-32 768, +32 767] 32 bitlik [0, 4 294 967 295] [-2 147 483 648, +2 147 483 647] 64 bitlik [0, 2 64-1] [-2 63, +2 63-1] 128 bitlik [0, 2 128-1] [-2 127, +2 127-1]

İşaretli Tamsayı - Örnek -39 10 sayısının 16 bitlik olarak doğal ve 2 ye tümleme yöntemiyle gösterimi 39=> 10 0111 ==(16bit)=>0000 0000 0010 0111 Doğal => 1000 0000 0010 0111 2 ye tümleme ile; 0000 0000 0010 0111 =(tümleme ile)=>1111 1111 1101 1001 Doğal ikili kod ile => 1000 0000 0010 0111 2 ye tümleme ile => 1111 1111 1101 1001

2-3. Gerçel Sayı Tam kısma ek olarak kesri olan sayılardır, gerçel sayı yapısı hem kesri olan gerçel sayıların gösterilmesinde hem de tamsayı veri yapısıyla gösterilemeyecek kadar çok büyük veya çok küçük sayıların gösterilmesinde kullanılır. Sayısal ortamlarda kesirli sayıların gösterilmesinde bilgisayar uygulamalarında en fazla kayan noktalı o o gösterim kullanılır. Kayan Noktalı (Kesrin yeri değişken) Sabit Noktalı (Kesrin yeri sabit)

Kayan Noktalı Sayı Formatı & IEEE 754 Kayan noktalı sayıların bit düzeyindeki veri yapısında, bit dizisindeki bitlerin bir kısmı üs, bir kısmı çarpan ve bir tane de işaret biti kullanılır. IEEE 754 standardına göre 32 bitlik bir kayan noktalı sayının bit haritası şöyledir; 23 ü çarpan, 8 i üs ve 1 bit de işaret.

Kayan Noktalı Sayı Formatı & IEEE 754 Sayı genel olarak şu şekilde gösterilir (Ç:Çarpan, T:Taban, Ü:Üs) Sayı = ± Ç x T ±Ü T, taban bilgisi olup tüm sayılar için aynı olacağından saklanmasına gerek yoktur. Bu nedenle Ç,Ü ve işaret bitinin saklanması yeterlidir.

Veri Yapıları

Kayan Noktalı Sayı Formatı & IEEE 754 *Örnek 3,14 şeklinde verilen pi sayısının 32-bitlik IEEE 754 formatına göre bit haritasını çıkartınız. 3,14=(-1) i *(1+k)*2 üs-bias i: sayının işareti (1+k): Çarpan (1 Çarpan 2 aralığında olmalıdır. K=0, şeklinde bir ondalık sayı) Bias: bit haritasında verilen üs sayısından çıkarılan bir sabit olup 32 bitlik kayan noktalı sayı için değeri 127 (tablodan) Sayı + olduğu için i=0;

Kayan Noktalı Sayı Formatı & IEEE 754 *Örnek (-1) 0 *(1+k)*2 n =3,14 => n=1 için k=0,57 dir. üs-bias=n=1 bias=127(tablodan), üs=1+127=128 olur. i üs k 0 128 0,57

Kayan Noktalı Sayı Formatı & IEEE 754 *Örnek i=(0) 10 =(0) 2 üs=(128) 10 =(1000 0000) 2 k=(0,57) 10 =(???) 2 0.57*2=1,14 1 den büyük q -1 =1 0.14*2=0,28 1 den küçük q -2 =0 0.32*2=0,64 1 den küçük q -22 =0 0.64*2=1,28 1 den büyük q -23 =1 0.28*2=0,56 1 den büyük q -24 =0

Kayan Noktalı Sayı Formatı & IEEE 754 *Örnek k=(0,57) 10 (0,10010001111010111000010) 2 i üs k 0 1000 0000 100 1000 1111 0101 1100 0010 Tam karşılığı bulunamadığı için 24. bitte kesilmiştir. Sonuç gerçel sayı IEEE 754 e formatında tutulduğunda bir miktar hata payı olur.

2-4. Sözce ve Sözcükler Bir yazının/metnin tamamını, herhangi bir cümlesini, sözcüğünü veya hecesini bellek üzerinde tutmak için sözce(string) veri yapısı kullanılır. Sözce, aslında karakterlerin art arda geldiği bir karakter dizisidir. Sıradan bir karakter dizisinden farkı, sözcenin kaç elemanlı olduğunun bilinmesi veya sözce sonu karakteri kullanılmasıdır. C dilinde sonlandırma karakteri \0 verisidir(null).

2-4. Sözce ve Sözcükler Bu yapıda iki tip yaklaşım mevcuttur. Birisi oluşturulacak olan dizi yapısının karakter sayısını tutması, diğeri ise sonlandırma karakteri kullanılması. Karakter sayısını kullanan yaklaşımda eleman sayısı dizinin en başında verilmiştir. Ve diziye girilecek karakter sayısı bu rakam ile sınırlıdır. Sonlandırma karakteri yaklaşımında ise, oluşturulacak olan karakter dizisinin boyutu sonlandırma karakterinin bulunduğu yer ile sınırlıdır. Bu da tüm belleğin kullanılmasına izin verir niteliktedir. Sonlandırma karakteri yaklaşımının dezavantajı elemanların sayımı gibi işlemlerde ortaya çıkar. Sonlandırma elemanına kadar olan karakterlerin sayılması gereklidir. Karakter sayısının tutulması yönteminde ise dizinin ilk elemanına bakmak yeterlidir.

Veri Yapıları

2-5. Dizi/Matris Dizi veri yapısında, kümeye ait olan veriler bellekte art arda tutulur. Dolayısıyla dizinin başlangıç adresi veya adı bilindiğinde herhangi bir elemana kolayca erişilebilir. Dizi veri yapısı, doğrudan programlama dilinin imkanı dahilinde dizi bildirimleri yapılarak sağlanır. Temel veri yapısına dayanan birkaç dizi bildirimi;

2-5. Dizi/Matris struct tarih{ } short int gun; short int ay; int yil; struct kayit{ } char ad[10]; char soyad[15]; char adres[50]; char sehir[10]; char bolum[8]; int boy; float kilo;

2-5. Dizi/Matris struct tarih dogumgunleri[2000]; struct kayit ogrenciler[10]; Bu dizi bildirimlerinin geçerli olabilmesi için daha önce struct tarih ve struct kayit adlı toplulukların tanımlı olması gerekir. Bu durumda her bir tarih veri yapısı 6; kayıt veri yapısı da 99 sekizli(byte) boyutundadır. Buna göre dogumgunu dizisi bellekte 2000*6, ogrenciler dizisi de 10*99 bytelık yer işgal eder(veri türü tablosundan).

3) Tanımlamalı Veri Yapıları Tanımlamalı veri yapısı, temel ya da daha önceden tanımlanmış veri yapılarının kullanılıp yeni veri yapıları oluşturulmasıdır. Yeni veri yapısı tanımlamak gereksinime göre iki şekilde o o yapılabilir; Topluluk Oluşturma Ortaklık Oluşturma Her birinin kullanım amacı farklı olup uygulamaya göre bir tanesi veya hepsi bir arada kullanılabilir.(en çok kullanılanı topluluk oluşturmadır)

3-1. Topluluk Oluşturma Topluluk birden çok veri yapısının bir araya getirilip yeni bir veri yapısı, bir aile ortaya çıkarmaktır. Bağlantılı liste, ağaç ve özel amaçlı veri modelleri böylesi yeni veri yapılarına gereksinim duyar, zaman, tarih gibi birden çok değişkenin olduğu veri yapıları da topluluk bildirimiyle yapılabilir. Topluluk tanımlanması C dilinde struct deyimiyle yapılır.

Veri Yapıları

3-1. Topluluk Oluşturma struct kimlik{ } char ad[15]; char soyad[20]; int yas; char adres[50];

3-2. Ortaklık Oluşturma Ortaklık, birden çok değişkenin aynı bellek alanını kullanmasını sağlayan bir veri yapısı tanımlamasıdır. Böylece, bellek alanı kısıtlı uygulamalarda bazı değişkenlerin ortaklaşa yer kullanması sağlanmış olur. Ancak, birine atama yapıldığında diğerinin değişeceği unutulmamalıdır. Ortaklık tanımlanması C dilinde union deyimiyle yapılır. Ortaklıkta en fazla yeri işgal eden veri yapısı hangisi ise, ortaklık içerisindeki tüm değişkenler orayı paylaşır.

3-2. Ortaklık Oluşturma union paylas{ int i; float f; char kr; }