Számváltozók

From Apache OpenOffice Wiki
Jump to: navigation, search
Book.png


Az Apache OpenOffice Basic öt alaptípust használt a számok feldolgozásához:

  • Integer (egész szám)
  • Long integer (hosszú egész szám)
  • Single (egyszeres pontosságú)
  • Double (dupla pontosságú)
  • Currency (pénznem)

Integer (egész szám) változók

Az integer (egész szám) változók bármilyen egész számot tárolhatnak -32768 és 32767 között. Az integer (egész szám) változók két bájtot foglalnak el a memóriában. Az integer (egész szám) változók típusdeklarációs jele a %. Az integer (egész szám) változókkal végzett számítások nagyon gyorsak, és különösen ciklusváltozókban hasznosak. Ha lebegőpontos számot rendelünk egy integer (egész szám) változóhoz, akkor a számot a program a legközelebbi egész számra kerekíti.

Példák integer (egész szám) változók deklarálására:

Dim Valtozo As Integer
Dim Valtozo%

Long integer (hosszú egész szám) változók

A long integer (egész szám) változók bármilyen egész számot tárolhatnak -2147483648 és 2147483647 között. A long integes (hosszú egész szám) változók négy bájt memóriát foglalnak el. A long integer (hosszú egész szám) változók típusdeklarációs jele a &. A long integer (hosszú egész szám) változókkal végzett számítások nagyon gyorsak, és különösen ciklusváltozókban hasznosak. Ha lebegőpontos számot rendelünk egy long integer (hosszú egész szám) változóhoz, akkor a számot a program a legközelebbi egész számra kerekíti.

Példák long integer (hosszú egész szám) változók deklarálására:

Dim Valtozo as Long
Dim Variable&

Single (egyszeres pontosságú) változók

A single (egyszeres pontosságú) változók bármilyen pozitív vagy negatív lebegőpontos számot tárolhatnak 3.402823 x 1038 és 1.401298 x 10-45 között. A single (egyszeres pontosságú) változók négy bájt memóriát foglalnak el. A single (egyszeres pontosságú) változók típusdeklarációs jele a !.

Eredetileg a single (egyszeres pontosságú) változókat a double (dupla pontosságú) változókkal végzett számítások lerövidítésére hozták létre. Azonban ezek a sebességi megfontolások már nem játszanak szerepet, így a single (egyszeres pontosságú) változóknak már nincs jelentős szerepe.

Példák single (egyszeres pontosságú) változók deklarálására:

Dim Valtozo as Single
Dim Valtozo!

Double (dupla pontosságú) változók

A double (dupla pontosságú) változók bármilyen pozitív vagy negatív lebegőpontos számot tárolhatnak 1.79769313486232 x 10308 és 4.94065645841247 x 10-324 között. A double (dupla pontosságú) változók nyolc bájt memóriát foglalnak el. A double (dupla pontosságú) változók pontos számításokhoz megfelelőek. A double (dupla pontosságú) változók típusdeklarációs jele a #.

Példa double (dupla pontosságú) változók deklarálására:

Dim Valtozo As Double
Dim Valtozo#

Currency (pénznem) változók

A currency (pénznem) változók eltérnek a többi változótól abban, ahogyan a számokat kezelik. A tizedespont helye rögzített, és négy tizedesjegy követi. Ez a változó legfeljebb 15 számot tartalmazhat a tizedespont előtt. A currency (pénznem) változók bármilyen számot tárolhatnak -922337203685477.5808 és +922337203685477.5807+922337203685477,5807 között, és nyolc bájtot foglalnak el a memóriából. A currency (pénznem) változók típusdeklarációs jele a @.

A currency (pénznem) változók leginkább pénzügyi számításokhoz használatosak, ahol nem megengedettek a lebegőpontos számok előre nem látható kerekítési hibái.

Példa a currency (pénznem) változók deklarálására:

Dim Valtozo As Currency
Dim Valtozo@

Lebegőpontos számok

A single, double és currency típusokra gyakran hivatkoznak a lebegőpontos szám elnevezéssel. A lebegőpontos számábrázolás lényege, hogy a valós számok ábrázolásánál nincs rögzítve a tizedesjegyek (vagy tetszőleges számrendszer esetén a tört jegyek) száma. A számábrázolásnál a tizedespont „lebeg”, vagyis az ábrázolható számjegyeken belül bárhova kerülhet.

A változókat deklarálhatjuk lebegőpontos típusúként. A tényleges változótípus (single, long, currency) abban a pillanatban dől el, amikor értéket adunk a változónak.

