Kezdőlap

|

Mi a kreditvadasz.hu Egy felsőoktatási közösségi oldal amely segít kapcsolatot tartani a hallgatók között, így segítséget nyújt a sikeres tanulmányokhoz...

Programozási elemek I.

Országok listájaHungaryNyíregyházi FőiskolaTermészettudományi Főiskolai KarProgramozó matematikusZáróvizsgaProgramozási elemek I.

2009.02.01 19:28:24
(10)
Szerző: pulfix
Cimkék: típusok, utasítások


Az alábbi szöveg egy formázás és képek nélküli előnézete a dokumentumnak. A tökéletes megjelenítéshez jelentkezz be, majd töltsd le a dokumentumot.
Programozási elemek I.
(8. tétel)
(típusok, operátorok, kifejezések, utasítások)

1. Típusok és Operátorok:

Egy típus jellemzésénél az alábbiakat kell figyelembe venni:
felvehetQ értékek halmaza (adatábrázolás)
konstansai
végezhetQ mqveletek
szabványos eljárások, függvények

Egész típus(ok):
A programozási nyelvek zöme a numerikus (szám) típusokon belül megkülönbözteti az egész és a valós típusokat. Ez azért van így, mert az egész számokat egyszerqbben tárolja, kezeli a rendszer, gyorsabban tud velük mqveleteket végezni. Ezért ha az adat jellege lehetQvé teszi, mindig egész típust válasszunk. A Pascal nyelvben vannak olyan helyzetek, ahol valós típusú szám nem is állhat (pl., for ciklus).

A Pascal nyelvben bQséges választék áll a rendelkezésünkre egész típusokból. Az alábbi táblázat tartalmazza a típusok elnevezését, értéktartományát, valamint a tárolásakor elfoglalt területet bájtokban, azaz a méretét:

Típus Értéktartomány Tárolás
Byte 0..255 1 byte
ShortInt -128..127 1 byte
Word 0..65535 2 byte
Integer -32768..32767 2 byte
LongInt kb. -2*109..2*109 4 byte

A Byte és a Word típus esetén 8 illetve 16 biten 28 = 256 ( 000000002-tól 111111112-ig ) illetve 216 = 65536 különbözQ számot ábrázolhat a rendszer kettes számrendszerben. A ShortInt, az Integer és a LongInt típusokban negatív számokat is tárolhatunk. Itt az ábrázolási tartomány egyik fele kettes komplemens kódolással negatív számokat jelent.

A tízes számrendszerbeli, decimális egészeket a megszokott alakban használhatjuk programjainkban, pl. 25, -123. A tizenhatos számrendszerbeli, hexadecimális egészekkel is dolgozhatunk, amelyeket egy dollárjellel kell bevezetnünk, pl. $33, -$A2D6. Az A..F számjegyek esetén mindegy, hogy kis-, vagy nagybetqt írunk. (A hexadecimális számok használatára elsQsorban rendszerközeli programok esetén van szükség.)
Nézzük azokat a mqveleteket, amelyeket egész típusú operandusokon elvégezve, az eredmény is egész típusú, azaz a mqvelet nem vezet ki az egész számok körébQl!

+,- (elQjel)
*, +, - (a megszokott szorzás, összeadás, kivonás)
div egész osztás, pl. 13 div 3 = 4
mod maradékképzés, pl. 13 mod 3 = 1

A bitenkénti mqveletek használata csak rendszerközeli programozásban gyakori.
not bitenkénti negálás,
pl not 28 = -29 ; (not 00011100 = 11100011)
and bitenkénti és,
pl. 5 and 6 = 4; (00000101 and 00000110 = 00000100)
or bitenkénti vagy,
pl. 5 or 6 = 7; (00000101 or 00000110 = 00000111)
xor bitenkénti kizáró vagy,
pl. 5 xor 6 = 3; (00000101 xor 00000110 = 00000011)
shl bitenkénti eltolás balra,
pl. 5 shl 3= 40; (00000101 shl 3 = 00101000)
shr bitenkénti eltolás jobbra,
pl. 5 shr 2= 1; (00000101 shr 2= 00000001)

Az eredmény kivezet az egész számok körébQl:
/ az eredmény mindig valós (bár 3 az értéke, 6/2-t már nem egész számként kezeli a rendszer)
<, >, <=, >=, =, <> relációs mqveletek, az eredmény logikai típusú: igaz, vagy hamis
in halmaz elemvizsgálat, logikai eredmény.

Eljárások:
Inc(I, N)
I értékét növeli N-el (inkrementálja), N elhagyható, abban az esetben 1-gyel növel.

Dec(I, N)
I értékét csökkenti N-el (dekrementálja), N elhagyható, abban az esetben 1-gyel csökkent.

Randomize
Paraméter nélküli eljárás, olyan programban, ahol véletlen számokat állítunk elQ a Random függvénnyel, általában egyszer meg kell hívnunk. Inicializálja (elQkészíti) a véletlen szám generátort.

Függvények:
Abs(I)
Abszolút érték függvény.

Sqr(I)
A paraméterének a négyzetét állítja elQ.

Trunc(R)
Úgynevezett konverziós függvény, valós paraméterét egész típusúvá konvertálja a törtrész levágásával.

Round(R)
Úgynevezett konverziós függvény, valós paraméterét egész típusúvá konvertálja kerekítéssel.

Random(I)
Egy véletlen egész számot állít elQ a 0..I-1 intervallumban.

Valós típus(ok):
Természetesen a programozási feladatok nagy részét nem lehet megoldani csak egész számok használatával. A Turbo Pascal nyelv több valós típussal is rendelkezik, mi csak az alaptípusnak tekinthetQ Real típussal foglalkozunk.

A Real típusú változók 6 bájtot foglalnak el a memóriában. Ábrázolásuk, kezelésük bonyolultabb módon történik, mint az egész típusok esetében. A rendszer a matematikai normál alakhoz hasonló, lebegQpontos formában tárolja el a számot. A legkisebb abszolút értékq valós szám 2,9*10-39 , a legnagyobb pedig 1,7*1038 . A pontosság maximálisan 11-12 decimális számjegy. (Ennyi értékes számjegye van egy valós számnak, a többi jegyet nem ábrázolja a rendszer, pl. a 1234567890,123456 számból az aláhúzott jegyek elvesznek.)

Tizedespontot kell alkalmaznunk (nem vesszQt), nagy, illetve kis abszolút értékq számok esetén használhatjuk a normál alakú formát.
Például: 5.12, -123.2313, 12.54E6 (12,54*106), 21.12E-5 (21,12*10-5)

Az eredmény is valós típusú: +,- (elQjel), *, /, +, -
Az eredmény logikai típusú: <, >, <=, >=, =, <>

Függvények:
Sqrt(R)
Egy szám négyzetgyökét adja vissza.

Sin(R), Cos(R)
Egy radiánban megadott szög szinuszát, illetve koszinuszát adja vissza.

ArcTan(R)
Arkusztangens függvény, visszatérési értéke radiánban értendQ.

Pi
Paraméter nélküli függvény, a pi értékét adja vissza.

