Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Сортировка файлов.






 

Для сортировок файлов можно воспользоваться несколькими приемами:

  1. Записать файл в массив. Отсортировать массив. Записать массив в файл;
  2. Используя динамические структуры создать в памяти структуру, подобную файлу. Отсортировать в этой структуре файл и переписать его заново;
  3. Сортировка файлов без записи в память, т.е. на внешних устройствах.

Третий прием может быть реализован следующими способами:

1) просматривается весь файл. Находится максимальный элемент. Записывается в новый файл. Старый файл переписывается без найденного элемента и т.д.

2) пузырьковая сортировка. Из файла читаются два элемента. Больший записывается в новый файл, а меньший в конец старого. Просматривается весь файл до конца. Созданный вновь файл сортируется тем же способом. Сортировка останавливается когда в сортируемый файл не производится записи.

3) сортировка слиянием. Сортировка проводится в два этапа. На первом этапе сортируемый файл разделяется на два по определенному признаку. Элементы в новых файлах будут отсортированы. На втором этапе созданные файлы сливаются, создавая общий порядок сортировки.

function order (x, y: integer): boolean;

begin

if x< y then order: =true else order: =false;

end;

procedure separator (s, d1, d2: file; var sort: boolean);

var a, b: integer;

last: boolean;

dirout: 1..2;

begin

reset (s);

rewrite (d1);

rewrite (d2);

sort: =true;

dirout: =1;

if not eof (s) then

begin

read (s, a);

while not eof (s) do

begin

read (s, b);

last: = not order (a, b);

case dirout of

1: write (d1, a, last);

2: write (d2, a, last);

end;

if last then begin

case dirout of

1: dirout: =2;

2: dirout: =1;

end;

sort: =false;

end;

a: =b;

end;

case dirout of

1: write (d1, a, true);

2: write (d2, a, true);

end;

end;

close (s);

close (d1);

close (d2);

end;

 

 

Модуль 7. Объектно - ориентированное программирование

 

Тип объект.

 

Объект можно рассматривать как усовершенствование типа запись, в которой описание свойств и параметры моделируемой сущности дополняются методами - описаниями действий с объектом. В отличие от записи объект объявляется словом object.

Пример: создадим простейший объект: позицию на экране в графическом режиме:

program oop;

uses graph;

type pozicia = object

x, y: integer;

procedure init (xn, yn: integer);

procedure locate (var xl, yl: integer);

end;

procedure pozicia.init;

begin

x: =xn;

y: =yn;

end;

procedure pozicia.locate;

begin

xl: =x;

yl: =y;

end;

var d, r, xx, yy: integer;

p: pozicia;

begin

d: =detect;

randomize;

initgraph (d, r, 'c: \tp\bgi');

p.init (random(GetMaxX), random(GetMaxY));

closegraph;

p.locate (xx, yy);

write (xx, yy);

end.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.