Dim A As Float
A = 1210.126

Explicit számok megadása

A számok számos módon ábrázolhatók, például decimális formátumban, tudományos jelöléssel vagy akár a tízestől eltérő számrendszerben. Az Apache OpenOffice Basicben a következő szabályok vonatkoznak a numerikus karakterekre:

Egész számok

A legegyszerűbb az egész számokkal végzett munka. Ezek a számok ezreselválasztó jel nélkül jelennek meg:

Dim A As Integer
Dim B As Float
 
A = 1210
B = 2438

A számokat megelőzheti pluszjel (+) vagy mínuszjel (-), szóközzel vagy anélkül:

Dim A As Integer
Dim B As Float
 
A = + 121
B = - 243

Törtszámok

Amikor törtszámot írunk be, mindig pontot (.) használjunk. Ez a szabály biztosítja, hogy a forrásszövegek minden országban működni fognak minden változtatás nélkül.

Dim A As Integer
Dim B As Integer
Dim C As Float
 
A = 1223.53      ' kerekítve lesz
B = - 23446.46   ' kerekítve lesz
C = + 3532.76323

A törtszámokat is megelőzheti pluszjel (+) vagy mínuszjel (-), szóközzel vagy anélkül.

Ha egy törtszámot rendelünk egy integer (egész szám) változóhoz, akkor az Apache OpenOffice Basic kerekíti a számot felfelé vagy lefelé.

Exponenciális írásmód

Az Apache OpenOffice Basic lehetővé teszi, hogy a számokat exponenciális írásmóddal írjuk; például az 1.5 x 10-10 (0.00000000015) írható 1.5e-10 alakban is. Az "e" betű lehet kis- és nagybetű is, pluszjellel (+) vagy anélkül.

Az alábbiakban látható egy pár helyes és helytelen példa az exponenciális formátumra:

Dim A As Double
 
A = 1.43E2        ' Helyes
A = + 1.43E2      ' Helyes (szóköz a pluszjel és a szám között)
A = - 1.43E2      ' Helyes (szóköz a mínuszjel és a szám között)
A = 1.43E-2       ' Helyes (negatív kitevő)
A = 1.43E -2      ' Helytelen (szóköz nem megengedett a számban)
A = 1,43E-2       ' Helytelen (vessző nem megengedett tizedesjelként)
A = 1.43E2.2      ' Helytelen (a kitevőnek egész számnak kell lennie)

Megjegyzés: az első és a harmadik helytelen példában a program nem ír ki hibaüzenetet annak ellenére, hogy a változók helytelen értéket fognak tartalmazni. Az

A = 1.43E -2

kifejezést a program 1.43 mínusz 2-ként értékeli ki, amely egyenlő -0.57-tel. Viszont mi a 1.43 * 10-2 (azaz 0.0143) értéket akartuk megadni. Az

A = 1.43E2.2

értékadásnál az Apache OpenOffice Basic nem veszi figyelembe a kitevő decimális pont utáni részét, és a kifejezést a következőképpen értékeli ki:

A = 1.43E2

Hexadecimális értékek

A hexadecimális számrendszerben (16-os számrendszer) egy kétjegyű szám pontosan egy bájtnak felel meg. Ezáltal lehetővé válik a számítógépek felépítéséhez közelebb álló számok használata. A hexadecimális számrendszerben a számok a 0-tól 9-ig terjedő számokat és az A-tól F-ig terjedő betűket használják. Az A tízes számrendszerbeli 10-nek felel meg, míg az F a tízes számrendszerbeli 15-nek. Az Apache OpenOffice Basicben csak egész hexadecimális értékek használhatók, és a számokat meg kell előznie a &H típusjelölőnek.

Dim A As Long
A = &HFF   ' FF hexadecimális érték, amely tízes számrendszerbeli 255-nek felel meg
A = &H10   ' 10 hexadecimális érték, amely tízes számrendszerbeli 16-nak felel meg

Oktális értékek

Az Apache OpenOffice Basic megérti az oktális számrendszerbeli (8-as számrendszer) számokat is, amelyek a 0-tól 7-ig terjedő számokat használják. Csak egész számok használhatók, és a számokat meg kell előznie a &O típusjelölőnek.

Dim A As Long
A = &O77   ' 77 oktális érték, amely tízes számrendszerbeli 63-nak felel meg
A = &O10   ' 10 oktális érték, amely tízes számrendszerbeli 8-nak felel meg


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools