{======= Programoz s ====== P˘tbesz mol˘ - 1996. 01. 02. ==== Pz960102.txt Minden sz mozott feladat megold s t kl”n lapra Ąrja! Minden lapnak csak az egyik fel‚re Ąrhat. A lap tetej‚re Ąrja fel balra a feladat sz m t, jobbra a nev‚t ‚s tank”r‚t! A megold shoz haszn lhat bels“ elj r sokat ‚s fggv‚nyeket. Egyik elj r s vagy fggv‚ny sem haszn lhat glob lis v ltoz˘t. =========================================================================== 1. Feladat ------------------------------------------------------ 1-1 pont Meg kell  llapĄtani, hogy az al bbi programr‚szek hat s ra mi fog kiĄr˘dni. Az is fontos, hogy mi kerl Łj sorba. Csak a v‚gleges megold st adja be! A r‚szletek egy olyan programban helyekednek el, amelynek a deklar ci˘s r‚sze a k”vetkez“: < v-def.pas > A) ------------------------------------------------------------------------ new(m1); m1^.lanc:=nil; m1^.kulcs:=5; for e1:=1 to 3 do begin m2:=m1; new(m3); m3^:=m2^; m2^.kulcs:=e1; m2^.lanc:=m3; end; m3^.lanc:=m1^.lanc; for e1:=1 to 3 do begin write(m1^.kulcs:3); m1:=m1^.lanc; end; writeln; B) ------------------------------------------------------------------------ h1:=[ord(alberlet)..pred(ord(kastely))]; h2:=[11..30]; h3:=h2+h1; for e1:=1 to 11 do if e1 in h3 then if e1 in h1 then write('a') else write('b'); writeln; C) ------------------------------------------------------------------------ e1:=22; e2:=3; while not f(e1,e2) do s(e1,e2); writeln; D) ------------------------------------------------------------------------ e1:=3; e2:=0; b1:=e1<=e2; t2[1,1]:=b1; t2[1,2]:=t2[1,1] or (e1 mod 2=1); t2[2,1]:=t2[1,1] and t2[1,2]; t2[2,2]:=not t2[2,1] or t2[1,2]; for e1:=2 downto 1 do for e2:=1 to 2 do write(t2[e1,e2]:8); writeln; E) ------------------------------------------------------------------------ for e1:=1 to 10 do read (t1[e1]); {Bem. adatok: 1 9 3 6 3 5 6 7 0 2 } e1:=1; e2:=10; repeat while t1[e1] < t1[e2] do begin e1:=e1+1; e2:=e2-1; end; e3:=t1[e1]; t1[e1]:=t1[e2]; t1[e2]:=e3; e1:=e1+1; e2:=e2-1; until e1>e2; for e1:=1 to 10 do write(t1[e1]:4); writeln; F) ------------------------------------------------------------------------ v1:=2.2; v2:=v1+4.4; v3:=round(v1+v2) / trunc(v2); b1:=v3 > v2; b2:=true; b3:=b1 >= b2; b1:=b1 in [true..false]; writeln (b1:6, b2:6, b3:6); 2. Feladat ------------------------------------------------------ 3 pont K‚szĄtsen elj r st, amely ugyanazt csin lja, mint az al bbi, de rekurzi˘ n‚lkl! Vigy zat: ak r maxint ‚rt‚k‚t is kezelni kell tudni, ‚s nem tudjuk el“re, hogy maxint h ny jegy–! procedure P2 (n :integer); begin if n>9 then P2(n div 10); write(n mod 10 :1); end; 3. Feladat ------------------------------------------------------ 3 pont Adottak a k”vetkez“ definĄci˘k: TYPE PONT = RECORD X, Y :REAL; END; SZAKASZ = RECORD ELEJE, VEGE :PONT; END; K‚szĄtsen programot, amely egy SZAKASZ -okb˘l  ll˘ file-b˘l beolvassa szakaszok adatait, majd a szabv nyos kimenetre ‚s kiĄrja, hogy h nyadik szakasz volt a legr”videbb. ============================== BEUR• VGE ============================== 4. Feladat ------------------------------------------------------ 2 pont Egy l‚git rsas g sz mĄt˘g‚pen t rolja az utaslist kat. Az ”sszesĄtett adat llom ny minden utas minden Łtj r˘l egy-egy bejegyz‚st tartalmaz. Egy bejegyz‚s szerkezete a k”vetkez“: J rat sz ma - 8 karakter D tum - 6 karakter : ‚‚hhnn Utas neve - 32 karakter L‚gi km - eg‚sz sz m Jelleg - Szolg lati / Mag n Tervezzen megfelel“ file-tĄpust! K‚szĄtsen PASCAL programot, amely kikeresi, ‚s a szabv nyos kimenetre kiĄrja a mag nŁton legnagyobb ”ssz-t vols got replt k‚t utas nev‚t, valamint legut˘bbi Łtjuk d tum t. Tudjuk, hogy az ”sszes adat nem f‚r el a mem˘ri ban, de az utasonk‚nt t‚nyleg szks‚ges egy-egy rekord elf‚r. 5. Feladat ------------------------------------------------------ 2 pont K‚szĄtsen fggv‚nyt, mely eld”nti, hogy az adott Pascal megval˘sĄt sban a karakterek ‚rt‚kei megfelelnek-e a Pascal nyelv szabv ny nak! R”viden magyar zza is meg m˘dszer‚t! (Tudjuk, hogy az angol ABC-ben 26 bet– van.)