Pascal adattípusok. Egyszerű adattípusok

Bármely adatot - konstansokat, változókat, függvényértékeket - Pascalban adattípus jellemzi.

Határozzuk meg a fogalmat adattípus. Mint már ismert, minden programobjektumot (változók, konstansok stb.) deklarálni kell.

A leírások egyrészt tájékoztatják a fordítót a változók és egyéb felhasznált objektumok létezéséről, másrészt jelzik ezen objektumok tulajdonságait. Például egy olyan változó leírása, amelynek értéke szám, jelzi a számok tulajdonságait. Formálisan a számok lehetnek egészek és valósok (törtek). A Pascalban, akárcsak más programozási nyelvekben, a számokat két típusra osztják: egész(fenntartott szó egész szám) és igazi(fenntartott szó igazi).

Az egész számok külön típusként való kiválasztását az magyarázza, hogy in számítógép az egész és a valós számok eltérően vannak ábrázolva: egy egész szám abszolút pontosan ábrázolható, míg a valós szám elkerülhetetlenül valamilyen véges hibával, amit a fordító tulajdonságai határoznak meg.

Legyen például az x változó real típusú, és az értéke egyenlő eggyel: x=1 . A megfelelő érték a számítógép memóriájában 0,999999999, 1,000000001 vagy 1,000000000 lehet. De ha az x változót egész típusú változóként deklarálják, akkor az egység abszolút pontosan lesz ábrázolva a számítógépben, és az x változó nem tud valós (tört) értékeket felvenni - végül is deklarálták. egész típusú változóként.

Tehát az adattípus meghatározza:

  • adatok belső megjelenítése a számítógép memóriájában;
  • az értékkészlet, amelyet az ilyen típusú értékek felvehetnek;
  • az ilyen típusú értékeken végrehajtható műveletek.

Az adattípusok bevezetése a Pascal nyelv egyik alapfogalma, amely abból áll, hogy egy kifejezés értékének változóhoz való hozzárendelése során a változónak és a kifejezésnek azonos típusúnak kell lennie. Ezt az ellenőrzést a fordító végzi el, ami nagymértékben leegyszerűsíti a hibakeresést és növeli a program megbízhatóságát.

A Turbo Pascal adattípusok készlete két csoportra osztható:

  • szabványos (előre meghatározott) típusok ;
  • felhasználó által definiált típusok (felhasználó által definiált típusok) .

A Turbo Pascal standard típusai a következők:

  • integer type - integer ;
  • valódi típus - valódi ;
  • karakter típusa - char ;
  • logikai típus - boolean ;
  • string type - string ;
  • pointer type - pointer ;
  • a szöveg típusa szöveg .

Az egyéni adattípusok a szabványos típusok különféle kombinációi.

Az egyéni típusok a következők:

  • felsorolt ​​típus;
  • intervallum típusa;
  • mutató típusa;
  • strukturált típusok;
  • eljárási típus.

Megjegyzés. Az adattípusok egy másik osztályozása is lehetséges, amely szerint a típusokat egyszerű és összetett típusokra osztják.

Az egyszerű típusok a következők: egész típus, valós típus, karaktertípus, logikai típus, felsorolt ​​típus és intervallumtípus.

Az összetett típus az egyszerű típusok különféle kombinációi (tömbök, rekordok, halmazok, fájlok stb.)

Szabványos típusok

A szabványos adattípust maga a Pascal nyelv határozza meg. A szabványos típusok programban való használatakor elegendő a szükséges típusok alszakaszait (const , var) feltüntetni, majd leírni a programban használt állandókat és változókat. Nincs szükség a Típus alszakasz használatára.

Például, ha a program csak változókat használ:

i,j - egész szám (egész számok);

x,y - valós (valós);

t,s - char (karakter);

a,b - logikai érték (logikai),

akkor csak a változók alszakaszra van szükség - Var . Ezért a program leíró részében a változódeklarációkat a következőképpen írjuk:

Egész típusok

Az ilyen típusú adatok csak egész számokat vehetnek fel. Egy számítógépben az egész típusú értékek pontosan vannak ábrázolva. Ha a változó negatív, akkor azt a „-” jelnek kell megelőznie, ha a változó pozitív, akkor a „+” jel elhagyható. Erre a típusra akkor van szükség, ha valamely érték nem ábrázolható megközelítőleg - valós szám. Például az emberek, állatok száma stb.

Példák egész értékek írására: 17, 0, 44789, -4, -127.

Az egész típusú adatok tartományát az öt szabványos egész típus határozza meg, és a táblázat mutatja be:

típus Hatótávolság Méret bájtban
Shortint -128...+128 1
Egész szám -32768...32767 2
Longint -2147483648...2147483647 4
bájtok 0...255 1
Szó 0...65535 2

Az utolsó két típus csak pozitív számok ábrázolására szolgál, az első három pedig pozitív és negatív számokat is.

A program szövegében vagy egész típusú adatok bevitelekor az értékek beírásra kerülnek tizedesvessző nélkül . Aktuális változó értékek nem haladhatja meg a megengedett értékeket annak a típusnak (Shortint , Integer , Longint , Byte , Word), amelyet a változó leírására használtunk. A számítások esetleges túlzásait semmilyen módon nem ellenőrzik, ami a program helytelen működéséhez vezet.

