Radu MetaTrader a blogja | További ingyenes és hasznos eszközök MetaTraderhez | Kérdésed merült fel? Kérdezz!
MQL4 Könyv tartalomjegyzék | Stratégiák programozása MetaTrader platformra | Fogalomtár | Gyakran Ismételt Kérdések

MQL4 könyv   Az MQL4 alapjai  Állandók és változók


Állandók és változók

Az állandó és változó fogalmát egy fejezetben tárgyaljuk, mert ezek a fogalmak egymáshoz nagyon közeliek.

Az állandó meghatározása


Az állandó egy program része; egy objektum, amelynek van egy értéke.

Egy programban levő állandó hasonló ahhoz, amit matematikai egyenletekben használnak. Ez egy változatlan érték. Egy algoritmikus nyelvben használt állandónak a leírása, sok tekintetben hasonlít a jól ismert fizikai és matematikai állandókhoz.

Az emberiség felfedezte azokat az állandókat, amelyek semmilyen tekintetben nem függnek tőlünk. Ilyenek például a fizikában: a nehézségi gyorsulás, ami mindig egyenlő 9.8 m/s-mal; a matematikában: Pi = 3.14. Ilyen fajta állandókat nem találunk egy algoritmikus nyelvben.

Az állandó fogalmát matematikai egyenletekben használják. Például az Y = 3 * X + 7 egyenletben a 3 és 7 számok az állandók. Az ilyen állandók értékei teljesen attól a személytől függenek, aki létrehozta az egyenletet. Ezek az állandók a legközelibb analógiái azoknak, amiket az MQL4 programokban használunk.

Egy állandót (értékként) a programozó a kód létrehozásakor meghatároz. Egy állandót csak az értéke jellemez, úgyhogy az ’állandó’ fogalma és ’az állandó értéke’ teljes szinonimák.

Példa állandók:
37, 3.14, true, "Kazan"


4. ábra Egy állandó a PC memóriájában.


Az állandók tulajdonságai

Az állandó tulajdonsága az, hogy a program működési ideje alatt megtartja a programozó által adott értékét, és visszaadja ezt az értéket a programnak, amikor a program ezt kéri (5. ábra). A program mindegyik állandójának biztosítja a szükséges méretű részét a számítógép memóriájában. Egy állandó értékét a program végrehajtása alatt nem változtathatja meg sem programozó sem számítógép (6. ábra).


Az állandó értéke mindig ugyanannyi marad.


5. ábra. Egy állandó a memóriacellában mikor visszaadja az érték a programnak.


Egy állandó értékét nem változtathatjuk meg a program futása alatt.


6. ábra. Lehetetlen a program futása alatt megváltoztatni egy állandó értékét.


A változó fogalma

A változó egy programrész, aminek értéke és neve (azonosító) van.

Az MQL4-ben levő változók meghatározása hasonló a matematikában elfogadotthoz. A különbség csak abban áll, hogy a matematikában levő változó értékére mindig utalnak, míg egy futó programban levő változó értékét elraktározzák egy különleges memóriacellában a számítógépben.

A ’változó azonosító’ fogalma a ’változó nevének’ teljes szinonimája. A változót változó-névként beleteszi a kódszövegbe a szerző a kódolás során. A változónév (azonosító) betűkből, számjegyekből, és aláhúzás karakterből állhat, de  betűvel kell kezdődnie. Az MQL4 nagybetű-érzékeny, vagyis, S és s nem ugyanaz.

Példák változó nevekre: Alpha, alFa, beta, NuMbEr, Num, A_37, A37, qwerty_123
A következő változó azonosítók különböző változók neveit képviselik: a_22 és А_22; Massa és MASSA.
Példák a változók értékeire: 37, 3.14, true, Kazan.

A változó tulajdonságai

