Хмммм если честно, попробовала сделать эту программу.. Только или запуталась где-то или что-то вообще неверно делаю... Просто не компилирует.
Программа тест.. Сначала делается файл с вопросами в виде-вопросб количество вариантов ответа, сами варианты ответов и номер правильного. А результат записывается так- номер вопроса, имя и фамилия, выбранный номер ответа, правильный ответ.
как ты думаешь, сколько ошибок вот в этом фагменте?
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;
Anastacia Adesso
8.01.2007 17:06
Надо
begin readln(f1,q.otv); writeln(i,'. ',q.otv); end;
да?
volvo
8.01.2007 17:09
Не совсем... Файл F1 определен, как File of Test - соотвественно, типизированный... А к типизированным файлам процедура ReadLn неприменима, только Read... Во-вторых, читать надо в переменную типа Test, то есть всю запись сразу, а не кусками, иначе опять же компилятор не пропустит...
Anastacia Adesso
8.01.2007 17:14
Эммм
read(f1,q.vopr); 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;
у меня же q и есть переменная типа test. А история та же всё ещё
volvo
8.01.2007 17:26
Я же предупредил:
Цитата
читать надо в переменную типа Test, то есть всю запись сразу, а не кусками
, а ты опять хочешь прочесть только одно поле...
read(f1, q); { <--- Вот так у компилятора не будет претензий }
Anastacia Adesso
8.01.2007 17:32
Тогда можно оставить вот так..
read(f1,q); writeln(q.vopr); for i:=1 to q.j_sk do begin writeln(i,'. ',q.vopr); end;
те ридлайны, что были раньше надо убрать, так как прочитана уже вся запись?
Anastacia Adesso
8.01.2007 17:59
Тогда теперь ему что-то уже здесь не нравится
for i:=1 to q.j_sk do begin writeln(i,'. ',q.otv);{<--здесь} end;
Malice
8.01.2007 18:06
Цитата(Anastacia Adesso @ 8.01.2007 13:59)
Тогда теперь ему что-то уже здесь не нравится
for i:=1 to q.j_sk do for j=1 to n do writeln(i,'. ',q.otv[j]);{<--здесь}
Anastacia Adesso
8.01.2007 18:10
Нет
for i:=1 to q.j_sk do begin writeln(i,'. ',q.otv[i]); end;
теперь почему-то после заполнения файла вопросов он выдает оценку ПЛОХО и всё... Что делать?
Malice
8.01.2007 18:16
Цитата
if otv_nr=q.prav then inc(prav_otv);
Anastacia Adesso
8.01.2007 18:21
Не в этом смысле.. Вначале идёт вообще создание файла с вопросами.. Это всё работает, но потом сразу же (не задавая вопросов) даёт оценку
Malice
8.01.2007 18:37
Приведи еще раз, что получилось, ведь были еще исправления, а то в исходном коде есть такие интересные строки:
writeln('Vvedite nomer praviljnogo otveta i nazhmite <Enter>'); writeln('Nazhmi <Enter> chtob nachatj test'); clrscr;
надо поставить Reset (f1), чтоб сбросить указатель чтения в начало файла. + то, о чем я говорил раньше:
if otv_nr=q.prav then inc(prav_otv);
Anastacia Adesso
9.01.2007 19:48
На otv_nr он говорит что неизвестный идентификатор. Если поставить r.otv_nr ое перестаёт дальше компилировать
Вот так программа работае.
write('Vash vybor-->'); readln(r.otv_nr); if r.otv_nr=q.prav then inc(prav); writeln; end;
Проблемма.. Всё можно ввести, задаст вопросы, примет ответы, и ... напишет что файл не открыт.. А почему?
Malice
9.01.2007 19:56
Цитата(Anastacia Adesso @ 9.01.2007 15:48)
Вот так программа работае.
Ну да, правильно, я имел ввиду, что прблема в отсутствующем "q.".
if r.otv_nr=q.prav then inc(r.prav_nr);
Про файл ничего не говорит у меня, оценку ставит..
Anastacia Adesso
9.01.2007 20:02
А может потому что у меня в папке много файлов и я одно и то же название ввожу? Его заглючило
Да работает... А как сделать так, чтоб он записывал во второй файл результаты, а не просто его создавал?
Malice
9.01.2007 20:14
Ты делаешь Close (f2), хотя его не открывала. Он у тебя вообще не используется. Поставь в начале Rewrite (f2) хотя бы.
Anastacia Adesso
9.01.2007 20:29
Сделала... Всё равно не пишет.. Ну и ладно...
Спасибо!!!!
Malice
9.01.2007 20:36
Эт я тебе про ошибку написал, а не пишет т.к. записи то и нет.. Если в начале поставить rewrite (f2), а перед close (f2) поставить write (f2,r), то запишет..
Anastacia Adesso
11.01.2007 16:24
Пишеееет!!!!!!! Ураааа
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.