Változó
A programok adatokkal dolgoznak. Ha nagyon egyszerűen fogalmazzuk meg egy program működését, mondhatjuk, hogy bemenő (input) adatokból kimenő (output) adatokat állít elő. Fontos tehát, hogy a programjainkban lehetőségünk legyen az adatok kezelésére, tárolására és feldolgozására.
Az adatokat a memóriában vagy háttértárakon tároljuk. Ha háttértárakon tároljuk őket, akkor a fájlokon keresztül férhetünk hozzájuk. Ha memóriában, akkor viszont tudnunk kell, hogy a memóriában pontosan hol, vagyis milyen tárterületen. A változók ebben segítik a programozó munkáját, mivel segítségükkel neveket rendelhetünk az egyes tárterületekhez. Ha szeretnénk egy adott adathoz hozzáférni a memóriában, nem kell ismernünk annak pontos tárbeli elhelyezkedését, mivel a változókon keresztül ezt a Free Pascal fordító és futtató rendszere megteszi helyettünk.
A változó olyan programozási eszköz, melynek négy összetevője van:
- azonosító: ez egy karaktersorozat, a változó ezzel az azonosítóval jelenik meg a program forráskódjában. A Free Pascalban egy azonosító betűvel vagy aláhúzás jellel kezdődik, és betűvel, számjeggyel vagy aláhúzás jellel folytatódhat.
- típus: meghatározza, hogy a változó milyen értékkészletből vehet fel értékeket, milyen műveleteket lehet rajta végezni és milyen módon van reprezentálva az adott érték a memóriában.
- tárbeli cím: az a memóriaterület, ahol a változó értékét a program tárolja.
- érték: a megadott memóriaterületen található adatsorozat. A memóriában minden adat egy bájtsorozatként van tárolva. Hogy ez pontosan milyen értéket fog jelenteni az adott változó esetében, az a változó típusától (és így a reprezentációtól) függ.
Olyan programozási eszköz, amelynek négy komponense van: név (ami egy azonosító), attribútumok (pl. típus), tárbeli cím és érték. A programokban az adatokat változók segítségével kezeljük, tulajdonképpen a memóriaterületek nevesítése valósítható meg a segítségükkel.
Nevesített konstans
Olyan programozási eszköz a Free Pascalban, mely névvel (azonosító) és értékkel rendelkezik. A nevesített konstansokat a program elején, a deklarációs részben deklarálni kell, és a program futása alatt az értékük nem változhat meg.
Olyankor szoktunk nevesített konstansokat használni, amikor egy konstans értéket gyakran kell szerepeltetnünk a forráskódban, de előfordulhat, hogy ez az érték a fejlesztés későbbi fázisában megváltozik. Például egy alkatrészeket nyilvántartó programban teszteléskor N=50 munkadarabra készítjük el a programot, de a végső fázisban ez a szám N=3000 lesz. Ha a darabszámot konstanssal írnánk a programba (például számláló ciklusok végértékeként), a forráskódban sok helyen kellene kicserélnünk ezt az értéket. Ha azonban a konkrét számok helyére N-et írunk a végrehajtható részbe, és a program elején az N-hez a megfelelő értéket rendeljük, akkor csak egy helyen kell módosítanunk, ha erre szükség van.
Az alábbi kódrészlet nevesített konstansokat deklarál:
const
N = 50;
E = 2.71828183;
NEV = 'Kovács László';
Változók deklarációja
A programegységek (főprogram, alprogramok) elején az adott programegység változóit deklarálni kell. Ez azt jelenti, hogy meg kell adnunk a nevüket és a típusukat. A deklaráció parancsa a Var. Az alábbiakban példákat láthatunk változók deklarációjára:
Var
szuletesiEv : Word;
szuletesiHonap: String[10];
szuletesiNap : Byte;
nem : Boolean; {True = férfi, False = Nő}
tanulmanyiAtlag : Real;
A változók értéke a program során - ahol érvényes a hatókörük, vagyis láthatók - bárhol megváltozha.
Automatikus értékadás
Egy változó a deklaráció pillanatától rendelkezik címkomponenssel, így értékkel is, hiszen a memóriában mindig van egy adott memóriaterületen valamilyen érték (lehet, hogy 0-k sorozata, de ha egy memóriacellában 0-ás érték van, az sem azt jelenti, hogy az a cella üres). A Free Pascalban deklarációkor a változók kezdőértéket kapnak. Egész típusú változók esetén ez 0, valós típusok esetén ez valós 0 (0.0 eltérő számú bájton ábrázolva), karakter típus esetén a 0 ASCII-kódú karakter, sztringek esetében az üres sztring, míg logikai típusok esetén False. A változókkal tehát anélkül is végezhetünk műveleteket, hogy nekik a program folyamán értéket adnánk (értékadó utasítással vagy input utasítással).
Megjegyzendő, hogy bár a változóknak van kezdőértéke, mégsem elegáns ezt az értéket a programban kihasználni. A korrekt algoritmusok mindig tartalmaznak kezdetiérték-adást is.
Kezdőértékadás deklarációkor, tipizált konstans
A változókhoz mi is hozzárendelhetünk kezdőértéket a deklarációkor:
Const
szuletesiEv : Word = 1975;
szuletesiHonap : String[10] = 'december';
szuletesiNap : Byte = 11;
nem : Boolean = True;
tanulmanyiAtlag : Real = 5.0; {:-)}
A tipizált konstansok nemcsak a Const kulcsszóval hozhatóak létre, hanem a Var kulcsszóval is. Hiszen valójában változók, mert kaphatnak új értéket a program futása során. Ez a furcsaság a Turbo Pascal öröksége, a Wirth által definiált eredeti Pascal következetesebb vol.
Olyan algoritmus illetve eljárás, amely egy adott típusú adatot a memóriában eltárolható bináris jelsorozattá alakít.
Olyan programozási eszköz, amelynek három komponense van: név (ez egy azonosító), cím és érték. A programokban olyankor használjuk, ha egy bizonyos konstans értékre gyakran hivatkozunk, vagyis ez a konstans a forráskódban több helyen megjelenik. Ha szeretnénk a programban ezt az értéket megváltoztatni, akkor nevesített konstansok használatával elegendő csak egy helyen, a nevesített konstans értékadásánál megtenni ezt, nem szükséges a teljes forráskódban minden előfordulásánál.
Konstans, más szóval fix, konkrét értékű adat, melyet nem jelölünk azonosítóval.