Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЯП лекции.doc
Скачиваний:
16
Добавлен:
03.12.2018
Размер:
634.37 Кб
Скачать

Сортировка Шелла.

Для использования этой сортировки есть некоторое ограничение: количество элементов в массиве должно быть кратно двум.

44 55 12 42 94 18 06 67

44 18 06 42 94 55 12 67

06 18 12 42 44 55 94 67

06 12 18 42 44 55 67 94

Procedure sort6; const t=4;

var j,k,s:integer;

x:real;

h:array[1..t] of integer;

begin

h[1]:=9; h[2]:=5; h[3]:=3; h[4]:= 1;

for m:=1 to t do begin

k:=h[m]; s:=-k;

for i:=k+1 to n do

begin x:=a[j]; j:=i-k;

if s=0 then s:=-k;

s:=s+1; a[s]:=x;

while x < a[j] do

begin a[j+k]:=a[j]; j:=j-k;

end;

a[j+k]:=x; end; end; end;

T=4

N[1]=9

N[2]=5

N[3]=3

N[4]=1

K=N[M]

S=-K

X=A[J]

J=I-K

S=-K

S=S+1

A[S]=X

A[J+K]=A[J]

J=J-K

A[J+K]=X

Модули.

Модули – программно-неисполнимая единица, которая содержит некоторое количество подпрограмм.

Использование модулей позволяет:

1) сократить время разработки программы, так как один и тот же модуль можно использовать в нескольких программах, т.е. один раз создать, затем многократно использовать;

2) модульная технология позволяет использовать корпоративную технологию разработки программ, т.е. выделить функции разработки программного обеспечения, разделить их по функциональному назначению, распределить между несколькими разработчиками, объединив эти функции в модули.

Структура модуля.

Модуль оформляется в отдельном файле. Он состоит из четырех частей (в общем случае):

1. Заголовок

UNIT <имя модуля>;

имя модуля четко совпадает с именем файла (без расширения), в котором хранится данный модуль;

2. Интерфейс

INTERFACE

подключаемые модули;

const;

type;

var;

заголовки подпрограмм;

все, что описано в интерфейсной части, автоматически становится доступным объекту, к которому данный модуль подключен.

3. Раздел реалазации. IMPLEMENTATION

В данном разделе могут присутствовать все разделы описательной части и подпрограмм со своими телами. Все, что описано в разделе реализации, кроме подпрограмм, заголовки которых описаны в интерфейсной части, может использоваться только внутри модуля. Чаще всего после реализации ставится «end.», который указывает, что модуль закончился. Иногда (очень редко) перед последним «end.» записывается «begin» и перечисляются операторы Паскаля. Это – раздел инициализации. Операторы в нем выполняются до запуска программы.

Особенности компиляции программ с подключаемыми модулями.

Компилировать отдельно модуль можно, а исполнять – нельзя. Программу с подключаемым модулем можно компилировать тремя опциями из главного меню COMPILE: compile, make, build.

COMPILE

compile

make

build

Если использовать compile, то компилятор в текущей активной директории будет искать одноименный с модулем файл с расширением «.TPU».

Если компилируем make, то компилятор анализирует файлы с расширением «.TPU», не найдя среди них нужного файла, осуществляет поиск одноименного файла с расширением «.PAS».

При build поиск осуществляется модулем в одноименных файлах с расширением «.PAS». Считается, что для отладки программного обеспечения лучше использовать build, т.к. в PAS-файл можно вносить изменения. При окончательной верификации (сборке) программного обеспечения используется

compile.