Utasítások

A program futtatható része elvégzendő tevékenységek (utasítások) sorozatából áll. Turbo Pascal-ban  az egyszerű utasítássorozaton (szekvencián) bonyolultabb programstrukturák megvalósítására is van lehetőség. Ezen megoldások két fő csoportba, a kiválasztás (szelekció) és az ismétlés (iteráció) csoportokba sorolhatók.

Pascal utasítások

A programok futását, azt hogy az adatokkal mit csináljon a program, utasításokkal lehet vezérelni. Az egyszerű vagy elemi utasítások - a feldolgozás legkisebb részei - közé az értékadás, az eljáráshívás és az ugrás tartozik. Az egyszerű utasításoktól eltérően a strukturált utasítások segítségével egymásba ágyazott feldolgozási szintek hozhatók létre. Létezik összekapcsoló, with, feltételes és ciklusutasítás.

Egyszerű utasítások:

  1. Üres utasítás:
    Ez egy (;) semmi nem történik.
  2. Értékadás:
    Egy változónak értékadással adhatunk értéket. Az értékadásban szereplő kifejezés lehet érték, azonosító vagy függvényhívás. Az értékadás operátora a:= jel, aminek a jelentése: legyen egyenlő. Az értékadó operátor bal oldalán egy változó áll, jobb oldalán pedig egy kifejezés.
    Nézzünk néhány példát:
    • x:=50; 
    • Hki:=H0-dh; 
    • b5:=Sqr(B[i])+x1;
  3. Goto:
    A goto utasítás feltétel nélküli vezérlésátadást valósít meg az utasításban szereplő cimkével jelölt programsorra, goto címke; A program akkor szép és attekinthető ha nem tartalmaz goto utasítást, ez áttekinthetetlenné teszi a programot., Blokkba beugrani tilos de kiugrás lehetséges. Függvénybe és eljárásba kilépni vagy belépni nem lehet.
  4. Eljáráshívás:
    Az  eljáráshívás olyan névvel ellátott programrész, amely egy adott tevékenységsorozatot fog össze. Az eljáráshívás folyamán a hívott programrész végrehajtódik, majd a vezérlés visszakerüla hívás utáni utasításra,  eljárásnév(paraméterek); A Turbo Pascal rendszer eljárásai Unitokban találhatók, pl: writeln(’ww’), readln, randomize. Egy eljárás (procedure) azonosítója megadásával hívható. Lehet paraméteres vagy paraméter nélküli eljárás. A paraméteres eljáráshíváskor a paramétereket zárójelben kell megadni. Az eljárásoknak a programban általában a hívás előtt kell elhelyezkedni.
    Példák:
    • AdatKiiras;
      Keret(2,2,10,5);

