{===== Programtervez‚s P˘tz rthelyi --- 1999. 12. 16. ===== PZ991216.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, k˘dj t, tank”rsz m t valamint laborcsoportja id“pontj t ‚s term‚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‚ny nem. --------------------------------------------------------------------------- 1. [ 1-1 pont ] Meg kell  llapĄtani, hogy az al bbi program hat s ra mi fog kiĄr˘dni. Az is fontos, hogy mi kerl Łj sorba ‚s hogy hol vannak sz˘k”z”k. Csak a t‚nylegesen kiĄrt sz”veget adja be, a saj t jegyzeteit ne! PROGRAM P1; 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; BEGIN writeln('--- A ---'); 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; writeln('--- B ---'); 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 4 do begin write(m1^.kulcs:3); m1:=m1^.lanc; end; writeln; writeln('--- C ---'); for e2:=1 to 10 do t1[e2]:= 11-e2; for e1:=1 to 3 do begin e2:=t1[e1]; t1[e1]:=t1[11-e1]; t1[11-e1]:=e2; end; for e1:=1 to 10 do write (t1[e1] :3); writeln; writeln('--- D ---'); e1:=7; e2:=4; while not f(e1,e2) do s(e1,e2); writeln(e1:3, e2:3); END. -------------------------------------------------------------------------- 2. [2 pont] Adottak a k”vetkez“ definĄci˘k: const M = 123...; type tt = array [0..M] of integer; A tt tĄpusŁ t”mb 1...n-edik elem‚ben rendezetlenl t rolunk adatokat, ‚s tudjuk, hogy n <= M. K‚szĄtsen fggv‚nyt, amely megadja, hogy a param‚terk‚nt kapott tt tĄpusŁ t”mb h nyadik elem‚ben t rolunk egy, szint‚n param‚terk‚nt adott ‚rt‚ket, ha pedig nincs ilyen eleme, akkor null t ad vissza. V lasszon megfelel“ param‚tereket ‚s magyar zza meg azokat. -------------------------------------------------------------------------- 3. [2 pont] K‚szĄtsen programot, mely beolvas legfeljebb 100 val˘s sz mot, majd kiĄrja, hogy ezek k”zl h nyadik a medi n, ami az a sz m, amelyn‚l ugyanannyi nagyobb van k”z”ttk, mint kisebb, vagy ezek sz ma legfeljebb eggyel kl”nb”zik egym st˘l. ============================ BEUGR• VGE ================================= 4. [1.5 pont] Egy M1 * M2 m‚ret–, val˘s sz mokb˘l  ll˘ t”mb bal fels“ n1 * n2 m‚ret– r‚sz‚ben egy fellet h“m‚rs‚kleti adatait t roljuk. K‚szĄtsen elj r st, mely meghat rozza meg annak a pontnak az indexeit, amelynek h“m‚rs‚klete a legjobben elt‚r a k”rnyez“ 8 pont hom‚rs‚glet‚nek  tlag t˘l! V lasszon megfelel“ param‚tereket, ‚s magyar zza meg azokat! -------------------------------------------------------------------------- 5. [2.5 pont] K‚szĄtsen teljes programot, amely egy file-b˘l beolvassa az ellopott szem‚lyg‚pkocsik adatait (rendsz m, alv zsz m, motorsz m), ‚s ellen“rzi, hogy egy m sik file-ban adott aut˘k adatai k”z”tt van-e olyan, amelyiknek b rmelyik adata megegyezik az ellopottak valamelyik‚vel, ‚s kiĄrja ennek adatait, valamint azt, hogy milyen adat egyezik! Nem tudjuk el“re a file-ok hossz t, de azt igen, hogy az els“ file tartalma elf‚r a mem˘ri ban, a m sodik pedig nem. A file-ok nem rendezettek, ‚s tartalmukat csak egyszer olvashatja be. V lasszon megfelel“ adatszerkezeteket ‚s magyar zza meg azokat!