Példa egész típusú változó használatára

var a:integer; b:szó; c:byte; Kezdje a:=300; (a értéke 300) b:=300; (b 300-ra állítva) c:=200; (c értéke 200) a:=b+c; (a értéke 500) c:=b; (Hiba! A c változó 255-nél nem nagyobb értéket vehet fel. Itt a c változóhoz 500 van hozzárendelve, ami az eredmény túlcsordulását okozza.) Vége.

Valódi típusok

A valós típusok értékeit a számítógépben hozzávetőlegesen ábrázolják. A valós típusú adatok tartományát öt standard típus határozza meg: valós (Real), egyszeres pontosságú (Single), kettős pontosságú (Double), fokozott pontosságú (Extended), összetett (Comp), és a táblázatban látható:

típus Hatótávolság A jelentős számjegyek száma Méret bájtban
Igazi 2,9E-39...1,7E+38 11-12 6
Egyetlen 1,5E-45...3,4E+38 >7-8 4
Kettős 5E-324...1.7E+308 15-16 8
Kiterjedt 3.4E-4951...1.1E+4932 19-20 10
Összeg -2E+63+1...+2E+63-1 19-20 8

A valós számokat két formátumban lehet ábrázolni: fix és lebegőpontos.

A fixpontos szám formátuma megegyezik a tört részt tartalmazó decimális számok szokásos matematikai jelölésével. A tört részt például ponttal választjuk el az egész résztől

34.5, -4.0, 77.001, 100.56

A lebegőpontos formátum nagyon nagy vagy nagyon kis számok írásakor használatos. Ebben a formátumban az „E” előtti számot megszorozzuk 10-zel az „E” után megadott hatványra.

1E-4 1*10-4
3,4574E+3 3.4574*10+3
4.51E+1 4.51*10+1

Lebegőpontos példák:

Szám Pascal nyelven írva
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E+4
124 0,124E+3
124 1.24E+2
124 12.4E+1
124 1240E-1
124 12400E-2

Az 5-től 9-ig tartó táblázat ugyanazt a 124-es számot mutatja. A mantisszában a tizedesvessző helyének megváltoztatásával (a pont "lebeg", innen a "lebegőpontos szám rögzítése" elnevezés) és ezzel egyidejűleg a kitevőt, kiválaszthatja a legmegfelelőbb bejegyzési számokat.

Példa valós típusú változók deklarálására.

Karakter típus

A karaktertípus értékek olyan karakterek, amelyek a számítógép billentyűzetén írhatók be. Ezzel szöveget jeleníthet meg a programban, és különféle műveleteket hajthat végre rajta: beszúrhat, törölhet egyes betűket és szavakat, formázhat stb.

A karaktertípust a Char fenntartott szó jelöli, és egyetlen karakter tárolására szolgál. A memóriában lévő karakter típusú adatok egy bájtot foglalnak el.

Szimbolikus változó deklarációs formátuma:

<имя переменной>:char;

Egy karakterváltozó értékének meghatározásakor a karaktert aposztrófokkal írjuk. Ezenkívül megadhatja a szükséges karaktert az ASCII-kód számértékének közvetlen megadásával. Ebben az esetben a szükséges karakter ASCII kódját jelölő szám elé # jelet kell írni.

Példa karakter típusú változók használatára:

varc:char; (c egy karakter típusú változó) Begin c:='A'; (az 'A' karakter a c változóhoz van rendelve) c:=#65; (a c változóhoz az A szimbólum is hozzá van rendelve. Az ASCII kódja 65) c:='5'; (a c változóhoz az 5 karakter van hozzárendelve, az End. itt az 5 már nem szám)

logikai típusú

A logikai adattípust George Boole angol matematikus, a matematika - matematikai logika terület megalkotója után Boole-nak nevezik.

Logikai változó deklarációs formátuma:

<имя переменной>: logikai;

Az ilyen típusú adatok csak két értéket vehetnek fel:

  • Igaz igaz;
  • Hamis – hamis.

A logikai adatokat széles körben használják bizonyos feltételek érvényességének ellenőrzésére és az értékek összehasonlítására. Az eredmény igaz vagy hamis lehet.

Az adatok összehasonlításához a következő relációs műveletek állnak rendelkezésre:

Példa a relációs műveletek használatára:

reláció 5>3 , eredmény igaz (igaz);

reláció 5=3 , az eredmény hamis (hamis).

Példa logikai változók használatára.

var a,b:boolean; (a,b logikai változók) Begin a:=True; (az a változó igazra van állítva) b:=false; (a b változó hamisra van állítva) End.

Állandók

Egész számok, valós számok, szimbólumok, karakterláncok, logikai állandók használhatók konstansként.

Az állandót a leíró részben a fenntartott const szó használatával kell deklarálni.

Állandó nyilatkozatformátum

Const<имя константы>= <значение>;

Ha egy programban több állandót használunk, akkor csak egy engedélyezett. kulcsszó Const , minden állandó leírása pontosvesszővel végződik. Az állandó blokk egy másik szakasz deklarálásával vagy végrehajtható utasítások blokkjának deklarálásával ér véget.

