Delphi için Sıralı ve Numaralandırılmış Veri Türleri

Delphi en Programlama dili kuvvetle yazılmış bir dile örnektir. Bu, tüm değişkenlerin bir tür olması gerektiği anlamına gelir. Tür, aslında bir tür verinin adıdır. Bir değişkeni bildirdiğimizde, değişkenin tutabileceği değer kümesini ve üzerinde yapılabilecek işlemleri belirleyen türünü belirtmeliyiz.

Delphi'nin Tamsayı veya sicim, yeni veri türleri oluşturmak için rafine edilebilir veya birleştirilebilir. Bu makalede, özel sıralı veri türlerinin nasıl oluşturulacağını göreceğiz Delphi.

Sıra Türleri

Sıralı veri türlerinin tanımlayıcı özellikleri şunlardır: sınırlı sayıda elemandan oluşmalı ve bir şekilde sipariş edilmelidir.

Sıralı veri türlerine en yaygın örnekler Char ve Tamsayı türlerinin tümü Boole yazın. Daha doğrusu, Nesne Pascal'ın önceden tanımlanmış 12 sıra türü vardır: Tamsayı, Kısa Metin, Küçük Nokta, Longint, Bayt, Word, Kardinal, Boole, ByteBool, WordBool, LongBool ve Char. Ayrıca, kullanıcı tanımlı sıra türü için iki sınıf daha vardır: numaralandırılmış türler ve alt aralık türleri.

instagram viewer

Herhangi bir sıra türünde, bir sonraki öğeye geri veya ileri gitmek mantıklı olmalıdır. Örneğin, gerçek türler sıralı değildir, çünkü geri veya ileri gitmek mantıklı değildir. "2.5'ten sonraki gerçek nedir?" anlamsız.

Tanımı gereği, ilk değer dışındaki her değer benzersiz bir selefine ve son değer dışındaki her değer benzersiz bir halef olduğundan, birkaç tanımlı fonksiyonlar sıra türleri ile çalışırken kullanılır:

fonksiyon Etki
Ord (X) Öğenin dizinini verir
Tahmini (X) Türde X'ten önce listelenen öğeye gider
Succ (X) Türde X'den sonra listelenen öğeye gider
Aralık (X; n) N öğeyi geri taşır (n atlanırsa 1 öğeyi geri taşır)
Inc (X; n) N öğeyi ileri taşır (n atlanırsa 1 öğeyi ileri taşır)
Düşük (X) X sıralı veri türü aralığındaki en düşük değeri döndürür
Yüksek (X) Sıralı veri türü X aralığındaki en yüksek değeri döndürür


Örneğin, Byte türünün en yüksek değeri 255 olduğu için Yüksek (Byte) 255 döndürür ve 3 2'nin ardılı olduğu için Succ (2) 3 döndürür.

Not: Son öğedeyken Succ kullanmaya çalışırsak Delphi bir Çalışma zamanı istisnası aralık kontrolü açıksa.

Delphi Numaralandırılmış Tip

Sıralı türden yeni bir örnek oluşturmanın en kolay yolu, bir grup öğeyi bir sıraya göre listelemektir. Değerlerin doğal bir anlamı yoktur ve sıralamaları, tanımlayıcıların listelendiği sırayı takip eder. Başka bir deyişle, bir numaralandırma değerler listesidir.

tip TWeekDays = (Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi, Pazar);

Numaralandırılmış bir veri türü tanımladıktan sonra, değişkenlerin bu türde olduğunu bildirebiliriz:

var Bazı Günler: TWeekDays;

Numaralandırılmış veri türünün temel amacı, hangi verilerinizin program manipüle edecek. Numaralandırılmış tür, sabitlere sıralı değerler atamanın kısa bir yoludur. Bu bildirimler göz önüne alındığında, Salı bir tür sabiti TWeekDays.

Delphi, listelendikleri sırayla gelen bir dizin kullanarak numaralandırılmış türdeki öğelerle çalışmamızı sağlar. Önceki örnekte, Pazartesi günü TWeekDays tür bildirimi 0 dizinine, Salı dizin 1'e sahiptir vb. Daha önce tabloda listelenen işlevler, örneğin Cumartesi'ye "gitmek" için Succ (Cuma) kullanalım.

Şimdi şöyle bir şey deneyebiliriz:

için Bazı Gün: = Pazartesi için Pazar yapmakEğer SomeDay = Salı sonra
ShowMessage ('Salı öyle!');

Delphi Görsel Bileşen Kütüphanesi birçok yerde numaralandırılmış türleri kullanır. Örneğin, bir formun konumu aşağıdaki gibi tanımlanır:

TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);

Konum (Nesne İnceleyici aracılığıyla) boyutunu ve yerleşimini almak veya ayarlamak için kullanırız. form.

Subrange Türleri

Basitçe söylemek gerekirse, bir alt aralık türü başka bir sıralı türdeki değerlerin bir alt kümesini temsil eder. Genel olarak, herhangi bir alt aralığı herhangi bir sıra türüyle başlayarak (önceden tanımlanmış numaralandırılmış tür dahil) ve çift nokta kullanarak tanımlayabiliriz:

tip TWorkDays = Pazartesi.. Cuma;

Burada TWorkDays Pazartesi, Salı, Çarşamba, Perşembe ve Cuma değerlerini içerir.

Hepsi bu - şimdi numaralandırın!

instagram story viewer