AGK Tier 1 alapok 4. rész – Műveletek változókkal

Az előző leckében beszéltünk róla hogy mik is a változók mi célt szolgálna  és hogyan is lehet őket létrehozni, ám csak felszínesen érintettük hogy hogyan is működnek, hogy lehet őket használni. Ebben a leckében műveletekről lesz szó amiket a változókkal végrehajthatunk.

Egy változó nem csak tárolni képes információt, hanem műveleteket is végezhetünk a változókban tárolt információval mint szorzás, osztás, összeadás, kivonás vagy épp az adott információt át is konvertálhatjuk például tizedes számot egész számmá, egészet tizedessé vagy bármilyen számot szöveggé esetleg szöveget számmá. Szöveggel úgyszintén végezhetünk különböző műveleteket mint például összekapcsolhatjuk őket, törölhetünk karaktereket vagy ki is egészíthetjük másokkal. Lássuk először milyen műveletek végezhetünk el és milyen jeleket használva:

  • = érték hozzárendelés
  • + összeadás
  •   kivonás
  • *  szorzás
  • osztás

Unscrupulous sites often charge more for medicines, and since you often do not get what you request and pay less for every last bit of it than you would at a retail chain and the immense part is that delivery costs you not exactly the levitra no prescription gas you would purchase to get you laptop sold at this place and it is strictly a matter of personal choice and. A series of comprehensive medical check-up is performed before the surgery. levitra for sale online These capsules can get dissolved completely as soon as they reach a certain Related drugshop tadalafil without prescriptions age of life. Babul extract levitra soft tabs offers effective cure for sexual disorders such as erectile dysfunction and spermatorrhea.
Most lássunk pár példát hogyan is tudjuk használni ezeket, számokkal.

valtozo1 as integer
valtozo2 as integer

valtozo1 = 1
valtozo2 = valtozo1

Ebben a példában létrehoztuk 2 változót. Az első változó értékének 1-et rendeltünk még a második változó értékének az első változót. Ebből értelem szerűen azt következik hogy a második változó értéke ugyan az lesz mint az első változó értéke.

Ha netalán bárki próbálna logikát találni abban vajon mi célja lehet az első változó értékét hozzárendelni a második változóhoz, ne tegye mert ebben az esetben a cél egyszerűen az hogy bemutassam hogyan és milyen műveleteket végezhetünk a változókkal. Szóval egyenlőre csak fogadjuk el amit látunk és mind azt amit még látni fogunk.

valtozo1 as integer
valtozo2 as integer

valtozo1 = 1
valtozo2 = valtozo1 + 11

Ebben az esetben a második változó értékének hozzárendeltük az első változó értékét és bármi is legyen az, hozzá adtunk 11-et.

valtozo1 as integer
valtozo2 as integer
valtozo3 as integer

valtozo1 = 1
valtozo2 = valtozo1 + 11
valtozo3 = valtozo2 - valtozo1

Itt, létrehoztunk egy harmadik változót aminek értéknek hozzárendeltük a második változó értékét amiből kivontuk az első változó értékét.

valtozo1 as integer
valtozo2 as integer
valtozo3 as integer

valtozo1 = 1
valtozo2 = valtozo1 + 11
valtozo3 = (valtozo2 - valtozo1) * 5

Ebben az esetben kiegészítettük a harmadik változó értékét egy szorzással és egy zárójellel. Ügye ez egy alapvető matematikai szabály hogy először mindég a zárójelt bontjuk fel a zárójelben található művelet elvégzésével. Nincs ez másképp a változóknál sem. Ebben a példában a programunk először elvégzi a kivonást majd a kapott eredményt beszorozza öttel.

valtozo1 as integer
valtozo2 as integer
valtozo3 as integer

valtozo1 = 1
valtozo2 = valtozo1 + 11
valtozo3 = ((valtozo2 - valtozo1) * 5) / 3

Itt tovább bonyolítottuk a műveletet egy osztással és ezúttal a szorzás is egy zárójelbe került. Ügye itt megint csak egy alapvető matematikai szabály érvényesül miszerint a zárójeleket belülről kifele bontjuk fel, a zárójelben található műveletek elvégzésével. Szóval a programunk először elvégzi a kivonást, majd az adott eredményt beszorozza öttel és végül az eredményt elosztja hárommal. A kapott eredményt pedig hozzárendeli a harmadik változó értékének.

Ha szeretnénk leellenőrizni, a Print() utasítással kiírathatjuk bármelyik változó értéket. Ne felejtsük el a Print() parancsot a do-loop ciklusban használni.

Viszont ezen a ponton felmerülhet egy kérdés ha figyeltünk. Mivel a változóink, integer változók és csak az egész számokat tárolják, mi van akkor ha az osztást követően, tizedes számot kapunk? A válasz egyszerű, a program egyszerűen elfogja hagyni a tizedes értékeket és csak az egész számot fogja tárolni. Ám mi van akkor ha szükségünk van a tizedes számokra? A megoldás a következő;

Hogy a tizedes számjegyeket is megkapjuk, hozzunk létre egy negyedik változót ami ezúttal egy float változó ami a tizedes értékeket is képes tárolni és végezzük el az osztást abban a változóban.

valtozo1 as integer
valtozo2 as integer
valtozo3 as integer
valtozo4# as float

valtozo1 = 1
valtozo2 = valtozo1 + 11
valtozo3 = (valtozo2 - valtozo1) * 5
valtozo4# = valtozo3
valtozo4# = valtozo4# / 3

Ahogy láthatjuk, létrehoztunk egy negyedik változót ami float, szóval a tizedes értékeket is tárolja és értéknek hozzárendeltük a harmadik változó értéket amivel azt gyakorlatilag tizedes értékké konvertáltuk. Majd végül utolsó lépésként elvégeztük az osztást ám ha figyelünk, az osztást már nem a harmadik változóval végeztük, hanem a negyedik változóval mivel annak az értéke azonos a harmadik változóval ám integer helyett itt már float értéket kapunk. Itt megint csak felmerülhet a kérdés hogy miért nem végeztük el az osztást közvetlen a harmadik változóval és rendeltük hozzá a kapott eredményt a negyedik változóhoz. Az indok egyszerű. Habár a negyedik változó float változó és azzal hogy értéknek hozzá rendelünk egy integer értéket azt tizedes értékké konvertáljuk, ám ha egy integer változóval végzünk matematikai művelet a tizedes értékeket elveszítjük mindenképp mivel a matematikai műveletet egész számmal végeztük. Ezért ha tizedes számra van szükségünk a matematikai műveleteket is tizedes számmal kell végezni.

Amennyiben ezt fordítva szeretnénk és tizedes értékből csak az egész számokat szeretnénk megkapni, hasonló módon az értéket hozzá kell rendelnünk egy integer változóhoz és így a tizedes értékeket eldobjuk.

valtozo1 as integer
valtozo2 as integer
valtozo3 as integer
valtozo4# as float
valtozo5 as integer

valtozo1 = 1
valtozo2 = valtozo1 + 11
valtozo3 = (valtozo2 - valtozo1) * 5
valtozo4# = valtozo3
valtozo4# = valtozo4# / 3
valtozo5 = valtozo4#

Ahogy láthatjuk itt létrehoztunk egy ötödik változót ami integer és annak ellenére hogy egy float értéket rendeltünk hozzá az ötödik változó már csak az egész számokat tárolja.

Ám mi van akkor ha nem kívánunk egy értéket kétszer tárolni két külön változóban ám mégis szeretnénk a tizedes jegyektől megszabadul egy-egy művelet idejére. Ebben nyújthat segítséget számunkra a Trunc() parancs például. Ha egy tizedes számot írunk a zárójelek közé a tizedes értékeket leválasztja csak a művelet idejére. Például ha szeretnénk egy tizedes értéket használni a Print() paranccsal ám csak az egész számot szeretnénk kiíratni vele, akkor használhatjuk a Trunc() parancsot erre a célra.