Const (konstans szakasz nyilatkozat) év=2003; (egész típusú konstans, mivel a rekordban nincs tizedesvessző) time=14,05; (valós típusú állandó) N=24; (egész típusú konstans, mivel a rekordban nincs tizedesvessző) P=3,14; (valós típusú állandó) A=igaz; (logikai állandó) str1='7'; (karaktertípus állandó) str2='A'; (karaktertípus állandó) str3='Turbó'; (karakterlánc típusú állandó) Var (változó szakasz deklaráció) X,y:integer; (egész típusú változók)

Egyedi típusok

Az egyedi típusok halmazából csak akkor vesszük figyelembe

  • felsorolt ​​típus;
  • intervallum típus.

Erre a két típusra lesz szükségünk a tömbök tanulmányozásakor.

Felsorolt ​​típus

A felsorolt ​​adattípusok olyan új adattípusokat írnak le, amelyek értékeit a programozó határozza meg. A felsorolt ​​típust az általa fogadható értékek felsorolásával határozzuk meg. Minden értéket valamilyen azonosító nevez el, és egy zárójelben lévő listában található. A felsorolt ​​típus egy felhasználó által definiált adattípus, így típusdeklarációja a TYPE fenntartott szóval kezdődik.

Felsorolt ​​típusformátum:

<имя типа>= (állandó1, állandó2,..., állandóN);

Ahol
konstans1 , konstans2 ,..., állandóN az azonosító értékek rendezett halmaza, amelyeket állandókként kezelünk.

Példa egy felsorolt ​​típusdeklarációra:

Type ball=(egy, kettő, három, négy, öt); vart:ball;

Itt a labda a felsorolt ​​típus neve; egy , kettő , három , négy , öt konstans; t olyan változó, amely bármilyen konstansértéket felvehet.

A felsorolt ​​típusban a konstans egy azonosító, ezért nem idézőjelek, és nem is lehet szám. Így egy felsorolt ​​típusban az állandó az állandók egy speciális fajtája, amely nem lehet:

  • numerikus típusú konstansok: 1, 2, 3, 4 stb.;
  • karakter típusú állandók: "a", "s", "1", "3" stb.;
  • karakterlánc típusú állandók: "első", "második" stb.

Ezenkívül az aritmetikai műveletek és a szabványos bemeneti és kimeneti eljárások az Olvasás, Írás nem alkalmazhatók az ilyen típusú értékekre.

Példa felsorolt ​​típusú változók használatára:

Típus napok = (hétfő, kedd, szerda, csütörtök, péntek, szombat, vasárnap); Var nap: napok; begin if day = Sunday then writeln('Ma vasárnap van!'); vége.

A felsorolt ​​típusdefinícióban szereplő elemeket a rendszer a felsorolás sorrendjében rendezettnek tekinti. A számozás nulláról indul. Ezért a fenti példában a hét napjainak a következő sorszámai vannak

A sorszám programozott meghatározásához használja az Ord() függvényt.

Példánkban a sorozatszámok egyenlőek:

Ord(hétfő) = 0;

Ord(szombat) = 5;

Rend (vasárnap) = 6.

intervallum típus

Ha egy változó nem veszi fel a típusának összes értékét, hanem csak egy bizonyos tartományban lévő értékeket, akkor az ilyen adattípust intervallumtípusnak nevezzük. Az intervallumtípust gyakran korlátos típusnak és tartománytípusnak nevezik. Az intervallumtípust az értékeinek határai határozzák meg:

<минимальное значение>..<максимальное значение>

  • két ".." karaktert a rendszer egy karakterként kezel, ezért szóköz nem megengedett közöttük;
  • a tartomány bal vége nem haladhatja meg a jobb végét.

Az intervallumtípus egy felhasználó által meghatározott adattípus, ezért ennek a típusnak a deklarációja a TYPE kulcsszóval kezdődik.

Példa az intervallumtípus leírására:

típusszámjegy = 1..10; hónap = 1..31; lat = 'A'..'Z';

leggyakoribb a matematikában numerikus típusok- Ezt egész számok, amelyek végtelen számú diszkrét értéket képviselnek, és érvényes számok, amelyek az értékek korlátlan kontinuumát képviselik.

Numerikus adattípusok leírása (egész számok) Pascal

Ugyanazon a nyelven belül az egész számok halmazának különböző részhalmazai valósíthatók meg. Az egész számtípusok lehetséges értékeinek tartománya a belső reprezentációjuktól függ, amely lehet egy, két vagy négy bájt. Tehát a Pascal 7.0 a következő egész számokat tartalmazó numerikus adattípusokat használja:

Egészben numerikus adattípusok A Pascal a következő műveleteket tudja végrehajtani:

  • Számtan:
    összeadás(+);
    kivonás(-);
    szorzás(*);
    részleg maradéka (mod);
    hatványozás;
    egységes plusz (+);
    egységes mínusz (-).
  • Kapcsolati műveletek:
    egyenlőségi viszony (=);
    egyenlőtlenségi összefüggés (<>);
    arány kisebb (<);
    arány nagyobb, mint (>);
    arány nem kisebb, mint (>=);
    arány nem több (<=).

Amikor fellép egész szám numerikus adattípusok az eredmény típusa az operandusok típusának fog megfelelni, ha pedig az operandusok különböző egész típusúak, akkor annak az operandusnak a típusának, amelyiknek a legnagyobb a számossága (maximális értéktartomány). Az esetleges eredménytúlcsordulás semmilyen módon nem szabályozott (fontos!) , ami hibákhoz vezethet.

