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
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.
{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ó 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 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).
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.
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.
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.
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)
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ó.
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.
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