Egy változó tulajdonsága az a képessége, hogy egy bizonyos értéket kapjon a programtól, a program futása alatt megtartsa ezt, és visszaadja ezt az értéket a programnak, mikor azt a program kéri. Mindegyik változónak a program a számítógépen kiutalja szükséges méretű részt a memóriában. Nézzük a 7. ábrát és figyeljük meg egy változó szerkezetét!



 7. ábra Egy változó a számítógép memóriájában.


A számítógép memóriacellájában a változónak van egy értéke. Ezt az értéket kérheti és megváltoztathatja működése során a program. Egy változó nevét soha nem változtathatják meg. Miközben a programozó egy kódot íra változónak bármilyen nevet be tud állítani. Azonban, amint a kész programot elindítjuk, sem programozónak, sem a számítógépnek, sem a programnak nincs semmilyen lehetősége arra, hogy megváltoztassa a változó nevét.

Ha egy program a végrehajtása során találkozik egy változó nevével, a program hivatkozik erre a változóra, azért hogy megkapja az értékét. Ha a program hivatkozik egy változóra, ez utóbbi beállítja az értékét a programban. A változó értéke ugyanaz marad, a program csak a másolatát kapja annak az értéknek, ami a változót tartalmazó a memóriacellában található (8. ábra).


Amikor egy változó értékét beolvassuk egy programban, ez az érték változatlan marad. Egy változó nevét soha nem lehet megváltoztatni.


8. ábra. Egy változó memóriacellájának az állapota amikor beolvassuk annak érték a programba.


Egy változó nem áll folyamatos kapcsolatban a futó programmal. Ez alatt az időszak alatt a program a szükséges számításokat végezheti vagy egy másik változóval foglalkozhat. A programmal való kapcsolat szünetében a változó megtartja az értékét, vagyis változatlan marad.

A program algoritmusa szerint szükségessé válhat, hogy megváltoztassa egy változó értékét. Ebben az esetben a program beállítja a változó az új értékét, és a változó ezt az új értéket kapja a programtól. Minden szükséges módosítás megtörténik a memóriacellában. Vagyis a változó előző értékét törlik, míg a változó új értéke, amit a programtól kapott, átveszi a helyét (9. ábra).


Egy változó értékét megváltoztathatja a program. A változó neve mindig változatlan.


9. ábra. Egy változó memóriacellájának az állapota mikor új értéket kap a programtól.

Példa állandókra és változókra egy programban


Egy programban állandókat és változókat találhatnak az operátorok. A lenti kódban A és B  változók, 7 és 3 állandók:

A = 7; // 1.sor
B = A + 3; // 2.sor

Tanuljunk meg, hogy egy program állandókkal és változókkal működik. Miközben végrehajtja ezeket a programsorokat, a program a következő lépéseket fogja csinálni:

1.sor:

1.       A 7 állandó értékét beállítja a program.

2.       Az A változó 7 értéket kap  a programtól.

2.sor:

1.       A program az egyenlőségjeltől jobbra talált egy kifejezést és megpróbálja kiszámítani azt.

2.       A 3 állandó értékét beállítja a program.

3.       A program hivatkozik az A változóra.

4.       A program beolvassa az A változó értékét (7).

5.       A program számításokat végez (7 + 3).

6.       A В változó a 10-es értéket kapja a programtól.

Egy változó értékét a program futása alatt megváltoztathatjuk. Például ebben a programban lehet egy sor, ami a következőt tartalmazza:

В = 33; // 3.sor

Ebben az esetben a kész program végrehajtásánál a következő lesz:

1.       A 33 állandó értékét beállítja a program.

2.       A B változó a 33-as (új) értéket kapja a programból.

Könnyű észrevenni , hogy a B változó a program futásának egy bizonyos pontján a 10-es értéket kapja, majd azután az értéke 33 lesz. A változó neve B mindezen események alatt változatlan marad, míg a változó értéke változni fog.

10. ábrán állandókat és változókat láthatunk a programkódban:


10. ábra. Állandók és változók egy programban.