Veri tipleri Temel Veri Tipleri ve Kullanıcı tanımlı Bileşik Veri Tipleri olarak sınıflandırılacaktır



Yüklə 445 b.
tarix29.05.2018
ölçüsü445 b.
#46572



Veri tipleri Temel Veri Tipleri ve Kullanıcı tanımlı Bileşik Veri Tipleri olarak sınıflandırılacaktır.

  • Veri tipleri Temel Veri Tipleri ve Kullanıcı tanımlı Bileşik Veri Tipleri olarak sınıflandırılacaktır.

  • İlkel Veri Tipleri'nde sayısal, mantıksal, karakter tipler, karakter dizgi tipleri;

  • Bileşik Veri Tipleri'nde ise diziler, record tipi, union tipi, set (küme) tipi, işaretçi (gösterge) tipi anlatılacaktır.

  • Ayrıca, Kuvvetli Tipleme, Tip Uyumluluğu, Tip Denetimi ve Tip Dönüşümleri de bu bölümde incelenecektir.



Bir verinin bellekte nasıl tutulacağını, değerinin nasıl yorumlanacağını ve veri üzerinde hangi işlemlerin yapılabileceğini belirleyen bilgiye veri tipi denir.

  • Bir verinin bellekte nasıl tutulacağını, değerinin nasıl yorumlanacağını ve veri üzerinde hangi işlemlerin yapılabileceğini belirleyen bilgiye veri tipi denir.

  • Bir programlama dilindeki veri tipleri, programlardaki ifade yeteneğini ve programların güvenilirliğini doğrudan etkiledikleri için, bir programlama dilinin değerlendirilmesinde önemli bir yer tutarlar.



Temel ve Bileşik veri tipleri arasındaki en önemli fark, temel veri tiplerinin başka veri tiplerinden oluşmamasıdır.

  • Temel ve Bileşik veri tipleri arasındaki en önemli fark, temel veri tiplerinin başka veri tiplerinden oluşmamasıdır.



Başka veri tipleri aracılığıyla tanımlanmayan veri tiplerine ilkel (primitive) veri tipleri denir.

  • Başka veri tipleri aracılığıyla tanımlanmayan veri tiplerine ilkel (primitive) veri tipleri denir.

  • Sayılar

  • Karakter,

  • Mantıksal,

  • Karakter dizgi,

  • Kullanıcı tanımlı sıralı tipler



İlkel sayısal veri tipleri; tamsayı, kayan noktalı ve onlu veri tipleridir.

  • İlkel sayısal veri tipleri; tamsayı, kayan noktalı ve onlu veri tipleridir.



En bilinen temel veri tipi tamsayı (integer) dır. Bir tamsayı değer, bellekte en sol bit işaret biti olmak üzere bir dizi ikili (bit) ile gösterilir.

  • En bilinen temel veri tipi tamsayı (integer) dır. Bir tamsayı değer, bellekte en sol bit işaret biti olmak üzere bir dizi ikili (bit) ile gösterilir.

  • Temel tamsayı veri tipine ek olarak Ada ve C programlama dillerinde, (short int, int, long int gibi) üç ayrı büyüklükte tamsayı tipi tanımlanmıştır. Ayrıca C'de işaretsiz tamsayı (unsigned int) veri tipi de bulunmaktadır.



Kayan noktalı (floating point) veri tipleri, gerçel sayıları modellerler.

  • Kayan noktalı (floating point) veri tipleri, gerçel sayıları modellerler.

  • Kayan noktalı sayılar, kesirler ve üsler olarak iki bölümde ifade edilirler.

  • Kayan noktalı tipler, duyarlılık (precision) ve alan (range) açısından tanımlanırlar.

  • Duyarlılık, değerin kesir bölümünün tamlığıdır. Alan ise, kesirlerin ve üslerin birleşmesidir.





 Onlu (decimal) veri tipi, ondalık noktanın sabit bir yerde bulunduğu sabit sayıda onlu basamak içeren bir veri tipidir.Bu veri tipi, az sayıda programlama dilinde (Örneğin; PL/I) tanımlanmıştır.

  •  Onlu (decimal) veri tipi, ondalık noktanın sabit bir yerde bulunduğu sabit sayıda onlu basamak içeren bir veri tipidir.Bu veri tipi, az sayıda programlama dilinde (Örneğin; PL/I) tanımlanmıştır.

  • Onlu veri tipi, onlu değerleri tam olarak saklayabilirse de, üsler bulunmadığı için gösterilebilecek değer alanı sınırlıdır. Her basamak için bir sekizli (byte) gerekli olması nedeniyle, belleği etkin olarak kullanmaz.



