internet pencereler Android
Genişletmek

Sayısal değişkenler ve veri türleri. Delphi veri türleri ve çift Delphi veri türü ile çalışma

Veri türlerini kullanarak, programcı derleyiciyi, programdaki bilgileri nasıl saklayacağını belirtir. Değişkeneyi bildirirken, türünü belirtmelisiniz. Bazı türler dilde zaten tanımlanmıştır, diğer programcı sorulmalıdır. Önceki programlama dillerinde sınırlı sayıda veri türüne izin verildi ve Paskal Yeni tipler programındaki tanımın sağlanmasına izin veren ilk dillerden biri olduğu ortaya çıktı.

Kullanıcı tanımlı veri türleri genellikle program kalitesi tanımlarında veya modülünde (birim) ayarlanır, ancak bu prosedürler veya fonksiyonlar dahilinde yapılabilir. Tip reklamlar, yayınlandıkları bloğun sınırları dahilinde geçerlidir. Bu bloğun dışında, bu tür türlere atıfta bulunmak imkansızdır. İçinde, tüm harici türleri aynı adla değiştirirler. Açıklanan veri türleri, görünürlük alanında herhangi bir yerde kullanılabilir; Sadece kendi üzerine belirtilen türe referansın yasaktır (burada, burada, işaretçilerle ilgili bir istisna var).

Pascal'daki reklamlar, bir derleyici için, bir derste, bir anda bir veya başka bir türden bir veya başka türe olan bağlantıyı karşılayacaksa, durumunda hatırlaması gereken şemalar gibi bir şeydir. Kendi içinde, tip reklam programa katkıda bulunmaz.

Var reklamları gelince, derleyiciyi daha önce açıklanan türlerle ilgili bazı eylemleri belirlerler. Değişken türü, bu değerlerle gerçekleştirilebilecek değerlerini ve işlemlerini sınırlar.

Çeşitlerin ve değişkenlerin tanımları, program bileşenlerinin çeşitli yerlerine yerleştirilebilir. Aşağıdaki gibi görünüyorlar.

tip
Typel \u003d Tip Tanımlı; // yeni veri türleri "Tip" bölümünde tanımlanmıştır. Her yeni olan
// tür bir isim atandı, daha sonra önceden belirlenir
// mevcut türler.
Type2 \u003d Type__Definition2; // bir bölümde "Tip" birkaç tür ilan edebilirsiniz.
// türün en basit tanımı, tür adından oluşur,
Type3 \u003d Typel; // daha önce tanımlandı.
// yeni değişkenler açıklandı
Var // "var". Her yeni
Var1: Tip tanımları; // Değişken, önce adı atanmış ve ardından - Tip (dayanarak)
// önceden tanımlanmış tipler).
Var2, var3: Tip Tanım4; // bir bölümde "var" birkaç değişken ilan edebilirsiniz.
// Birkaç değişken aynı türde atanabilir.
Var4: Typel; // Değişkenler atandığında programın okunması daha kolaydır
// mevcut türler.

Object Pascal Sözdizimi, aynı anda temel olarak karmaşık türleri ve değişkenlerin tanımlarını belirlemenizi sağlar. Bununla birlikte, belirli blokların tip bölümlerindeki türlerin tanımı, bu türlerin programın farklı bölümlerinde kullanmayı mümkün kılar. Yeni türler aşağıdaki kategorilerin türlerinden belirlenir.

  • Bilgileri sayılar ve diğer "sipariş edilen" değerler halinde depolamak için basit türler.
  • Karakter dizilerini depolamak için dize türleri.
  • Farklı tiplerde bilginin eşzamanlı depolanması için yapısal türler.
  • Belirtilen türlerin değişkenlerine dolaylı erişim için nokta türleri.
  • İşlemsel Türler Değişken olarak kabul edilen prosedürlere ve fonksiyonlara hitap etmek.
  • Çeşitli türlerin bir değişken verisinde depolama için değişken türleri.

Genellikle tipte tanımlayıcılar yalnızca yeni türleri veya değişken bildirimlerini tanımlarken kullanılır. Bununla birlikte, tip adının yürütülen operatörün bir parçası olarak kullanılabileceği çeşitli fonksiyonlar vardır. Örneğin, Size OF işlevi (t), T. Değişkenleri tarafından işgal edilen bayt sayısını döndürür.

SizeOf işlevi yazmak için çok önemlidir verimli Programlar. Nesne pascal tiplerinde tanımlananların çoğu, çok karmaşık bir yapıya sahiptir ve bellekte oldukça fazla yer olabilir. Bu durumda, bu tür türlerin unsurları, bazı mantıksal sırayla değerlerin sunumu için daha fazla oluşturulur ve hafızada bir yer kaplamak için değil. Sayın Özelliği, programcıyı bu gibi durumlarda veri miktarını hesaplama ihtiyacından uzaklaştırır.

Basit veri türleri

Sıralı tipler
Tüm türler
Sembolik tipler
Boole Türleri
Numaralandırılmış tipler
Subadiapan tipleri
Geçerli türler

Aslında mevcut veri türü, ilk bakışta ne kadar zor göründüğü önemli değil, işlemcinin manipüle edebileceği basit bileşenlerdir. Nesne Pascal'da, bu basit veri türleri iki gruba ayrılır: sıra, işlemcinin kolayca manipüle edebileceği ve yaklaşık matematiksel değerleri temsil edebileceği farklı hacimlerden gelen verileri temsil eder. Sıra ve geçerli üzerindeki türlerin ayrılması biraz şartlıdır. Aynı şekilde, basit veriler sayılara ve sayılara göre ayrılabilir. Bununla birlikte, nesne pascal dilinde, sıra ve geçerli veriler farklı şekilde yorumlanır ve bu ayrılma bile yararlıdır.

Sıralı tipler

Bu dizilerin basit türlerinin en basitidir. Bu tiplerde, bilgi bireysel unsurlar şeklinde sunulur. Bireysel unsurlar ve hafıza gösterimi arasındaki ilişki, bu unsurlar arasındaki doğal ilişkiyi belirler. Dolayısıyla isim siparişleri.

Object Pascal, üç grup sekans tipi grubunu ve kullanıcı tarafından tanımlanan iki türü tanımlar. Gruplar tamsayı, sembolik ve Boolean türleridir. Kullanıcı tarafından tanımlanan sıra türleri liste ve alt bantlardır.

Herhangi bir dizi türünün tüm değerleri, sipariş edilen bir sırayı oluşturur ve bir dizi türünün değişkesinin değeri bu sıradaki yerini ile belirlenir. Değişken tamsayı tipleri hariç, değerleri hem pozitif hem de negatif olabilecek, herhangi bir sekans tipinin birinci elemanı, bir numara, ikinci eleman - 1 numara, vb. Tüm değerin sekans numarası en değere eşittir. Sipariş oranı, bu tüm dizi cerrahi türleri için yaygındır. Bu türün bazı standart fonksiyonları nesne pascal içine gömülür. Tabloda sunulurlar. 1.1.

Nesne Pascal'daki tüm dizi türleri için, tüm değerleri karşılık gelen dizi türlerinin değerlerine dönüştürmek için bir tür görev çalışması vardır. T dizinin adı ise ve X, bir tamsayı ekspresyonudur, daha sonra T (X), X'in Sırası numarasına sahip t değerini döndüren t (x).

Tablo 1.1. Sıralı tiplerde işlemler

Operasyon

Açıklama

Sıralı tip T'nin minimum değeri

Sıralı Tip T'nin maksimum değeri

Dizi tipinin ekspresyon değerinin sıra numarası. Bütün bir ifade için, bu sadece anlamıdır. Kalan sıra tipleri için, ifade sonucunun fiziksel gösterimi bir tamsayı olarak yorumlanır. Dönüş değeri her zaman tüm türlerden birine aittir

Önceki sipariş değeri. X-1'e eşdeğer tüm ifadeler için

Sıradaki değerde. X + 1'e eşdeğer tüm ifadeler için

Değişkenin değerini 1'e düşürür. V: \u003d pred (v) değerine eşdeğerdir.

Değişkenin değerini 1. ile 1'e kadar artırır. V: \u003d SARCE (V)

Tüm türler

Değişken tip türlerinde, bilgi tamsayılar olarak gösterilir, yani. Kesirli bir parçaya sahip olmayan sayılar. Nesne Pascal'da tanımlanan bazı türler fiziksel (temel) ve mantıksal (genel) ayrılmıştır. Programlama yaparken, mikroişlemcinin türüne ve çalışma ortamına bağlı olarak değişken miktarını maksimum verimlilik elde edilecek şekilde ayarlayan mantıksal tamsayılar kullanmak daha uygundur. Fiziksel tüm tipler, yalnızca değerlerin ve fiziksel hacim değişkeninin öncelikle önemli olduğu durumlarda uygulanmalıdır. PASCAL nesne, aşağıdaki tüm türleri tanımlar.

Tamsayı
Kısaltma.
Smallint.
Longint.
Bayt
Kelime.
Kardinal.

Lütfen bu türlerden birinin tamsayı (tamsayı) olarak adlandırıldığını lütfen unutmayın. Bazen karışıklığa yol açabilir, ancak terimin tamamını uygulayarak kolayca önleyebiliriz. Tür grubu, bir tamsayı - programda belirlenen belirli bir türe anahtar kelime. Fiziksel tamsayı türlerinin değişkenleri, kaç bellek baytını işgal ettiklerine bağlı olarak farklı değerler vardır (ki bu, Beden Fonksiyonu tarafından iade edilen değere eşittir. bu tip). Tüm fiziksel türler için değer aralıkları tabloda listelenmiştir. 1.2.

