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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2008, 21:40   #1
vk-
Новичок
Джуниор
 
Регистрация: 05.12.2008
Сообщений: 2
По умолчанию Помогите пожалуйста составить программу

Уважаемые программисты!У меня к вам огромная просьба составить программу.Срок сдачи на следующей неделе.
Вот условия:
Используя готовую процедуру sort_file составить программу сортировки текствого файла с размещением строк в пределах каждой страницы в возрастающем порядке по длинам строки (без учёта пробелов).
Предусмотреть проверку существования исходного файла и переход на новую страницу с формированием номера страницы.Длина страницы составляет 60 строк.
Код:
unit s_text;
interface
procedure sort_file;
var f1,f2:text;
b,b1,b2:string;
i,i1,i2,p:boolean;
k:integer;
function more_less (x,y:string;ord:boolean):boolean;
begin
if ord then more_less:=(x<y) else more_less:=(x>y);
end;    {more_less;ord=true}

Procedure read_str (var t:text;var buf:string;var big:boolean):string
begin s:=buf
readln (t,buf);
if (buf=s) then big:=false
else big:=more_less (buf,s,r)
end; {read_str}

Procedure write_str (var t:text;buf:string;var int:boolean);
begin
if not int then writeln (f,buf);
if lof(t) then int:=true;
end {write_str}

begin {sort_file}
assign (f1,'F1');
assign (f2,'F2');
repeat
reset(f);
rewrite(f1);
rewrite(f2);
k:=1;
readln (f1,b);
writeln (f1,b);
while non lof (f) do begin
read_str (f,b,i);
if i then k:=k+1;
if (add(k)) then writeln (f1,b)
else writeln (f2,b)
end;

p:=r;
i1:=false;
i2:=false;
if k>1 then begin
rewrite (f);
reset (f1);
reset (f2);
readln (f1,b1);
readln (f2,b2);
if more_less (b1,b2,p) then write_str (f1,b1,i1) else 
write_str (f2,b2,i2);
repeat if more less (b1,b2,p)
then if not lof (f1) then begin read_str (f1,b1,i1);
if i1 then p:=not p;
i1:=false;
end else p:=not p
else if not lof(f2)
then begin read_str (f2,b2,i2);
if i2 then p:=not p;
i2:=false; end
else p:=not p;
if more_less (b1,b2,p) then write_str (f1,b1,i1) else
write_str (f2,b2,i2)
until (i1 and i2); 
end;

until (k=>2);
close (f);
close (f1);
close (f2);
erase (f1);
erase (f2);
END; {sort_file}
END; {s_text}
программу набивал вручную, поэтому не исключены ошибки.
vk- вне форума Ответить с цитированием
Старый 07.12.2008, 20:28   #2
vk-
Новичок
Джуниор
 
Регистрация: 05.12.2008
Сообщений: 2
По умолчанию

ну что ребят, никто не поможет?
vk- вне форума Ответить с цитированием
Старый 08.12.2008, 22:10   #3
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Посмотрел код - понял не все...
Цитата:
Используя готовую процедуру sort_file составить программу сортировки текствого файла с размещением строк в пределах каждой страницы в возрастающем порядке по длинам строки (без учёта пробелов).
Однако пробелы ты не убиваешь.
Не совсем понял, что делают функции сравнения и метод самой сортировки.
В общем, давай разбираться
З.Ы. Да, вот такая я сволочь... Не могу я просто так выложить кусок кода )))
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, составить программу на турбопаскале. Smartbass Помощь студентам 1 14.11.2008 01:12
Помогите составить программу на Delphi.. (1 курс) gree Помощь студентам 13 01.11.2008 17:29
Помогите составить программу neomaximus Помощь студентам 3 14.06.2008 10:40
Помогите составить, пожалуйста, алгоритм задачки... Merciless Общие вопросы C/C++ 1 18.12.2007 20:47
Помогите составить программу через Delphi Рина8807 Помощь студентам 1 01.10.2007 19:59