{===== Programoz s alapjai Vizsga - 2001. 10. 3. ====== V-011003.txt ===== Minden sz mozott feladat megold s t kl”n A4-es lapra Ąrja! Minden lapnak csak az egyik fel‚re Ąrhat. A lap tetej‚n balra Ąrja fel a feladat sz m t, jobbra a nev‚t, Neptun k˘dj t, tank”rsz m t, valamint gyakorlatvezetoje nev‚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 ‚s 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“: const n=2; type tomb =array [1..n] of boolean; r =record nev :packed array [1..2] of char; suly :integer; end; rectomb =array [1..3] of r; halmaz =set of 1..30; mutato =^lancrec; lancrec =record kulcs :1..40; lanc :mutato; end; lakas =(alberlet,tarsberlet,foberlet,orok,kastely); var e1, e2, e3 :integer; m1, m2, m3 :mutato; v1, v2, v3 :real; b1, b2, b3 :boolean; ch1, ch2, ch3 :char; rect :rectomb; t1 :array [1..10] of integer; t2 :array [1..n] of tomb; l1, l2 :lakas; h1, h2, h3 :halmaz; procedure s (var j :integer; k :integer); var e1 :integer; begin e1 := j+1; j := j div k; k := k-e1; writeln (e1:4, j:4, k:4); end; function f (l ,m :integer) :boolean; begin f := l+m<10; end; --- A --- e2:=0; while not eof do begin readln(e1); if e1 in [1..4] then e2:=e2+1; end; writeln(e2:3); A bemen“ adatok (A _ a sz˘k”z jele.) e e e o o oe l l lo _9__1_n_4_3n_+2__+1nf --- B --- e3:=0; for l1:=alberlet to kastely do begin e2:=0; repeat e2:=e2+2; until e2>= ord(l1); e3:=e3+e2; end; writeln(e3:3); --- C --- 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]:6); writeln; --- D --- new(m1); m1^.kulcs:=40; m1^.lanc:=nil; repeat read (e1); m2:=m1; while m2^.kulcsnil do begin write (m2^.kulcs:6); m2:=m2^.lanc; end; Bemeneti adatok: 5 3 4 0 --- E --- e1:=5; e2:=6; s(e1,e2); if f(e1,e2) then writeln(e2:3) else writeln(e1:3); --- F --- with rect[1] do begin nev:='01'; suly:=2; end; with rect[2] do begin nev:='03'; suly:=4; end; with rect[3] do begin nev:='05'; suly:=6; end; for e1:=1 to 2 do for e2:=1 to 2 do if ord(rect[e2].suly) >= ord(rect[e1].suly) then writeln(e1:3,' ',e2:3); writeln; -------------------------------------------------------------------------- 2. [3 pont] Egy ruhaanyagb˘l m r kiv gtak n‚h ny mint t, a megmaradt r‚szket egy N1*N2 m‚retu boolean elemu t”mb Ąrja le, ami ott igaz, ahol m‚g van anyag. A kiv gand˘ mint t egy olyan M1*M2 m‚retu, boolean elemu t”mb Ąrja le, mely ott igaz, ahol a mint ban kell, hogy legyen anyag. N1, N2, M1 ‚s M2 is konstans. K‚szĄtsen fggv‚nyt, amely megadja, hogy a mint t el lehet-e helyezni az anyagon, hogy hi nytalanul ki lehessen v gni belole, ‚s azt is, hogy ekkor anyag mely X, Y pontj ra kerlj”n a minta 1,1 indexu sarka! V lasszon megfelelo param‚tereket ‚s magyar zza meg azokat, valamint a megold s t is! -------------------------------------------------------------------------- 3. [3 pont] K‚szĄtsen teljes programot, mely beolvas egy pozitĄv eg‚sz sz mot, majd kiĄrja azokban a sz mrendszerekben, melyekben palindr˘ma, azaz oda ‚s visszafel‚ olvasva ugyanazt adja. Pl.: 45 2 szamrendszerben 101101 8 szamerendszerben 55 ==================== BEUGR• VGE ===== Min. pontsz m = 7.2 =============== 4. [1.5 pont] -------------------------------------------------------------------------- 5. [1.5 pont] K‚szĄtsen programot, mely adott pontoss ggal megadja, hogy egy haj˘n adott merul‚s eset‚n milyen sŁlyŁ a rakom ny. Adott a haj˘ ”nsŁlya ‚s a function Terlet (merules :real) :real; fggv‚ny, mely adott merl‚shez megadja a haj˘ vĄzvonaln l m‚rt kereszt- metszet‚t. V laszon hat‚kony m˘dszert ‚s magyar zza meg azt! -------------------------------------------------------------------------- 6. [1 pont] Mint tudjuk, a gyorsrendez‚sben az okozhat kis hat‚konys got, ha a referenciaelem az adott szakaszban ‚ppen a legkisebb, vagy legnagyobb. Ennek elkerl‚s‚re k‚szĄtsen olyan m˘dosĄtott gyorsrendezo elj r st, mely M-n‚l hosszabb szakasz rendez‚s‚hez annak K, v‚letlenszeruen kiv lasztott eleme  tlag t haszn lja referencia ‚rt‚knek, ahol M ‚s K konstans, M-n‚l r”videbb szakasz eset‚n pedig a szok sos m˘don muk”dik. A megold shoz haszn lhatja a function Veletlen (max :integer) :integer; fggv‚nyt, mely 1 ‚s max k”z”tti, egyenletes eloszl sŁ  lv‚letlen ‚rt‚ket ad. --------------------------------------------------------------------------