Tablo 1.2.Fiziksel bütün tipleri

Aralık anlamı

Fiziksel format

8 bit, bir işareti ile

Bir işaret ile 16 bit

2 147 483 648-2 147 483 647

Bir işaret ile 32 bit

8 bit, yok

16 bit, yok

Fiziksel tamsayı türlerinin değerleri ve formatları, mikroişlemciye ve programın yapıldığı işletim sistemine bağlı değildir. Nesne Pascal'ın uygulanmasında veya versiyonunda değişikliğe sahip değişmez (veya en azından değişmemeniz gerekmez).

Mantıksal tamsayı tiplerinin (tamsayı ve kardinal) değerlerinin aralıkları tamamen farklı bir şekilde belirlenir. Masadan görülebileceği gibi. 1.3, ilgili fiziksel tiplerin aralıklarıyla bağlantılı değiller. Lütfen varsayılan Delphi'nin 32 bit görünüm olarak ayarlandığını lütfen unutmayın.

Tablo 1.3.Mantık bütün tipleri

Değer aralığı

Fiziksel format

Bir işaret ile 16 bit (SMALIINT)

2 147 483 648-2 147 483 647

Bir işaret ile 32 bit (uzunlama)

16 bit, hayır işareti (kelime)

32 bit, işaret yok (uzunlama)

Sıralı tipler için tanımlanan tüm işlemler tüm verilerde gerçekleştirilir, ancak "sıralı sıralama türleri" ile değil, sayılarla olduğu gibi sayılarla çalışmak daha uygundur. "Canlı" sayılar gibi, tamsayı türlerinin verileri katlanabilir (+), düşün (-) ve (*) çarpın. Bununla birlikte, tamsayı türlerinin verilerine uygulanan bazı işlemler ve işlevler biraz farklı bir anlamı vardır.

Sembolik tipler

Sembolik verilerin anlamı, ekranda veya yazıcıda görüntülendiklerinde açıktır. Bununla birlikte, bir sembol türünün tanımı, kelime sembolü altında neye ima edileceğine bağlı olabilir. Tipik olarak, sembolik veri türleri, etkileşim devresini farklı hacimler ve bazıları arasında ayarlar. standart yöntem Sembolik bilgilerin paylaşılması için kodlama / kod çözme. Klasik dil pascalında, hiçbir şema belirtilmemiş ve belirli uygulamalarda her birinin kullanabileceği kullanılmıştır.

İlk mikroişlemciler için pascal dilinin uygulanmasında, 7 bitlik bir şema, ASCII (Amerikan Standardı) İçin kod Bilgi değişimi - Exchange bilgisi için Amerikan Standart Kodu). Bu şema hala yaygındır, ancak bilgi bir kural olarak, 8 bitlik bellek bölümlerinde saklanır. Ek bit, olası karakter temsillerinin sayısını iki katına çıkardı, ancak genişletilmiş setin uygulanması semboller ASCII. Genellikle standarttan uzaktır. Delphi'nin bu sürümü, gelişmiş (genişletilmiş) ANSI (Amerikan Ulusal Standartları - Amerikan Ulusal Standartlar Enstitüsü) olarak bilinen 8 bitlik bir karakter kümesini tanımlar. Olabildiğince, sembolik şemanın işletim sistemi onu algıladığında algılanması gerekir. Pencere için işletim sistemleri Microsoft, amaçlanan sınırlı sayıda uluslararası işaret içeren bir ANSI şemasıdır. Daha kapsamlı bir uluslararası işaret kümesi uygulama arzusunda. Tüm bilgisayar dünyası, ilk 256 karakterin ANSI şemasında tanımlanan karakterlerle çakışan Unicode adlı 16 bitlik bir şemaya geçer.

Nesne Pascal'daki tüm bu görünümlerle uyumluluk için, iki fiziksel sembol tipi ve bir mantıksal olarak tanımlanır.

Fiziksel tipler aşağıda listelenmiştir.

Sembolik çift kelimenin (32 bit) eksikleri eksik.

Mantıksal sembol tipi char denir. Klasik Dil Pascal Char'da, tek karakter türü. Delphi Char, her zaman Fiziksel AnSicar verilerine karşılık gelir. Amerikan programcılarında, tek paktalı bir bellek hücresi ile sembol birliği, uzun yıllardır kökleşmiştir, çoğu zaman diğer kodlama şemalarının kullanılabileceği durumlarda oluşmaz. Bununla birlikte, programların internet ve dünya çapında web'deki uluslararasılaşması konusundaki tartışmalar, sembolik veriler sorununa karşı tutumlarını önemli ölçüde değiştirebilir. Uygulamak mantıksal tip Char, CHAR'ın WideChar olarak tanımlanabileceği diğer mikroişlemciler ve işletim sistemleri için uygulanmalıdır. Herhangi bir boyutta satırları kullanabilen programlar yazarken, bu boyutu belirtmek için, Sabit sabiti belirtmeden Size OF işlevini uygulamak önerilir. C'nin herhangi bir karakter tipi değişken olduğu ord (c) işlevi, S sembolünün bellekte sunulduğu bir tamsayı değeri döndürür.

Boole Türleri

Eğitimin erken bir aşamasında, programcılar iki durumu, iki durumu, ikisinin birisini temsil eden her şey hakkında bilgi kaydetmek için kullanılabilecek bir bit kavramına hakimdir. Biraz 0 veya 1, evet veya Hayır, açık veya kapalı, üst veya alt, durun veya gidebilir. Nesne Pascal'da, gerçek olarak (doğru) veya yanlış (yanlış) olarak gösterilebilecek her şey hakkında bilgi Boolean değişkenlerinde saklanır. Toplam chere türleri ve masada sunulur. 1.4.

Tablo 1.4.Boole Türlerinin Değişkenlerinin Boyutları

2 bayt (sesli kelime)

4 bayt (uzun ses)

Tamsayı ve sembolik tiplerle analojiyle, fiziksel ve mantığa ayrılmış olarak, Bytebool, WordBool ve Longbool - fiziksel türleri, Boolean - mantıksal olduğunu varsaymak doğaldır. Ancak bu durumda o kadar değil. Dört tip de farklıdır. Nesne Pascal için, Boolean Tipi tercih edilir, kalan, diğer programlama dilleri ve işletim sistemleriyle uyumluluk için tanımlanır.

Boolean tipi değişkenleri yalnızca gerçek (gerçek) ve yanlış değerler atanabilir. Değişkenler Bytebool, WordBool ve LongBool, genellikle sıfır ve doğru durumlarda, herhangi bir sıfır olmayan değeri olan diğer dizi değerleri de alabilir.

Numaralandırılmış tipler

Yazın enum tipi \u003d (birinci değer, value2, value3, son değer);

Tipik olarak, bu tür listeler, sayılar olmayan ayrık değerler ve adlar içerir. Tip Boolean, Nesne Pascal'daki en basit listelenen tiptir. Boolean değişkenleri, doğru ve yanlış isimlerle ifade edilen iki değer alabilir ve türün kendisi, aşağıdaki gibi beyan edildiği gibi Nesne Pascal'da tanımlanır:

Boolean \u003d (false, true) yazın;

Boolean Tipini Nesne Paskalında Kullanma, Karşılaştırmalar yapılır, aynı türlerin çoğu, yalnızca belirli bir amaçla ayrılmış benzersiz adların veya tanımlayıcıların listeleridir. Örneğin, MyRed, MyGreen ve MyLue'nin değerleriyle bir tür MyColor (rengim) oluşturabilirsiniz (benim kırmızı, yeşilim, mavi). Bu oldukça basit yapılır:

MyColor \u003d (MyRed, MyGreen, MyBlue) yazın;

Bu satır dört yeni tanımlayıcıyı açıkladı: MyColor, MyRed, MyGreen ve MyBlue. MyColor'un tanımlayıcısı, dizi türü ile işaretlenmiştir, bu nedenle, PASCAL Syntax nesnesinde, bu tanımlayıcı, listelenen türlerin izin verildiği her yerde kullanılabilir. Kalan üç tanımlayıcı, MyColor Tipi değerleridir. Sembolik I gibi. boole Türleri Dinlenen sayı değil ve bunların sayıları gibi kullanımı mantıklı değil. Bununla birlikte, listelenen türler ordinaldir, bu nedenle bu tür türlerin değerleri sipariş edilir. Listedeki tanımlayıcılar sırayla sıralı numaralar olarak atanır. İlk ad, 0, ikinci - 1, vb. Sıra numarası atanır.

Subadiapan tipleri

Alt bant türünün değişkenleri, subadiapan dışında, herhangi bir dizi türünü temsil eden, kaynak türü değerlerinin belirli bir arama aralığına karşılık gelen bilgileri içerir. Alt bant türünün tanımının sözdizimi aşağıdaki forma sahiptir:

Tip Subge Type \u003d düşük değer ... Yüksek değer;

Alt bant değişkenleri, kaynak türünün tüm özelliklerini korur. Tek fark, alt bant değişkenin yalnızca belirtilen alt bantta bulunan değerleri atanabilir. Bu durumun üzerindeki kontrol, testi kontrol testi komutu ile verilir.

Açıkça alt bant türünü açıkça tanımlamanın ihtiyacı nadiren gerçekleşir, ancak tüm programcılar dizileri belirlerken bu tasarımı dolaylı olarak kullanır. Dizinin elemanlarının numaralandırılmasının planının ayarlandığı bir alt bant tasarımı şeklindedir.

Geçerli türler

Değişken geçerli tiplerde, tamsayı ve kesirli parçalardan oluşan sayıları içerir. Object Pascal'ın altı geçerli tipi vardır. Tüm tipler 0 numarasını temsil edebilir, ancak eşikte farklılık gösterir (minimum pozitif) ve maksimum değerlerhangi doğruluk (önemli rakamların sayısı) ve birimin yanı sıra temsil edilebilir. Gerçek türler tabloda açıklanmaktadır. 1.5.

Tablo 1.5. Geçerli tipler.

Bütün türler tam sayıları temsil eder, yani. Kesir sıfır olan sayılar. İki eşit olmayan tamsayılar arasındaki fark birden az olamaz. Bu nedenle, gerçek nesnelerin sayılara karşı herhangi bir tutumuna sahip olup olmadığına bakılmaksızın, tam sayıların ayrık değerleri belirlemek için kullanıldığı içindir. Gerçek türler, kesirli bir parçaya sahip olabilecek sayıları temsil etmek için tasarlanmıştır, bu nedenle neredeyse sürekli olabilecek değerleri sunmak için kullanışlıdır.

Not, neredeyse neredeyse. Adının geçerli olmasına rağmen, bu türlerin değişkenleri matematiksel geçerli numaralardan farklıdır. Nesne Pascal'da geçerli bir tür, kayan bir noktada ve sabit sayıda sayıda gösterilebilecek matematiksel geçerli numaraların bir alt kümesidir. İfadeli programcılar için durum, Delphi programlarında ve genel olarak çoğu Windows programında kullanılan Standart IEEE formatlarında (Elektrikli ve Elektronik Engi Enstitüsü Enstitüsü) (Elektrikli ve Elektronik Engiler Enstitüsü) Enstitüsü'nde, mümkün olduğu gerçeğiyle daha da şiddetlenir. Sabit bir sayı ile sadece sayıları doğru bir şekilde temsil etmek için. Kesirli parçada bit. Şaşırtıcı bir şekilde, 0.1 gibi basit bir sayı, çok küçük olsa bile, bir hata ile genişletilmiş bir IEEE formatında yazılmıştır. Bu nedenle, yüzer bir nokta gösterimi, sayısal değerlerin sabit sayıda ondalık deşarjının korunduğu programlar için bir miktar uygun değildir. Bu, "yaşayan" para ile çalışan programlar için geçerlidir.

Bu sorunu kısmen nesne pascal'da çözmek için, sabit virgüllü iki format tanımlanır. Comp Tip (Hesaplamalı Bilgi İşlem), -263 + 1 ila 2 63 -1 arasındaki aralıkta sadece tamsayılar içerir; bu, kabaca -9.2x10 18 ila 9.2x10 18 arasındaki aralığa karşılık gelir. Amerikan para birimine sahip operasyonların programlanması, geliştiriciler genellikle, sayının bütün bir kısmının dolar, kesirli kuruş sayısını belirlediği doğal para toplamı yazmanın doğal bir yolunu aramaları gerekir. Bu tür değerler kaydedilirse değişken tipi Comp, onları bir takım kuruş olarak temsil etmek zorunda kalacak. Bu durumda, cesaretleri dolaşmak için değeri 100'e çarpmanız gerekir ve ardından tekrar merkezleri almak için 100'e bölün.

Para biriminin türünü kullanırsanız bu kaygılardan kaçınılabilir. Bu durumda, ölçeği seçme görevi derleyiciyi alacaktır. Fiziksel olarak, para birimi değerleri, aynı hacmin hafızasına göre kaydedilir, ancak tamsayılar olarak, derleyici, parasal imzalamaya uygun hale getirmek ve 10.000 ile çoğalmak için değeri 10.000 (100!) İle bölmeyi unutmaz. Hafızada yazmadan önce. Bu, dört ondalık ondalık işaretin mutlak doğruluğunu sağlar.

Sayısal değişkenler ve veri türleri

Delphi programlama sistemi programlar oluşturmak için modern ve çok güçlü bir araçtır. Bu konuda, bu sistemin editörünün temel yeteneklerini inceleyebileceğinizden emin olabilirsiniz. Böyle bir editörde çalışmak zor değildir ve çoğu zaman kullanıcıyı yeteneklerinizin çeşitliliğine bir zevk verir. Delphi'de oluşturulan programlar oldukça etkilidir ve bilgisayar teknolojisinin tüm gücünü kullanmanıza izin verir.

En önemli engellerden biri birimdir rasgele erişim belleği ve bilgisayar hızı. Programcı her zaman bir programın hafızadaki ihtiyacını nasıl azaltacağınızı düşünmelidir. Bu sorunu çözmenin bir yolu, programda kullanılan değişken sayısını sınırlamak veya depolama için bellek hücrelerinin boyutunu azaltmaktır.

Bütün ve gerçek türün değişkenlerinin nasıl ilan edildiğini zaten biliyorsunuz. Delphi sistemindeki bu değişkenlere ek olarak, birkaç veri türü vardır. Birbirlerinden, yalnızca depolama için gerekli olan hafızanın boyutunu ve buna göre, bu değişkenlerde depolanabilecek sayıların aralığı değişir. Böylece, programcı gerekli sayısal türü seçebilir ve hafızayı rasyonel olarak kullanabilir. Peki veri türleri nedir?

Veri tipleri

Herhangi bir veri, yani Delphi'deki sabitler, değişkenler, özellikler, işlevlerin veya ifadelerin değerleri ile karakterize edilir. Tür, bir veya başka bir nesnenin sahip olabileceği ve bunun için geçerli olan birçok işlem yapabileceği izin verilen değerler kümesini belirler. Ek olarak, tip ayrıca, PC belleğindeki verilerin iç gösteriminin formatını da tanımlar.

Delphi. kapsamlı bir veri tipi yapısı ile karakterize:

Şimdiye kadar sadece basit türlerle sizi düşüneceğiz.

Sıralı tipler

Sıralama türleri, her birinin sonlu sayıda olası değerlere sahip olması gerçeğiyle karakterize edilir. Bu değerler belirli bir şekilde (buradan ve türlerin adından) ve dolayısıyla, her birinin, birinin tamsayısı ile karşılaştırabilirsiniz - değerin sırası numarasını karşılaştırabilirsiniz.

Sıra tipleri, tamsayılar, mantıksal, sembol, listelenen ve tip aralığı içerir. Bunlardan herhangi birine, ORD (x) işlevi, X ifadesinin değerlerinin sırasını döndürür.

Tüm türler

İsim vermek

Uzunluk, bayt

Değer aralığı

Kardinal.

0. .. 2 147 483 647

Bayt

0...255

Kısaltma.

128...+127

Smallint.

32 768...+32 767

Kelime.

0...65 535

Tamsayı

Longint.

2 147 483 648...+2 147 483 647

İnt64.

9*10 18 . ..+9*10 18

Longword.

0. . .4 294 967 295

Longword ve Int64 tipleri ilk olarak 4.0 sürümüne girilir ve Delphi 1. Delphi'de Smallint ve Kardinal Türleri eksiktir. Bu sürüm için tamsayı tipi 2 bayt alır ve -32768'den +32767 arasında bir dizi değere sahiptir; .

Bütün türlere uygulanabilir standart prosedürler ve fonksiyonlar

Temyiz

Sonuç türü

davranmak

abs (x)

X modülünü döndürür

chr (b)

Char.

Kodunda bir sembol döndürür

aralık (vx [, i])

VX değerini I'e ve I yokluğunda - 1

İnc (vx [, i])

Vx değerini i ve I-IT'in yokluğunda arttırır 1

Merhaba (w)

Bayt

Kıdemli argüman yayını döndürür

Merhaba ben)

Ayrıca

Üçüncü bayt döndürür

Lo (i)

Genç bayt argümanını döndürür

Lo (w)

Ayrıca

garip (l)

Boolean.

Bir argüman tek bir sayı ise doğru döndürür

Rastgele (w)

Parametre gibi

0 aralığında düzgün bir şekilde dağıtılan bir sözde rasgele sayı döndürür ... (W-L)

sqr (x)

Argümanın karesini döndürür

takas (i)

Tamsayı

Word'deki yerdeki yerlerdeki değişiklikler

takas (w)

Kelime.

Ayrıca

Ayrıca, sizin için bilinen aritmetik işlemlere ek olarak, iki tane daha var: div ve mod.

d iv. - Fraksiyonel parçanın çöplüğüne sahip tamsayıların bölünmesi. Örneğin:

bir div B A \u003d 10 ve B \u003d 3 ise, sonuç 3'tür.

mod. - Tamsayıların bölümünün geri kalanı. Örneğin:

bir Mod B. a \u003d 10 ve B \u003d 3 ise, sonuç 1

Tamsayıların temsili

Tamsayıların görüntüsünde sadece işaretler ve sayılar vardır (+ + işareti belirtilemez). Bununla birlikte, ondalık bir sayı sistemi varsayılır, ancak onaltılık kullanabilirsiniz. Bu durumda, numaradan önce $ işareti koymanız gerekir.

Tip aralığı

Tüm tüm tipler sözde listelenen veya sıra türlerine aittir. Herhangi bir dizi türünde, kaynak türünün tüm değerlerinin dahil edildiği bir değer alt kümesini seçebilirsiniz. Menzil türü, iki nokta ile ayrılan minimum ve maksimum değerleri belirleyerek Tip reklamlarında ayarlanır. Tip reklamlar her zaman Tip servis sözcüğü tarafından başlatılır. Örneğin:

Pir \u003d [1..2006] yazın;

Listelenen tür

Tür tipi, alabileceği değerlerin numaralandırılmasıyla ayarlanır. Her değer, belirli bir tanımlayıcı olarak adlandırılır ve örneğin yuvarlak parantezler tarafından çerçevelenen listede bulunur, örneğin:

TypeColors \u003d (kırmızı, beyaz, mavi);

Sembol tipi

Sembolik tip değerleri, tüm PC karakterlerinin setidir. Her karakter, ... 255 aralığında bir tamsayıya atfedilir. Bu sayı, sembolün iç gösteriminin kodu olarak görev yapar, ord işlevini döndürür.

Windows'ta bir kodlama için, bir ANSI kodu kullanılır (Amerikan Ulusal Standardı Enstitüsü - Amerikan Standardizasyon Enstitüsü, bu kodu öneren). PC karakterinin kodları 0 ... 127 ile ilk yarısı Tablo 7.3'e karşılık gelir. Sembollerin 128 ... 255 kodlu ikinci yarısı çeşitli yazı tipleri için değişiyor. Standart Windows Fontları Arial CYR, Kurye Yeni CYR ve Times Yeni Roma. Kiril sembollerini temsil etmek ("E" harfleri olmadan "ve" e ")) Son 64 kodunu (192'den 256'dan) kullanın:" A "..." I ", 192..223 değerleri ile kodlanır. , "A" ... "I" - 224 ... 255. "E" ve "E" karakterleri sırasıyla 168 ve 184 kodları vardır.

ANSI standardına uygun olarak kodlama sembolü

Kodu

Sembol

Kod.

Sembol

Kod.

Sembol

Kodu

Sembol

Bölge

İlham

F.

-

/

DC 4.

F.

0 ... 31 kodlu semboller servis kodlarına aittir. Bu kodlar programın sembolik metninde kullanılıyorsa, boşluklar olarak kabul edilirler.

Char tipi uygulamaları, katıştırılmış fonksiyonların yanı sıra geçerli ilişkilerdir:

CHR (B) - char tipi fonksiyonu; İfadeyi bayt tipine sembole dönüştürür ve değerine geri döner;

YUKARI (CH) - CHAR TİPİ FONKSİYONU; CH küçük harf latin harfi ise, bir büyük harf döndürür, aksi takdirde sembolün kendisi Kiril için kaynak karakterini döndürür).

Gerçek tip türleri

Ordinal tiplerin aksine, değerleri her zaman bir dizi tamsayıya kıyasla ve bu nedenle, kesinlikle tam olarak tam olarak kesin olarak, gerçek tiplerin değerleri, yalnızca bağlı olarak bazı sonlu doğruluklarla keyfi bir sayıyı belirler. gerçek sayının iç formatı.

Gerçek tip türleri

Uzunluk, bayt

İsim vermek

Anlam rakamı sayısı

Değer aralığı

8

4

8

10

8

8

Gerçek

Tek

Çift.

Genişletilmiş

Comp

Para birimi.

15…16

7…8

15…16

19…20

19…20

19…20

5.0 * 10E-324 ... 1.7 * 10E308

1.5 * 10E-45 ... 3.4 * 10E38

5.0 * 10E324 ... 1.7 * 10E308

3.4 * 10-4951 ... 1.1 * 10E4932

2E63 ... + 2E63-1

+/-922 337 203 685477,5807

Delphi 1'in önceki sürümlerinde ... 3 tipi gerçek işgal etti 6 bayt ve 2, 9 * 10-39 ila 1.7 * 10 38 arasında bir dizi değer vardı. Sürüm 4 ve 5 Bu tür, çift tipe eşdeğerdir. Gerekirse (uyumluluk amaçları için), 6 kefalet realini kullanın, Derleyici Direktifi (SREALCOMPACITIVE AÇIK) belirtmeniz gerekir.

Önceki masadan görülebileceği gibi. Toplam sayısı Delphi. 4 ila 10 bitişik bayt alır ve PC belleğinde aşağıdaki yapıya sahiptir:

S.

E.

M.

İşte S bir işaret boşalmasıdır; E - Üstel Parça; İkili sipariş içerir; M - Mantissa numarası.

Mantissa M, genişletilmiş ondalık basamaklar için tek ve 19 ... 20 için 7 ... 8'in doğruluğunu sağlayan 23 (tek kişilik) (tek başına) ikili deşarjlara sahiptir. Ondalık nokta (virgül), Mantissa'nın solun (kıdemli) boşalmasından önce kastedilmektedir, ancak sayıya sahip eylemler altında, pozisyonun üstel parçada depolanan numaranın ikili sırasına göre sola veya sağa kaydırılır. Bu nedenle, gerçek sayılardaki eylemler kayan nokta aritmetik (virgül) olarak adlandırılır.

Aritmetik işlemcinin her zaman genişletilmiş formattaki sayıları işlediğini ve bu durumda diğer üç gerçek tipte sonuçların istenen boyutlara kadar basit bir şekilde kesilmesi ve çoğunlukla bellek kaydetmek için kullanılır.

Aşağıdaki tabloda sunulan yerleşik matematiksel işlevler, aşağıdaki sekmeyle sağlanan gerçek verilerle çalışmak için kullanılabilir. Bu tabloda, gerçek herhangi bir gerçek tip, tamsayı - herhangi bir tür anlamına gelir.

Standart Matematiksel İşlevler Delphi.

Temyiz

Parametre türü

Sonuç türü

Not

abs (x)

Gerçek, tamsayı

Gerçek argüman türü

Argüman modülü

N \u003d 3.141592653 ...

Arctan (x)

Arcthangence (radyanlardaki değer)

cos (x)

Aynı<<

Aynı<<

Kosinüs, radyanlarda açı

exp (x)

Katılımcı

frac (x)

Sayının kesirli kısmı

int (x)

Sayının tamsayı parçası

ln (x)

Doğal logaritma

Rastgele

Pseudo-rasgele sayı, eşit olarak 0 aralığında dağıtılmış ...

Random.fx)

Tamsayı

Tamsayı

Pseudo-rastgele tamsayı, homojen bir şekilde 0 ... (x-1) aralığında dağıtılmış

Rastgele.

Pseudo-rastgele sayıların jeneratörünün başlatılması

günah (x)

Gerçek

Gerçek

Sinüs, radyanlarda açı

sqr (x)

Aynı

Aynı

Kare argümanı

sqrt (x)

Kare kök

Not Rasgele sayıların sözde jeneratörü, belirli bir algoritmaya göre, temel, değişiklikler, boşalma denilen bir tamsayı alan bir fonksiyondur ve yeni bir sayı verir. Aynı zamanda, yeni sayı, aşağıdaki fonksiyonların kullanımında temel hale gelir; vb. (Prosedürün algoritması değişmezken: çalışmaları sırasında, sayıların psödo-rasgele olarak adlandırılır.) Herhangi bir programa otomatik olarak kullanılabilir olan sistem sistemi modülünde, taban numarası Randseek adında bir değişkende depolanır. ve her zaman bir başlangıç \u200b\u200bdeğerine sahiptir. Bu, rastgele farklı, programlara (veya bir programın birkaç koşulu) seri erişimiyle, bir ve aynı psödo-rastgele sayıların sırası her zaman düşeceğini ifade eder.

Gerçek sayıların temsili

Gerçek sayılar görüntü noktalarında ve / veya göstergesinde (E veya E), örneğin:

X \u003d -0.5;

Y \u003d 1.34;

Z \u003d -1 E -5;

W \u003d 7.5 E +15;

Veri Türü Dönüşüm İşlevleri

Yuvarlak (X. ) - Gerçek sayıyı en yakın bütüne yuvarlamak. Fonksiyon argümanı, gerçek tipin değeridir ve sonuç, uzunlama türünün en yakın tamsayı değerine yuvarlanır. Sonuç, uzunlama değerlerinin aralığına geçerse, programı yürütürken bir hata oluşacaktır.

Trunc (X. ) - Gerçek numaranın bütün kısmını almak. Sonuç Türü - Uzunlama. Sonuç, uzunlama değerlerinin aralığına geçerse, programı yürütürken bir hata oluşacaktır.

Tarih-Zaman Türü

Tarih zamanı tipi standart TDatetime tanımlayıcısı tarafından belirlenir ve eşzamanlı depolama ve tarih ve saat için tasarlanmıştır. İçsel gösterimde, 8 bayt ve benzeri para birimi, sabit bir kesirli parçalı gerçek bir sayıdır: Tarihin tamamında, tarihin kesirli zamanında saklanır. Tarih, 30 Aralık 1899'dan itibaren geçen gün sayısı olarak tanımlanmaktadır - 0 saatten günün bir parçası olarak, bu nedenle 36444,837 değeri 10.10.1999 ve saat 20:05 tarihine karşılık gelir. Bununla birlikte, gün sayısı negatif olabilir, ancak değerler daha küçüktür -693594 (Mesih'in doğuşundan 00.00.0000 tarihine karşılık gelir), Daylar Dönüştürme işlevleri tarafından dize türüne göz ardı edilir.