Különös figyelmet kell fordítani az egész szám numerikus adattípusok osztási műveletére. Pascalban két osztási művelet megengedett, amelyeket rendre jelölünk "/" És div. Tudnod kell, hogy a "/" elosztásának eredménye nem egész szám, hanem valós szám(ez akkor is igaz, ha 8-at elosztunk 2-vel, azaz 8/2=4,0). A div felosztás az egész osztás, azaz egész számú eredménytípus.

Numerikus adattípusok leírása (valós) Pascal

A valós numerikus adattípus a valós számok egy olyan részhalmazára vonatkozik, amely úgynevezett lebegőpontos formátumban fix számjegyekkel ábrázolható. A lebegőpontos használatával minden numerikus adattípus két számjegycsoportként jelenik meg. Az első számjegycsoportot mantisszának hívják, a másodikat a sorrendnek. Általában egy numerikus adattípus lebegőpontos formában a következőképpen ábrázolható: X= (+|-)MP (+ | -) r , ahol M a szám mantisszája; r a szám sorrendje (r egész szám); P a számrendszer alapja. Például tizedes alap esetén a 2E-1 (itt E a tizedes számrendszer alapja) a következőképpen néz ki: 2*10 -1 =0,2, az 1.234E5 pedig a következőnek felel meg: 1.234* 10 5 =123400,0.

A Pascal a következő típusú valós számokat használja, amelyek tetszőleges számot csak bizonyos véges pontossággal határoznak meg, a valós szám belső formátumától függően:

Valós típusú valós változó leírásakor egy 4 bájtos változó jön létre a számítógép memóriájában. Ebben az esetben 3 bájt a mantissza alatt, egy pedig a megrendelés alatt kerül megadásra.

Valós numerikus adattípusokon a következő műveleteket hajthatja végre:

  • Számtan:
    összeadás (+);
    kivonás(-);
    szorzás(*);
    osztály(/);
    hatványozás;
    egységes plusz (+);
    egységes mínusz (-).
  • Kapcsolati műveletek:
    egyenlőtlenségi összefüggés (<>);
    arány kisebb (<);
    arány nagyobb, mint (>);
    arány nem kisebb, mint (>=);
    arány nem több (<=).

Mint látható, a Pascalt a valós típusok gazdag skálája jellemzi, de a numerikus adattípusokhoz való hozzáférés egyetlen, kettősÉs kiterjedt csak speciális fordítási módokban lehetséges. Ezeket a numerikus adattípusokat a lebegőpontos aritmetika hardveres támogatására tervezték, és hatékony használatukhoz a számítógépnek tartalmaznia kell egy matematikai társprocesszort.

A Pascalban egy speciális pozíciót egy numerikus adattípus foglal el. comp, amelyet valós számként kezelünk exponenciális és tört részek nélkül. Tulajdonképpen, comp egy előjeles "nagy" egész szám, amely 19...20 jelentős tizedesjegyet tárol. Ugyanakkor a numerikus adattípus comp kifejezésekben teljesen kompatibilis a többi valós típussal: minden valós művelet definiálva van rajta, használható matematikai függvények argumentumaként stb.

A numerikus adattípusok Pascalban való konvertálásáról

A numerikus adattípusok implicit (automatikus) konvertálása Pascalban szinte lehetetlen. Kivétel csak a típusra vonatkozik egész szám, amely megengedett olyan kifejezésekben, mint igazi. Például, ha a változók a következők szerint vannak deklarálva:

VarX: egész szám; Y: igazi

Aztán az operátor

szintaktikailag helyes lesz, bár a hozzárendelési jeltől jobbra egy egész szám, balra pedig egy valós változó található, a fordító automatikusan elvégzi a numerikus adattípusok konvertálását. A fordított konverzió automatikusan beírásra kerül igazi típusonként egész szám Pascalban nem lehetséges. Emlékezzünk arra, hogy hány bájt van lefoglalva az olyan változókhoz, mint pl egész számÉs igazi: alatt egész típusú adat egész szám 2 bájt memória van lefoglalva, a valós alatt pedig 6 bájt. Az átalakításhoz igazi V egész szám két beépített funkció van: kerek(x) egy valós x-et a legközelebbi egész számra kerekít, trunc(x) levág egy valós számot a tört rész elvetésével.

A típus fogalma minden programozási nyelv egyik alapfogalma. Azok az objektumok (konstansok, változók, függvények, kifejezések), amelyekkel a program operál, bizonyos típusúak.

típus az az értékkészlet, amelyet a programobjektumok felvehetnek, és az ezeken az értékeken engedélyezett műveletek halmaza.

Például, az 1 és 2 értékek egész típusúak, összeadhatók, szorozhatók, és egyéb számtani műveletek is végrehajthatók. A "monitor" és a "Pascal" jelentése nyelvi jellegű, saját érvényes műveletsorral rendelkeznek. A leggyakrabban használt nyelvekben csak jól körülhatárolható, ismert típusok használhatók. A Pascal a más magas szintű nyelvekben megtalálható szabványos típusokkal együtt lehetővé teszi a programozó számára saját típusok létrehozását.

A Pascal nyelvben engedélyezett összes típus két nagy csoportra osztható: egyszerű és összetett (strukturált).

