Вернуться   Компьютерный форум > Компьютеры > Программы > Программирование
 
 
Опции темы
Старый 09.02.2012, 23:27   #1 (ссылка)
Новичок
 
Аватар для krab
 
Регистрация: 08.08.2010
Сообщений: 346
Репутация: 4
Профиль ВКонтакте
По умолчанию простой вопрос в pascal

Подскажите как записать текстовый файл в типизированный

---------- Добавлено в 21:27 ---------- Предыдущее сообщение было написано в 20:24 ----------

Вот задание:
{в текстовом файле информация подана в виде:
Вопрос(1 строчка до 255 символов)
1вариант ответа(1 строчка до 255 символов)
2вариант(1 строчка до 255 символов)
3вариант(1 строчка до 255 символов)
4вариант(1 строчка до 255 символов)
номер правильного ответа(строка на 1 символ)
пустая строка}
и так n-раз.
Записать его в типизированный и сделать систему тестирования по вопросах.
Вот что я набросал, проблема в том, что в типизированный файл записывается только последняя запись:
Код:
{zapisat tekstovyj fail test.txt v tipizirovannij}
uses crt;
type
    fr=record
       vop:string;
       v1:string;
       v2:string;
       v3:string;
       v4:string;
       pr:string[1];
    end;

procedure chtenie_zapys(var a:fr;var opr:file of fr; var kol:byte);{chtenie inf iz faila test.txt i zapis ee v fail result.for}
var
 f:text;
 tmp:string;
begin
     assign(f,'test.txt');
     reset(f);
     assign(opr,'result.for');
     rewrite(opr);
     while not eof(f) do
       begin
         readln(f,a.vop);
         readln(f,a.v1);
         readln(f,a.v2);
         readln(f,a.v3);
         readln(f,a.v4);
         readln(f,a.pr);
         readln(f,tmp);
         inc(kol);
         write(opr,a);
         seek(opr,kol+1)
       end;
     close(opr);
     close(f);
end;


procedure test(a:fr; orp:file of fr;kol:byte);{testirovanie}
var
   ko,kp,i:byte;
   pp,po,oc:real;
   otv:string;
begin

     for i:=1 to kol do
       begin
         writeln(a.vop);
         writeln(a.v1);
         writeln(a.v2);
         writeln(a.v3);
         writeln(a.v4);
         writeln('Pravylna vidpovid: ');
         readln(otv);
         if otv=a.pr then inc(kp) else inc(ko);
         clrscr;
       end;
     pp:=(kp/kol)*100;
     po:=100-pp;
     oc:=(5/100)*pp;
     writeln;
     writeln('Kolichestvo voprosov=',kol);
     writeln('Pravilnyh otvetov:',kp,' (',pp:2:0,')');
     writeln('oshibok:',ko,' (',po:2:0,')');
     writeln('Vasha ocenka:',oc:4:2);
end;

var
   opr:file of fr;
   a:fr;
   kol:byte;
begin
     clrscr;
     writeln('nachat testirovanie?');
     readln;
     chtenie_zapys(a,opr,kol);
     test(a,opr,kol);
end.
krab вне форума  
Ads
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой вопрос layer1632 Windows 7 1 13.01.2012 21:18
простой вопросик виктор_лютый Windows 7 2 24.02.2011 15:26
Простой и бесплатный хост iRomul Хостинг 2 14.03.2009 06:49
Самый простой вопрос!!!!!!! allonso1 Железо 0 07.05.2008 21:48


Текущее время: 17:55. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.