{=========== Programoz s alapjai - Vizsga: 1994.12.20. ==========} 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 a tank”r‚t! A megold shoz haszn lhat bels“ elj r sokat ‚s fggv‚nyeket. A feladatk‚nt megĄrand˘ elj r sok ‚s fggv‚nyek nem haszn lhatnak glob lis v ltoz˘t. --------------------------------------------------------------------------- 1. < L sd. V-DEF.pas > A) e2:=2; h1:=[4..10]; while not eof do begin readln(e1); if e1 in h1 then e2:=e2+1; end; writeln(e2:5); A bemen“ adatok: 9 1 4 2 11 12 13 1 1 -1 B) e3:=10; for l1:=alberlet to kastely do begin e2:=1; repeat e2:=e2+2; until e2>= ord(l1); e3:=e3-e2; end; writeln(e3:5); 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]:3); writeln; D) new(m1); m1^.kulcs:=40; m1^.lanc:=nil; repeat read (e1); m2:=m1; while m2^.kulcsnil do begin write (m2^.kulcs,' '); m2:=m2^.lanc; end; writeln; Bemeneti adatok: 5 3 4 1 5 0 E) e1:=7; e2:=5; s(e1,e2-1); 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 ----------------------------------------------------------------------} Tudjuk, hogy k‚t sz”vegf jl egyik sora sem hosszabb 50 karaktern‚l. K‚szĄtsen programot, amely kinyomtatja a k‚t f jl tartalm t k‚t oszlopban egym s mell‚, az oszlopok k”z”tt hagyjon 10 res helyet. Nem olvashat be egyetlen read utasĄt ssal sz”vegfile-b˘l stringet. { 3 ----------------------------------------------------------------------} Adottak a k”vetkez“ definĄci˘k: type pt = ^e; e = record ertek :integer; bal,jobb :pt; end; K‚szĄtsen fggv‚nyt, amely a szabv nyos kimenetre kiĄrja egy ilyen elemekb“l  ll˘ bin ris fa n-edik szintj‚nek minden elem‚t ‚s visszaadja az adott szinten lev“ elemek sz m t. A gy”k‚relem az 1 szint, lesz rmazottai a 2. szint, stb. { 4 ----------------------------------------------------------------------} Adottak a k”vetkez“ definĄci˘k ‚s deklar ci˘k: const m= ...; type elem = record kulcs :real; {tov bbi elemek...} end; tabla = array [0 .. m] of elem; var T :tabla; procedure P1 (xmin,xmax :integer; function F1 (x1,x2 :integer) :boolean; procedure P2 (x1,x2 :integer)); var xk,xb,xm :integer; begin for xk:=xmin to xmax-1 do begin xm:=xk; for xb:=xk+1 to xmax do if F1(xb,xm) then xm:=xb; if xm>xk then P2(xm,xk); end; end; A) Mire haszn lhat˘ megfelel“ aktu lis param‚terekkel a P1 elj r s? B) K‚szĄtsen el a fenti T tabla P1-el val˘ feldolgoz s hoz egy-egy megfelel“ fggv‚nyt ‚s elj r st! { 5 ----------------------------------------------------------------------} A szem‚lyi sz mokat a k”vetkez“ tĄpusŁ adatban t roljuk: CONST meret = ...; TYPE szemszam = array [1..11] of '0'..'9'; tomb = array [1..meret] of szemszam; K‚szĄtsen elj r st, amely a szem‚lyi sz mok t”mbj‚t Shell m˘dszerrel n”vekv“ sorrendbe rendezi. { 6 ----------------------------------------------------------------------} K‚szĄtsen elj r st, amely k‚t fggv‚nyt egytt  br zol az itt k”vetkez“ minta szerint, karakter-grafikusan: X Y1 Y2 -0.108 -0.107 0.994 1---------------------------2 0.285 0.281 0.960 1----------------2 0.678 0.627 0.779 1--2 1.070 0.877 0.480 2---------1 1.462 0.994 0.108 2----------------------1 1.855 0.960 -0.280 2-------------------------------1 2.248 0.780 -0.626 2-----------------------------------1 2.640 0.481 -0.877 2----------------------------------1 Az elj r s feje ‚s a szks‚ges definĄci˘k: const m=...; type tt = array [1..m] of real; procedure Rajz (x,y1,y2 :tt; n :integer);