{Testa jautajumi jautajums atbilzu variantu skaita(max 4) atbilzu varianti pareizas atbildes numurs} uses crt; const n=4; type vopros=array[1..n] of string[50]; type test=record vopr:string[200]; {vopros} j_sk:byte; {kol-vo variantov, max=4} prav:byte; {nr praviljnogo otveta} otv:vopros; {varinaty otvetov} end; type rezultat=record imya:string[10]; {imya i familiya testiruemogo} familiya:string[14]; vopr_nr:byte; {nr voprosa} prav_nr:byte; {nr praviljnogo otveta} otv_nr:byte; {nr varianta} end; type mnozh=set of byte; var q:test; r:rezultat; a:mnozh; vsego_vopr, prav: integer; i,j,k:integer; s1,s2:string; {nazvaniya fajlov} st: string; v:byte; ocenka:integer; f1:file of test; f2:file of rezultat; begin clrscr; vsego_vopr:=0; writeln('Vvedi nazvanie fajla voprosov:'); readln(s1); assign(f1,s1); rewrite(f1); writeln('Vvedi nazvanie fajla rezuljtata:'); readln(s2); assign(f2,s2); rewrite(f2); for i:=1 to 10 do begin write('Vvedi vopros # ',i); readln(q.vopr); repeat write('Vvedi kolichestvo variantov:'); readln(q.j_sk); until q.j_sk in [2..5]; repeat write('Vvedi nomer praviljnogo otveta:'); readln(q.prav); until q.prav in [1..q.j_sk]; for j:=1 to q.j_sk do begin writeln('Vvedi ',j,'varinat otveta'); readln(q.otv[j]); end; write(f1,q); end; writeln('Vvedite nomer praviljnogo otveta i nazhmite '); writeln('Nazhmi chtob nachatj test'); clrscr; vsego_vopr:=0;prav:=0; while not eof(f1) do begin inc(vsego_vopr); readln(f1,q.vopr); writeln(q.vopr); readln(f1,j_sk,prav); for i:=1 to j_sk do begin readln(f1,q.vopr); writeln(i,'. ',q.vopr); end; writeln; write('Vash vybor-->'); readln(otv_nr); if otv_nr=prav then inc(prav_otv); writeln; end; p:=round((prav_otv/vsego_vopr)*100); write('Vasha ocenka '); case p of 100: writeln('OTLICHNO!'); 80..99: writeln('HOROSHO!'); 60..79: writeln('UDOVLETVORITELJNO!'); else writeln('PLOHO!'); end; write('Dlya zaversheniya nazhmi '); close(f1); close(f2); readkey end.