Az adattípus koncepció, a legegyszerűbb adattípusok, standard adattípusok, szerves típusok

A szerkezetek alapfogalmai

5. Burkov V.N. Az aktív rendszerek matematikai elméletének alapjai. - M .: Science, 1977. - 254.

6. Aurelio Peccei. Az emberi tulajdonságok. - M: Progress, 1985. - 311.

Az adatok fajtái a rendszer alacsonyabb szintjétől kezdve eltérőek. Minden programnyelvben az adatok típusai

Ezt azzal magyarázza, hogy ezeknek a számoknak a számaihoz különböző memóriaméreteket osztanak ki, különböző mikroprocesszoros regisztereket használnak, és ezekkel a műveletekkel különböző parancsokat és különböző mikroprocesszoros magokat használnak.

Az adattípus-koncepció magas szintű programozási nyelveken jelent meg, mivel tükrözi a tényt, hogy a feldolgozandó adatoknak lehetnek:

· Különböző elfogadható értékek,

· A számítógép memóriájában különböző módon tárolható,

· Különböző memóriaméreteket igényel

· Különböző processzorparancsokkal dolgozik fel.

Vannak nyelvek típus nélkül? Elméletileg nem léteznek olyan nyelvek, amelyekben nincsenek adattípusok.

Ez abból a tényből következik, hogy minden nyelv egy Turing gépen vagy egy lambda kalkuluson alapul.

A gyakorlatban ez nem lehetséges. A programozási nyelveket az adattípusok meghatározásának módja szerint osztályozhatja:

1. Polimorf adattípusú nyelvek. Nem kötik össze a változókat, a konstansokat, a formális paramétereket, a függvények visszatérési értékeit bizonyos típusokkal, egyetlen polimorf adat típusát.

Az ilyen nyelvek tiszta formájában nem fordul elő, de hasonló példák - MS Visual Basic - típusváltozat, Prologue. Ezeken a nyelveken a változó tetszőleges értéket vehet fel, bármilyen típusú értékeket átadhat a függvény paramétereinek, és a függvény bármilyen típusú értéket visszaadhat.

A változók és paraméterek értékeinek összehasonlítása a rájuk alkalmazott műveletekkel közvetlenül a műveletek során történik.

Például. az a + b kifejezés jelenti

· Számok hozzáadása, ha a és b számértékeket tartalmaz.

· Csatlakoztasson sorokat egyhez, ha a és b karakterláncokat tartalmaz.

· Érvénytelen (hibás) művelet, ha az a és b típusú értékek összeférhetetlenek.

Ezt a rendelést dinamikus gépelésnek hívják. A dinamikus gépelést támogató nyelveket néha nem típusnak nevezik. azonban mégis vannak adatok típusai.

2. Nyelvek a típusok implicit meghatározásával. A BASIC egyfajta típus nélküli nyelv példája, de ez az erősen beírt nyelv különbözik:

· String típusok (hozzáadva $)

· Numerikus típusok (nincs hozzáadva semmi).

3. Felhasználó által definiált típusú nyelvek. Nyelvek ismertek, melyekben az adattípusok meghatározása automatikusan történik, és a felhasználó nem határozza meg.

Minden változóhoz, paraméterhez, függvényhez egy bizonyos adattípus tartozik.

Ebben az esetben minden kifejezésnél a végrehajtás lehetősége és a kapott érték típusa meghatározható a program végrehajtása nélkül. Ezt a megközelítést statikus gépelésnek nevezzük.

A különböző típusú változók, kifejezések és paraméterek kezelésére vonatkozó szabályok nagyon szigorúak (C ++) és nagyon liberálisak (C).

Például. a klasszikus C nyelvben szinte az összes adat típusa kompatibilis - ezek együtt használhatók bármely kifejezésben, egy változó egy változójának értékét egy másik változóhoz hozzárendeljük szinte semmilyen korlátozással.

A fordító olyan kódot generál, amely megadja a típusátalakítást, és az ilyen konverzió logikai helyessége a programozó lelkiismeretén marad.

Hasonló nyelveket neveznek gyenge gépelésű nyelveknek. Az ellenkezője olyan nyelvek, amelyek erős gépeléssel rendelkeznek. Ada, ahol minden művelethez szigorúan meghatározott típusú operandusok szükségesek. Nem támogatott automatikus típusú konverziók.

A gyakorlatban a programozási nyelvek többféle típusú definíciót támogatnak egyidejűleg

Gyakorlati alkalmazás. A programozási nyelvek típusai nem feltétlenül felelnek meg hasonló matematikai típusoknak.

Például a legtöbb programozási nyelv egész számának típusa nem egyezik meg a matematikában használt értékkel. mert A matematikában ez a típus nem korlátozódik sem az alábbiakra, sem az alábbiakra, és a programozási nyelvekben ezek a korlátok jelen vannak.

Nyelveken és rendszereken sok olyan egész szám van, amelyek különböznek a használható memória mennyiségében.

Ha egy osztályt adattípusként kezelünk, akkor az osztálydefiníció valójában egy típusú predikátum definíciója. Lehetőség van a predikátum tesztelésére mind a fordítási szakaszban (típusellenőrzés), mind a végrehajtási fázisban (polimorfizmus, amely szorosan kapcsolódik a polimorf típusokhoz). Alapvető típusok esetében a predikátumokat eredetileg a nyelv kezdeményezői adják.

A programozási nyelvekben a változókat bizonyos jellemzők szerint osztályozzuk és megkülönböztetjük:

Egyedi értékek, értékkészletek vagy készletcsoportok ábrázolása.

