
- •Структура программы на Паскале.
- •Стандартные типы Паскаля.
- •Операторы в Паскале.
- •Цикл с параметром.
- •Типовые задачи на операторов цикла.
- •Операторы целочисленного деления.
- •Вложенные циклы.
- •Структурированные типы данных.
- •Массивы.
- •Многомерные массивы.
- •Строки.
- •Множества.
- •Записи.
- •Работа с текстовыми файлами.
- •Особенности работы с текстовым файлом:
- •Типизированные файлы.
- •Особенности работа с типизированными файлами.
- •Подпрограммы.
- •Структура подпрограмм.
- •1. Заголовок
- •2. Описательная часть
- •3. Тело подпрограммы
- •Оформление формальных параметров, которые определяет режим взаимодействия с основной программой.
- •Особенности передачи структурированных данных подпрограммы.
- •Опережающие описания.
- •Функциональный тип. Процедурный тип.
- •Сортировки.
- •Сортировка бинарными включениями.
- •Сортировка простых выборов.
- •Сортировки простым обменом.
- •Шейкер-сортировка.
- •Сортировка Шелла.
- •Модули.
- •Структура модуля.
- •Особенности компиляции программ с подключаемыми модулями.
- •Циклические ссылки модулей друг на друга.
- •Стандартные модули в Паскале.
- •Динамические переменные.
- •Динамические структуры.
- •Однонаправленные списки.
- •Формирование списков. Формирование очереди.
- •Формирование стека.
- •Классическое формирование очереди (по Вирту).
- •Работа со списками.
- •1) Проход по списку;
- •2) Добавление элемента в список;
- •Удаление элемента из списка.
- •«Древовидные структуры»
- •Удаление элемента из дерева
- •Самоупорядочивающийся список
- •Частотный словарь
- •Нерекурсивное формирование дерева
Сортировка Шелла.
Для использования этой сортировки есть некоторое ограничение: количество элементов в массиве должно быть кратно двум.
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.