Конструктор учебных заданий для электронного задачника Programming Taskbook - 53 стр.

UptoLike

Составители: 

53
Осталось изменить количество заданий в вызове процедуры CreateGroup на 5 и
включить вызовы новых процедур в основную процедуру группы InitTask:
procedure InitTask(num: integer);
begin
case num of
1..2: UseTask('Begin', num);
3: MakerDemo3;
4: MakerDemo4;
5: MakerDemo5;
end;
end;
Приведем вид окна задачника для новых заданий (см. рис. 2 и 3).
5.6. Добавление заданий на обработку файлов
Добавим к группе MakerDemo еще два задания: первое из них дублирует задание
File63 (подгруппа «Символьные и строковые файлы»), а второезадание Text16
(подгруппа «Текстовые файлы: основные операции»). Реализуем эти задания в проце-
дурах MakerDemo6 и MakerDemo7:
function FileName(Len: integer): string;
const
c = '0123456789abcdefghijklmnopqrstuvwxyz';
var
i: integer;
begin
result := '';
for i := 1 to Len do
result := result + c[Random(Length(c))+1];
end;
procedure MakerDemo6;
var
k, i, j, jmax: integer;
s1, s2, s3: string;
fs1: file of ShortString;
fs2: file of ShortString;
fc3: file of char;
s: ShortString;
c: char;
begin
CreateTask('Символьные и строковые файлы');
TaskText('Дано целое число~{K} (>\,0) и строковый файл.', 0, 1);
TaskText('Создать два новых файла: строковый, содержащий ' +
'первые {K}~символов', 0, 2);
TaskText('каждой строки исходного файла, и символьный, ' +
'содержащий {K}-й символ', 0, 3);
TaskText('каждой строки (если длина строки меньше~{K}, ' +
'то в строковый файл', 0, 4);
TaskText('записывается вся строка, а в символьный файл ' +
'записывается пробел).', 0, 5);
s1 := '1' + FileName(5) + '.tst';
s2 := '2' + FileName(5) + '.tst';
s3 := '3' + FileName(5) + '.tst';
Assign(fs1, s1);
Rewrite(fs1);
Assign(fs2, s2);