típus Hatótávolság Mantisza, jelek Szükséges memória (byte)
IGAZI 2.9*10E-39..1.7*10E38 11-12
EGYETLEN 1,5*10E-45..3,4*10E38 7-8
KETTŐS 5.0*10E-324..1.7*10E308 15-16
KITERJEDT 1.9*10E-4951..1.1*10E4932 19-20
COMP -2Е+63+1..2Е+63-1 10-20

A SINGLE, DOUBLE, EXTEND, COMP típusok hatékony használata csak akkor lehetséges, ha a ($N+) direktíva benne van. Alapértelmezés szerint kikapcsolt állapotban van. A mérnöki és gazdasági problémák megoldásához a REAL típusú értékek elegendőek.

Példa

Var Res, Summa, Itog: igazi;

Bulevszkij az adattípust a BOOLEAN azonosító írja le. Az ilyen típusú változók és állandók két érték közül csak az egyiket vehetik fel: IGAZ (igaz) vagy FALSE (hamis).

Példa

Var Sel1, Sel2: logikai érték;

A,B,C,D: logikai érték;

A logikai típusú kifejezések 1 bájt memóriát foglalnak el, és logikai és relációs kifejezésekben, valamint a programutasítások végrehajtási sorrendjének szabályozására használatosak.

Szó szerinti (karakter) a típust a CHAR szabványos azonosító írja le. Az ilyen típusú állandók és változók felvehetik az ASCII-kódtábla egyik értékét. Az ilyen típusú állandó vagy változó értéke aposztrófok közé van zárva.

Például, Var Bukva, Znak, Szimbólum: char;

Letter:='A'; Jel:='+'; Szimbólum:='!'

A karakter típusú változók 1 bájtot foglalnak el a memóriában. A char típusú adatok használata számtani kifejezésekben tilos. Literális értékekre alkalmazhatók az összehasonlító műveletek, amelyek eredménye a kódtáblázatban szereplő literális változó vagy konstans számától függ.

A szabványos adattípusokon kívül a Pascal támogatja a skaláris típusokat, felhasználó által meghatározott. Ezek tartalmazzák felsorolhatóÉs intervallum típusok. Ezek az adattípusok 1 bájt memóriát foglalnak el, így a felhasználó által definiált típusok nem tartalmazhatnak 255 elemnél többet. Használatuk jelentősen javítja a program láthatóságát, megkönnyíti a hibakeresést és memóriát takarít meg.

Felsorolt ​​típus közvetlenül adható meg, felsorolva az összes értéket, amelyet egy adott típusú változó felvehet. Az egyes értékeket vessző választja el, és a teljes lista zárójelben van.

Formátum

típus<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Példa

Típus Szezon =(tavasz, nyár, ősz, tél);

Var S1, S2: Szezon;

Ősz: (szeptember, október, mostember);

Ebben a példában a Szezon felhasználó explicit módon deklarált adattípusa látható. Jelentésük meghatározott - az évszakok megjelölése. Az S1 és S2 változók a felsorolt ​​értékek közül csak egyet vehetnek fel. Bármilyen más érték hozzárendelésének kísérlete szoftvermegszakítást okoz. A harmadik típusú felsorolás névtelen (nincs neve), és a Var szakaszban található értékek felsorolása határozza meg. Az Autumn egy ilyen típusú változó, és a következő értékeket veheti fel: szeptember, október, mostember. Így bármilyen típus megadható, de ez nem mindig elfogadható. Az első mód minden bizonnyal érthetőbb és jobban megfelel a Pascal nyelv természetének.

intervallum típus lehetővé teszi két állandó beállítását, amelyek meghatározzák ennek a változónak az értéktartományának határait. A fordító minden művelethez ellenőrző rutinokat generál egy intervallum típusú változón, amely meghatározza, hogy a változó értéke a számára megadott tartományon belül marad-e. Mindkét konstansnak valamelyik standard típushoz kell tartoznia, kivéve a valódit. Az első állandó értékének szükségszerűen kisebbnek kell lennie, mint a másodiké.

Formátum

típus<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Példa

Típus Napok = 1.. 31;

Var Munka_d, Szabad_d: Napok;

Ebben a példában a változók Munka_d, Szabad_d típusúak napokés tetszőleges értéket vehet fel az 1 tartományból. . 31.

A hatótávolságon kívül szoftver megszakítást vált ki.

Intervallumtípust úgy határozhat meg, hogy a tartomány határait nem konstans értékekkel, hanem azok nevével adja meg:

Állandó min = 1; max=31;

Típus Napok = Min .. Max;

Var Munka_d, Szabad_d: Napok;

Strukturált típusok Az adatok skaláris típusokon alapulnak, és ezek különféle kombinációit tartalmazhatják. Meghatározzák a skalárelemek rendezett halmazát, és komponenseik típusával jellemzik őket. A Pascal a következő strukturált adattípusokat biztosítja:

vonal - aposztrófokba zárt karaktersorozat;

tömb - strukturált adattípus, amely meghatározott számú azonos típusú elemből áll, és indexel érhető el ;

Egy csomó - valamilyen attribútum vagy attribútumcsoport szerint kiválasztott objektumok halmaza, amely egésznek tekinthető;

rekord - meghatározott számú, különböző típusú összetevőből álló halmaz;