Mantıksal(boolean) veri tipi, ilk olarak ALGOL 60 tarafından tanıtılmış ve daha sonra çoğu programlama dilinde yer almıştır.

  • Mantıksal(boolean) veri tipi, ilk olarak ALGOL 60 tarafından tanıtılmış ve daha sonra çoğu programlama dilinde yer almıştır.

  • Mantıksal veri tipi, sadece doğru (true) veya yanlış (false) şeklinde ifade edilen iki değer alabilir.

  • Bir mantıksal değer bellekte bir ikili ile gösterilebilirse de, çoğu bilgisayarda bellekteki tek bir ikiliye etkin olarak erişim güç olduğu için, bir sekizlide saklanırlar.



İlişkisel işlemciler, ve seçimli deyimler gibi programlamadaki birçok yapı, mantıksal tipte bir ifade üzerinde çalıştığı için mantıksal veri tipinin dilde yer almasının önemi büyüktür.

  • İlişkisel işlemciler, ve seçimli deyimler gibi programlamadaki birçok yapı, mantıksal tipte bir ifade üzerinde çalıştığı için mantıksal veri tipinin dilde yer almasının önemi büyüktür.

  • ALGOL 60'dan sonraki çoğu dilde yer alan mantıksal veri tipinin yer almadığı bir programlama dili C dilidir. C'de ilişkisel işlemciler, ifadenin sonucu doğru ise 1, değilse 0 değeri döndürürler. C'de if deyimi, sıfır değeri için yanlış bölümünü, diğer durumlarda ise doğru bölümünü işler.



 Karakter(character) veri tipi, tek bir karakterlik bilgi saklayabilen ve bilgisayarlarda sayısal kodlamalar olarak  saklanan bir veri tipidir.

  •  Karakter(character) veri tipi, tek bir karakterlik bilgi saklayabilen ve bilgisayarlarda sayısal kodlamalar olarak  saklanan bir veri tipidir.

  • Karakter veri tipinde en yaygın olarak kullanılan kodlamalardan biri ASCII kodlamasıdır. ASCII kodlaması, 128 farklı karakteri göstermek için, 0..127 arasındaki tamsayı değerleri kullanır.

  • ASCII kodlamasıyla bağlantılı olarak bazı programlama dilleri, karakter veri tipindeki değerlerle tamsayı tipi arasında ilişki kurarlar.

  • C'de, char veri tipi, eş olarak kullanılabilir.



C'de char ve int veri tipleri dönüşümlü olarak kullanılabilmektedir.

  • C'de char ve int veri tipleri dönüşümlü olarak kullanılabilmektedir.



Bir karakter dizgi (character string) veri tipinde, nesneler karakterler dizisi olarak bulunur.Karakter dizgi veri tipi bazı programlama dillerinde ilkel bir veri tipi olarak, bazılarında ise özel bir karakter dizisi olarak yer almıştır.

  • Bir karakter dizgi (character string) veri tipinde, nesneler karakterler dizisi olarak bulunur.Karakter dizgi veri tipi bazı programlama dillerinde ilkel bir veri tipi olarak, bazılarında ise özel bir karakter dizisi olarak yer almıştır.

  • FORTRAN77, FORTRAN90 ve BASIC'te karakter dizgiler ilkel bir veri tipidir ve karakter dizgilerin atanması, karşılaştırılması vb. işlemler için işlemciler sağlanmıştır.

  • Pascal, C, C++ ve Ada'da ise karakter dizgi veri tipi, tek karakterlerden oluşan diziler şeklinde saklanır.





 Bir sıralı (ordinal) tip, olası değerlerin pozitif tamsayılar kümesi ile ilişkilendirilebildiği veri tipidir.

  •  Bir sıralı (ordinal) tip, olası değerlerin pozitif tamsayılar kümesi ile ilişkilendirilebildiği veri tipidir.

  • Sayılama (enumeration)

  • Altalan (subrange) olmak üzere iki tür sıralı tip tanımlayabilir.

  • Gerçek dünya nesnelerini daha iyi modelleyebilen yeni tipler oluşturma olanağı sağlamaktır.



 Sayılama (enumeration) tipi, gerçek hayattaki verilerin tamsayı (integer) veri tipine eşleştirilmesi için kullanılan veri tipidir.

  •  Sayılama (enumeration) tipi, gerçek hayattaki verilerin tamsayı (integer) veri tipine eşleştirilmesi için kullanılan veri tipidir.



