Program tesztmegoldo; Uses newdelay,crt; Const maxvalasz=9; kmax=100; Type vtip=(egy, tobb, mind); valasz= record szoveg: string; pontszam: integer; end; kerdes= record vdb: integer; szov:string; tip: vtip; valaszok: array [1..maxvalasz+1] of valasz; end; pontszamok=record max:integer; elert:integer; end; Const vhalmaz:array[egy..mind] of string=('e','t','m'); Var f: file of kerdes; k: kerdes; halmaz,teljes: set of 1..maxvalasz; Procedure megold; Var sv,sv1,i,j, vf1,vf2,pontsv , osszpontszam, l, db, adottdb,ok: integer; k, k0: kerdes; sv2,fnev, nev: string; sv3,v: char; pontok:pontszamok; Begin clrscr; teljes:=[1..maxvalasz]; repeat write('Mi a file neve? '); readln(fnev); fnev:=fnev+'.tst'; {$I-} assign(f,fnev); reset(f); {$I+} until ioresult=0; read(f,k0); writeln(k0.szov:46); osszpontszam:=0; sv:=filesize(f)-1; for i:=1 to sv do begin writeln; halmaz:=halmaz-teljes; read(f,k); writeln('- A(z) ',i,'. k‚rd‚s: ' ); writeln(k.szov); Writeln('V laszok: '); for j:=1 to k.vdb do begin write(j,'.: '); writeln(k.valaszok[j].szoveg); end; pontsv:=0; repeat write('Adja meg a helyes v lasz sorsz m t: '); readln(nev); val(nev,vf1,ok); until (ok=0) and (vf1 in [1..k.vdb]); pontsv:=pontsv+k.valaszok[vf1].pontszam; adottdb:=1; halmaz:=halmaz+[vf1]; repeat If (k.tip<>low(vtip)) and (adottdb0 then osszpontszam:=osszpontszam+pontsv; end else begin db:=0; for l:=1 to k.vdb do if k.valaszok[l].pontszam=1 then db:=db+1; if pontsv=db then osszpontszam:=osszpontszam+k.valaszok[maxvalasz+1].pontszam; end; end; close(f); writeln; write('AZ ™N ™SSZPONTSZµMA: '); writeln(osszpontszam); end; BEGIN Megold; Writeln; Writeln('Nyomjon meg egy billentyűt a kil‚p‚shez'); Readkey; END.