fájlt- azonos típusú és azonos hosszúságú összetevők sorozata.

Két további strukturált típus - procedurális és objektumtípus(objektív) - a szokásos ábrázolásban nehéz párosítani az adatokat.

1. kép- A Pascal nyelv alaptípusainak halmaza

Pascalban a változókat azok jellemzik típus. A típus egy változó olyan tulajdonsága, amely szerint egy változó felvehet egy adott típus által engedélyezett értékeket, és részt vehet az ezen a típuson engedélyezett műveletek halmazában.

A típus határozza meg az érvényes értékek készletét, amelyet egy adott típusú változó felvehet. Meghatározza továbbá egy adott típusú változón engedélyezett műveletek halmazát, és meghatározza az adatreprezentációkat véletlen hozzáférésű memória számítógép.

Például:

n:integer;

A Pascal egy statikus nyelv, ami azt jelenti, hogy a változó típusa deklaráláskor kerül meghatározásra, és nem módosítható. A Pascal nyelv kidolgozott típusrendszerrel rendelkezik - minden adatnak egy korábban ismert adattípushoz kell tartoznia (vagy a nyelv fejlesztése során létrehozott szabványos típushoz, vagy a programozó által definiált felhasználó által definiált típushoz). A programozó a típusait tetszőleges komplexitású struktúrával hozhatja létre standard típusok alapján, vagy már felhasználó által meghatározott típusok. A létrehozott típusok száma korlátlan. A program egyéni típusai a TÍPUS részben vannak deklarálva a következő formátumban:

[név] = [típus]

A standard típusú rendszer elágazó, hierarchikus felépítésű.

A hierarchiában az elsődlegesek egyszerű típusok. Az ilyen típusok a legtöbb programozási nyelvben megtalálhatók, és egyszerűnek nevezik, de a Pascalban összetettebb a felépítésük.

Strukturált típusok egyszerű típusokból bizonyos szabályok szerint épülnek fel.

Mutatók egyszerű nézetekből készülnek, és a programokban címek beállítására használják.

Eljárási típusok a nyelv újítása TurboPascal, és lehetővé teszik az alprogramok elérését, mintha azok változók lennének.

Objektumok szintén újak, és objektum-orientált nyelvként kívánják használni.

A Pascalban 5 féle egész típus létezik. Mindegyik jellemzi az elfogadott értékek körét és a memóriában elfoglalt helyét.

Egész számok használatakor a típusok egymásba ágyazásával kell vezérelni, pl. a kisebb tartománytípusok nagyobb tartománytípusokba ágyazhatók be. A Byte típus minden 2 és 4 bájtot elfoglaló típusba beágyazható. Ugyanakkor az 1 bájtot elfoglaló Short Int típus nem ágyazható be a Word típusba, mivel nincs negatív értéke.

5 valódi típus létezik:

Az egész típusok pontosan vannak ábrázolva a számítógépen. Az egész típusokkal ellentétben a valós típusok értéke csak bizonyos véges pontossággal határoz meg tetszőleges számot, a szám formátumától függően. A valós számokat fix vagy lebegőpontos számítógépben ábrázolják.

2358.8395

0.23588395*10 4

0,23588395*E 4

A Pascalban egy speciális helyet foglal el a Comp típus, valójában egy előjeles nagy egész szám. Ez a típus minden valós típussal kompatibilis, és nagy egész számokhoz használható. Valós lebegőpontos számok ábrázolásakor a tizedesvessző mindig a bal vagy a legmagasabb mantissza elé kerül, de ha számmal dolgozunk, akkor balra vagy jobbra tolódik el.

Rendes típusok

Az ordinális típusok több egyszerű típust egyesítenek. Ezek tartalmazzák:

  • minden egész típusú;
  • karakter típusa;
  • logikai típus;
  • típus-tartomány;
  • felsorolt ​​típus.

Az ordinális típusok közös jellemzői: minden típusnak véges számú lehetséges értéke van; ezeknek a típusoknak az értéke meghatározott módon rendelhető és minden számmal egy bizonyos szám, ami egy sorszám, összehasonlítható; a sorszámtípusok szomszédos értékei eggyel különböznek.

Sorszám típusú értékekhez az ODD(x) függvény alkalmazható, amely az x argumentum sorszámát adja vissza.

PRED(x) függvény - az ordinális típus előző értékét adja vissza. PRED(A) = 5.

SUCC(x) függvény – Egy sorszámtípus következő értékét adja vissza. SUCC(A) = 5.

Karakter típus

A karaktertípus értékek 256 karaktert tesznek ki a használt számítógép kódtáblázata által megengedett készletből. Ennek a készletnek a kezdeti területe, azaz a 0 és 127 közötti tartomány megfelel az ASCII-kódok azon készletének, ahol az ábécé karakterei, az arab számok és a speciális karakterek vannak betöltve. Szimbólumok kezdeti terület mindig jelen vannak a számítógép billentyűzetén. A régebbi területet alternatívnak hívják, nemzeti ábécé karaktereit és különféle speciális karaktereket, valamint olyan pszeudográfiai karaktereket tartalmaz, amelyek nem felelnek meg az ASCII kódnak.

A karaktertípus értéke egy bájtot foglal el a RAM-ban. A programban az értékek aposztrófok közé vannak zárva. Az értékek ASCII-kód formájában is megadhatók. Ebben az esetben a karakterkódot tartalmazó szám előtt # jelnek kell lennie.

