Технология скачать лучшие рефераты, изложения, рефераты, сочинения

Сортировка

Категории рефератов: Рефераты >> Технология скачать реферат
1. ЛАБОРАТОРНАЯ РАБОТА ПО ПРОГРАММИРОВАНИЮ УЧЕНИКА 10д КЛАССА ШКОЛЫ N57
АХМАНОВА СЕРГЕЯ ПО ТЕМЕ "СОРТИРОВКИ".



2. ПОСТАНОВКА ЗАДАЧИ.

Дан файл, содержащий числа типа longint, расположенные в произвольном
порядке. Требуется расположить эти числа по возрастанию, используя не более
40 килобайт оперативной памяти и дискового пространства не более чем в два
раза больше исходного файла.



3. АЛГОРИТМ (метод решения).

Сначала исходный файл разбивается на куски по 10000 чисел, каждый кусок
сортируется в памяти и записывается в один из двух временных файлов, причем
так, что количество кусков в этих файлах отличается не более чем на 1(далее -
первоначальная сортировка).

Затем, несколько раз выполняется операция "склеивание"(одно выполнение
операции "склеивание" мы будем незывать "шаг"), т.е два исходных
файла, в которых находились отсортированные куски копируются в два других
файла, при этом из двух кусков, находящихся в разных файлах и имеющих
одинаковые номера создается один отсортированный кусок. Этот кусок
записывается в первый выходной файл если исходные куски имели нечетные номера
и во второй, если исходные куски имели четные номера.



4. ВНУТРЕННЯЯ СПЕЦИФИКАЦИЯ ПРОГРАММЫ.

При написании программы использовалась среда Borland Pascal 7.0 и
встроенный компилятор.
Для ускоренного обмена с диском применялся блоковый ввод-вывод, т.е
информация читается и записывается целыми кластерами. Для осуществления этого
способа ввода-вывода был написан модуль(Files), с помощью которого ввод-вывод
внешне не отличается от обычного.
Схема программы предельно проста: сначала выполняется первоначльная
сортировка(процедура firstsort), затем вызываем склеивание(процедура
ftrans(in1, in2, out1, out2: workfile);), где пары файлов все время меняются и
после каждого запуска процедуры проверяется условие выхода.
Процедура ftrans открывает все файлы, затем выполняет несколько раз
процедуру слива одного куска(onestep) и закрывает файлы.


5. КОММЕНТИРОВАННЫЙ ТЕКСТ ПРОГРАММЫ.

Модуль Files.
Сдесь переписаны все процедуры и функции необходимые для работы с файлами,
работающие с блоками. Работа с ними осуществляется также как и с
обычными процедурами модуля System.

unit Files;
interface
const typesize=4;
const bufsize = 2048;
type using=longint;
type buffer = array[1..bufsize] of using;
type pbuffer = ^buffer;
type filemode = (fread, fwrite, closed);
type tfile = record
buf: pbuffer;
mode: filemode;
f: file;
count, leng: integer;
end;
procedure fAssign(var w: tfile; name: string);
procedure fReWrite(var w: tfile);
procedure fReset(var w: tfile);
procedure fPut(var w: tfile; d: using);
procedure fGet(var w: tfile; var d: using);
procedure fClose(var w: tfile);
function fEof(var w: tfile): boolean;

implementation
procedure fAssign(var w: tfile; name: string);
begin
Assign(w.f, name);
w.mode:=closed;
end;

procedure fReWrite(var w: tfile);
begin
if w.mode=closed then
begin
ReWrite(w.f, typesize);
new(w.buf);
w.count:=0;
w.leng:=0;
w.mode:=fwrite;
end;
end;

procedure fReset(var w: tfile);
begin
if w.mode=closed then
begin
Reset(w.f, typesize);
new(w.buf);
BlockRead(w.f, w.buf^, bufsize, w.leng);
w.count:=1;
w.mode:=fread;
end;
end;

procedure fPut(var w: tfile; d: using);
begin
if w.mode=fwrite then
begin
w.count:=w.count+1;
w.buf^[w.count]:=d;
if w.count=bufsize then
begin
BlockWrite(w.f, w.buf^, w.count);
w...
Размер: 13 кб
Просмотров: 1716
Закачек: 866
скачать реферат

Добавить комментарий

Ваше имя
Ваш комментарий
Оценка плохо   нормально   хорошо
Код на картинке

Лучшие рефераты Технология, Рефераты

Категории рефератов: Рефераты >> Технология
размер реферата: 32 кб  |  просмотров: 2717  |  закачек: 874  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 9 кб  |  просмотров: 1619  |  закачек: 891  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 57 кб  |  просмотров: 3924  |  закачек: 825  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 31 кб  |  просмотров: 2328  |  закачек: 875  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 188 кб  |  просмотров: 3727  |  закачек: 896  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 34 кб  |  просмотров: 2588  |  закачек: 863  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 13 кб  |  просмотров: 1717  |  закачек: 866  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 18 кб  |  просмотров: 1897  |  закачек: 867  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 17 кб  |  просмотров: 2004  |  закачек: 886  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 54 кб  |  просмотров: 3021  |  закачек: 886  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 56 кб  |  просмотров: 3039  |  закачек: 784  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 6 кб  |  просмотров: 1374  |  закачек: 816  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 40 кб  |  просмотров: 2554  |  закачек: 820  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 32 кб  |  просмотров: 2403  |  закачек: 750  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 62 кб  |  просмотров: 3471  |  закачек: 771  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 18 кб  |  просмотров: 1829  |  закачек: 810  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 111 кб  |  просмотров: 3466  |  закачек: 754  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 55 кб  |  просмотров: 3603  |  закачек: 772  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 67 кб  |  просмотров: 3515  |  закачек: 806  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 39 кб  |  просмотров: 2316  |  закачек: 902  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
1 2 3 4 5 6 7 8 9 10 >>
Rambler's Top100