Struktúrált utasítások:
1.    Összetett utasítás(blokk) begin és end szavak közé foglalt megadott utasítások sorozatát utasításblokknak nevezzük
2.    Feltételes utasítások A TP nyelvben a program futásának elágaztatására feltételes utasításokat (If & Case) használunk, ezen utasítások segítségével a vizsgált feltétel eredményétől függően a program egyik vagy másik része kerül végrahajtásra.Az if után álló feltétel egy logikai kifejezés melynek értékétől függ, hogy melyik utasítás hajtódik végre. Ha a feltétel igaz akkor a then utáni utasítás, ha hamis akkor az else utáni utasítás kerül végrehajtásra. A case utasítással könnyen megoldhatjuk programjaink többirányú elágazását. . A case utasítás tartalmaz a case kulcsszó után álló szelektort, amelyet az of kulcsszó zár. Ezt követi egy vagy több ún. case konstans és a hozzá tartozó utasítások és végül nem kötelezően egy else ág. A case utasítást az end zárja. 
3.    A programozás során többször találkozunk olyan feladattal amikor egy tevékenységet egymás után többször kell elvégezni. Az ilyen ismétlődő tevékenységek megfogalmazására használjuk a ciklusokat. A TP a ciklusok szervezését három ciklusutasítással támogatja.
•    Ha előre( a ciklusba belépés előtt) ismerjük az ismétlések számát, akkor for utasítás használata javasolt.(létezik növekményes ciklusváltozó succ, csökkenő ciklusváltozó pred)
•    Amennyiben a ciklust valamilyen feltétel vezérli( vagyis az ismétlések száma attól függ hogy mikor válik a feltétel igazzá vagy hamissá) akkor a while vagy a repeat utasításokat használjuk.A ciklusokat szokás a belépési)illetve kilépési) feltétel ellenőrzésének helye alapjánis csoportosítani. A TP ciklusok közül a for és while a ciklusmag végrehajtása előtt tesztel(elöltesztelő ciklus), a while utasításban a belépési feltétel (logikai kifejezés) vezérli a ciklus végrehajtását.A ciklusmag csak akkor hajtódik végre ha a feltétel igaz. Ha abban az esetben ha a feltétel értéke a ciklusba való belépéskor false a ciklusmag egyszer sem hajtódik végre, Ha a belépési feltétel true értéke nem változik a ciklus működése során akkor un. Végtelen ciklust kapunk.
•    A repeat a ciklusmag lefutása után ellenörzi a feltételt(hátultesztelő ciklus) Ha  azonban a megadott utasítást legalább egyszer végre kell hajtani akkor a repeat utasítás használata javasolt. A repeat utasításban a ciklusmag legalább egyszer mindig végrehajtódik, mivel a feltétel vizsgálat a ciklus végén áll. Az utasítást vezérlő feltételt kilépési feltételnek hívjuk, mivel a ciklus akkor fejezi be működését ha a feltétel true értékűvé válik.
Kifejezések kiértékelésük:
Kifejezések:  aezek operátorok és operandusok sorozatából épülnek fel, zárójelek sorozata a nyelv szabályait figyelembe véve. A kifejezések kiértékelése a műveletek sorrendje szerint történik, lépésről, lépésre. Minden eredménynek a művelettől függően lesz egy konkrét típusa. Ha ez a típus és a következő művelet típusa összeegyeztethető akkor a kiértékelés tovább folytatódik. Ezért nagyon fontos hogy a részeredmény típusának egyeznie kell a következő típusművelettel, Ha egy kifejezés nem kiértékelhető akkor hibaüzenetjelenik meg.“Az operátor nem értelmezhető az adazok között“
A kifejezés állhat egyetlen operandusból is, és bármelyik operandus lehet egy újjabb kifejezés.Minden kifejezést meg kell tervezni át kell gondolni változóink lehetséges értékhatárait, végig kell gondolni a kifejezés kiértékelésének menetét, és lépésről lépésremeg kell győzödni arról hogy szélsőséges részeredményink beleférnek-e a pascal által meghatározott típusba.Ha nem akarunk túl sokat gondolkodni akkor kénytelenek vagyunk jó nyag típusú változókat felvenni hogy biztos ne legyen baj.A LongInt és a Real sokat kibír. Ezzel a megoldással nem spórolunk sem a memóriával sem az idővel.
A szorzás, osztás, +, - műveletek eredménytípusát e tábázatból lehet kinézni
        ShortInt    Integer    LongInt    Byte    Word
ShortInt    Integer    Integer    LongInt    Integer    LongInt
Integer    Integer    Integer    LongInt    Integer    LongInt
LongInt    LongInt    LongInt    LongInt    LongInt    LongInt
Byte    Integer    Integer    LongInt    Integer    Word
Word    LongInt    LongInt    LongInt    Word    Word
Az operandus lehet:
•    Változó
•    Konstans
•    Függvényérték
•    Kifejezés

A precedencia szabály: egy kifejezésen belül megadja a külömböző operátorok végrahajtási sorrendjét.
Műveletek prioratása:
1.    legmagasabb prioritása a+és – előjelnek van, valamint a NOT műveletnek ezek egyoperandusú müveletek
2.    Másodsorban a szorzó müveletek értékelődnek ki (*, /, DIV, MOD, AND, SHL, SHR)
3.    Ezután következnek az öszeadó műveletek(+,-,OR,XOR)
4.    Legkisebb priorításuk a hasonlító műveleteknek van(=,<>,<,<=,>,>=,
5.    Egy csoportba tartozó müveletek egyenrangúak itta a balról jobbra szabály szerint értékelődik ki.
6.    A zárójel minden felborít mert ezek lesznek a legelsőek kiértékelődni.
A ciklus fogalma
A programozási nyelveken bizonyos utasítások automatikus ismétlését biztosító programszerkezetet iterációnak vagy ciklusnak (loop) nevezzük. Ez az ismétlés mindaddig tart amíg a feltétel igaznak bizonyul.
•    Ciklusok: A programban gyakran van szükség utasítások ismételt végrehajtására. Az ilyen feladatok megoldására szolgálnak a ciklusok. A Pascalban három féle ciklus található: a for, a while és a repeat-until.
o    A for ciklusutasítást akkor használjuk, ha pontosan ismerjük az ismétlések darabszámát. A for ciklust két féle képen lehet használni: növekvő vagy csökkenő ciklusként. A for ciklusutasítás csak egyetlen utasítás végrehajtására vonatkozik (ha több utasítás, akkor blokk).

A for utasítás alakja növekvő ciklus esetén: kezdőérték < végérték
for ciklusváltozó:=kezdőértékto végérték do utasítás;
A for utasítás alakja csökkenő ciklus esetén: kezdőérték > végérték
for ciklusváltozó:=kezdőértékdownto végérték do utasítás;
Egy rövid példa a for használatára:
for Szam:=1 to 20 do Osszeg:=Osszeg+Szam;
A folyamatábra:
o    A while utasítás tartalmaz egy logikai kifejezést, amely vezérli az ismételt utasítások végrehajtását. 
Az utasítás általános formája:
while logikai kifejezés do utasítás;
Ennél a ciklusfajtánál a logikai kifejezés a ciklusmag végrehajtása előtt kerül kiértékelésre. Ha az hamis, akkor a ciklus egyszer sem kerül végrehajtásra. Ezért ezt a logikai kifejezést belépési feltételnek is hívjuk. Az egyetlen utasításból álló ciklusmag (ha több utasítás, akkor blokk) addig kerül végrehajtásra, amíg a logikai kifejezés igaz.
Példa a while ciklus használatára (más megoldás az előzőre):
while Szam < 21 do begin 
   Osszeg:=Osszeg+Szam;
   Szam:=Szam+1;
end;
A folyamatábra:


1.1.1    Hátultesztelő ciklus – iteráció
REPEAT
    [utasítás [; utasítás … ]]
UNTIL kilépési feltétel

A REPEAT és UNTIL fenntartott szavak a ciklus utasításait összefogják. A ciklus utasításait ciklusmagnak is szokták nevezni. A ciklusmag egyszer mindenképen végrehajtódik, és egészen addig ismételten végrehajtódik, amíg a kilépési feltétel nem teljesül. Olyan estekben szokták használni, amikor a ciklust mindenképpen végrehajtjuk, és a ciklus újbóli végrehajtása attól függ, hogy mi a végrehajtás eredménye.
1.1.2    Elöltesztelő ciklus – iteráció
WHILE belépési feltétel DO
Utasítás

Utasítás (ciklusmag) lehet összetett utasítás, így a ciklusban több utasítást is végre tudunk hajtani egyszerre. Ha a belépési feltétel már először nem teljesül, akkor a ciklusmag egyszer sem kerül végrehajtásra (üres ciklus). Olyan esetekben szokták használni, amikor a ciklust nem feltétlenül akarjuk végrehajtani, és a ciklus újbóli végrehajtása attól függ, hogy van-e még feldolgozandó adat.
1.1.3    Elöltesztelő léptető ciklus (határozott menetszámú) – iteráció
FOR ciklusváltozó := kezdőérték TO/DOWNTO végérték DO
Utasítás

Ahol a ciklusváltozó lokális sorszámozott típusú változóhivatkozás, kezdőérték és végérték azzal értékadás-kompatíbilis kifejezések.
Globális és lokális változók
A lokális változó mindig a blokkra nézve lokális. A globális változókat a program egészén felhasználhatjuk vagy hivatkozhatunk rájuk.

1.1.3.1.1.1    Pascalban
A változók deklarálása a var kulcsszó megadása után történik. A változóazonosítót kettősponttal választjuk el a változó típusától. Egy azonosító nem szerepelhet két különböző típusnál, a több azonos típusú változóazonosítókat vesszővel elválasztva kell felsorolni.
Lokális deklaráció:
Az eljárás fejléce után következik az eljárás törzsben használt, tehát az eljárásra nézve lokális konstansok, változók deklarációja. A lokális változók az eljárás aktiválásakor kapnak értéket, de értékük kívülről hozzáférhetetlen, amire nincs is szükség. Ezek a változók az algoritmus beprogramozásához szükséges munkatárakat jelentik.
Változók deklarálása:
var
a, b    : nteger;
x    : Real;