C:= 'A'

Logikai (boolean) típus

Két logikai típusú érték létezik: igaz (igaz) és hamis (hamis). Az ilyen típusú változókat a BOOLEAN szolgáltatásszó határozza meg. Egy logikai érték egy bájtot foglal el a RAM-ban. Az igaz és hamis értékek az 1-es és 0-s számértékeknek felelnek meg.

Típus-tartomány

Az alaptípusának van egy részhalmaza, amely bármilyen sorszámú lehet. A tartomány típusát az alaptípuson belüli határok határozzák meg.

[min-érték]…[max-érték]

A tartomány típusa megadható a Típus részben konkrét típusként, vagy közvetlenül a Var részben.

A tartománytípus meghatározásakor a következőket kell követni:

  • a bal oldali szegély nem haladhatja meg a jobb oldali határt;
  • egy tartománytípus örökli az alaptípus összes tulajdonságát, de az alacsonyabb számosságához kapcsolódó korlátozásokkal.

Felsorolt ​​típus

Ez a típus az ordinális típusokra vonatkozik, és az általa felsorolható értékek felsorolásával van megadva. Minden értéket valamilyen azonosító nevez el, és a listában található, zárójelben. A felsorolt ​​típus a Típusban van megadva:

népek = (férfiak, nők);

Az első érték 0, a második érték 1, és így tovább.

Maximális teljesítmény 65535 érték.

húrtípus

A karakterlánc típus a strukturált típusok csoportjába tartozik, és a Char alaptípusból áll. A karakterlánc típusa nem sorszámú. Tetszőleges hosszúságú karaktersorozatok készletét határozza meg, legfeljebb 255 karakterig.

A programban a karakterlánc típusát a String szó deklarálja. Mivel a String egy alaptípus, a nyelvben deklarálják, a String típusú változó deklarálása pedig a Varban történik. A String mögötti karakterlánc típusú változó deklarálásakor célszerű szögletes zárójelben feltüntetni a karakterlánc hosszát. 0 és 255 közötti egész számot ad meg.

Fam: vonós;

A karakterlánc hosszának megadása lehetővé teszi, hogy a fordító a megadott számú bájtot lefoglalja a RAM-ban az adott változóhoz. Ha a karakterlánc hosszát nem adjuk meg, akkor a fordító a maximális lehetséges számú bájtot (255) fogja lefoglalni ennek a változónak az értékéhez.

A lecke a Pascal főbb szabványos adattípusait, a változó és a konstans fogalmát tárgyalja; elmagyarázza, hogyan kell az aritmetikai műveletekkel dolgozni

A Pascal egy tipizált programozási nyelv. Ez azt jelenti, hogy az adatokat tároló változók meghatározott adattípusúak. Azok. a programnak közvetlenül jeleznie kell, hogy egy adott változóban milyen adatok tárolhatók: szöveges adatok, numerikus adatok, ha numerikusak, akkor egész vagy töredékes stb. Erre elsősorban azért van szükség, hogy a számítógép "tudja", milyen műveleteket lehet végrehajtani ezekkel a változókkal, és hogyan kell azokat helyesen végrehajtani.

Például a szöveges adatok összeadása, vagy ahogy a programozásban helyesen nevezik - összefűzés - a karakterláncok szokásos összevonása, míg a numerikus adatok összeadása bitenként történik, emellett tört- és egész számokat is összeadnak különböző módon. módokon. Ugyanez vonatkozik más műveletekre is.

Nézzük a leggyakoribbakat Pascal típusok adat.

Egész adattípusok Pascalban

típus Hatótávolság Szükséges memória (byte)
byte 0..255 1
shortint -128..127 1
egész szám -32768.. 32767 2
szó 0..65535 2
longint -2147483648..2147483647 4

Szem előtt kell tartani, hogy a programok Pascal nyelven írásakor egész szám(angolból egész számként fordítva) a leggyakrabban használt, mivel az értéktartomány a legkeresettebb. Ha szélesebb körre van szükség, használja longint(long integer, angolból fordítva long integer). típus byte Pascalban akkor használják, ha nem kell negatív értékekkel dolgozni, ugyanez vonatkozik a típusra is szó(csak itt az értéktartomány sokkal nagyobb).

Példák a változók leírására (deklarálására) Pascalban:

program a1; varx,y:integer; (egész típusú) myname:string; (karakterlánc típusa) begin x:=1; y:=x+16; myname:="Péter"; writeln ("név: ",nevem, ", életkor: ", y) end.

Eredmény:
Név: Péter, életkor: 17

Megjegyzések Pascalban

Ügyeljen arra, hogyan Pascal megjegyzéseket használunk. A példában a megjegyzések, pl. a fordító számára „nem látható” szolgáltatásszöveg kapcsos zárójelek közé van zárva. Általában a programozók megjegyzéseket tesznek a kódrészletek tisztázására.

3. feladat. Moszkva lakossága a = 9 000 000 lakos. Új Vasyukov lakossága b=1000 lakos. Írjon programot, amely meghatározza két város lakosságszámának különbségét! Változók használata

Valódi adattípusok Pascalban

Valós számok Pascalban és általában a programozásban a törtszámok neve.

