program teszt; uses crt; const maxvalasz=10; type vtip=(egy, tobb, mind); valasz= record szoveg: string; pontszam: integer; end; kerdes= record vdb: integer; szov:string; tip: vtip; valaszok: array [1..maxvalasz] of valasz; end; pontszamok=record max:integer; elert:integer; end; var f: file of kerdes; k: kerdes; procedure beolvas; var sv,sv1,i,j, vf1,vf2,pontsv , osszpontszam, psv, l: integer; k, k0: kerdes; sv2,fnev, nev: string; sv3,v: char; pontok:pontszamok; begin clrscr; writeln('Mi a file neve, ahol a teszt adatai vannak? '); repeat readln(fnev); fnev:=fnev+'.tes'; {$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('az ',i,'. k‚rd‚s ' ); read(f, k); writeln(k.szov); for j:=1 to k.vdb do begin write('a(z) ',j,'. v lasz '); writeln(k.valaszok[j].szoveg); end; pontsv:=0; writeln('Adja meg a helyes valaszt '); readln(vf1); pontsv:=pontsv+k.valaszok[vf1].pontszam; repeat write('Ad meg meg valaszt (i/n) '); readln(v); if v='i' then begin write('a kovetkezo valasz '); readln(vf2); pontsv:=pontsv+k.valaszok[vf2].pontszam; end; until v='n'; {le kell ellenoriyni hogy ezt a valaszt megadta/e mar} if (k.tip=egy) or (k.tip=tobb) then begin if pontsv>0 then osszpontszam:=osszpontszam+pontsv; end else begin psv:=0; for l:=1 to k.vdb do if k.valaszok[l].pontszam>0 then psv:=psv+k.valaszok[l].pontszam; if pontsv=psv then osszpontszam:=osszpontszam+pontsv; end; end; close(f); writeln(osszpontszam); end; begin beolvas; repeat until keypressed; end.