Mi a byte a Pascalban. Pascal

A változó leírásánál meg kell adni a típusát. A változó típusa leírja a felvehető értékkészletet és a rajta végrehajtható műveleteket. A típusdeklaráció egy azonosítót ad meg, amely a típust reprezentálja.

Az egyszerű típusokat standard (sorrendű) és felsorolt ​​(korlátozott) típusokra osztják.

Szabványos típusok

A Turbo Pascal négy beépített szabványos típussal rendelkezik: integer, real, boolean és char.

Egész szám típusa (integer)

A Turbo Pascal öt beépített egész számtípussal rendelkezik: shortint, integer, longint, byte és word. Mindegyik típus az egész számok egy meghatározott részhalmazát jelöli, amint az a következő táblázatban látható.

Beépített egész típusok.

Hatótávolság

Formátum

8 előjeles bit

16 előjeles bit

2147483648 +2147483647

32 bites aláírt

8 bit előjel nélküli

16 bit előjel nélküli

Az egész típusú operandusok aritmetikai műveleteit a következő szabályok szerint hajtják végre:

  1. Az egész konstans típus egy olyan beépített egész típus, amelynek a legkisebb tartománya tartalmazza az egész konstans értékét.
  2. Bináris művelet esetén (két operandust használó művelet) mindkét operandust a rendszer a közös típusukra konvertálja, mielőtt végrehajtaná rajtuk a műveletet. A gyakori típus a beépített egész típus, amelynek legkisebb tartománya tartalmazza mindkét típus összes lehetséges értékét. Például egy egész szám és egy bájt hosszúságú egész szám általános típusa az egész szám, az egész szám és a szóhosszúságú egész szám közös típusa pedig a hosszú egész szám. A műveletet az általános típus pontosságának megfelelően hajtják végre, és az eredmény típusa az általános típus.
  3. A hozzárendelési operátor jobb oldalán lévő kifejezést a rendszer a bal oldali változó méretétől függetlenül kiértékeli.

Egész számokon végrehajtott műveletek:

„+” - kiegészítés

"-" - kivonás

"*" - szorzás

SQR – négyzetre emelés

DIV – osztás után eldobja a tört részt

MOD - az egész maradék megszerzése osztás után

ABS - számmodul

VÉLETLENSZERŰ(X) - véletlen szám 0-tól X-ig történő kinyerése

A:=100; b:=60; a DIV b eredmény - 1 a MOD b eredmény - 40

Az egész típusú változók leírása a következő:

var változólista: típus;

Például: var а,р,n:integer;

Valódi típus (valódi)

A valós típus a valós számok egy részhalmaza, amely lebegőpontos formátumban fix számjegyekkel ábrázolható. Egy érték lebegőpontos formátumban történő írása általában három értéket foglal magában - m, b és e - úgy, hogy m*b e, ahol b mindig 10, m és e pedig a valós tartományban lévő egész értékek. Ezek az m és e értékek tovább határozzák meg a valós típus tartományát és pontosságát.

Ötféle valós típus létezik: valódi, szimpla, dupla, exnende, comp. A valódi típusok a hozzájuk tartozó értékek tartományában és pontosságában változnak

Tartomány és decimális számjegyek valós típusokhoz

Hatótávolság

Számok

2,9x10E-39 - 1,7x10E 38

1,5x10E-45 - 3,4x10E 38

5,0x10E-324 - 1,7x10E 308

3,4x10E-493 - 1,1x10E 403

2E 63–2E 63

Valós számokkal végzett műveletek:

  • Minden művelet egész számokra érvényes.
  • SQRT(x) az x négyzetgyöke.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X) a természetes logaritmus.
  • EXP(X) X (e x) kitevője.
  • EXP(X*LN(A)) - hatványozás (A x).
  • Típuskonverziós függvények:
    • TRUNC(X) - eldobja a tört részt;
    • ROUND(X) - kerekítés.
  • Az aritmetikai műveletek néhány szabálya:
    • Ha egy aritmetikai művelet valós és egész típusú számokat tartalmaz, akkor az eredmény valós típusú lesz.
    • A kifejezés minden összetevője egy sorba van írva.
    • Csak zárójelek használatosak.
    • Nem tehetsz két számtani előjelet egymás után.