típus Hatótávolság Szükséges memória (byte)
igazi 2.9*10E-39..1.7*10E38 6
egyetlen 1,5 * 10 E-45 .. 3,4 * 10E38 4
kettős 5*10E-324..1.7*10E308 8
kiterjedt 1,9 * 10E-4951 .. 1,1 * 10E4932 10

A Pascal valódi típusa a leggyakrabban használt valódi típus.

Fent bemutatták egyszerű adattípusok Pascalban, amelyek a következőket tartalmazzák:

  • Sorrendi
  • egész
  • összerakós játékaik
  • Szimbolikus
  • felsorolva
  • Intervallum
  • Igazi

A valós típusú változók értékeinek kiadásához általában formázott kimenetet használnak:

  • a formátum vagy egy számot használ, ami az ehhez a számhoz rendelt pozíciók számát jelenti exponenciális formában;
  • p = 1234,6789; WriteIn(p:6:2); (1234,68)

    Az egyszerű típusok mellett a nyelv is használ strukturált adattípusok és mutatók, amely a következő Pascal-leckék témája lesz.

    Konstansok Pascalban

    A program gyakran előre tudja, hogy a változó egy adott értéket vesz fel, és nem változtatja meg azt a teljes program végrehajtása során. Ebben az esetben konstanst kell használni.

    A Pascalban egy konstans deklarációja a változók deklarációja előtt történik (a var szolgáltatásszó előtt), és így néz ki:

    Példa egy állandó leírásra Pascalban:

    1 2 3 4 5 6 const x= 17 ; var myname: string ; begin myname: = "Péter" ; writeln ("név: " , nevem, ", életkor: " , x) end .

    const x=17; varmyname:string; begin myname:="Péter"; writeln ("név: ", nevem, ", életkor: ", x) end.

    Egész és valós számok "gyönyörű" kimenete

    Annak érdekében, hogy a változók értékeinek kiadása után behúzások maradjanak, hogy az értékek ne „egyessenek össze” egymással, szokás kettősponton keresztül jelezni, hogy hány karaktert kell megadni a kimenethez az értékből:


    Aritmetikai műveletek Pascalban

    Műveletek sorrendje

    1. zárójelben lévő kifejezések értékelése;
    2. szorzás, osztás, div, mod balról jobbra;
    3. összeadás és kivonás balról jobbra.

    Pascal szabványos aritmetikai eljárások és függvények

    Itt érdemes részletesebben elidőzni néhány aritmetikai műveleten.

    • A Pascal inc operátora, amelyet inkrementként ejtünk ki, a Pascal standard eljárás, ami eggyel növelést jelent.
    • Inc működési példa:

      x:=1; inc(x); (X-et 1-gyel növeli, azaz x=2) writeln (x)

      Az inc eljárás összetettebb alkalmazása:
      Inc(x,n) ahol x ordinális típus, n egész típus; az eljárás az x-et n-nel növeli.

    • A Pascal Dec eljárása hasonlóan működik: Dec(x) - csökkenti x-et 1-gyel (decrement) vagy Dec(x,n) - csökkenti x-et n-nel.
    • Az abs operátor egy szám modulusát jelöli. Így működik:
    • a: =- 9; b:=abs(a); (b=9)

      a:=-9; b:=abs(a); (b=9)

    • A Pascal div operátora egy általánosan használt operátor, mivel számos feladat kapcsolódik az egész osztás művelethez.
    • A felosztás fennmaradó része vagy a mod operátor pascalban szintén nélkülözhetetlen számos probléma megoldásához.
    • Figyelemre méltó az standard funkció páratlan Pascal, amely meghatározza, hogy egy egész szám páratlan-e. Vagyis páratlan számoknál igaz (igaz), páros számoknál hamis (hamis) ad vissza.
    • Példa a páratlan függvény használatára:

      varx:integer; beginx:=3; writeln(sqr(x)); (9. válasz) vége.

    • Művelet hatványozása Pascalban hiányzik mint olyan. De egy szám hatványra emeléséhez használhatja az exp függvényt.
    • A képlet a következő: exp(ln(a)*n) , ahol a egy szám, n egy hatvány (a>0).

      A fordítóprogramban azonban pascal abc a hatványozás sokkal egyszerűbb:

      varx:integer; beginx:=9; writeln(sqrt(x)); (3. válasz) vége.

    4. feladat. A gyufásdoboz méretei ismertek: magasság - 12,41 cm, szélesség - 8 cm, vastagság - 5 cm. Számítsa ki a doboz alapterületét és térfogatát
    (S = szélesség * vastagság, V = terület * magasság)

    5. feladat. Három elefánt és elég sok nyúl van az állatkertben, és a nyulak száma gyakran változik. Egy elefántnak száz sárgarépát kell megennie naponta, egy nyúlnak pedig kettőt. Az állatkert gondozója minden reggel jelenti a nyulak számát a számítógépnek. A számítógépnek válaszul közölnie kell a kísérővel, hogy hány sárgarépát kell ma nyulaknak és elefántoknak etetni.

    6. feladat. Ismeretes, hogy x kg édesség a rubel. Határozza meg, mennyit y kg ezekből az édességekből, valamint azt, hogy hány kilogramm édességből lehet vásárolni k rubel. Az összes értéket a felhasználó adja meg.



    Betöltés...
    Top