{======= Programoz s ====== El“-NZH - 1996. 10. 15. ==== Pz961015.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“: A) ------------------------------------------------------------------------ writeln; write(' '); ch1:=chr(succ(ord(succ('0')))); e1:=0; for ch2:=ch1 to '5' do e1:=succ(e1); writeln(e1); B) ------------------------------------------------------------------------ for e1:=1 to 3 do begin t1[e1]:=e1; t1[2*e1]:=-e1; end; t1[5]:=0; for e1:=1 to 6 do for e2:=1 to 6-e1 do if t1[e2]>t1[e2+1] then begin e3:=t1[e2]; t1[e2]:=t1[e2+1]; t1[e2+1]:=e3; end; for e1:=1 to 6 do write(t1[e1],' '); writeln; C) ------------------------------------------------------------------------ e1:=1; h1:=[5..10,3..1]; repeat readln(e2); if e2 in h1 then e1:=e1+e2; until e1>20; writeln(e1:5); A bemen“ adatok (az res hely egy sz˘k”zt jelent): 2 3 4 5 6 7 8 9 10 2 3 4 5 6 7 8 9 10 D) ------------------------------------------------------------------------ new(m1); m1^.lanc:=nil; m1^.kulcs:=5; for e1:=1 to 5 do begin m2:=m1; new(m3); m3^:=m2^; m2^.kulcs:=e1; m2^.lanc:=m3; end; m3^.lanc:=m1^.lanc; for e1:=1 to 6 do begin write(m1^.kulcs:3); m1:=m1^.lanc; end; writeln; E) ------------------------------------------------------------------------ e1:=22; e2:=3; while not f(e1,e2) do s(e1,e2); writeln; F) ------------------------------------------------------------------------ h1:=[1..3]; h2:=[25..30]; repeat e1:=0; while not (e1 in h1) do e1:=succ(e1); h1:=h1-[e1]; e1:=e1+1; while e1 in h1 do e1:=e1+1; h1:=h1+[e1]; until h1 <= h2; writeln(e1); 2. Feladat ------------------------------------------------------ 3 pont K‚szĄtsen teljes programot, amely a szabv nyos bemeneten beolvasott sz”veg sorait 80 karakteren, k”z‚pre igazĄtva Ąrja ki a szabv nyos kimenetre. Tudjuk, hogy egy beolvasott sor sem hosszabb 80 karaktern‚l. 3. Feladat ------------------------------------------------------ 3 pont Adottak a k”vetkez“ tĄpusok: TYPE mut = ^ rec; rec = record kulcs :real; bal,jobb :mut; end; Deklar ljon fggv‚nyt, amely megadja egy rec elemtĄpusŁ bin ris f ban a legnagyobb kulcsŁ elem pointer‚t. Nem tudjuk, hogy a fa rendez“fa-e. ============================== BEUGR• VGE ============================== 4. Feladat ------------------------------------------------------ 2 pont Deklar ljon olyan gyorsrendez‚si elj r st, amely a hasonlĄt si alap-‚rt‚ket az adott intervallum legfeljebb 5, egym st˘l a lehet“ legt volabb lev“, kl”nb”z“ index– elem‚b“l sz mĄtja ki. 5. Feladat ------------------------------------------------------ 2 pont Adott k‚t, eg‚sz adatokb˘l  ll˘ file, melyek mindegyike kl”n-kl”n n”vekv“ sorrendbe rendezett. K‚szĄtsen programot, amely ezek ‚rt‚keit tov bbi k‚t file-ba v logatja, egyikbe a k‚t bemeneti file-ban megegyez“ ‚rt‚kek kerljenek, mindegyik csak egyszer, a m sikba a kl”nb”z“ek.