Необходимо создать тестовую программу, где в одном файле были вопросы, а в другой ответы и счетчик правильных ответов высчитывал процент верных ответов, создала 3 файла intro-приветствие и инструкция, vopros и result-записывает результат. Файлы открываются, а ответы не высчитываются program zadanie1; uses crt; var name, klas: string; k, b: integer; p, sum: real; procedure intro; var f: text; s: string; begin clrscr; writeln ('Здравствуйте, назовите свое имя и фамилию '); readln (name); writeln ('Класс: '); readln (klas); clrscr; assign (f, 'c:\ps\intro.txt'); reset (f); while not eof (f) do begin readln (f,s); writeln (s); end; close (f); readln; end; procedure vopros (q: char); label label1; var f:file of char; c, otv: char; begin clrscr; assign (f,'c:\ps\vopros.txt'); reset (f); seek (f,k); repeat begin read (f,c); write ©; inc (k); end; until c='.'; close (f); writeln; writeln; label1: write ('Ващ ответ: '); readln (otv); if (otv='a') or (otv='A') or (otv='а') or (otv='А') then otv:='q' else if (otv='b') or (otv='б') or (otv='Б') then otv:='w' else if (otv='В') or (otv='в') or (otv='B') then otv:='e' else if (otv='г') or (otv='Г') then otv:='r' else if (otv='д') or (otv='Д') or (otv='D') or (otv='d') then otv:='t' else begin writeln ('Вы ввели некорректный символ, можно вводить только русские буквы от а до д'); goto label1; end; if otv=q then sum:=sum+1; end; procedure result; var f: text; s,bins,pins: string; begin str (b, bins); str (p:3:1, pins); assign (f,'c:\ps\result.txt'); rewrite (f); s:=name+', '+klas+' класс, оценка = '+bins+', '+pins+' % верных ответов!'; writeln (f,s); close (f); end; begin k:=0; intro; {1}vopros (k, 'q'); {2}vopros (k, 'w'); p:=(100/15*sum); if p>50 then b:=1 else if p>70 then b:=2 else if p>80 then b:=3 else if p>90 then b:=4 else b:=5; clrscr; writeln; writeln ('Ваша оценка= ', b , ' ', p:3:1, ' % правильных ответов'); result; readln; end.
KKiemi
№ 1 | Автор: Lmh |
2014-12-27, 07:57
|
Репутация: [ + 0 ]
|
|
|