IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на сортировку файла, Нужна очель прога сортирующая фаил
сообщение
Сообщение #1


Гость






Плиз помогите решить задачку. Горю! спасайте! всю ночь сидел.
15.50 Программа. Имеется внешний файл А из целых чисел. Используя еще три внешних файла B, C и D в качестве рабочих, упорядочить файл А по неубыванию следующим методом (называемым внешней сортировкой сбалансированным слиянием).
Назовем «отрезком» как можно более длинный упорядоченный по неубыванию участок файла (см. рис 1а, отрезки файла разделены вертикальными линиями). На начальном этапе сортировки определяются отрезки файла А и они попеременно переносятся в файлы C и D (рис. 1б). На следующем этапе пары i-тых отрезков файлов C и D (i = 1, 2, …) сливаются в более длинные строки и попеременно переносятся в файлы А и В (рис. 1в). Затем сливаются пары отрезков файлов А и В и переносятся в файлы С и D (рис. 1г) и т.д. (Учесть, что в конце концов упорядоченная последовательность должна оказаться в файле А).

А 1 7 9 6 3 5 1 4 8 2 7

В


С 1 7 9 3 5 2 7

D 6 1 4 8


A 1 6 7 9 2 7

B 1 3 4 5 8


C 1 1 2 3 4 5 6 9

D 2 7

Куча ошибок! никак не реализуется!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Кинь исходник


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






если ти имеешь ввиду то что я набрал то вот ето чудо
Код

type
 tfile = file of integer;
var
 t,p: integer;
 a,b,c,d: tfile;
 f,fsort: boolean;

{--Sorting: realizing mearge sort. return status end of sorting--}
function sort(var a,b,c,d: tfile): boolean;
var
 fi,fj,i,j,ta,tb,pa,pb: integer;
begin
 i:=2;j:=2;
 reset(a); reset(b); rewrite(c); rewrite(d);
 while (i<=filesize(a)) and (j<=filesize(b)) do begin
   seek(a,i-2); seek(b,j-2); read(a,pa); read(b,pb);
   seek(a,i-1); seek(b,j-1); read(a,ta); read(b,tb);
   while (ta>=pa) and (tb>=pb) and (i<=filesize(a)) and (j<=filesize(b)) do begin
     seek(a,i-2); seek(b,j-2); read(a,pa); read(b,pb);
     seek(a,i-1); seek(b,j-1); read(a,ta); read(b,tb);
     if f then if ta>tb then begin write(c,tb); inc(j); end
                        else begin write(c,ta); inc(i); end
          else if ta>tb then begin write(d,tb); inc(j); end
                        else begin write(d,ta); inc(i); end;
   end;
   seek(a,i-2); seek(b,j-2); read(a,pa); read(b,pb);
   seek(a,i-1); seek(b,j-1); read(a,ta); read(b,tb);
   while ((ta>=pa) or (tb>=pb)) and (i<=filesize(a)) and (j<=filesize(b)) do begin
     seek(a,i-2); seek(b,j-2); read(a,pa); read(b,pb);
     seek(a,i-1); seek(b,j-1); read(a,ta); read(b,tb);
     if f then begin
       if ta>=pa then begin write(c,ta); inc(i); end;
       if tb>=pb then begin write(c,tb); inc(j); end;
     end else begin
       if ta>=pa then begin write(d,ta); inc(i); end;
       if tb>=pb then begin write(d,tb); inc(j); end;
     end;
   end;
 end;
 close(a); close(b); close(c); close(d);
end;

begin
 {--Initialization: assigning and make file b.txt--}
 assign(a,'a.txt'); assign(b,'b.txt'); assign(c,'c.txt'); assign(d,'d.txt');
 rewrite(b); close(b);

 {--First read: data moved from a to c and d--}
 assign(input,'a.txt');  reset(input);
 assign(c,'c.txt');  reset(c);
 assign(d,'d.txt');  reset(d);
 f:=true;
 read(t);
 while not eof do begin
   p:=t;
   read(t);
   if f then write(c,p) else write(d,p);
   if p>t then f:=not f;
 end;
 if p>t then f:=not f;
 if f then write(c,t) else write(d,t);
 close(input); close(c); close(d);

 {--Haupt sorting: using procedure sort with either params--}
 f:=true; fsort:=false;
 while not fsort do begin
   if f then fsort:=sort(c,d,a,b) else fsort:=sort(a,b,c,d);
   f:=not f;
 end;

 {--Preperer to out: moving result file in c.txt--}
 reset(a); rewrite(c);
 if not f then
   while not eof(a) do begin
     read(a,t);
     write(c,t);
   end;
 close(a); close(c);  

 {--Output: export all digits data from c.txt in a.txt--}
 assign(output,'a.txt');
 rewrite(output); reset(c);
 while not eof(c) do begin
   read(c,t);
   write(t);
 end;
 close(output); close(c);
end.

по моему в условиях даже ответ не верен - щас тока заметил.
А прога моя - даже вижу где ошибки некоторый, но всё больше я сней драться не могу! ХЕЛП!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Вот ещё, потом в инете нашёл
http://www.asu.pstu.ac.ru/book/pol/progs/pr26.htm
а она даже не компайлица!!!
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.04.2025 18:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name