Bir sayılama tip tanımı, parantezler arasında yazılmış belirli sayıdaki isimden oluşur.

  • Bir sayılama tip tanımı, parantezler arasında yazılmış belirli sayıdaki isimden oluşur.





 Bir sıralı tipin bir alt grubudur. Ana sınıfa uygulanabilen tüm işlemciler, altalan tiplerine de uygulanabilmektedir.

  •  Bir sıralı tipin bir alt grubudur. Ana sınıfa uygulanabilen tüm işlemciler, altalan tiplerine de uygulanabilmektedir.



 Bir dizi (array) homojen elemanlardan oluşur ve dizi elemanlarının yeri ilk elemana göre belirlenebilir.

  •  Bir dizi (array) homojen elemanlardan oluşur ve dizi elemanlarının yeri ilk elemana göre belirlenebilir.

  • Programlarda dizilere olan başvurular, dizi ismi ve indis değeri şeklinde gerçekleştirilir.

  • programlama dillerinde çoğunlukla (Pascal, C ve C++) İndislerin gösterimi için köşeli parentezler kullanılır.

          • double sonuc[15];
  • float x[100], y[100];



İndisin Üst Sınırı:

  • İndisin Üst Sınırı:

  • İlk programlama dillerinin aksine, günümüzde popüler olan programlama dillerinde dizi indislerinin sayısı sınırlanmaz.

  • C'de ise diğer programlama dillerinden farklı bir tasarım vardır. C'de dizilerin tek indisi olabilir. Ancak, dizilerin elemanları diziler olabildiği için çok boyutlu diziler oluşturulabilir. (int mat[2][3];)



C ve C++'da tüm indisler için alt sınır varsayılan olarak sıfır, FORTRAN 77 ve FORTRAN 90'da ise varsayılan olarak bir kabul edilir. Çoğu programlama dilinde ise, indislerin alt sınır değerleri dizinin tanımında belirtilmelidir.

  • C ve C++'da tüm indisler için alt sınır varsayılan olarak sıfır, FORTRAN 77 ve FORTRAN 90'da ise varsayılan olarak bir kabul edilir. Çoğu programlama dilinde ise, indislerin alt sınır değerleri dizinin tanımında belirtilmelidir.



Alt indis sınırı 1 ve her bir elemanının sözcük uzunluğu c olan bir dizinin A[k]’nci elemanın adresi:

  • Alt indis sınırı 1 ve her bir elemanının sözcük uzunluğu c olan bir dizinin A[k]’nci elemanın adresi:

  • Adres(A[k])=adres(A[1])+(k-1)*c

  • Adres(A[k])={adres(A[1])-c}+k*c





İlk olarak COBOL'da tanıtılmıştır.

  • İlk olarak COBOL'da tanıtılmıştır.

  • Altalan olarak isimlendirilen birden fazla ifadenin bulunduğu yapıdır. Kayıt veri tipi ile bir isim altında farklı tipte birden fazla alan tanımlanabilir.

  • Yani dizilerde homojen elemanlar bulunurken kayıtlarda heterojen elemanlar vardır.

  • Dizideki bir elemana indis numarası ile ulaşılırken kayıt veri tipinde alanlara her sahayı gösteren tanımlayıcılarla . (mus.ad) ulaşılmaktadır.

  • Kayıt içerisinde tanımlanan her alanın birbirinden farklı isimleri vardır. İstenirse bu isimler bu tipin dışında farklı tanımlamalar için de kullanılabilir.



  • KayıtTipAdı=RECORD

  • AlanAdı1:TipAdı;

  • AlanAdı2;TipAdı;

  • End;









İşaretçi tipi, belirli bir veriyi içermek yerine başka bir veriye başvuru amacıyla kullanılır.Bir gösterge tipi sadece bellek adreslerinden oluşan değerler ve boş(null) değerini içerebilen bir tiptir.

  • İşaretçi tipi, belirli bir veriyi içermek yerine başka bir veriye başvuru amacıyla kullanılır.Bir gösterge tipi sadece bellek adreslerinden oluşan değerler ve boş(null) değerini içerebilen bir tiptir.

  • Gösterge tipindeki değerler, gösterdikleri veriden bağımsız olarak sabit bir büyüklüktedirler ve genellikle tek bir bellek yerine sığarlar.

  • Bu yüzden işaretçilerin kullanımıyla bellek kullanımı ve yönetimi daha etkin hale gelmektedir. Liste, ikili ağaç ve dizi gibi veri yapıları işaretçilerle daha kolay kullanılabilir.





Bir işaretçi değişkenini gösterebileceği veri tipi kısıtlanmazsa güvenlik sorunu oluşabilir. (gösterge kullanımlarında durağan tip denetimi yapılamadığı için) PL/I

  • Bir işaretçi değişkenini gösterebileceği veri tipi kısıtlanmazsa güvenlik sorunu oluşabilir. (gösterge kullanımlarında durağan tip denetimi yapılamadığı için) PL/I

  • Bir işaretçi değişkeninin gösterdiği adreste geçerli bir veri olmayabilir.(Pascal, C, C++)

  • GÜVENİLİRLİK tehlikeye girebilir.

  • C'de bir gösterge değişken tanımlanırken, adresini tutabileceği değişken tipi de belirtilmelidir (int *a;)

  • Java pointer kullanımına izin vermez.





Kuvvetli tipleme (strong typing), farklı veri tiplerinin farklı soyutlamaları göstermeleri nedeniyle etkileşimlerinin kısıtlanmasıdır.

  • Kuvvetli tipleme (strong typing), farklı veri tiplerinin farklı soyutlamaları göstermeleri nedeniyle etkileşimlerinin kısıtlanmasıdır.

  •  Bütün tip hataları yakalanmalı

  • Derleyici, her değişken ve her ifadenin tipinin belirlenebilmesi için kurallar içermeli.

  • Zorunlu dönüşümler dışında eş olmayan tiplerin birbirlerine atanmasına ve altprogram çağırımlarında parametre aktarımlarına izin vermemeli.

  • Pascal kuvvetli tiplemeyi destekler. C, C++ bu konuda zayıtır.



 Bir işlemcinin işlenenlerinin birbirleriyle uyumlu tipler olduğunun denetlenmesi, tip denetimi olarak adlandırılmaktadır.

  •  Bir işlemcinin işlenenlerinin birbirleriyle uyumlu tipler olduğunun denetlenmesi, tip denetimi olarak adlandırılmaktadır.



Herhangi bir işlem birden fazla değişken, sabit ve operatör içerebilir. İşleme giren değişkenlerin farklı tiplerden olması durumunda sonucun hangi tipte olacağını işlem içerisinde değişken ve sabitler belirler. Böyle durumlarda işlem içerisinde hafızada en çok yer kaplayan ifadenin veri tipine göre sonucun tipi belirlenir.

  • Herhangi bir işlem birden fazla değişken, sabit ve operatör içerebilir. İşleme giren değişkenlerin farklı tiplerden olması durumunda sonucun hangi tipte olacağını işlem içerisinde değişken ve sabitler belirler. Böyle durumlarda işlem içerisinde hafızada en çok yer kaplayan ifadenin veri tipine göre sonucun tipi belirlenir.

  • bir nesnenin kendi tipinin tüm değerlerini içeren bir tipe dönüşümü, genişleyen dönüşüm olmaktadır. Bir tamsayı değişkenin kayan noktalı tipe dönüşümü, genişleyen dönüşüm örneğidir.

  • bir nesne, kendi tipindeki tüm değerleri içermeyen bir tipe dönüştürülüyorsa daralan dönüşüm gerçekleşmektedir. Örneğin, kayan noktalı tipten tamsayıya dönüşüm, daralan dönüşümdür.





Hataların farkedilmesini engellenebilir.

  • Hataların farkedilmesini engellenebilir.

  • Zorunlu dönüşümün gerçekleştiği dillerde, tip denetimi kısıtlanmakta



Derleyici tarafından gerçekleştirilen dönüşümler, zorunlu dönüşüm (coercion) olup bunlara örtülü tip dönüşümleri denir.

  • Derleyici tarafından gerçekleştirilen dönüşümler, zorunlu dönüşüm (coercion) olup bunlara örtülü tip dönüşümleri denir.

  • Derleyici tasarımı sırasında, bir işlemcinin iki işleneni aynı tipte değilse, dönüşüme izin verilip verilmeyeceği belirlenmeli ve dönüşüm gerçekleşecekse bunun için gerekli olan kuralları belirlenmeli ve gerekli dönüşümü yapmalıdır.

  • Pascal ve C gibi birçok programlama dilinde bir tamsayı ve bir gerçel sayı toplanmak istendiğinde, tamsayının değeri gerçel sayıya dönüştürülür ve işlem gerçel sayılar üzerinde yapılır



Bir operandtan önce değerin dönüştürülmesi istenen tip belirtiliyorsa buna dışsal tip dönüşümü denir.

  • Bir operandtan önce değerin dönüştürülmesi istenen tip belirtiliyorsa buna dışsal tip dönüşümü denir.

  • Toplam=(int)toplam2 + 100

  • Bu ifadedeki toplam2 değişkeni önce int tipine dönüştürülür daha sonra 100 ile toplanır.



Temel ve Bileşik Veri Tipi kavramları

  • Temel ve Bileşik Veri Tipi kavramları

  • Sayısal, Mantıksal, Karakter, Karakter String ve Kullanıcı Tanımlı Sıralı Tipler;

  • Diziler, Record (Kayıt) Tipi, Union (Bileşim) Tipi, Set (Küme)Tipi ile Pointer (işaretçi) Tipi

  • Kuvvetli Tipleme, Tip Denetimi ve Tip Dönüşümleri kavramları incelenmiştir.



Yüklə 445 b.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə