Хмммм если честно, попробовала сделать эту программу.. Только или запуталась где-то или что-то вообще неверно делаю... Просто не компилирует.
Программа тест.. Сначала делается файл с вопросами в виде-вопросб количество вариантов ответа, сами варианты ответов и номер правильного.
А результат записывается так- номер вопроса, имя и фамилия, выбранный номер ответа, правильный ответ.
UZD10.PAS ( 2.37 килобайт )
Кол-во скачиваний: 545
Может кто-нибудь в этом разбирается...
как ты думаешь, сколько ошибок вот в этом фагменте?
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;
Надо
beginда?
readln(f1,q.otv);
writeln(i,'. ',q.otv);
end;
Не совсем... Файл F1 определен, как File of Test - соотвественно, типизированный... А к типизированным файлам процедура ReadLn неприменима, только Read... Во-вторых, читать надо в переменную типа Test, то есть всю запись сразу, а не кусками, иначе опять же компилятор не пропустит...
Эммм
read(f1,q.vopr);у меня же q и есть переменная типа test. А история та же всё ещё
writeln(q.vopr);
read(f1,j_sk,prav);
for i:=1 to j_sk do
begin
read(f1,q.vopr);
writeln(i,'. ',q.vopr);
end;
Я же предупредил:
read(f1, q); { <--- Вот так у компилятора не будет претензий }
Тогда можно оставить вот так..
read(f1,q);те ридлайны, что были раньше надо убрать, так как прочитана уже вся запись?
writeln(q.vopr);
for i:=1 to q.j_sk do
begin
writeln(i,'. ',q.vopr);
end;
Тогда теперь ему что-то уже здесь не нравится
for i:=1 to q.j_sk do
begin writeln(i,'. ',q.otv);{<--здесь}
end;
for i:=1 to q.j_sk do
for j=1 to n do
writeln(i,'. ',q.otv[j]);{<--здесь}
Нет
for i:=1 to q.j_sk do
begin writeln(i,'. ',q.otv[i]);
end;
Не в этом смысле..
Вначале идёт вообще создание файла с вопросами..
Это всё работает, но потом сразу же (не задавая вопросов) даёт оценку
Приведи еще раз, что получилось, ведь были еще исправления, а то в исходном коде есть такие интересные строки:
writeln('Vvedite nomer praviljnogo otveta i nazhmite <Enter>');
writeln('Nazhmi <Enter> chtob nachatj test');
clrscr;
Вот такое получилось
UZD10.PAS ( 2.4 килобайт )
Кол-во скачиваний: 526
Перед
while not eof(f1) do begin
if otv_nr=q.prav then inc(prav_otv);
На otv_nr он говорит что неизвестный идентификатор. Если поставить r.otv_nr ое перестаёт дальше компилировать
Вот так программа работае.
write('Vash vybor-->');
readln(r.otv_nr);
if r.otv_nr=q.prav then inc(prav);
writeln;
end;
if r.otv_nr=q.prav then inc(r.prav_nr);
А может потому что у меня в папке много файлов и я одно и то же название ввожу? Его заглючило
Да работает...
А как сделать так, чтоб он записывал во второй файл результаты, а не просто его создавал?
Ты делаешь Close (f2), хотя его не открывала. Он у тебя вообще не используется. Поставь в начале Rewrite (f2) хотя бы.
Сделала... Всё равно не пишет.. Ну и ладно...
Спасибо!!!!
Эт я тебе про ошибку написал, а не пишет т.к. записи то и нет.. Если в начале поставить rewrite (f2), а перед close (f2) поставить write (f2,r), то запишет..
Пишеееет!!!!!!! Ураааа