Очень нужна помощь в решении задачи по ПАСКАЛЮ. Пару задач уже решил. А вот с такими задачами не встречался.. решить не получается.

1. Дан текстовый файл с произвольным именем. Выяснить, имеется ли у него одна самая короткая строка или таких строк несколько. Вывести "одна" или "не одна". Все самые короткие строки записать в файл X.TXT.


2. Создать на диске два текстовых файла, в каждый записать в столбик по 6 чисел. Составить программу, которая из двух исходных файлов создавала бы два новых: первый из 12 чисел, в котором чередуются числа из первого и второго файлов; второй - из 6 чисел, где каждое число представляет собой сумму соответствующих чисел первого и второго файлов.


3. Составить программу, которая создает на диске двоичный файл из N случайных чисел из диапазона [-100,100] (N - вводится). Затем создать еще два двоичных файла: в первый записать все положительные числа из исходного файла, а во второй - отрицательные и нули. Вывести на экран содержимое всех трех файлов в прямом и обратном порядке.

Буду очень благодарен за помощь...


Вот первая задача...


Program number1;
var
f:text;
s:string;
count, min:integer;
begin
assign (f, 'x.txt');
reset (f);

readln (f, s);
min:=length(s); count:=1;

while not eof (f) do begin
readln (f, s);
if length(s)<min then begin
min:=length(s); count:=0;
end;
if min=length(s) then inc(count);
end;

if count=1 then writeln ('Toliko odna minimalinaea stroka.')
else writeln ('Neskoliko minimalihyh strok.');
end.


Вторая задача.. не знаю правильно или нет..

Код:
var f1,f2,f3,f4:text;
a,b:integer;
begin
Assign(f1,'Первый файл.txt');
Assign(f2,'Второй файл.txt');
reset(f1);
reset(f2);
Assign(f3,'Первый результат.txt');
Assign(f4,'Второй рещультат.txt');
rewrite(f3);
rewrite(f4);
for i:=1 to 6 do
begin
readln(f1,a);
readln(f2,a);
writeln(f3,a);
writeln(f3,b);
writeln(f4,a+b);
end;
close(f1);
close(f2);
close(f3);
close(f4);
end.

помогите пожалуйста с третьей...