![]() |
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 Куча ошибок! никак не реализуется! |
Dark |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Кинь исходник
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
Миша |
![]()
Сообщение
#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 а она даже не компайлица!!! |
![]() ![]() |
![]() |
Текстовая версия | 22.04.2025 18:53 |