Összetett adattípusok, műveletek rájuk

OD (objektum adatok) - változók, állandók - egy absztrakt hely, ahol adat tárolható.

1) Statikus - idején az adás, a szerelvény (összekötő) - szempontjából PL.

2) Dinamikus - működés közben a program - közötti ML és annak értéke: V = 30;

3) kvázi-statikus (állandó: const C = 20;)

Most fontos, PL - statikus kötődést.

Java Scrypt, php ... - dinamikus kötés. (Főleg ezek a nyelvek értelmezik).

Ada 83. Bármely ML van egy típusa.

A hagyományos PL - bármely OD az egyetlen típusú.

OOYAP - bármely OD egy statikus jellegű. (Base d;)

Azonban néhány OD lehet dinamikus típusát.

C ++. mutatók és referenciák (Base * p;).

Meghatározó előfordulása kivételek - ez egy csapda:

Dinamikusan előfordul (akár statikus PL - C ++)

A statikus ellenőrzést - ellenőrzése összeállításakor a programot. Ellenőrzi az adatokat nem változnak a különböző függvényhívásokkal (startup program)

A: array [1..100] az egész;

a [10] = 10; statikai próba

Kvázi-statikus vizsgálat - ellenőrzés futásidőben. Ezek az úgynevezett kvázi-statikus, mert a ellenőrizhető adatok eltérhetnek a különböző hívásokat

funkció (startup program). Ezért ezek a vizsgálatok, azt a teljesítményt.

A fordító érzékeli veszélyes hely a programban és a betét ezen a helyen a kvázi-statikus kód kerül végrehajtásra a program során.

egy: ​​array [1..100] az egész;

egy [n] = 10; n nem ismert fordítási időben. Ha a nyelvi támogatás

kvázi-statikus vizsgálat, nem lesz behelyezhető a kimeneti szabályozás a tömb.

A számítógépes nyelv nem kvázi-statikus teszteket. Ezért van, és Xi.

Melyik osztály memóriát lehet elhelyezni az adatokat nyelven

programozás? Osztályokat memória kapott helyet osztályú objektumok

C #, osztályok tárgyak kerülnek csak a kupac.

2. Az alapvető adattípusok a programozási nyelvek: egyszerű,

összetett adattípusok, műveletek rájuk

Aritmetikai adattípusok: egész, úszó, fix.

prezentáció Rögzítés: Java, C #.

Tartomány: minden más

Problémák a számoknak és megoldások a PL.

Vannak implicit: C ++ és C.

Hoz csak látszólagos: Modula-2, kétféle INTEGER és a Cardinal. És hogy az egyik a másik hagytuk csak látszólagos (volt egy külön kezelő ehhez a feladathoz)

I: integer; J: CARDINAL; I: = pozitív egész szám (J);

Az Oberon csak egy előjel nélküli byte (0..255)

Így a C # úgy döntöttünk, hogy csak szélesedő konverzió (mint azok biztonságos). Inverz transzformáció csak akkor engedélyezett, egyértelműen.

Pokol. Bemutatták általánosított numerikus adattípusok. Különböző típusú objektumok nem egyeztethetők se semmi műveletek sorozata, de kompatibilis tárgyak altípusok. Azaz a különböző altípusok kompatibilisek egymással és az őse.

Típus Hossz új integer;

Típus Szélesség új integer;

Hosszúság és szélesség - új integer adattípusok, így nem lehet őket egymáshoz rendelve, sem összehasonlítani. Azonban, ha ezt a konverziót explicit módon.

Típus Hossz új egész tartományban 0..MAXN.

Mi plusz generikumok, ez az összes hibát észlelt a fordítás során.

Ha szükséges, az implicit konverziót bevezetett altípusok.

Sybtype t1 t2 tartomány 0..n.

És akkor az átváltás a T1-T2 megengedett. Ebben az esetben a fordító úgy dönt,

az optimális teljesítmény ilyen számokat. Most a fordító fordítása a feladat az adattípusok, vagy ellenőrizze, hogy a lehetőséget az ilyen megbízást a fordítás vagy írja be a kódot, hogy ellenőrizze a elfogadhatóságát ilyen megbízás (kvázi statikus ellenőrzés). Abban az esetben, tengerentúli kiadási hibák Ada izgatott tartományban hiba.

Karakter és logikai adattípusok

Ada. Boolean jelentése (False, True); // ábrázolása egy logikai

o. Logikai: = true;

Útközben az egyetlen nyelv implicit átalakítása int a bool

Delphi, Pascal. var p: logikai

Sequence típusok: tartomány és lista. Jellemzői végrehajtásának transzferek jelenlegi PL.

Kapcsolódó cikkek