Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2012, 13:10   #1
zink
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 36
По умолчанию Программа для подготовки к экзамену. Работа с файлом.

Нужна программа для подготовки к экзамену.
Суть программы: Составление билетов к экзамену. Из текстового файла Questions.txt (n строк с вопросами к экзамену) нужно вывести m случайных строк. В текстовом файле каждая строка является одним вопросом.

Написать мог бы сам, но работу с файлами надо вспомнить, да и готовлюсь к экзамену.

Алгоритм:
for i=1 to m do
begin
генерируем число k принадлежащее n через randomize
выписываем k-тую строку из файла ( вот здесь подзабыл, как делать это)
end;

Актуально до 16 числа =)
zink вне форума Ответить с цитированием
Старый 13.01.2012, 13:22   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Один из простых вариантов:
Код:
var q:array[1..250] of string;
     y:set of byte;
     f:text;
     m,r,i,k:integer;
begin
     randomize;
     assign(f,'Questions.txt');
     reset(f);
     k:=0;
     while not eof(f) do begin
      inc(k);
      readln(f,q[k]);
     end;
     close(f);
     y:=[];
     write ('M = ');
     readln(m);
     for i:=1 to m do begin
     repeat
       r:=random(k)+1;
     until not (r in y);
     y:=y+[r];
     writeln(q[r]);
     end;
end.
Из минусов - не будет работать, когда вопросов в файле больше 250
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 13.01.2012, 13:28   #3
zink
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Zer0 Посмотреть сообщение
Один из простых вариантов:
Код:
var q:array[1..250] of string;
     y:set of byte;
     f:text;
     m,r,i,k:integer;
begin
     randomize;
     assign(f,'Questions.txt');
     reset(f);
     k:=0;
     while not eof(f) do begin
      inc(k);
      readln(f,q[k]);
     end;
     close(f);
     y:=[];
     write ('M = ');
     readln(m);
     for i:=1 to m do begin
     repeat
       r:=random(k)+1;
     until not (r in y);
     y:=y+[r];
     writeln(q[r]);
     end;
end.
Из минусов - не будет работать, когда вопросов в файле больше 250
Спасибо большое =) пойду готовиться. Вопросов меньше, так что работать будет =)
zink вне форума Ответить с цитированием
Старый 13.01.2012, 13:35   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

через TStringList метод LoadFromFile('имя текстового файла')

УПС... устарело!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа с текстовым файлом RsGoLd Помощь студентам 0 09.11.2011 23:33
2 Вопроса подготовки к экзамену! denizkin Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 20.01.2011 19:23
Программа на C++(работа с двоичным файлом)) JinAnton Помощь студентам 31 13.01.2011 22:37
Совет насчет подготовки к егэ!!! Dr.MagoR Паскаль, Turbo Pascal, PascalABC.NET 2 12.04.2009 17:13
Программа по подготовке к единому государственному экзамену в России ЕГЭ 2009 mihali4 Свободное общение 1 18.03.2009 21:33