Exp(R)
Exponenciális függvény, eR – ent adja vissza. (e ( 2,71)

Ln(R)
Paraméterének a természetes alapú logaritmusát adja vissza.

Int(R)
A paraméterének az egész részét adja vissza, de valós típusúként kezelve.

Frac(R)
A paraméterének a tört részét adja vissza.

Karakteres típus:
Nagyon gyakori, amikor egy programnak nem numerikus adatokat kell feldolgoznia, hanem szöveget. Gondoljon csak a leggyakrabban használt számítógépes irodai alkalmazásokra, a szövegszerkesztQkre. A szöveges típusú adatok kezeléséhez a Pascal nyelv a karakter (Char) és a karakterlánc (String) típust nyújtja.
A Char 1 bájtos típus, tehát 28 = 256 különbözQ értéknek, az ASCII kódrendszer 256 elemének a tárolására képes. A karakter típusú változó egy ASCII kódot tartalmaz. Pl. ha a változóhoz tartozó memóriarekesz értéke 65, akkor, mivel változónk típusa Char, ezt a rendszer 'A' betqként értelmezi.

A karakteres konstans csak egyetlen karaktert tartalmazhat, pl.: 'A', '*', '4'. Egy másik formája a Char konstansnak, ha az ASCII kód elé közvetlenül a kettQskereszt karaktert írjuk: #65, a 65-ös ASCII kódú karaktert, azaz 'A'-t jelenti. Gyakran hivatkozunk így az Escape - #27 karakterre.

A Char típus esetén nincs olyan mqvelet, amelynek az eredménye is karakteres típusú lenne.
Mint a számoknál, itt is értelmezi a nyelv a relációs mqveleteket: <, >, <=, >=, =, <>. Az eredmény természetesen logikai típusú, amit a karakter ASCII kódja határoz meg. Pl. 'A' < 'B' igaz, 'A' = 'a' hamis.
Alkalmazható még az in mqvelet.

Eljárások:
Inc(K, N), Dec(K, N)
Ön már találkozott ezekkel az eljárásokkal az egész típusoknál. Mqködésük itt is hasonló, a K karakter ASCII kódját növelik, illetve csökkentik N-nel, N elmaradhat, akkor eggyel növelnek, illetve csökkentnek.

Függvények:
Ord(K)
A karakter ASCII kódját adja vissza.

Chr(I)
Az Ord függvény inverzének tekinthetQ, az ASCII kódnak megfelelQ karaktert adja vissza.

UpCase(K)
Ha a paramétere egy kisbetq, akkor a nagybetqs változatával tér vissza, egyébként nincs hatása.

Pred(K)
A K-t megelQzQ karakterrel tér vissza.

Succ(K)
A K-t követQ karakterrel tér vissza.

Logikai típus:
A Pascal nyelvben logikai típusú változók deklarálására is van lehetQség, a típus neve Boolean, mely elnevezés George Boole 19. századi angol matematikusra utal.

Egy logikai típusú változó két értéket vehet fel: igaz vagy hamis. Ábrázolása egy bájton történik (akár egy bit is elég lenne). Ha a bájt értéke 0, akkor a logikai típusúként értelmezett érték hamis, nullától eltérQ érték esetén pedig igaz.

A két logikai értéknek megfelel két elQredefiniált konstans: True (igaz), False (hamis)

Logikai típusú operandusokra alkalmazhatók a logikai mqveletek (operátorok), melyeknek az eredménye is boolean. A logikai mqveletek kiértékelését igazságtáblával szokták megadni.

not (nem)
A not A Hamis Igaz Igaz Hamis
and (és) – akkor ad igaz értéket, ha mind a két operandus igaz
A B A and B Hamis Hamis Hamis Hamis Igaz Hamis Igaz Hamis Hamis Igaz Igaz Igaz
or (vagy) – akkor ad igaz értéket, ha legalább az egyik operandus igaz
A B A or B Hamis Hamis Hamis Hamis Igaz Igaz Igaz Hamis Igaz Igaz Igaz Igaz
xor (kizáró vagy) – akkor ad igaz értéket, ha pontosan az egyik operandus igaz
A B A xor B Hamis Hamis Hamis Hamis Igaz Igaz Igaz Hamis Igaz Igaz Igaz Hamis
Függvény:
Odd(I)
Párosság vizsgálat. Visszatérési értéke igaz, ha I páratlan.

A karakterlánc (sztring) típus:
Egy string típusú változóban tárolt karakterlánc hossza a program futása során változhat, de maximálva van. Ha deklarálásakor a string kulcsszó után nem írtunk semmit, ekkor a rendszer 256 bájtot foglal le a memóriában a számára. Egy bájt szükséges a karakterlánc aktuális hosszának a nyilvántartására, így a hossza 0 és 255 karakter között változhat. A másik fajta deklarálás során megadhatunk egy 256-nál kisebb maximális hosszt.

Gyakran használunk karakterlánc konstansokat a Write(Ln) eljárásokban. Pl. Write('Kérem az elsQ számot'). Létezik üres, nulla hosszúságú karakterlánc konstans, ami két aposztróf közvetlen,.D¢¤¸ÔØ*
L
\
b
x
45;
$(.VnNf¢ªóëàÕÑÊÆÊѼѴѰ«°«°«°¦°¦°«°ž°ž°ž°•ž•°°°°•°ž°•°ž°•°ž° hË15hË15OJQJ hË1OJQJ hË1H* hË1H*hË1 h"p

OJQJh/tØh"p

56h[§

h"p

h"p

h"p

h4 Ïh"p

CJaJ h4 Ïh4 ÏCJaJ h4 ÏCJ aJ h"p

h"p

5CJ aJ 8.D¢¤ØÚT ¨ ¾ æ (
*
L
v
x
— ˜ · Î ê "DEêóóóëæëëÛÛÛÛëëëëëëëëëëëëëë
$
&
Fa$gd‚1gd/tØ $a$gd‚1

$7$8$H$a$gd4 Ïêì\^xà(rtB¢Ê:dÐ=\­ÜÝÒ~ÔÖ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ $a$gd‚1ªÀÄØð:@V^rˆÐØî

#&=Aco‘´¿VXpvÒø~‚ÖêìV`¼Æô

!!N!\!®!°!Â!"¢"\#p#ì#î#ø# $$˜%¢%Î%ü÷üïüêü÷üïüêü÷üïüæüêüïüêüïüÝüïüïüÝüêüêüÖüÖüÖüêÖüÖÇÀÖÀÖÀÖÇü¶¬¶¨£¨ h‚15h‚1h/tØhË156h/tØh‚156

hË1hË1hË1hË1CJOJQJaJ

h/tØhË1hË15OJQJhsGŸ hË15 hË1OJQJ hË16hË1@ÖìUV`»¼Æò ô

!!L!N!\!®!°!Â!Ž""¢"Z#\#p#ì#î#$÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ê÷÷÷÷÷÷÷÷ê÷÷
-D

ÿÿÿÿgd‚1 $a$gd‚1$Ð%Ò%â)ä)ì*x+z+è+J,L,d,t,¼,¾,Ü,l-n-‚-...:.;.B.{.|.‚.÷÷÷÷÷÷÷÷í÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷

Æ7Sgd‚1 $a$gd‚1Î%Ð%R'j'((@(D(†)Ž))D+F+p+t+x+z+è+J,L,d,t,¾,Ü,n-‚-..;.B.[.\.s.t.|.‚.¿.Æ.//D/E/W/T1V1œ1ž1ª5¬5*8.8D8Z8„8&:@:N:š:¨:Z;n;0<÷óîóéóéóäÜóéóéó×óÈóÀ¹ó¹ó¹ó¹ó¹óéó²ó¹ó¹ó¹ó®¤óéóœó×ó×ó×¹ó×¹ó¹ó¹óh‚1B*phÿh/tØh‚156hË1

j@ðh‚1

h/tØh‚1h‚1h‚15h‚1h‚1CJOJQJaJ h‚15h‚1B*
ph€€ h‚1>* h‚1H* h‚16h‚1h‚1h‚16=‚.¾.¿.Æ.///D/E/W/1d3f3ª5¬5b68B8D8Z8„8&:(:@:N:˜:š:¨:÷÷÷÷÷÷÷÷÷è÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ $
Æ
7S€€€a$gd‚1 $a$gd‚1¨:X;Z;n;.<0<@<Ž<< <ê<ì<
=N>P>4@6@æ@è@'B(B2B4B:B÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷çç$¤( ¤($Ifa$gd/å $a$gd‚10<@<Ž<< <ì<
=¸=Æ=´>¼>È>Ò>Ò?Ü?&@.@4@6@°@¸@Ê@Ô@æ@è@(B,B1B2B4B7BTBWB™BœBèBêB5C7CC„CÖCÙC$D.D5DsD’D“DÄDËDâDëDEE G,G.GVGXGZGH€ €Ò‚0…J…^…Ø…ùõðùõæõðõáõáõáõáõðõáõáõðõðõðõðõðõðõðõðõðõðõÙùõÏæËÆËÆË¾Ë¾Ë¾Ë¾Ë¼ËµËÆ®Ë

h/tØh:œ

h:œh:œU h:œOJQJ h:œ5h:œh/tØh:œ56h‚1h‚15 h‚16h/tØh‚156 h‚15h‚1

h/tØh‚1D:B;BABFB}}$¤( ¤($Ifa$gd/åqkd$$If–FÖÖ0ºÿnÜ´nÖ0ÿÿÿÿÿÿ öööÖÿÿÖÿÿÖÿÿÖÿÿ4Ö
FaöFBGBLBRB}}$¤( ¤($Ifa$gd/åqkd›$$If–FÖÖ0ºÿnÜ´nÖ0ÿÿÿÿÿÿ öööÖÿÿÖÿÿÖÿÿÖÿÿ4Ö
FaöRBSBTB“B•B—BŸB……uuu$¤( ¤($Ifa$gd/å $a$gd‚1qkd6$$If–FÖÖ0ºÿnÜ´nÖ0ÿÿÿÿÿÿ öööÖÿÿÖÿÿÖÿÿÖÿÿ4Ö
FaöŸB B¦B¬B²Bzjjj$¤( ¤($Ifa$gd/å„kdÑ$$If–FÖÖFºÿnÜØ
´nüÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
Faö²B³B¹B¾BÄBzjjj$¤( ¤($Ifa$gd/å„kd‚$$If–FÖÖFºÿnÜØ
´nüÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöÄBÅBÊBÐBÖBzjjj$¤( ¤($Ifa$gd/å„kd3$$If–FÖÖFºÿnÜØ
´nüÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöÖB×BÜBáBæBzjjj$¤( ¤($Ifa$gd/å„kdä$$If–FÖÖFºÿnÜØ
´nüÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöæBçBèB/C1C3C:Czrrbbb$¤( ¤($Ifa$gd/å $a$gd‚1„kd•$$If–FÖÖFºÿnÜØ
´nüÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
Faö:C;CACGCMCzjjj$¤( ¤($Ifa$gd/å„kdF$$If–FÖÖFºÿnÜf ´nŠÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöMCNCTCYC^Czjjj$¤( ¤($Ifa$gd/å„kd÷$$If–FÖÖFºÿnÜf ´nŠÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
Faö^C_CdCjCoCzjjj$¤( ¤($Ifa$gd/å„kd¨$$If–FÖÖFºÿnÜf ´nŠÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöoCpCuCzCCzjjj$¤( ¤($Ifa$gd/å„kdY $$If–FÖÖFºÿnÜf ´nŠÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöC€CCÐCÒCÔCÜCzrrddd $¤($Ifa$gd/å $a$gd‚1„kd
$$If–FÖÖFºÿnÜf ´nŠÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöÜCÝCãCéCïCzjjj$¤( ¤($Ifa$gd/å„kd»$$If–FÖÖFºÿnܸ´nÜÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöïCðCöCûCDzjjj$¤( ¤($Ifa$gd/å„kdl $$If–FÖÖFºÿnܸ´nÜÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöDDD

DDzjjj$¤( ¤($Ifa$gd/å„kd
$$If–FÖÖFºÿnܸ´nÜÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
FaöDDDD"Dzjjj$¤( ¤($Ifa$gd/å„kdÎ
$$If–FÖÖFºÿnܸ´nÜÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
Faö"D#D$D.D5DrDsD“DˆFŠF €"€zkccccckkkk $a$gd:œ $
Æ
7S€€€a$gd:œ„kd
$$If–FÖÖFºÿnܸ´nÜÖ0ÿÿÿÿÿÿ öööÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿÖ

ÿÿÿ4Ö
Faö
ül egymás után.

Mqveletek segítségével kifejezéseket alkothatunk. A karakterlánc kifejezések alkotását egy mqvelet, az összefqzés, idegen eredetq szóval konkatenálás segíti. Ennek a jele a +.

Karakterlánc típusú operandusokra elvégezhetQk a relációs mqveletek, melyek természetesen logikai értéket eredményeznek. Nagyon kényelmes jellemzQje a Pascal nyelvnek, hogy két karakterlánc relációját az elsQ különbözQ karakter ASCII kódja alapján állapítja meg.

A karakterláncoknak hozzáférhetünk az egyes karaktereihez az indexelés segítségével, például S1[5] az S1 karakterlánc 5. karakterét jelenti. Az így kapott objektum egyenértékq egy karakteres változóval.

Függvények:
Length(I)
A paraméterben megadott karakterlánc hosszával tér vissza.

2. Kifejezések:
A kifejezések formálisan operandusokból, mqveleti jelekbQl (operátorok) és kerek zárójelekbQl épülnek fel. Az operandusok konstansok (pl. 2), változók (pl. x, alfa) és függvényhívások (pl. sin(alfa)) lehetnek. A kifejezések egy értéket képviselnek, amely meghatározását nevezzük kiértékelésnek. A mqveletek kiértékelésének sorrendjét precedenciájuk (prioritásuk, elsQbbségük) szabja meg. A Pascal nyelv precedencia szintjei az alábbiak:
NOT, +, -, @ (egy operandusú mqveletek)
*, /, DIV, MOD, AND, SHL, SHR
+, -, OR, XOR
<, >, <=, >=, <>, =, IN
Azonos prioritás esetén a rendszer balról jobbra haladva végzi el a mqveleteket. A prioritást megtörhetjük kerek zárójelek alkalmazásával. (Ellentétben a matematikában megszokottal, itt csak kerek zárójeleket használhatunk, de akármilyen mélységig egymásba ágyazhatjuk Qket.)
A Pascal szigorúan típusos nyelv, minden konstansnak, változónak és így a kifejezésnek is van típusa.

3. Utasítások:
- Értékadó utasítás
A leggyakrabban használt utasítással, ahogy a neve is mutatja, egy változónak adhatunk új értéket. Szintaktikája (nyelvtana) :
változó := kifejezés

Példa:
x := 2 * ( x + y ) + sin(alfa)

Az értékadás jele a :=, a bal oldalán mindig egy változónak kell állnia, a jobb oldalán pedig egy kifejezésnek.

- if utasítás
Az if-then-else utasítás kétirányú feltételes elágazást hajt végre. Az utasítás szintaktikája:

if feltétel then utasítás1 [else utasítás2]

ahol a feltétel egy logikai kifejezés. Ha a feltétel igaz, akkor az utasítás1 hajtódik végre, egyébként az utasítás2 (kétágú szelekció). Az else ág elhagyható, ilyenkor ha a feltétel hamis, akkor az utasítás1 kimarad, a program a következQ utasítással folytatódik (egyágú szelekció).
Láthatjuk, hogy az if-then-else utasítás maga is tartalmaz utasításokat, ezért ezen utasítás már a strukturált utasítások csoportjába tartozik, szemben az eddig tanult egyszerq utasításokkal (értékadó utasítás, eljárás hívás).

- case utasítás
A Pascal másik szelekciós utasításával, a case utasítással könnyen megoldhatjuk a programunk többirányú elágaztatását.
A case utasítás általános szintaktikája:

case kifejezés of
érték1: utasítás1;
érték2: utasítás2;
...
értékN: utasításN;
[else
különben_utasítás]
end;

A case kulcsszó után álló kifejezés (az utasítás szelektora) csak sorszámozott típusú lehet (gyakori esetben egy változó). Az érték1, érték2,... értékN ún. esetkonstansok a szelektor lehetséges értékeit jelölik. Ha a kifejezés értéke megegyezik valamelyik konstans értékével, akkor a program végrehajtása a konstans után kettQsponttal megadott utasítással folytatódik tovább. Ha a szelektor értéke egyik konstanssal sem egyezik meg, akkor a program az else ág utáni utasítással, vagy annak elhagyása esetén a case utáni utasítással folytatódik. A case szerkezetet az end kulcsszóval kell lezárnunk.
Egy ághoz több értéket is felsorolhatunk vesszQvel elválasztva, illetve intervallumot (intervallumokat) is megadhatunk. Ha egy esethez, ághoz több utasítás is tartozik, akkor azokat a begin-end kulcsszavak közé kell zárnunk, mint ahogy azt az if utasításnál már láttuk. Természetesen az egyes ágakban bármilyen utasítások állhatnak.

- KezdQfeltételes ciklus
A kezdQfeltételes, más elnevezéssel elöltesztelQ feltételes ciklus esetén a program a ciklus utasításainak végrehajtása elQtt vizsgál egy feltételt, amelynek teljesülése esetén végrehajtja az utasításokat. A ciklusnak a feltételt tartalmazó, vezérlQ részét ciklusfejnek nevezzük, az ismételten végrehajtott, azaz iterált utasításokat pedig ciklusmagnak. A Pascal nyelv elöltesztelQ feltételes ciklusa a while utasítás, melynek általános alakja a következQ:

while feltétel do
utasítás

A ciklus mqködése tehát a következQ: amíg a feltétel igaz, addig a program ismétli a ciklus magját (az utasítást), ha hamis, akkor a program a ciklust követQ következQ utasítással folytatódik. A feltétel egy logikai (boolean) kifejezés. Ha több utasítás szerepel a ciklus magjában, akkor Begin - End összetett utasítást (utasítás zárójelet) kell alkalmaznunk. Ha a feltétel már elQször sem teljesül, akkor a ciklusmag egyszer sem kerül végrehajtásra (üres ciklus), ha pedig a feltétel soha nem vesz fel hamis értéket, akkor a program végtelen ciklusba kerül. A feltétel gyakran egy reláció, például X > 0. Ekkor könnyen belátható, hogy a ciklusmagban kell lennie egy olyan utasításnak, amely megváltoztatja az X értékét. Máskülönben, ha az X kezdetben pozitív volt, akkor az is marad, azaz a program végtelen ciklusba kerül.

- Végfeltétel ciklus
Itt az iterációt vezérlQ feltételt a program a ciklusmag végrehajtása után értékeli ki, amelybQl az következik, hogy a ciklusmag legalább egyszer végrehajtódik. Ez az egyetlen lényegi különbség a kezdQfeltételes ciklushoz képest. A while és a repeat ciklust hasonló típusú feladatok megoldására használhatjuk (azaz olyankor, amikor nem tudjuk elQre az ismétlések számát), esetleg az egyik egy kicsit kényelmesebb megoldást nyújt. A repeat- until ciklus általános alakja:

repeat
utasítás(ok)
until feltétel;

Az utasítás(ok) végrehajtását meg kell ismételni, ha a feltétel hamis. Ha a feltétel igaz, a program a ciklus utáni utasítással folytatódik. A ciklusmagot a repeat - until kulcsszavak fogják közre, nem szükséges Begin - End utasítás zárójelet használnunk.

- Növekményes ciklus
A növekményes ciklust (hívják még számláló ciklusnak is), akkor használjuk, ha elQre meghatározott a ciklusmag végrehajtásainak a száma. Ezt a ciklust szinte minden programozási nyelvben a for szócska jelöli. A Pascalban a for ciklus szintaktikája:

for ciklusváltozó := kezdQérték to végérték do
utasítás;

vagy

for ciklusváltozó:=kezdQérték downto végérték do
utasítás;

ahol a ciklusváltozó sorszámozott típusú változó, a kezdQérték és a végérték pedig sorszámozott típusú kifejezések, mind a három azonos vagy kompatíbilis típusú. A ciklusváltozó a kezdQértéktQl a végértékig egyesével nQ (to) vagy csökken (downto). Az utasítás (vagy a begin - end utasítás zárójelek közé zárt utasításcsoport) a ciklusváltozó minden értékénél végrehajtódik. ElöltesztelQ ciklus, így ha a kezdQérték > végérték (to esetén), vagy a kezdQérték < végérték (downto esetén), akkor a ciklusmag egyszer sem kerül végrehajtásra (üres ciklus).









 PAGE \* MERGEFORMAT 5










Hasonló témájú dokumentumok
Egyelőre még egyetlen hasonló témájú file sincs feltöltve a rendszerbe
A mások által feltöltött dokumentumokat értékelheted. Ha úgy ítéled meg, hogy a vizsgára való felkészülés szempontjából hasznos volt egy dokumentum, akkor adj rá sokcsillagos értékelést.
Ha hibákat tartalmaz, vagy egyéb probléma van vele, akkor keveset.
A dokumentumok sorrendje az értékelések alapján adódik. Ami fentebb van a listában, azt hasznosabbnak ítélték társaid. Az új dokumentumok pedig (értékelések hiányában) szintén a lista tetején kezdenek.

Hozzászólások

Ha észrevételed van egy dokumentummal kapcsolatban (például hibát találtál benne), akkor a Hozzászólások részben jelezheted. Az olyan jellegű kérdéseket mint pl.: A 2. feladat 4. sorából milyen átalakítással jutottunk az 5. sorban szereplő képlethez? - szintén ide érdemes írni
Egy tipp az oldalhoz! - Sikeres vizsga után írd meg tapasztalataid a tantárggyal, vizsgával kapcsolatban. Miből érdemes tanulni, mennyi készülés kell, milyen volt a vizsga... Ha mindenki így tesz, sokkal egyszerűbb lesz elkezdeni a tanulást egy olyan ember tapasztalatainak a birtokában, aki már elvégezte a tantárgyat. Ehhez kattints a tantárgyra a Tanulmányaimban, majd a Véleményem a tárgyról linkre a jobb felső részen.

Cimkefelhő

10.16-2 11.05-2 2.zh 2008_12_17 2011 4.óra adóigazgatás államháztartás állampolgárság apoptózis beruházási függvény biokémia biztonságpolitika civilisztika fejlődés feladatsor felvilágosodás flaubert gazd.töri tétel6 géntech hrabal infoii japán jegyzőkönyv kidolgozott anyag koncentráció konzultáció közgazdaságtan fő áramlata lophotrochozoa madarak marketing2 tétel matek 1 matematika szigorlat művészet nemzeti kisebbség ókori kelet ollmann oop ptk rezgéstan sorozat szervezeti magatartás társadalom történet természetvédelmi biológia tételsor tóth tudomány utazás valószínűség védett területek