Alternatív Közgazdasági Gimnázium
Informatika munkaközösség
Informatika tananyagok

Turbo Pascal ismeretek

Kidolgozás alatt

Általános tudnivalók
A program részei
Változók
Változók típusai
Logikai kifejezések
Műveletek változókkal
Kiíratás
Adatbeolvasás
Feltételes elágazás
Ciklusok
CRT (unit) parancsok


Általános tudnivalók

Az elkészített program .pas kiterjesztéssel rendelkezik.
A program .exe kiterjesztésű futtatható fájllá alakítható a Compile paranccsal.
A program parancsai ; jellel vannak elválasztva egymástól.
Megjegyzéseket {} zárójel, vagy (* *) jelek közé lehet tenni.

A program részei

{Programfejléc - nem kötelező}

PROGRAM programnév

{deklarációs rész}
USES unitnév {az alkalmazni kívánt unitok meghatározása}
A unitok a program segédeszközei, ezeket a megadás után lehet használni.
Unitok pl: CRT, DOS, Graph, Overlay, Printer, System, Graph3, Turbo3
CONST pi=3.1415 {a programban használandó konstansok megadása}
TYPE {típusok deklarációja}
VAR {változók deklarációja}
LABEL {címzések deklarációja - a GOTO parancshoz}
PROCEDURE {eljárások megadása}
FUNCTION {függvények megadása}

{a főprogram}

BEGIN {a főprogram kezdőszava}
END. {a főprogram vége}

Változók

Változó használatához először egy memóriarészt kell elkülöníteni a változó részére a VAR paranccsal. Meg kell adni a változó nevét és típusát kettősponttal elválasztva. Pl:

VAR szam:integer;
VAR log1,log2,log3:boolean;
VAR szoveg:string[ 15] ;

Értéket egy változónak a := jellel lehet adni a programban. Pl:

log1:=10> 5+3 (logikai érték megadása, igaz vagy hamis értéke lesz a log1 változónak)

Változó tömböt az array paranccsal lehet definiálni. Pl:

var karakter:array[ 1..5,1..6] of char – a karakter típusú változónak egy 5*6-os tömböt határozunk meg. Használata a programban: karakter[ 3,5] :='a'

Változók típusai

Változók használatához először a változó típusát kell megadni a programban a var paranccsal. A típus meghatározza a változó lehetséges értékhalmazát, valamint a változó részére elkülönített méretet.

Sorszámozott típusok:

egész szám típusok:

típusnév

méret

értelmezési tartomány

byte 1 byte 0 és 255 közötti egész szám
shortint 1 byte -128 és 127 közötti egész szám
word 2 byte 0 és 65535 közötti egész szám
integer 2 byte -32768 és 32767 közötti egész szám
longint 4 byte +/- 2 milliárd közötti egész szám

Char – Karakter (a karaktert ' jelek között kell megadni)

Boolean – Logikai változók (igaz, vagy hamis értéket adnak [ true/false, 1/0] )

Valós típusok:

típusnév

méret

single 8 byte
real 12 byte
double 16 byte
extended 20 byte
comp 16 byte

Szöveges típus:

String[ 15] – Karaktersor (alapértékben 255 karakter, egyébként maximum a megadott számú - itt 15)

Típusok megadása

Felsorolt típusú változót definiálhat a programozó:

type napszak=(reggel,delelott,del,delutan,este,ejjel)

Ezután ezt a típust lehet használni változó megadásánál:

var idopont:napszak

Változó megadható a felsorolt típus előzetes definíciója nélkül is:

var idopont:(reggel,delelott,del,delutan,este,ejjel)

A felsorolt típus sorszámozott kategóriába tartozik, tehát a megadott lehetséges értékek sorrendje lényeges (reggel< del).

Sorszámozott típus résztartománya megadható külön típusként:

type resz:delelott..este {a delelott,del,delutan,este értékekből áll}

type ketjegyu:10..99 {az integer típus résztartománya}

type kisbetu:'a'..'z'

A record típus

A record típusú változó több különböző típusú mezőből épülhet fel. Pl:

type szemely=record
nev:string; szul:1900..2010; ho:1..12; nap:1..31; end;
var ember:szemely

A rekord egy mezőjére hivatkozni így lehet: write(ember.nap)

A rekordnak lehet feltételes mezője. Pl:

type szemely=record nev:string;
case nem:byte of 1:(leanykorinev:string);
2:(katonakonyvszam:integer); end;

with rekordnév do parancs – a megadott rekordnév mezőnevei önálló változóként használhatóak a parancsban. A rekordnév helyett több rekordnév is használható vesszővel elválasztva.

A halmaz

Egy változó nem csak egy értéket vehet fel, hanem egy megszámlálható halmaz értékét is.

var honap:set of 1..12;
... ho:=[ 1..12] ; if szam in ho then ...

Logikai függvényekben használhatóak (Pl: h1< =h2 – részhalmaz).

Logikai kifejezések

a or b ("vagy" kifejezés) – az értékek egyikének igaz volta esetén a teljes kifejezés igaz lesz.

a xor b ("kizáró vagy" kifejezés) – a kifejezés csak akkor igaz, ha pontosan egy érték igaz.

a and b ("és" kifejezés) – ha mindkét érték igaz, csak akkor lesz a kifejezés igaz.

not a ("nem" kifejezés) – az érték igazság voltát felcseréli.

Műveletek változókkal

A szokásos műveletek mellett (+-*/) a következő műveletek használhatóak:

a div b (osztás) – a osztva b-vel, és az eredmény egészrésze (csak egész típusú számmal).

a mod b (moduló) – a osztva b-vel ennyi lesz a maradék (csak egész típusú számmal).

ord - meghatározza, hogy a sorszámozott típusú változó hányadik a sorban. Pl:

szam:=14; writeln(ord(szam)); {a 14-es szám sorszámát adja}

length - a sztring változó hosszát adja. Pl:

ch:='valami';writeln(lenght(ch)); {a valami szó hosszát adja (6)}

Sztring típusú változó ötödik karakterét adja: write(str[5])

A nulladik elem str[0] a változó hosszát adja karakterként. Ezt az ord függvénnyel lehet számmá alakítani.

Kiíratás

A képernyőre iratni a write paranccsal lehet.

write('szoveg') – szöveg kiírása

write(valtozo) – változó kiírása

write('szoveg ',valtozo) – szöveg és változó kiírása

writeln('szoveg') – a szöveg kiírása után új sort kezd

writeln – üres sort hagy ki

writeln('egy szo':20) – a szöveget jobbra rendezve írja ki, a 20. karaktertől.

writeln(valtozo:20:4) – egy változót a 20. karaktertől írja ki, 4 tizedes jegyig.

A sor elejétől írja, ha 20 helyett 0 szerepel.

Adatbeolvasás

A beolvasandó adatokat számok esetében szóközzel, vagy enterrel kell elválasztani. Karakter beolvasása esetén nem lehet a bemenő adatokat karakterrel elválasztani. Az entert két karakternek olvassa, egy kocsi-vissza karakternek (CR) és egy soremelés karakternek (LF).

read(a) – az "a" változót beolvassa, amennyiben a típusa megfelel a deklarált változó-típusnak.

readln(a,b) – beolvassa az "a" és "b" változókat, majd enter beolvasása után a következő beolvasandó sor elejére ugrik.

readln – kihagyja az aktuális sort és enter beolvasása után a következő beolvasandó sor elejére ugrik. (Várakozik, amíg entert nem ütünk)

Feltételes elágazás

if feltétel then utasítás1 else utasítás2 – ha a feltétel teljesül, az utasítás1, ha nem az utasítás2 alkalmazódik. Az else részt nem kötelező beépíteni. Az utasítás lehet egy utasítás tömb is, mely a begin szóval kezdődik és az end szóval végződik (az end után nincs pont).

case változó of egy:parancs1; ketto,harom,negy:parancs2; else parancs3; end

Amennyiben a változó (karakter, egész szám vagy logikai érték) megegyezik "egy"-el, a parancs1 hajtódik végre, amennyiben "ketto", "harom" vagy "negy"-el egyezik meg, a parancs2, amennyiben egyik felsorolttal sem egyezik meg, az else utáni parancs hajtódik végre. A case utasítást end-del kell zárni, az else rész elhagyható.

Ciklusok

for szam:=100 to 110 do writeln(szam) – a do utáni utasítást hajtja végre többször a szam valtozóval, melynek értéke a megadott tartományban növekszik. Amennyiben csökkenő tartományt adunk meg, to helyett a downto parancsot kell használni. A szam változó csak egész szám, karakter vagy logikai érték lehet.

repeat parancsok until feltétel – a parancsokat addig hajtja végre, amíg a feltétel nem teljesül.

while feltétel do parancs – amíg a feltétel igaz, a parancsot végrehajtja. A parancs helyett alkalmazható parancs-blokk is a begin-end utasítások közé helyezve.

CRT (unit) parancsok

Az alábbi parancsok akkor használhatóak, ha a program deklarációs részében szerepel a USES CRT parancs.

delay(2000) – a program 2000 milliszekundumig (2 másodpercig) várakozik.
clrsrc – képernyőtörlés