Bármilyen állandó, változó, kifejezés vagy függvény valamilyen típusú.

A típus koncepció alapelvei a következők:

1. Bármely adattípus olyan értékkészletet határoz meg, amelyhez egy adott állandó tartozik, amelyet egy változó vagy kifejezés lehet, és amelyet egy függvény vagy művelet hozhat létre

2. A konstans, változó vagy kifejezés által jelölt változók típusát típusától vagy leírásától lehet levezetni. Ehhez nincs szükség számításokra

3. Minden művelethez vagy függvényhez argumentumok szükségesek annak meghatározásához, és egy adott típusú eredményt ad. Ha a művelet többféle típusú argumentumot szolgáltat, például "+" -t használ mind valós számok hozzáadásához, mind pedig egész számok hozzáadásához, akkor az eredményt bizonyos szabályok szabályozzák.

4. A legfontosabb alapműveletek - összehasonlítás és kiosztás. vagyis az egyenlőség (és a rendezett esetek rendje) viszonyának ellenőrzése és az egyenlőség megteremtése.

Minden program fő célja az adatfeldolgozás. Különböző típusú adatok tárolása és feldolgozása különböző módon történik. Bármely algoritmikus nyelven, minden kifejezésnek vagy függvénynek az állandó, változó eredményének értékének bizonyos típusúnak kell lennie.

Az adattípus meghatározza:

· Az adatok belső ábrázolása a számítógép memóriájában;

· Olyan értékkészlet, amely ilyen típusú értékeket vehet fel;

• az ilyen típusú mennyiségekre alkalmazható műveletek és funkciók.

A kötelező típusú leírás lehetővé teszi a fordító számára, hogy ellenőrizze a különböző programkonstrukciók érvényességét. A nagyság nagyságától függően a fordító által összeállított gépi utasításoktól függ.

A C ++ nyelv minden típusát fel lehet osztani:

· Egyszerű (skaláris), lehet szabványos és specifikus programozó.

A C ++-ban hat normál egyszerű adattípus definiálható az egész számok, valós, szimbolikus és logikai értékek megjelenítéséhez. Ezen típusok, valamint tömbök és mutatók alapján (a mutató nem független típus, mindig hozzá van rendelve egy másik típushoz), megadhatja a saját egyszerű vagy strukturált típusainak leírását.

A strukturált típusok a következők:

Az egyszerű típusok a következőkre oszthatók:

· Lebegőpontos típusok.

A következő kulcsszavak a szabványtípusok leírására vannak megadva:

int (egész szám); Az int típus nincs meghatározva az ANSI szabványban. A végrehajtástól függ. 16 bites processzor esetén az ilyen típusú értékek 2 bájt, 32 bites processzorok esetén 4 bájt.

char (karakter); Karaktertípus (karakter). A karaktertípus értéke a bájtok száma, amelyek elegendőek ahhoz, hogy bármilyen karaktert befogadjon a számítógép karakterkészletéből. Általában ez 1 bájt.

A char típus, mint más egész szám, aláírható vagy aláírhatatlan.

Az aláírt értékek a -128 és 127 közötti értékeket tárolhatják. Az alá nem írt minősítés használata esetén az értékek 0 és 255 közötti tartományba eshetnek. A char értékeket olyan értékek tárolására is használják, amelyek az adott tartomány határait nem meghaladó értékeket tartalmaznak.

wchar_t double-y-charm-underscore (kiterjesztett karakter); A wchar_t típus úgy van kialakítva, hogy egy karakterkészletet használjon, a kódoláshoz, amely nem elég 1 bájt, például Unicode. Az ilyen típusú méret a végrehajtástól függ; mint általában, a típus rövid.

bool (logikai); Logikai típus (bool). A logikai értékek csak valós és hamis értékeket vehetnek fel. A false belső ábrázolása 0 (nulla). Minden más értéket igaznak értelmezünk. Amikor egész számra konvertálódik, az true értéke 1.

úszás (valós); a valós értékek tárolására szolgáló adatok típusa: A valós szám belső ábrázolása egy mantisszából és egy megbízásból áll. A mantissza hossza határozza meg a szám pontosságát, és a megbízás hossza a tartomány.

A lebegőpontos konstansok alapértelmezés szerint kettős típusúak. Ön határozhatóan megadhatja az állandó F, f (float) és L, l (hosszú) utótagokat. Például az állandó 2E + 6L típus hosszúdouble típusú lesz.

Táblázat - Az IBM PC-hez tartozó egyszerű adattípusok értéktartományai

dupla (valódi dupla pontossággal). a valós érték tárolására szolgáló adatok típusa: SM. úszó

Négy típus specifikáló határozza meg a standard típusok belső reprezentációját és értéktartományát:

rövid (rövid); A rövid neve a típusnév előtt jelzi a fordítónak, hogy a szám szükséges 2 bájt kiosztásához.

hosszú (long); A hosszú specifikátor azt jelenti, hogy az egész érték 4 bájtot foglal el.

aláírva (jelzéssel); Az aláírt specifikátor használata esetén a szám legfontosabb bitjét aláírtnak (0 pozitív szám, 1 negatív szám).

aláírva (aláírva). A programban tapasztalt konstansok típustól függően vannak hozzárendelve. A programozó kifejezetten megadhatja a szükséges típust az L, l (hosszú) és U, u (alá nem írt) utótagokkal. Például az állandó 32L típus hosszú és 4 byte-ot vesz igénybe.

A shortint, a longint, a signedint és aignedint típusokat rövidre, rövidre, aláírva és aláírásra rövidítheti.

Kapcsolódó cikkek