valtozo1 as integer
valtozo2 as integer
valtozo3 as integer
valtozo4# as float
valtozo5 as integer

valtozo1 = 1
valtozo2 = valtozo1 + 11
valtozo3 = (valtozo2 - valtozo1) * 5
valtozo4# = valtozo3
valtozo4# = valtozo4# / 3
valtozo5 = valtozo4#


do
    Print(Trunc(valtozo4#))
    Sync()
loop

Itt gyakorlatilag azt látjuk hogy a negyedik változó értéket kiíratjuk a képernyőre ám csak az egész számokat, a tizedes értékeket elhagytuk a Trunc() paranccsal. Ennek köszönhetően maga az érték nem változik a memóriában, csak amit használunk belőle.

Ám nem csak számokkal, hanem szöveggel is végezhetünk különböző műveleteket, most arra lássunk pár példát.

valtozo1$ as string
valtozo2$ as string

valtozo1$ = "AGK Tier 1"
valtozo2$ = " tutorial"

do
    Print(valtozo1$ + valtozo2$)
    Sync()
loop

Itt azt láthatjuk hogy létrehoztunk 2 string változót és mind a kettőhöz értéknek hozzárendeltünk egy szöveget. Ám mivel szövegről van szó amit általában kiíratunk a képernyőre, úgy döntöttem hogy a műveleteket a Print() parancsban hajtom végre. Ahogy láthatjuk akár csak számok esetébe, 2 szöveget is össze lehet adni és ilyenkor a 2 szó egymás mellé kerül. Akár ki is egészíthetjük

 Print("Ez egy " + valtozo1$ + valtozo2$)

Ahogy láthatjuk, egyszerűen csak elé írtam egy szót majd a + jellel, utasítottam a programot hogy a másik két változót is adja mellé. Ha lefuttatjuk a programot az-azt fogja kiírni hogy Ez egy AGK Tier 1 tutorial.

Ám nem csak szöveget kacsolhatunk össze egymással, akár számokat is szöveggel. Most lássunk erre egy példát.

valtozo1$ as string
valtozo2$ as string
valtozo3 as integer

valtozo1$ = " AGK Tier 1"
valtozo2$ = " tutorial"
valtozo3 = 4

do
    Print("Ez a " + Str(valtozo3) + "." + valtozo1$ + valtozo2$)
    Sync()
loop

Létrehoztunk egy harmadik változót aminek értéknek azt adtuk meg hogy 4, majd az Str() parancsot használva, szöveggé konvertáltuk és hozzá adtuk a mondatunkhoz. Ha lefuttatjuk a programunkat, az most azt fogja ki írni hogy Ez a 4. AGK Tier 1 tutorial

A korábban használt Trunc() parancshoz hasonlóan az Str() parancs sem módosítja az eredeti értéket a memóriában, csak azt ahogyan azt használjuk.

Hasonló módon akár szöveget is átkonvertálhatunk számmá, természetesen csak akkor ha a szöveg számokat tartalmaz és elvégezhetünk még számos művelet amikben a részleteiben már nem mennék itt és most bele. Ez egy elég tág témakör amiről oldalakt lehet írni, ám nem kívánom a hivatalos AGK dokumentációt A-tól Z-ig átvenni. Persze ha van rá igény, a jövőben külön leckékben átvehetjük mi mindent tudunk még csinálni és hogyan. Am addig is még az igény kialakul és kapok némi visszajelzést róla,  ajánlom mindenki figyelmébe a hivatalos AGK dokumentációt további információért arról hogy még milyen műveleteket végezhetünk el számokkal és szöveggel. A következő leckében pedig a tömbökről lesz szó.