{=== Programoz s alapjai === Vizsga - 1999. 1. 6. === V-990106.txt Minden sz mozott feladat megold s t kl”n lapra Ąrja! Minden lapnak csak az egyik fel‚re Ąrhat. Minden lap tetej‚re Ąrja fel balra a feladat sz m t, jobbra a nev‚t ‚s k˘dj t! A megold shoz haszn lhat bels“ elj r sokat ‚s fggv‚nyeket, de csak ezek haszn lhatnak glob lis v ltoz˘t, a feladatk‚nt kapott elj r sok illetve fggv‚nyek nem. --------------------------------------------------------------------------- 1. [ 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 --- for e1:=-3 div 2 to 33 mod 13 do if odd (e1) then write (e1+1 :3); writeln; --- B --- ch1:='0'; with rect[1] do begin nev:='AB'; suly:=5; end; with rect[3] do begin nev:='CD'; suly:=7; end; with rect[2] do begin nev:='BC'; suly:=6; end; for e1:=1 to 2 do for e2:=e1+1 to 3 do if rect[e2].nev < rect[e1].nev then begin e3:=rect[e1].suly; rect[e1].suly:=rect[e2].suly; rect[e2].suly:=e3; end; for e3:=1 to 3 do with rect[e3] do writeln (nev, suly:3); --- C --- new(m1); new(m2); new(m3); m1^.lanc:=m2; m2^.lanc:=m3; m3^.lanc:=m2; new(m2); m2^.lanc:=m3; m3^.lanc^.lanc:=m2; m2:=m1; for e1:=1 to 6 do begin m2^.kulcs:=e1; m2:=m2^.lanc; end; for e1:=1 to 4 do with m3^ do begin write (kulcs:3); m3:=lanc; end; writeln; --- D --- e1:=12; e2:=3; repeat s(e1,e2); e1:=e1+3; until f(e1,e2); writeln; -------------------------------------------------------------------------- 2. [ 2 pont ] Adott a k”vetkez“ definĄci˘: type mut = ^elem; elem = record { ... } bal, jobb :mut; end; Milyen adatszerkezeteket lehet ezzel k‚szĄteni? Mit csin lna a k”vetkez“ elj r s, ha j˘ lenne? Adja meg a hib it ‚s javĄtsa ki azokat! procedure MiEz (m :mut); begin with m^ do begin if bal <> nil then MiEz (bal); MiEz (jobb); dispose (m); m:=nil; { : Err“l tudjuk, hogy biztosan j˘!} end; end; -------------------------------------------------------------------------- 3. [ 2 pont ] K‚szĄtsen teljes programot, amely beolvas egy legfeljebb 100 elem– val˘s sz msorozatot, majd kiĄrja annak legnagyobb ”sszeg–, egym s melletti elemekb“l  ll˘ r‚szsorozat t! Ez a szakasz ak r nulla hosszŁ is lehet! Pl. ha a sz msorozat: -2 3 -1 4 -2, akkor a megold s: 3 -1 4, ha pedig a sorozat: -1 -2 -3, akkor a megold s: (azaz semmi!). ============================ BEUGR• VGE ================================= 4. [ 1.5 pont ] Adottak a k”vetkez“ definĄci˘k: type mutt = ^ elem; elem = record {....;} kov :mutt; end; K‚szĄtsen fggv‚nyt, amely eld”nti, hogy egy ilyen elemekb“l  ll˘ l ncban van-e hurok. -------------------------------------------------------------------------- 5. [ 2.5 pont ] Adott nevek ‚s szlet‚si adatok egy sz”veg-file-ja, egy-egy sor nak alakja pl: Kiss Karcsi 1980 2 29 K‚szĄtsen teljes programot, amely a szabv nyos input  llom nyb˘l beolvas ilyen adatokat (egy n‚v pontosan 2 sz˘, benne legfeljebb 30 karakter van), majd szlet‚si d tum szerint n”vekv“ sorrendben kiĄrja a szabv nyos outputra. Tudjuk, hogy az adatok elf‚rnek a mem˘ri ban. A file-t csak egyszer olvashatja be!