A valós típusú változók leírása a következő:

var változólista: típus;

Például:

var d,g,k:real ;

Karaktertípus (karakter)

A char típus bármely olyan karakter, amely aposztrófok közé van zárva. Ha egy aposztrófot karakterváltozóként szeretne megjeleníteni, akkor azt egy aposztrófba kell zárnia: ''''.

Minden karakternek saját kódja és száma van. A 0,1..9 számjegyek sorszámai növekvő sorrendben vannak rendezve. A betűk sorszámai is növekvő sorrendben vannak, de nem feltétlenül követik egymást.

A karakteradatokra a következő összehasonlító jelek vonatkoznak:

> , < , >=, <=, <> .

Például: "A"< ‘W’

A karakterváltozókra vonatkozó függvények:

  1. ORD(X) - meghatározza az X szimbólum sorszámát. ord (‘a’) =97 ;
  2. CHR(X) – szám szerint azonosít egy karaktert. chr(97) =’a’;
  3. PRED(X) - az X karaktert megelőző karaktert adja vissza pred ('B') ='A';
  4. SUCC(X) - az X karaktert követő karaktert adja vissza succ (‘A’) =’B’;

Enum típus

Egy felsorolt ​​adattípust azért neveznek így, mert konstanslistaként van megadva szigorúan meghatározott sorrendben és szigorúan meghatározott mennyiségben. A felsorolt ​​típus konstansok listájából áll. Az ilyen típusú változók bármelyik konstans értékét felvehetik. A felsorolás típusának leírása így néz ki:

típus<имя типа>=(állandók listája) ; Var<имя переменной>:<имя типа>;

Ahol<список констант>- ez egy speciális típusú konstans, amelyet vesszővel választanak el, és saját sorszámmal rendelkeznek, 0-tól kezdve.

Például:

típusirány=(észak, dél, nyugat, kelet) ; hónap=(június, július, augusztus, január) ; kapacitás=(vödör, hordó, tartály, tartály) ; var forgás:irány; indulás:hónap; térfogat:kapacitás; var turn:(észak, dél, nyugat, kelet) ; indulás: (június, július, augusztus, január) ; térfogat: (vödör, hordó, tartály, tartály);

A következő hozzárendelési operátorokat hajthatja végre:

Forgatás:=dél; indulás:=augusztus; térfogat:=tartály;

de nem végezhet vegyes feladatokat:

Indulás:=dél; kötet:=Augusztus;

A következő függvények a felsorolt ​​típusú változókra vonatkoznak:

1. ORD - sorozatszám

2. PRED - előző elem

3. SUCC - következő elem.

PRED (hordó) = vödör; SUCC (dél) =nyugat; ORD (július) =1 ;

A felsorolt ​​típusú változókat össze lehet hasonlítani, mert sorrendben és számozásban vannak. Tehát a kifejezések: észak< юг, июнь < январь имеют значения TRUE, а юг>nyugat és tank<бочка значение FАLSE.

Korlátozott típus

Ha egy változó nem fogadja el a típusának összes értékét, hanem csak egy bizonyos tartományon belül, akkor korlátozott típusú változónak tekinthető. Minden korlátozott típust az alaptípusokra vonatkozó megszorítások határoznak meg.

Ennek leírása a következő:

TÍPUS<имя типа>=állandó1 ..állandó2

Ebben az esetben a következő szabályokat kell betartani:

  1. Mindkét korlátos állandónak azonos típusúnak kell lennie.
  2. A valódi kivételével bármilyen egyszerű típus használható alaptípusként.
  3. A kezdeti érték egy korlátozott típus meghatározásakor nem lehet nagyobb, mint a végső érték.
típusindex =0 ..63 ; betű=’a’..’z’; var char1,char2:betű; a,g:index ;

Azonnal leírhatja a változóleírás részben:

var a,g:0 ..63 ; char1,char2:'a'..'z'. A programozás alapjai
Valaha minden szakember teáskanna volt. Bizonyára ismeri azt az állapotot, amikor „nem tudja, hogyan kezdjen el gondolkodni, hogy ilyesmire jusson”. Valószínűleg találkozott már olyan helyzettel, amikor egyszerűen nem tudja, hol kezdje. Ez a könyv pontosan azoknak szól, akik szeretnének programozó lenni, de fogalmuk sincs, hogyan induljanak el ezen az úton. ...

Szinte minden egész adattípus . Ezek az adattípusok egy bizonyos tartományon belüli egész számokat jelentenek. Az egész típusok és értéktartományok konkrét nevei az adott programozási nyelvtől, a fordítótól és a fordítási módtól függenek. Erről többet megtudhat a fordító dokumentációjában.

Például adattípus Egész szám Delphiben -2147483648…2147483647, míg Turbo Pascalban az adattípus Egész szám a -35768…32767 tartományba eső számokat jelöli. A Free Pascalban a típus értéktartománya Egész szám a kiválasztott mód határozza meg.

Mivel a Lazarus a Free Pascal fordítót használja, minden, amit az adattípusokról a Free Pascal kapcsán elmondanak, a Lazarusra is igaz.

Tehát a Free Pascal egész adattípusait a 13.1. táblázat tartalmazza.

13.1. táblázat. Ingyenes Pascal egész adattípusok (Lazarus).

típus Méret, bájt Értéktartomány
Byte 1 0…255
Shortint 1 -128…127
Smallint 2 -35768…32767
Szó 2 0…65535
Egész szám 2 vagy 4 A fordítási módtól függ
Bíboros 4 0…4294967295
Longint 4 -2147483648…2147483647
Longword 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

JEGYZET
Típusok Free Pascalban Int64És QWordők nem! Ez azt jelenti, hogy nem használhatja őket például ciklusokban lévő indexváltozókhoz. Ezeket azonban itt bemutattam, hogy a jövőben ne írjam le őket külön, és egy helyre gyűjtsem az összes Free Pascal egész típust. Ha nem értesz néhány szót, ne ijedj meg. Idővel mindenről részletesebben is beszámolok.

És most néhány magyarázat a táblázatról.

Egy oszlopban TÍPUS adattípus-azonosítók vannak megadva (kulcsszavak, amelyek jelzik a fordító számára, hogy egy adott adat milyen típushoz tartozik). A következő leckékből megtudhatja, hogyan kell ezeket az azonosítókat használni.

Egy oszlopban MÉRET azt a méretet jelzi, amelyet az adattípus a számítógép memóriájában foglal el. Például egy pozitív egész szám különböző típusokkal ábrázolható: Byte, Szó, Bíboros stb Azonban egy szám, mint Bíboros 4 bájtot foglal el a memóriában, míg egy szám tetszik Byte– csak 1 bájt. Ezért, ha biztosan tudja, hogy a szám, amellyel dolgozik, soha nem vesz fel 255-nél nagyobb értéket, akkor jobb, ha típusként határozza meg. Byte, mivel ezzel helyet takaríthat meg a számítógép memóriájában. Bár itt nem minden olyan egyszerű (a memória és más számítógépes erőforrások elosztásának árnyalatai túlmutatnak ezen a területen).

Egy oszlopban HATÓTÁVOLSÁG megadja az értéktartományt, amelyen az adattípus működik. Például egy szám, mint Byte 0 és 255 közötti értékeket vehet fel.

Most gyakorlásra. Írjunk egy programot, amely megjeleníti az összes egész adattípus értéktartományát. A program forráskódja az alábbiakban található:

Felsorolás 13.1. Egész számok tartományának megjelenítésére szolgáló program. program td; ($mode objfpc)($H+) ($IFDEF UNIX)($IFDEF UseCThreads) cthreadokat használ, ($ENDIF)($ENDIF) Osztályokat (ez után egységeket adhat hozzá ); begin Writeln("Bájt: ", Alacsony(Bájt), "..", Magas(Bájt)); Writeln("Rövid: ", Alacsony(Rövid), "..", Magas(Rövid)); Writeln("Kicsi: ", Alacsony(Kicsi), "..", Magas(Kicsi)); Writeln("Szó: ", Alacsony(Szó), "..", Magas(Szó)); Writeln("Integer: ", Low(Integer), "..", High(Integer)); Writeln("Bíboros: ", Alacsony(Bíboros), "..", Magas(Bíboros)); Writeln("Longint: ", Low(Longint), "..", High(Longint)); Writeln("Hosszúszó: ", Alacsony(Hosszúszó), "..", Magas(Hosszúszó)); Writeln("Int64: ", Alacsony(Int64), "..", Magas(Int64)); Writeln("QWord: ", Alacsony(QWord), "..", Magas(QWord)); Readln; vége.

Standard funkció Alacsony az adattípus minimális értékét határozza meg. Funtskia Magas a maximális értéket határozza meg. Funkciókkal WriteLnÉs ReadLn egy kicsit már ismeritek egymást. Az alprogramokról (eljárásokról és funkciókról) a megfelelő részben fogunk részletesebben beszélni.

Végül elmondom, hogyan íródnak az egész adatok a programban. Igen, csakúgy, mint mindenhol – csak írja be a számot idézőjelek és további szimbólumok nélkül. Például így

10
178
35278

Igaz, ez a decimális számrendszerben szereplő számokra vonatkozik. Biztosan tudod, hogy vannak más rendszerek is. A legszélesebb körben használt számrendszerek a bináris, decimális és hexadecimális számrendszerek.

A Free Pascal négy egész szám formátumot támogat:

  1. Tizedes jelölés. Csak egy szám, például 10.
  2. Hexadecimális jelölés. Egy szám, amelynek előtagja $. Például a $10 hexadecimális szám megegyezik a 16 decimális számmal.
  3. Oktális jelölés. A & előtaggal ellátott szám. Például az oktális &10 egyenlő a decimális 8-cal.
  4. Bináris jelölés. % előtaggal ellátott szám. Például a %10 bináris szám egyenlő a 2-es decimális számmal.

Házi feladat:

Hozzon létre egy programot, amely egész értékek tartományait jeleníti meg (13.1-es lista). Fordítsa le a programot és futtassa. Győződjön meg arról, hogy ezek az értékek megfelelnek a 13.1 táblázatban szereplő értékeknek.

A program forráskódjában keresse meg azt a sort, amely beállítja a fordítási módot:

($mode objfpc)($H+)

Ebben a sorban a szó helyett objfpcÍrja be a szót tp. Vagyis az utolsó sornak így kell kinéznie:

($mód tp)($H+)

Indítsa el a programot. Nézze meg a típusértékek tartományát Egész szám. Levonni a következtetést.

Tanulj meg programozóként, azaz logikusan gondolkodni. Senki nem fog neked mindent megrágni nyugdíjig, mint most én. Hozzá kell szokni a saját gondolkodáshoz. Ellenkező esetben belecsúszik a „majomtanulási elvbe”, és akkor a nullához közelít az esélye, hogy nagyszerű programozóvá váljon. Annak érdekében, hogy ne csússzon a „tömés” szintre, időnként réseket hagyok a tanulásban, hogy néhány dolgot maga próbáljon kitalálni.

Sokkal jobb, ha magad találod ki rossz döntés, akkor saját maga találja meg a hibát, és maga javítja ki, ahelyett, hogy mindig mások helyes megoldásait használná, és azokat ostobán másolná.

3.2. Egyszerű adattípusok a Turbo Pascal 7-ben

Egy egyszerű típus paraméterértékek rendezett halmazát határozza meg. A Turbo Pascal a következő egyszerű típuscsoportokkal rendelkezik:

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

Minden egyszerű típust, a valódi típusok kivételével, sorszámú típusnak nevezünk. Az ordinális típusok mennyiségeihez szabványos eljárások és függvények vannak meghatározva: Dec, Inc, Ord, Pred, Succ (lásd a 13.1 szakaszt).

3.2.1. Egész típusok

A Pascaltól eltérően, amely egyetlen egész típust, az Integert határoz meg, a Turbo Pascalnak öt szabványos egész típusa van: Shortint, Integer, Longint, Byte, Word. Ezen típusok jellemzőit a táblázat tartalmazza. 2.

2. táblázat Egész számú adattípusok

típus Hatótávolság Formátum Méret bájtban
Shortint -128 .. 127 Ikonszerű 1
Egész szám -32768 .. 32767 Ikonszerű 2
Longint -2147483648 .. 2147483647 Ikonszerű 4
Byte 0 .. 255 Aláírás nélküli 1
Szó 0 .. 65535 Aláírás nélküli 2

3.2.2. Logikai típus

A szabványos logikai típus (méret - 1 bájt) olyan adattípus, amelynek bármely eleme csak két értéket vehet fel: True és False. Ebben az esetben a következő feltételek érvényesek:
Hamis Sorrend (hamis) = 0
Sorrend (igaz) = 1
Succ (hamis) = igaz
Pred (igaz) = hamis

A Turbo Pascal 7.0 további három logikai típust adott hozzá: ByteBool (méret - 1 bájt), WordBool (méret - 2 bájt) és LongBool (méret - 4 bájt). Más programozási nyelvekkel és a Windows környezettel való egyesülés céljából vezették be őket. A standard Boole-típustól való eltérésük az ilyen típusú paraméter tényleges értéke, amely megfelel a True értéknek. Minden logikai típusnál a False érték a megfelelő számú bájtba írt 0-nak felel meg. A Boole-féle típus True értéke a bájtjába írt 1-es számnak felel meg, más típusoknál pedig a True érték a nullától eltérő bármely számnak felel meg (bár az Ord függvény ebben az esetben 1-et ad).

3.2.3. Karakter típus

A szabványos Char karaktertípus az ASCII karakterek teljes készletét határozza meg. Az Ord függvény egy Char típusú értékből megadja a megfelelő karakter kódját. A karaktertípus értékeit kódjaik alapján hasonlítják össze.

3.2.4. Enum típus

A felsorolt ​​típusok nem szabványosak, és egy sor azonosító határozza meg, amelyekkel a paraméterértékek megegyezhetnek. Az azonosítók listája zárójelben van feltüntetve, az azonosítók vesszővel vannak elválasztva:

típus
= ();)

Lényeges, hogy egy típus meghatározásakor milyen sorrendben szerepelnek az azonosítók, mert az első azonosítóhoz 0, a másodikhoz 1 sorszám tartozik, stb. Ugyanaz az azonosító csak egy felsorolt ​​típus definíciójában használható. Az Sord függvény egy felsorolt ​​típusú értékből megadja az értékének sorszámát.

Példa. Felsorolt ​​típus.

írja be: Operat = (plusz, mínusz, több, osztás);

A logikai típus egy felsorolt ​​típus speciális esete:

írja be Boolean = (hamis, igaz);

3.2.5. Típus-tartomány

Bármely sorszámú típusban kiválaszthatja az értékeknek a minimális és maximális értékekkel meghatározott részhalmazát, amely magában foglalja az eredeti típus összes olyan értékét, amely ezeken a határokon belül van, beleértve magukat a határokat is. Ez a részhalmaz egy tartománytípust határoz meg. A tartomány típusát a minimális és maximális értékek megadásával lehet megadni, két ponttal elválasztva:

típus = . . ;

Ennek a típusnak a meghatározásakor a minimális érték nem lehet nagyobb, mint a maximum.

Példa. Tartománytípusok meghatározása.

típus
Tucat = 1...12; (számok 1-től 12-ig)
AddSub = Plusz..Mínusz; (összeadás és kivonás műveletek)

3.2.6. Valódi típusok

A Pascal nyelvi szabványtól eltérően, ahol csak egy valós típusú Real van definiálva, a Turbo Pascalnak öt szabványos valós típusa van: Real, Single, Double, Extended, Comp. E típusok jellemzőit lásd a táblázatban. 3. 3. táblázat Valós adattípusok

típus Hatótávolság Jelentős számjegyek száma Méret bájtban
Igazi 2.9*10-39..1.7*1038 11-12 6
Egyetlen 1.5*10-45..3.4*1038 7-8 4
Kettős 5.0*10-324.-1.7*10308 15-16 8
Kiterjedt 3.4*10-4932..1.1*104932 19-20 10
Összeg -263+1..263-1 19-20 8

A Comp típus valójában egy kiterjesztett tartományú egész típus, de nem tekinthető sorszámú típusnak.

A Single, Double, Extended és Comp típusok csak akkor használhatók a programokban, ha van aritmetikai koprocesszor, vagy ha a társprocesszor emulátor engedélyezve van (lásd 17.5.8 és 17.7.1 bekezdés).

A lecke bemutatja a főbb szabványos Pascal adattípusokat, a változó és a konstans fogalmát; 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ört szám 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 - az összefűzés - a karakterláncok szokásos összevonása, míg a numerikus adatok összeadása bitenként történik, emellett a tört- és egész számok is eltérően kerülnek összeadásra. Ugyanez vonatkozik más műveletekre is.

Nézzük meg a Pascal leggyakoribb adattípusait.

Egész számú 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

Ezt szem előtt kell tartania, amikor Pascal-ban ír programokat egész szám(angolból összességében lefordí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 long integerként fordítva). 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; var x,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, ", kor: ", y) end.

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

Megjegyzések Pascalban

Figyeld meg, hogyan A megjegyzések Pascalban használatosak. A példakommentárokban, i.e. 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 magyarázatára.

3. feladat. Moszkva lakossága a = 9 000 000 lakos. Új Vasyuki 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ós típusa a leggyakrabban használt valós típus.

A fentiek bemutatásra kerültek egyszerű adattípusok Pascalban, amelyek a következőket tartalmazzák:

  • Sorrendi
  • Egész
  • összerakós játékaik
  • karakter
  • Listázható
  • Intervallum
  • Igazi

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

  • a formátum vagy egy számot használ, amely exponenciális formában jelzi az ehhez a számhoz rendelt pozíciók számát;
  • p = 1234,6789; Writeln(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

    Egy programban gyakran előre ismert, hogy egy 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; var myname: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 megjelenítése után behúzások legyenek, hogy az értékek ne „egyesjenek össze” egymással, szokás kettősponton keresztül jelezni, hány karaktert kell megadni a megjelenítéshez érték:


    Aritmetikai műveletek Pascalban

    Műveletek sorrendje

    1. a 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 kitérni néhány aritmetikai műveletre.

    • Az inc művelet Pascalban, kimondottan inkrement, egy szabványos Pascal-eljárás, amely eggyel növelést jelent.
    • Példa az inc műveletre:

      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. Ez így működik:
    • a: =- 9; b:=abs(a) ; (b=9)

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

    • A Pascal div operátorát gyakran használják, mivel számos feladat a teljes osztás műveletét foglalja magában.
    • Az osztás fennmaradó része vagy a Pascal mod operátora szintén nélkülözhetetlen számos probléma megoldásához.
    • Figyelemre méltó a Pascal szabványos páratlan függvénye, amely meghatározza, hogy egy egész szám páratlan-e. Azaz igazat ad vissza páratlan számokra, hamisot párosra.
    • Példa a páratlan függvény használatára:

      var x:integer; kezdődik x:=3; writeln(sqr(x)); (9. válasz) vége.

    • A hatványozás művelete Pascalban mint olyan hiányzik. 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 fok (a>0).

      A Pascal abc fordítójában azonban a hatványozás sokkal egyszerűbb:

      var x:integer; kezdődik x:=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 aljának területét és térfogatát
    (S=szélesség*vastagság, V=terület*magasság)

    5. feladat. Az állatkertben három elefánt és jó néhány nyúl van, a nyulak száma gyakran változik. Egy elefántnak naponta száz sárgarépát kell megennie, egy nyúlnak pedig kettőt. Az állatkert gondozója minden reggel közli a számítógéppel a nyulak számát. Erre válaszul a számítógépnek közölnie kell a kísérővel, hogy ma összesen hány sárgarépát kell megetetni a nyulakkal és az elefántokkal.

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

    A Pascal legegyszerűbb numerikus adattípusa az egész számok tárolására tervezett egész típus. Az egész számokat a Pascalban általában két típusra osztják: előjeles és előjel nélküli. Az előjeles számok egész típusúak, amelyek pozitív és negatív számokat is tartalmaznak, az előjel nélküli számok csak pozitív számok.

    Az alábbiakban két táblázat látható egész számokkal. Először kiírjuk előjeles egész típusok:


    típusByteÉrtéktartomány
    shortint1 -128 ... 127
    smallint2 -32768 ... 32767
    integer, longint4 -2147483648 ... 2147483647
    int648 -9223372036854775808 ... 9223372036854775807

    És ez előjel nélküli egész típusok:


    típusByteÉrtéktartomány
    byte1 0 ... 255
    szó2 0 ... 65535
    hosszú szó, bíboros4 0 ... 4294967295
    uint648 0 ... 18446744073709551615

    Mint látható, az első oszlop tartalmazza a típus nevét, a második - a memóriában az ilyen típusú számok által elfoglalt bájtok számát, a harmadik pedig a lehetséges értékek tartományát. Kétféle előjeles szám létezik – integer és longint (szó szerint "integer" és "long integer"), amelyek szinonimák. Vagyis használhat egy vagy másik nevet a leírás részben.

    Hasonlóképpen, a második táblázatban (nem negatív egész számok Pascalban) két 4 bájtos szinonim egész számtípus is található - longword és cardinal , ezért használja az egyiket vagy a másikat.

    Azt is észrevehetjük, hogy ha az első tábla számait feltételesen jobbra mozgatjuk a nullához képest (az intervallumot jobbra mozgatjuk, hogy a minimális szám 0 legyen), akkor a második táblázatban egész számok intervallumait kapjuk. a megfelelő sorokban. Tehát, ha egy 1 bájtos shortint típusban 128-at adunk a bal és jobb oldali határokhoz, akkor a bájt típust kapjuk (0..255); ha egy 2 bájtos típusú smallintben 32768-at adunk a határokhoz, akkor megkapjuk a megfelelő 2 bájtos előjel nélküli szót (0..65535) stb.

    Mindez azért történik, mert az előjel nélküli egész típusokban a számok pontosan kettéoszthatók: a számok fele a negatív részre, a fele a pozitív részre. Akkor előjeles számokban miért nagyobb a bal oldali szegély abszolút értékben 1, mint a jobb oldali szegély? - kérdezed. Például a shortint típusban a minimum -128, míg a maximum csak 127 (modulo 1-gyel kevesebb). És ez azért van így, mert a jobb oldalon a 0 is benne van, és ezt tudnod kell és emlékezned kell.

    Miért kell tehát az egész számokat olyan sok típusra osztani a Pascalban? Miért ne boldogulna például a PascalABC.Net és a Free Pascal legnagyobb egész típusával – az int64-el –, ami mínusz és plusz mellett is közel 9 és fél kvintimillió (!)? Igen, egyszerű banális (?) okból - memóriatakarékosság miatt. Ha két kis, egybájtos pozitív számot kell hozzáadnia (0...255), és ezeket a számokat int64-nek (8 bájt) írta le, akkor ez 8-szor több memóriát igényel. És ha a program nagy, és sok a változó, akkor a memóriamegtakarítás nagyon meredeken emelkedik. Sőt, nincs értelme az előjeles egész típusok használatának, ha a probléma olyan mennyiségekkel foglalkozik, mint a hosszúság, tömeg, távolság, idő stb.

    A webhely Abrahamyan Problémakönyv részében (Integer alszakasz) figyelje meg a Pascal különböző egész típusainak használatát.