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

Сортировка

Категории рефератов: Рефераты >> Технология скачать реферат
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 кб
Просмотров: 1664
Закачек: 833
скачать реферат

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

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

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

Категории рефератов: Рефераты >> Технология
размер реферата: 32 кб  |  просмотров: 2642  |  закачек: 844  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 9 кб  |  просмотров: 1564  |  закачек: 860  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 57 кб  |  просмотров: 3795  |  закачек: 795  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 31 кб  |  просмотров: 2252  |  закачек: 846  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 188 кб  |  просмотров: 3624  |  закачек: 867  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 34 кб  |  просмотров: 2517  |  закачек: 830  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 13 кб  |  просмотров: 1665  |  закачек: 833  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 18 кб  |  просмотров: 1816  |  закачек: 835  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 17 кб  |  просмотров: 1943  |  закачек: 854  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 54 кб  |  просмотров: 2907  |  закачек: 852  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 56 кб  |  просмотров: 2945  |  закачек: 745  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 6 кб  |  просмотров: 1316  |  закачек: 778  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 40 кб  |  просмотров: 2457  |  закачек: 783  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 32 кб  |  просмотров: 2315  |  закачек: 710  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 62 кб  |  просмотров: 3363  |  закачек: 737  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 18 кб  |  просмотров: 1743  |  закачек: 774  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 111 кб  |  просмотров: 3349  |  закачек: 716  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 55 кб  |  просмотров: 3495  |  закачек: 731  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 67 кб  |  просмотров: 3361  |  закачек: 749  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
размер реферата: 39 кб  |  просмотров: 2229  |  закачек: 841  |  рейтинг: 0  |  читать полностью  |  скачать работу
 
1 2 3 4 5 6 7 8 9 10 >>
Rambler's Top100