Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Помогите доработать задачу! (Не могу правильно распределить процедуры)
Помогите доработать задачу!
Необходимо создать тестовую программу, где в одном файле были вопросы, а в другой ответы и счетчик правильных ответов высчитывал процент верных ответов, создала 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 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Помогите доработать задачу! (Не могу правильно распределить процедуры)
  • Страница 1 из 1
  • 1
Поиск: