IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Файлы прямого доступа, Программа тестирования
Anastacia Adesso
сообщение 8.01.2007 12:52
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Хмммм если честно, попробовала сделать эту программу.. Только или запуталась где-то или что-то вообще неверно делаю... Просто не компилирует.

Программа тест.. Сначала делается файл с вопросами в виде-вопросб количество вариантов ответа, сами варианты ответов и номер правильного.
А результат записывается так- номер вопроса, имя и фамилия, выбранный номер ответа, правильный ответ.

Прикрепленный файл  UZD10.PAS ( 2.37 килобайт ) Кол-во скачиваний: 368

Может кто-нибудь в этом разбирается...

Сообщение отредактировано: Anastacia Adesso - 8.01.2007 12:54


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
volvo
сообщение 8.01.2007 13:01
Сообщение #2


Гость






как ты думаешь, сколько ошибок вот в этом фагменте?
      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 13:06
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Надо
      begin
readln(f1,q.otv);
writeln(i,'. ',q.otv);
end;
да?


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.01.2007 13:09
Сообщение #4


Гость






Не совсем... Файл F1 определен, как File of Test - соотвественно, типизированный... А к типизированным файлам процедура ReadLn неприменима, только Read... Во-вторых, читать надо в переменную типа Test, то есть всю запись сразу, а не кусками, иначе опять же компилятор не пропустит...
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 8.01.2007 13:14
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Эммм

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. А история та же всё ещё


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.01.2007 13:26
Сообщение #6


Гость






Я же предупредил:
Цитата
читать надо в переменную типа Test, то есть всю запись сразу, а не кусками
, а ты опять хочешь прочесть только одно поле...
read(f1, q); { <--- Вот так у компилятора не будет претензий }
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 8.01.2007 13:32
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Тогда можно оставить вот так..
      read(f1,q);
writeln(q.vopr);
for i:=1 to q.j_sk do
begin
writeln(i,'. ',q.vopr);
end;
те ридлайны, что были раньше надо убрать, так как прочитана уже вся запись?


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 8.01.2007 13:59
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Тогда теперь ему что-то уже здесь не нравится
      for i:=1 to q.j_sk do
begin writeln(i,'. ',q.otv);{<--здесь}
end;


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 8.01.2007 14:06
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(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]);{<--здесь}



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 8.01.2007 14:10
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Нет
      for i:=1 to q.j_sk do
begin writeln(i,'. ',q.otv[i]);
end;

теперь почему-то после заполнения файла вопросов он выдает оценку ПЛОХО и всё... Что делать?


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 8.01.2007 14:16
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата
if otv_nr=q.prav then inc(prav_otv);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 8.01.2007 14:21
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Не в этом смысле..
Вначале идёт вообще создание файла с вопросами..
Это всё работает, но потом сразу же (не задавая вопросов) даёт оценку


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 8.01.2007 14:37
Сообщение #13


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Приведи еще раз, что получилось, ведь были еще исправления, а то в исходном коде есть такие интересные строки:

writeln('Vvedite nomer praviljnogo otveta i nazhmite <Enter>');
writeln('Nazhmi <Enter> chtob nachatj test');
clrscr;

т.е. написали и стерли сразу..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 9.01.2007 14:48
Сообщение #14


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Вот такое получилось
Прикрепленный файл  UZD10.PAS ( 2.4 килобайт ) Кол-во скачиваний: 393


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 9.01.2007 15:36
Сообщение #15


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Перед
while not eof(f1) do begin

надо поставить Reset (f1), чтоб сбросить указатель чтения в начало файла. + то, о чем я говорил раньше:

if otv_nr=q.prav then inc(prav_otv);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 9.01.2007 15:48
Сообщение #16


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


На otv_nr он говорит что неизвестный идентификатор. Если поставить r.otv_nr ое перестаёт дальше компилировать

Вот так программа работае.
write('Vash vybor-->');
readln(r.otv_nr);
if r.otv_nr=q.prav then inc(prav);
writeln;
end;

Проблемма.. Всё можно ввести, задаст вопросы, примет ответы, и ... напишет что файл не открыт.. А почему?


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 9.01.2007 15:56
Сообщение #17


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Anastacia Adesso @ 9.01.2007 15:48) *

Вот так программа работае.

Ну да, правильно, я имел ввиду, что прблема в отсутствующем "q.".
if r.otv_nr=q.prav then inc(r.prav_nr);

Про файл ничего не говорит у меня, оценку ставит..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 9.01.2007 16:02
Сообщение #18


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


А может потому что у меня в папке много файлов и я одно и то же название ввожу? Его заглючило

Да работает...
А как сделать так, чтоб он записывал во второй файл результаты, а не просто его создавал?


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 9.01.2007 16:14
Сообщение #19


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Ты делаешь Close (f2), хотя его не открывала. Он у тебя вообще не используется. Поставь в начале Rewrite (f2) хотя бы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 9.01.2007 16:29
Сообщение #20


Пионер
**

Группа: Пользователи
Сообщений: 92
Пол: Мужской
Реальное имя: Stanislav

Репутация: -  0  +


Сделала... Всё равно не пишет.. Ну и ладно...

Спасибо!!!!


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"