Aynı işlemler, gerçek sayılar ve tamsayı ve gerçek türlerin sabitleri ve gerçek tiplerinin sabitleri ve değişkenlerinin bu tür ifadelere katılabilir.

Aşağıdaki tabloda listelenen alt programlar, tarih ve saat ile çalışmak için kullanılır.

Tarih ve saat ile çalışmak için alt programlar

İşlevi. Tarih: tdatetime;

İşlevi. DataTostr (D: tdatetime): Dize;

İşlevi. DataTimetostr (D: tdatetime): Dize;

İşlevi. FormatDataTime (Format: Dize;

Değer (tdatetime): Dize;

İşlevi. Şimdi: tdatetime;

İşlevi. Zaman: tdatetime;

İşlevi. TimeToStrft (tdatetime): dize;

Geçerli tarihi döndürür

Tarihi karakter dizisindeki dönüştürür

Karakter dizisindeki tarihi ve saati dönüştürür

Bir tarihi ve saati, Format Parametre özelliklerine göre karakter dizisindeki değer parametresinden (Bkz. Madde 7.3'teki açıklamalara bakınız) dönüştürür.

Geçerli tarih ve saati döndürür

Geçerli saati döndürür

Satırın zamanını dönüştürür

Delphi dilinde yerleşik veri türleri, tamsayılar, geçerli, semboller, dizeler, işaretçiler, boolean türleridir.

Sıra tipleri. Sipariş (ordinal) tipleri, değerlerin sipariş edildiği kişiler denir ve her biri için, önceki ve sonraki değerleri belirleyebilirsiniz.

Yapısal tipler. Yapısal tipler setleri, dizileri, girişleri, dosyaları, sınıfları, arayüzleri içerir.

Veri türleri. Değişken tip türlerinde, bilgi tamsayılar olarak gösterilir, yani. Kesirli bir parçaya sahip olmayan sayılar.

Tablo 1 Ordinal Tiplerde Operasyonlar

Operasyon

Açıklama

Sıralı tip T'nin minimum değeri

Sıralı Tip T'nin maksimum değeri

Dizi tipinin ekspresyon değerinin sıra numarası. Bütün bir ifade için, bu sadece anlamıdır. Kalan sıra tipleri için, ifade sonucunun fiziksel gösterimi bir tamsayı olarak yorumlanır. Dönüş değeri her zaman tüm türlerden birine aittir

Önceki sipariş değeri. X-1'e eşdeğer tüm ifadeler için

Sıradaki değerde. X + 1'e eşdeğer tüm ifadeler için

Değişkenin değerini 1'e düşürür. V: \u003d pred (v) değerine eşdeğerdir.

Değişkenin değerini 1. ile 1'e kadar artırır. V: \u003d SARCE (V)

Tablo 2

Değer aralığı

2147483648 -- 2147483647

8 bit, çığlık

16 bit, çığlık

32 bit, alıcı

Bağımsız tipte eşdeğer olan tamsayı gibi bir tür de vardır. -2147483648 - 21474836478 arası aralığı. Pämyat'ta 4 bayt gerektirir. Şebekeler tamsayı ve kardinaldir, bu nedenle çoğu durumda bu türlerin kullanılması arzu edilir.

Dizi türleri için tanımlanan tüm işlemler tüm verilerin üzerinde gerçekleştirilir. Tüm tiplerde işlemler:

Tablo 3.

Geçerli veri türleri. Değişken geçerli tiplerde, tamsayı ve kesirli parçalardan oluşan sayıları içerir.

Tablo 4.

Maksimum performansın ana temini, halen çift tipe eşdeğer olan tip gerçektir.

Tablo 5 Geçerli tiplerin işlevleri

Geri dönüş değeri

Mutlak değer x.

Arcthangence H.

Cosine X (X, radyanlarda ve derecede değil) olarak ifade edilir.

X'ten Üstel İşlev

Kesirli bölüm x.

Bütün bölüm x. İsmiye rağmen, geçerli bir değer döndürür (yüzer noktalı virgül), yani. Sadece kesirli parçada sıfır ayarlar

X'den doğal logaritma

PI numarası (3.1416 ...)

En yakın K X tamsayıdır. Tüm türün değerini döndürür. Üst ve alt değerler eşitse "X'e en yakın x" koşulu çalışmaz (örneğin, fraksiyonel kısım tam olarak 0.5 ise). Bu durumlarda Delphi, çözümü işletim sistemine kaydırır. Tipik olarak, Intel işlemciler bu sorunu, en yakın tamsayıya doğru yuvarlanan IEEE tavsiyesine göre çözer. Bazen bu yaklaşım "bankacı yuvarlama" denir

Kare X, yani X * x.

X'ten kare kök

Bütün bölüm x. İnt geri dönen aksine

Sembolik veri türleri. Sembolik tipler bir karakteri saklamak için tasarlanmıştır.

Tablo 6.

Boolean veri türleri. Boolean veri türlerinin değişkenleri, örneğin gerçek (gerçek) ve false için mantıksal değerleri temsil eder.

Tablo 7 Boole Türlerinin Boyutları

2 bayt (sesli kelime)

4 bayt (uzun ses)

Bir dizi, ortak bir adı olan aynı tipte değişken kümesi olan bir veri yapısıdır. Diziler, tablolar ve listeler gibi doğada depolama üniforması için elverişli bir şekilde kullanılır.

Massiva'nın Duyurusu

Değişken reklamları kullanmadan önce herhangi bir program değişkeni gibi bir dizi ilan edilmelidir. Genel olarak, dizinin beyannamesinin talimatı aşağıdaki gibi hizalar:

Adı: [nizhny_index..pine_index] türün

nerede: Ad, dizinin adıdır;

dizi, açıklanan adın dizinin adı olduğunu belirten ayrılmış bir kelime delphidir;

nizhny_index ve UPTR_INDEX - dizi elemanları endeksindeki değişiklikler aralığını belirleyen ortalama sabitler ve dolaylı olarak, dizinin öğelerinin (boyut) sayısını;

tip - dizi öğeleri türü.

Delphi Grigoriev'e göre kitaplara ne yazmaz. B.

3.2.2. Delphi Türleri

Delphi'de dört gerçek tip vardır: tek, çift, uzatılmış ve gerçek. Genel formatları aynıdır (Şekil 3.1, A).

Bir işaret her zaman bir bittir. Olumlu sayılar ve negatif için bir birim için sıfırdır. Mantis ve katılımcıların boyutuna gelince, onlar arasında türler arasında bir ayrımdır.

Belirli numaralara geçmeden önce, gerçek türü daha ayrıntılı olarak düşünün, bunun için küçük bir gezi yaparak. Gerçek, başlangıçta orada bulunan standart tip pascal dilidir. Pascal oluşturulduğunda, işlemciler henüz gerçek sayılar için yerleşik desteklememişlerdir, bu nedenle tüm gerçek olan tüm işlemler tamsayılarla yapılan işlemlere indirgenir. Buna göre, bu işlemleri optimize etmek için gerçek tipteki alanların boyutu seçildi.

a) Gerçek sayının genel görünümü

b) Tek tip sayısının ikili gösterimi

İncir. 3.1. Hafızada gerçek bir numarayı saklamak

Intel 8086/88 Mikroişlemci ve geliştirilmiş seçenekleri - 80286 ve 80386 - Gerçek sayılar için donanım desteği yoktu. Ancak bu işlemcilere dayanan sistemler, sözde işlemciyi bağlama olasılığına sahipti. Bu mikroçuit, ana işlemci lastikleri aracılığıyla hafızayla çalıştı ve gerçek sayılar için donanım desteği sağladı. Orta el sistemlerinde, işlemcinin yuvası genellikle boştu, çünkü fiyatı düşürdüğü için (elbette, coprocessor'u sorun yoktu). Her merkezi işlemci için, onların çatalçaları, Sırasıyla, Intel 8087, 80287 ve 80387 etiketli, üretildi. Diğer firmaların ürettiği çatallar bile vardı. Intel'in kopçalarından daha hızlı çalıştılar, ancak daha sonra piyasada ortaya çıktı. Coprocessors tarafından desteklenen gerçek sayıların türü, gerçekle çakışmaz. IEEE standardı (Elektrik ve Elektronik Mühendisler Enstitüsü) tarafından belirlenir.

Sistemlerinde IEEE tipi desteği sağlamak için Borland, Turbo Pascal tiplerine tek, çift ve uzatılmıştır. Genişletilmiş Coprocessor tipi için ana, tek ve çift, çok basit bir kesme. Coprocessor komutlarının sistemi, bu türlerle çalışmanıza olanak sağlar: Tip veya çift sayısını eş-işlemcinin dahili kaydına yüklerken, ikincisi onları uzatmaya dönüştürür. Aksine, bu türlerin sayılarını kayıt defterinden hafızaya boşaltırken, kopyajlar onları istenen boyuta verir. Dahili işlemler her zaman uzatılmış veri türü ile yürütülür (ancak, bu kuralın, çeşitli tiplerin formatının ayrıntılı bir şekilde değerlendirilmesinden sonra daha sonra netleme yapacağımız bir istisnadır). Bekar ve çift hafızadan tasarruf etmenizi sağlar. Hiçbiri de gerçek tipte çakışmaz. Coprocessors'lu sistemlerde, yeni türler, gerçek olduğundan daha hızlı (2-3 kez) daha hızlı şekilde işlenir (bu, karşılık gelen dönüşümden sonra gerçek tipte işlemci tarafından da işlendiğinden, uzatılmış tipte işlenmeyi karşılaştırırsak; Coprocessor olmadan bir işlemciye ve makinede makinede, birleştirme işlemi olmadan, bireysel işlemlerde, yaklaşık 100 kat hızdaki farkı gerçekleştirdi). Bu türlere sahip programlar için, işlemcili olmayan sistemlerde yapılabilir, bir Coprocessor yazılımı emülatörünü kendilerine bağlamak mümkündür. Bu türlerin emülatör tarafından işlenmesi gerçek işlemden daha yavaştı.

486. Intel Serisi'nden başlayarak, işlemcinin ve işlemcinin aynı çipte entegrasyonu üzerinde bir kurs alır. Chips'deki evliliğin yüzdesi çok büyük, bu yüzden Intel kurnazlığa gider: Eğer cipsler sadece Coprocessor bölümünde evleniyorsa, coprocessor'u engelleyen jumpers ve çip bu kristalde yakılmakta ve mikrokirber 80486SX olarak satılmaktadır. Dahili işlemciye sahip olmayan işlemci (80486dx olarak adlandırılan tam sürümün aksine). Hasarın çatalcağının sahip olmadığı zaman ters durumlar da vardı, ancak işlemci çalışmazdı. Bu tür cips bir "Coprocessor 80487" haline geldi. Ancak bu egzotik alandan ve bilgilerimize göre, bu Coprocessor Rusya'ya ulaşmadı.

Tüm kendi seçeneklerinde pentium işlemcisi, yerleşik bir kayan nokta bilgisayar ünitesi (FPU - kayan nokta ünitesi) ve ayrı bir işlemcinin buna ihtiyaç duymadığını belirtti. Böylece, bu işlemcinin gelişi ile gerçek tip sadece geriye dönük uyumluluk için kalmıştır ve tek, çift ve uzatılmış tipler yayınlandı. Delphi 4 ile başlayarak, gerçek türü çift tipte eşanlamlı hale gelir ve eski 6 bayt tipi, Real48 adını alır.

Not

Bir derleyici yönergesi ($ gerçeklik açık / kapalı), açıldığında (varsayılan olarak devre dışı bırakılmış) gerçek, real48 ile eşanlamlı hale gelir, çift değil.

Çeşitli gerçek tipler için alanların boyutları tabloda belirtilmiştir. 3.1.

Tablo 3.1. Gerçek tiplerde alan boyutları

Bir tür Boyut tipi, bayt Mantissa boyutu, bit Katılımcı büyüklüğü, bit
Tek 4 23 8
Çift. 8 52 11
Genişletilmiş 10 64 15
Gerçek 6 40 7

Menzil ve doğruluk gibi gerçek tiplerin diğer parametreleri Delphi yardımında bulunabilir.

Kitaptan, # 2005 ve platform.net 2.0 ile programlama dili. Troelsen Andrew tarafından.

Değerlerle karakterize edilen türler, referans türleri ve atama operatörü şimdi aşağıdaki ana () yöntemini okuyup Şekil 2'de gösterilen çıktısını göz önünde bulundurur. 3.12.Tatic Void Main (String Args) (Console.Writeline ("***) Değer / Referans Türleri ile karakterize edilen türler ***); konsol.writeline (-\u003e P1 oluşturma"); mypoint

Delphi'deki kitap ipuçlarından. Sürüm 1.0.6. Yazar Ozers Valentin

Değerlerle karakterize edilen ve referans türleri içeren türler, değer ve referans türleri ile karakterize edilen türler arasındaki farkı hissederseniz, daha karmaşık bir örnek olarak görelim. Aşağıdaki referans türü (sınıf) olduğunu varsayalım,

İnternet Çözümleri Kitabından Dr. Bob'tan Yazar Svort Bob

Değerler ve referans türleri ile karakterize edilen türler: Son notlar Bu konunun tartışılmasını tamamlamak için bilgi tablosunu öğrenin. 3.8, değer ve referans türleri ile karakterize edilen türler arasındaki ana farkların kısa bir özetini sağlar. Tablo

Kitap Delphi'den. Püf noktaları ve etkileri Yazar Chirtik Alexander Anatolyevich

Delphi'deki Temel Algoritmalar ve Veri Yapılarından Yazar Baknell Julian M.

1.3.3. Delphi ve CGI Bu bölümde, web modüllerini veya diğer istemci / sunucu modüllerini kullanmadan basit bir Delphi CGI uygulamasını nasıl yazacağınızı söyleyeceğim. İlk CGI kısaltması, ortak ağ geçidi arayüzü anlamına gelir ve bu sadece bilgi aktarmak için sadece bir isimdir. müşteri sunucuya. Müşteri tarafında

Kitap dünyasından interbase. Interbase / Firebird / Yaffil'deki veritabanı uygulamalarının mimarisi, yönetimi ve geliştirilmesi Yazar Kovyzin Alexey Nikolaevich

2.1.1. Delphi ve HTML Ana takım geliştiricilerim Delphi'dir ve bu bölümde Delphi Veritabanı HTML uzmanı yazacağız. Delphi, neredeyse herhangi bir formatın veritabanına bağlanmanıza izin verir. BDE'ye, PARADOX ve DBAŞ'e, ODBC, örneğin, erişim ve SQL bağlantılarını büyük DBMS tipine kullanarak kullanmak

Yazarın Delphi Sanal Kütüphanesinden

9.3. Birçok modern programlama ortamı gibi Delphi'de OLE kullanarak Delphi, çeşitli SOM hizmetleri veya sunucularla çalışan uygulamaları otomatik olarak geliştirme yeteneğini destekler. Uygulamanın ilkelerinin daha derin bir anlayışı için,

PASCALABC.NET dilinin açıklaması Yazar Toplu kabuklu

Delphi'deki Dizilerin Türleri Delphi'de, dil tarafından desteklenen üç tür dizisi vardır. Birincisi, Array anahtar sözcüğü kullanılarak bildirilen standart bir dizidir. İkinci tip ilk olarak Delphi 4'te, uzun zaman önce Visual Basic'te mevcut olanın taklidi olarak tanıtıldı, - dinamik

Kitaptan ABC Pascal Programlama Dili Yazar Çiçekler Alexander Stanislavovich

Gerçek türlere veri türlerinin türü (ayrıca kayan nokta numaraları türleri de denir) şamandıra ve çift hassasiyet içerir. Okuyucuyu derhal şamandıra tipini kullanmaktan takip edin - doğruluğu çoğu fraksiyonel değerleri saklamak için yetersizdir. Özellikle ne.

Yazarın kitabından

Delphi 2.0 hakkında sorular Delphi'de Yenilikler 2.0 Delphi 1.0 ile karşılaştırıldığında? Şubat 1995'te piyasaya sürülen Delphi 1.0'ın versiyonu, optimizasyon derleyicisini, iki yönlü aletlerin görsel geliştirme mekanizmalarını ve ölçeklenebilir bir veritabanı işleme mimarisini birleştiren ilk Windows aracı haline geldi.

Yazarın kitabından

Delphi'de Yenilikler 2.0 Delphi 1.0 ile karşılaştırıldığında? Şubat 1995'te piyasaya sürülen Delphi 1.0'ın versiyonu, optimizasyon derleyicisini, iki yönlü aletlerin görsel geliştirme mekanizmalarını ve ölçeklenebilir bir veritabanı işleme mimarisini birleştiren ilk Windows aracı haline geldi. Bugün yüzlerce

Yazarın kitabından

Yazarın kitabından

Yazarın kitabından

Aşağıdaki gerçek tipler, boyutlarını, anlamlı rakamların sayısını ve geçerli değerlerin aralığını içeren gerçek tiplerin bir tablosudur: tip büyüklüğü, bayt anlam sayısı Değerlerin aralığı Real 8 15-16 -1.8? 10308 .. 1.8 10308 Çift 8 15-16 -1.8 10308 ..

Delphi'deki programın metni harfler, sayılar ve özel karakterler kullanılarak oluşturulur. Harfler Latin alfabesinin büyük ve küçük harfleridir. \u003d,. :; "() () () @ # $ & ^, esas olarak aritmetik işlemlerin, ayırıcıların, sınırlayıcıların vb. Belirtileri gibi kullanılır. Özel karakterlerden, bileşik semboller oluşturulur: \u003d. (.) (* *) //: \u003d onlar Özellikle, "eşit değil", "daha büyük veya eşit" gibi operasyonları belirtmek, değer aralıklarını belirleme, yorum programı, vb. Alfabe

Aynı sayı, örneğin: 15 (bütün) 15. 0 (sabit bir nokta ile gerçek) 1. 5 E 01 (önemli kayan nokta) $ f (onaltılık) Delphi dilinde mümkündür. Tüm yöntemler girişlerini uygulamak için, ancak çoğu zaman tüm ve gerçek sayıları kullanır. Tamsayılar sadece sayı ve işaret + veya -. İşareti ihmal edilirse ve sayı 0'a eşit değilse, o zaman bir pozitif olarak kabul edilir, örneğin: 0 (0 bir tamsayı olarak yorumlanır) 17 (pozitif tamsayı) -39 (negatif tamsayı) sayısal veri türleri

Gerçek sayılar, bir nokta ile ayrılmış bir bütün ve kesirli parçası içerir: 0. 0 (0 gerçek sayı olarak yorumlanır) 133. 5 (pozitif gerçek sayı) -0. 7 (Negatif Gerçek Numara) Gerçek sayılar iki şekilde gösterilebilir: sabit ve kayan bir nokta ile. Sabit bir noktalı form, normal sayı kaydı ile çakışıyor: 27800 (sayının sonundaki nokta atlandı) 3. 14 Kayan nokta (üstel form) çok büyük veya çok küçük sayılarla çalışırken kullanılır. Bu formda, E bakan sayısı, E: 7. 13 E + 14 (7. 13 x 1014) 1.7 E-5 (1. 7 x 10 -5) 3. 14 ile gösterilen dereceye kadar çarpılır. E 00 (3,14 x 100 \u003d 3. 14) E harfine bakan sayı bir Mantissa denir ve E harfinden sonra sayı sıradan. Sayısal veri türleri

Yorumların yardımıyla, programınızın çalışmasının mantığını açıklayabilirsiniz. Yorum derleyici tarafından geçilir ve programın herhangi bir yerinde olabilir. Yorum şudur: (kıvırcık parantez içindeki herhangi bir metin) (* yıldız işaretli parantez içindeki herhangi bir metin *) // semboller (veya (veya (* derhal $ dolara giderse) hattın sonuna kadar çift eğimli bir çizgiden herhangi bir metni Parantez içindeki metin yorum ve bir derleyici yönergesi olarak kabul edilir. Bu tür direktiflerin örnekleri: ($ optimizasyon açık) ($ Uyarılar) ($ rangechecks off) Yorumlar

Yürütme sürecindeki program her zaman Kakelibo verilerini işler. Veriler tamsayı ve fraksiyonel sayılar, semboller, dizeler, diziler, setler, vb. Olabilir. Böylece, bilgisayar sadece verilerin bir sıfır ve birimler dizisi olduğu bir makinedir, kesinlikle "bilmesi" gerekir, bunları nasıl yorumlayacağız. Bu nedenle, Delphi dilindeki tüm veriler türlere ayrılmıştır. Veri türü, hangi veri değerlerini ve hangi işlemlerin onlarıyla gerçekleştirilebileceğini gösterir. Her veri türü, veriyi yerleştirmek için gereken belirli bir hafızaya karşılık gelir. Örneğin, Delphi dilinde bir bayt veri türü vardır. Bu türün verileri, tamsayı 1'den 255 arasında değişen değerler, ekleme, çıkarma, çarpma, bölme ve 1 bayt bellek işgal etme işlemlerine katılabilir. Veri tipleri

Delphi'deki tüm veri türleri aşağıdaki gibi sınıflandırılabilir: basit veri türleri. Sırayla, sıra ve gerçek veri türlerine ayrılırlar. Sıra tipleri, tamsayı, sembolik, boolean, listelenmiş vb. Tipleri; Geçici veri türü. Tarih ve Saat Değerlerini temsil etmeye hizmet eder; Dize veri türleri. Metin gibi karakterlerden dizileri temsil etmek için hizmet; Kompozit veri türleri. Diğer tüm türlere dayanarak form. Bunlar arasında diziler, setleri, kayıtlar, dosyalar, sınıflar ve sınıflara referanslar; İşlemsel veri türleri. Programın verileri olarak prosedürlerin ve işlevlerin manipülasyonuna izin verin; Veri türlerini indeksleme. Bu türler, diğer verilerin adreslerini (listeler, ağaçlar vb.); Kalıcı olmayan değerlerle veri türü. Tipi önceden bilinmeyen değerleri temsil etmeye hizmet eder; Bununla birlikte, çeşitlendirilmiş değerlerin bir listesiyle çalışmak kolaydır; Veri türlerinin sınıflandırılması

Değişkenleri, sabitleri ve türleri tanımlama şeklini düşünün. Türlerin Açıklaması: Tip \u003d; Açıklama Sabit: Const: \u003d; Değişkenlerin açıklaması: var :; Veri Açıklama Formu

Bir sabit yazma örneği: Const Delphi. Dil \u003d "Object Pascal"; Kylix. Dil \u003d Delphi. Dil; YARD \u003d 914. 4; Ayak \u003d 304. 8; Saniyeler. İçinde. Dakika \u003d 60; Saniyeler. İçinde. Saat \u003d saniye. İçinde. Dakika * 60; // saniye sabitini ayarlayın. İçinde. Gün \u003d saniye. İçinde. Saat * 24; // Bir ekspresyon olarak bir sabit ilan edilirken, türünü belirleyebilirsiniz: const yüzde: çift \u003d 0. 15; Dosya. İsim: String \u003d "Yardım. Txt"; Bu tür sabitler yazılı olarak adlandırılır; Asıl amaçları, kompozit veri türlerinin sabit değerlerini beyan etmektir. Sabit açıklama

Standart veri türlerine ek olarak, Delphi dili programcı tarafından tanımlanan türleri desteklemektedir. Yeni veri türü, ayrılmış tip türü kullanılarak belirlenir, ardından tip tanımlayıcısını, bir eşitlik ve açıklama belirtisi ile belirlenir. Örneğin, yeni bir tür tanımlayabilirsiniz: Tyl Tunicode \u003d Geniş. Char; Tfloat \u003d çift; Tdirection \u003d (Kuzey, Güney, Doğu, Batı); Örnekte yeni türlerin tanımlayıcılarının, büyük harf T (Kelime türünün ilk harfi) ile başladığını fark etmek kolaydır. Programcı türleri üzerinde böyle bir anlaşma, Delphi ortamının geliştiricileri tarafından kabul edilir, ancak katı değildir. Bununla birlikte, programın kaynak kodunun daha kolay algısına katkıda bulunduğundan, yapmasını tavsiye ederiz. Türlerin Açıklaması

Bütün aralık tipi kısalma Smallint Integer Longint Cardinal Int 64 Bayt Word LongWord -128. . 127 işareti 8 -bit -32768. . 32767 işareti 16 -bit -2147483648. . 2147483647 İşareti. 32 -bit 0 .. 4294967295 İşaret 64 -bit -263. . 263 -1 işareti 64 -bit 0 .. 255 Hiçbir İşareti 8 -bit 0 .. 65535 Hiçbir İşareti 16 -bit 0 .. 4294967295 Hiçbir işaret 32 \u200b\u200b-bit format basit veri türleri

Tip Değer Aralığı. Gerçek 48 tek kişilik genişletilmiş 5. 0 x 10 -324. . 1. 7 x 10308 15 -16 2. 9 x 10 -39. . 1. 7 x 1038 11 -12 1. 5 x 10 -45. . 3. 4 x 1038 7 -8 5. 0 x 10 -324. . 1. 7 x 10308 15 -16 3. 6 x 10 -4951. . 1. 1 x 104932 19 -20 Digit Comp - 922337203685475808. 9223372036854775807 19-20 Para Birimi - 922337203685477. 5808. 922337203685477. 5807 19- 20 Gerçek Tip Byte 8 6 4 8 10 8 8

Sembolik tipler, değerini, harf, basamak, noktalama işaretleri ve diğer karakterler olan verileri tanımlamak için kullanılır. İki temel sembol veri türü vardır: ANSI. Char ve geniş. Char. İki farklı sembol kodlama sistemine karşılık gelirler. ANSI TİPİ VERİLERİ. Char, bir bellek bayt'ı işgal eder ve ANSI genişletilmiş kod tablosunun 256 olası karakterinden birini kodlarken, geniş veri. Char iki hafıza baytı işgal eder ve 65536 Unicode kod tablo sembolünden birini kodlar. Unicode kod tablosu, bir çift bayt sembolü kodlama standardıdır. Unicode tablonun ilk 256 sembolü, ANSI veri türü olan ANSI tablosuna karşılık gelir. Char geniş bir alt kümesi olarak görülebilir. Char sembol tipi

Temel veri türleri: veri tipi bellek kapasitesi (bayt) ANSI. Char 1 geniş. CHAR 2 Genel Veri Türü: Veri Türü Bellek (BYTES) CHAR 1 (ancak Genişe Eşdeğer Olabilir) Mantıksal Veri Türü Var Good_File: Boolean; Boolean veri türleri bayt. Bool, Word. Bool ve uzun. Bool, özellikle C ve C ++ dilleriyle özellikle diğer dillerle uyumluluk için Delphi diline sokuldu. Tüm Boolean veri türleri birbirleriyle uyumludur. Sembolik ve mantıksal veri türü

Misal. Sabit ve değişken sembol tipinin açıklaması. Const ch_p \u003d 'a'; // Sembolik Sabitler Ch_l: Char \u003d 'F'; Ch_K: Geniş. Char \u003d '5'; Var ch_l: char; // değişkenlerin program değerlerinde sembolik değişken ve karakter türlerinin sabitleri, kesme işlemlerinde (tırnaklarla karıştırılmamalıdır!), Örneğin: Sembol: \u003d "a"; // Symbol, sembolik veri türlerinin bir örneği A harfi atandı

Satırlar dinamik bir karakter dizisidir. String - Uzunluk 256 karakterden fazla değil. Geniş. Dize - 256'dan fazla karakter uzunluğu. Bilgi, tek tırnak altına kapanırsa bir dize olarak kabul edilir: 'Mary BT ekmeği' - "Mary IT ekmeği 'dizesi bir dize örneği değil. Bir dize tipinin sabitini ve değişkenini belirleyin. Const S_Weether \u003d 'soğuk ...'; Var s 1: c_wether; S 2: Dize; Dize veri türü

Listelenen tür. Listelenen veri türü, bu tür bir değişken alabilen değerlerin bir listesidir. Her değer, bu değeri belirtmek için programda kullanılan tanımlayıcıya atanır. Misal. TColors yazın \u003d (kırmızı, beyaz, mavi); Tmonth \u003d (JNU, Şubat, Mar, May, Jun, Jul, Agu, Eylül, Ekim, Kas, Aralık; Tdirection \u003d (Kuzey, Güney, Doğu, Batı); var ay: tmonth; Yön: tdirection; Başlangıç \u200b\u200bYönü: \u003d Kuzey; son. Numaralandırılmış veri türü

Aslında, listelenen türün değerlerinin tanımlayıcıları tamsayı sabittir. Varsayılan olarak, birinci sabit 0, ikincisi ise 1, vb. Tip TSize tanımlayıcısının değerini açıkça atamak mümkündür. Birim \u003d (BYTE \u003d 1, KILOBYTE \u003d 1024 * BYTE, MEGABYTE \u003d KILOBYTE * 1024, GIGABYTE \u003d MEGABYTE * 1024); Listelenen türün maksimum gücü 65536 değerdir, bu nedenle listelenen tipte tüm kelimenin bazı alt kümesini belirtir ve tamsayı sabitleri grubunun, 0, 1 değerleri ile kompakt bir duyuru olarak kabul edilebilir, vb.

Aralık veri türleri Aralık veri türü, bu tür değişkenler için değer aralığını sınırlayan iki sabit olarak ayarlanır. Her iki sabit, standart dizi türlerinden birine ait olmalıdır (ancak gerçek ve string değil). Örnek: Type tdigit \u003d 0 .. dokuz; Digit \u003d "0". . "dokuz"; Kaz 2 \u003d 48 .. 57; Var digit: tdigit; Ay: 1 .. 12; Basamağa başla: \u003d 5; Basamak: \u003d 10; // Hata! Uç aralığının sınırlarından çıkın; Aralık veya tip aralığı.

Bu tür bir tür ve ortak (kelime türü olmadan) oluşturmanın bu yolu arasındaki fark, dizileri, kayıtları ve sınıfları incelirken tezahür eder. Öne doğru çıplak ve bir örnek verin: TTYPE 1 \u003d Tamsayı dizisi; TTYPE 2 \u003d TTYPE 1; Var A: TTYPE 1; B: TTYPE 2; B: \u003d a; // Hata! son. Örneğin, A ve B değişkenleri, TTYPE Tipi 2'nin açıklamasındaki kelime türü nedeniyle birbirleriyle uyumlu değildir. A ve B değişkenleri basit veri türlerine aitse, ödev operatörü çalışacaktır. Özel Veri Türleri

Bir dizi, aynı tipte sabit sayıda elemantan oluşan bir kompozit veri türüdür. Diziyi tanımlamak için, cümle dizisi tasarlanmıştır. Kare parantez içindeki kelime dizisinden sonra, dizinin sınırları yazılır ve dizinin elemanlarının sözcüğünden sonra: TSTATES yazın \u003d Dize dizisi; Tcoordinates \u003d tamsayı dizisi; Const koordinatları: tcoordinatlar \u003d (10, 20, 5); (3 tam sayı) var devletleri: TSTATES; (50 dizeler) Semboller: CHAR dizisi; (81 karakter - tip tanımsız) Ayrı bir dizi öğesine erişmek için, indeksini köşeli parantez içinde belirtmeniz gerekir, örneğin semboller: \u003d 'ё'; Lütfen dizinin elemanlarının başlatılmasının virgül içindeki parantez içinde gerçekleştiğini lütfen unutmayın. Dizi

Yukarıda ilan edilen diziler tek boyutlu, çünkü sadece bir endeks var. Bir boyutlu diziler genellikle doğrusal bir element dizisini temsil etmek için kullanılır. Eğer diziyi tarif ederken, iki dizin belirtilirse, diz endeksleri N boyutlu ise, dizinin iki boyutlu olarak adlandırılır. İki boyutlu diziler, tabloyu ve N boyutunu sunmak için kullanılır - boşlukları temsil eder. İşte 5 sütun ve 20 satırdan oluşan bir tablo reklamının bir örneğidir: VAR tablosu: çift dizinin dizisi; Aynısı daha kompakt bir formda kaydedilebilir: Var tablosu: çift dizisi; Çok boyutlu dizinin ayrı elemanına erişmek için, her bir dizinin değerini, örneğin, tablo veya daha kompakt girişte çok boyutlu masa dizilerinde belirtmeniz gerekir.

Misal. Con değişkeninde bayt tipinin iki boyutlu dinamik dizisinin açıklaması. Var oğlu: bayt dizisi; Misal. Çok boyutlu diziler. Var mbon: bayt dizisi; // dört boyutlu tip tmy_mas \u003d bayt dizisi; // Tip - İki Boyutlu Array Var MBON 1: TMY_MAS dizisi; // dört boyutlu (iki boyutlu iki boyutlu dizinin iki boyutlu dizisi) C: Real Dizi; // üç boyutlu dinamik MBON dizisi - MBON MBON 1 dizi öğesinin elemanı - MBON 1 C - // unsuru dinamik dizilerinin dinamik dizilerinin ilk elemanı

Set, bir bütün olarak bazı elemanların bir kümesini temsil eden bir kompozit veri türüdür. Set değerleri aralığı, elemanlarından oluşan her türlü alt grubun kümesidir. Setin tüm elemanları tek baytlık bir sipariş tipine ait olmalıdır - temel tür. Çoklu türü tanımlamak için, cümle seti kullanılır, daha sonra temel ayar türü kaydedilir: Tip Tletters \u003d "A" seti. . "Z"; Var harfler: çukurlar; Semboller: Char seti; İfadelerde, setin elemanlarının değerleri, köşeli parantezlerde gösterilir:, ["a", "B", "C"]. Setin hiçbir öğesi yoksa, boş olarak adlandırılır:. Örnek: Const Ünlüler: Tletters \u003d ["A", "E", "I", "O", "U"]; Harflerle başlayın: \u003d ["A", "B", "C"]; Semboller: \u003d; (boş set) son. Setin unsurlarının sayısı güç denir. Delphi dilindeki setin gücü 256'yı geçemez. Setleri

Src \u003d "https: //syt/presentation/20070619_133096976/image-25.jpg" alt \u003d "(! Lang: Setlerle çalışırken, ilişkilerin kullanılması (\u003d ,,,\u003e \u003d, setlerle çalışırken izin verilir) ilişki işlemlerini (\u003d,\u003e \u003d,) kullanın. İki set aynı maddelerden oluşurlarsa eşit olarak kabul edilir. Karşılaştırılan elemanların sırası herhangi bir değeri yoktur. İki set A ve B farklılıklar halinde eşit değilse Güçte veya değere göre, bir eleman True \u003d True \u003d True \u003d True Accessories (\u003e \u003d, \u003d b true ise, B, B, SET B'nin tüm elemanları bir SET A. İfade'de bulunursa doğrudur.

Çalışma. Belirtilen kümeye ait olan elemanı kontrol etmek için kullanılır. Genellikle şartlı operatörlerde uygulanır. 5 in \u003d true 5 in \u003d Yanlış İşlemi, düzinelerce diğer işlemi değiştirirken, kompleks koşulların karmaşık testlerini etkili ve net bir şekilde gerçekleştirmenizi sağlar. Örneğin, operatör (x \u003d 1) veya (x \u003d 2) veya (x \u003d 3) veya (x \u003d 5) veya (x \u003d 7) ise, daha kısa bir şekilde değiştirilebilir: eğer x ise Bazen inkarla kayıt yapmaya çalışıyor: x S'de değil. Bu giriş hatalı, çünkü iki işlem bir arka arkaya takip ediyor. Doğru giriş: değil (S). İşletme.

Birleştiren setleri (+). İki setin birleşimi, her iki setin elemanlarını içeren üçüncü ayardır. + \u003d + \u003d Setlerin kesişimi (*). İki setin kesişimi, her iki sette eşzamanlı olarak dahil olan elemanları içeren üçüncü ayardır. * \u003d * \u003d Farkları ayarlayın (-). İki setin farkı, ikinci sette bulunmayan, ilk setin elemanlarını içeren üçüncü ayardır. - \u003d - \u003d Delphi dilinde, iki standart prosedür arasında setlerle çalışmak üzere tasarlanmış ve dışlanır. Prosedür içerir (S, I) SET ELEMENT I.'nde içerir. Hariç Prosedür (S, I), SET E öğesinin I dışında hariç tutulur. Operasyonu - / + tek bir elemanla çalıştıkları tek bir farkla çoğaltırlar ve daha verimli hale getirin. Dernek, kavşak, fark