Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы / Паскаль.doc
Скачиваний:
35
Добавлен:
10.04.2015
Размер:
388.61 Кб
Скачать

10.5. Операции с динамическими списками (дс)

Типовыми операциями с динамическими списками являются:

  • создание и первоначальное заполнение динамического списка (ввод данных),

  • вывод значений элементов динамического списка,

  • поиск заданного элемента списка,

  • дополнение после заданного элемента списка,

  • удаление заданного элемента списка.

Все операции следует рассматривать в начале на графических моделях с целью освоения происходящих процессов. Рассматриваемые ниже примеры используют динамические переменные типа “запись”, в которых имеются три поля:

  • Д1 и Д2 – поля обрабатываемых данных (тип string [15]);

например, Д1 – для записи фамилий сотрудников,

Д2 – для записи названий профессий;

  • Р – поле ссылки на следующий элемент динамической цепочки.

10.5.1. Ввод, создание и заполнение динамического списка

В программе в разделе Typeопределяется во-первых ссылочный тип. Затем необходимые переменные (см. п. 10.4).

Type

Ptr=^Zap; {Ptr - Ссылочный тип; для указания динамических переменных типа Zap; определения типа Zap даётся следующим оператором}

Zap=record

D1,D2: string[15];

P: Ptr {поле ссылки на следующий элемент динамической цепочки}

end;

var

Bag,Tek,tek1,NewP: Prt; {вспомогательная переменная для ввода данных}

S: string[15];

flag: boolean; {вспомогательная переменная для использования в операторе цикле}

Рис. 10.7

10.5.2 Вывод значений элементов динамической цепочки

Выполняется с помощью изменение текущего указателя от начального значения (адреса 1-го элемента) до тех пор пока в поле ссылки очередного элемента не встретится константа Nil

. . . .

Tek:=Beg;

While Tek<>Nil do

begin

WriteLn(Tek^.D1,'LI',Tek^.D2);{вывод значений полей Д1 и Д2 текущей динамической переменной}

Tek:=Tek^.P - этот оператор смещает текущий указатель на следующий элемент динамического списка

end;

10. Модульный принцип построения программ на языке паскаль. Стандартные модули и модули пользователя.

Что такое модуль?

Borland Pascal обеспечивает вам доступ к большому числу встроенных констант, типов данных, переменных, процедур и функций. Некоторые из них специфичны для Borland Pascal, другие специфичны для приложений Windows. Их количество велико, однако, в своей программе вы редко используете их все сразу. Поэтому они разделены на связанные группы, называемые модулями. В этом случае

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

Используя модули, вы можете разбивать программу на отдельные части и компилировать их отдельно. Программный модуль (unit) представляет собой набор констант, типов данных, переменных, процедур и функций, которые могут совместно использоваться несколькими программами. Каждый модуль аналогичен отдельной программе на Паскале: он может иметь основное тело, которое вызывается перед запуском вашей программы и осуществляет необходимую инициализацию.

Все описания внутри модуля связаны друг с другом. Например, модуль Strings содержит все описания, необходимые для подпрограмм работы со строками с завершающим нулем.

Borland Pascal предоставляет пользователю ряд стандартных модулей, таких как System, Crt WinCrt и др. Они поддерживают наши программы Borland Pascal и все записаны в одну из трех библиотек исполняющей системы (в зависимости от целевой платформы).

Библиотеки исполняющей системы для целевой платформы Таблица 7.1

Имя библиотеки

Целевая платформа

TURBO.TPL

DOS реального режима

TPW.TPL

Windows

TPP.TP

DOS защищенного режима

Ваша программа может использовать любую из процедур и функций в этих модулях, и вам не потребуется писать их заново.

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

Структура модуля аналогична структуре программы, однако есть несколько существенных различий. Например, рассмотрим модуль:

unit <идентификатор>;

interface

uses <список модулей>; { Необязательный }

{ глобальные описания }

implementation

uses <список_модулей>; { Необязательный }

{ локальные описания }

{ реализация процедур и функций }

begin

{ код инициализации }

end.

Заголовок модуля начинается зарезервированным словом unit, за которым следует имя модуля (идентификатор) точно так же, как и в случае имени программы. Следующим элементом в модуле является ключевое слово interface. Оно обозначает начало интерфейсной секции модуля - части, доступной всем другим модулям или программам, в которых он используется.

Программный модуль может использовать другие модули, для этого они определяются в операторе uses. Оператор uses (если он имеет место) может содержаться в двух местах. Во-первых он может следовать сразу после ключевого слова interface. В этом случае любые константы и типы данных, описанные в интерфейсной секции этих модулей, могут использоваться в любом описании в интерфейсной части данного модуля.

Во-вторых, он может следовать немедленно за ключевым словом implementation. В этом случае все описания из этих модулей могут использоваться только в секции реализации.

Стандартные модули

Модули библиотек исполняющей системы Borland Pascal загружаются в память вместе с Borland Pascal; вы всегда можете их использовать. Обычно библиотеки исполняющей системы (TURВО.TPL, TPW.TPL и TPP.TPL) находятся в том же каталоге, что и компилятор (TURBO.EXE. BPW.EXE и BP.EXE).

Создание ваших собственных модулей

Если вы хотите написать модуль, содержащий некоторые полезные подпрограммы, и использовать эти подпрограммы в своих программах, напишите модули и сохраните его под именем, заданным в заголовке модуля. Borland Pascal сохраняет файл с расширением .PAS, как и любой другой файл, созданный в редакторе Borland Pascal. В исходном файле может содержаться только один модуль.

Компиляция модуля

Скомпилировать модуль вы можете двумя способами. Вы можете:

* Скомпилируйте модуль с помощью команды Compile¦Compile. Вместо создания файла .EXEBorlandPascalсоздает файл .TPU, .TPWили .TPP.

Целевая платформа

Расширение имени файла модуля

DOS реального режима

.TPU

Windows

.TPW

DOS защищенного режима

.TPP

Например, если ваш модуль называется MYUNIT.PAS, если целевой платформой является Windows, он компилируется в MYUNIT.TWP.

* Для компиляции программы, которая включает в себя оператор uses, используйте командуCompile¦MakeилиCompile¦Build. В зависимости от целевой платформы, создается файл .TPU, .TPW или .TPP.

13

Соседние файлы в папке госы