Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

1.9.4. Формирование очереди

Под очередью понимается список, обслуживаемый по принципу «первый пришел ‑ первым ушел».

Пример:

Procedure TForm1.Test_oheredClick(Sender: TObject); //очередь

Type ukaz=^stack; stack=Record inf:Integer; next:ukaz; end; //типы

Var nah,kon,tek,del:ukaz; value:Integer; //переменные

Procedure sozdo; //процедура создания очереди из пяти записей

Vari:Integer; //переменная цикла

BeginNew(nah);nah^.inf:=1;kon:=nah; //создание первой записи очереди

Fori:=2to5do//цикл формирования очереди

Begintek:=kon;New(kon); //выделение памяти для записи

tek^.next:=kon; // запоминание адреса следующей записи

kon^.inf:=i;kon^.next:=nil; //формирование значений полей новой записи

End; {конец тела цикла}End; //конец процедуры создания очереди

Procedure dobavo; //процедура добавления в очередь трех записей

Vari:Integer; {переменная цикла}Begin

Fori:=6to8do//цикл добавления записей в очередь

Begintek:=kon;New(kon); //выделение памяти для записи

tek^.next:=kon; //запоминание адреса следующей записи

kon^.inf:=i;kon^.next:=nil; //формирование значений полей новой записи

End; {конец тела цикла}End; //конец процедуры добавления

Procedure udalo; //процедура удаления первой записи из очереди

Begin del:=nah; nah:=nah^.next; Dispose(del); end; //удаление первой записи

Procedure vivodo; //процедура вывода очереди

Begin Label1.caption:='';tek:=nah;//очистка Label1 и зап.адр. первой записи

whiletek<>Nildo//цикл вывода записей очереди

Begin Label1.caption:=Label1.caption+IntToStr(tek^.inf)+','; tek:=tek^.next;

End;{конец тела цикла. В результате вLabel1 выведется: 2,3,4,5,6,7,8,}End;

begin //процедура тестирования процедур обработки очереди

sozdo;dobavo;udalo;vivodo;//вызов процедур обработки очереди

End; //конец процедуры тестирования процедур обработки очереди

Вопросы для самопроверки и контроля

Контрольные вопросы

  1. Что представляет собой структура данных «стек»?

  2. Что представляет собой структура данных «очередь»?

  3. Каково назначение метода New?

  4. Какой константой можно задать признак отсутствия адреса в указателе?

Глава 2. Среда разработкиDelphi

2.1. Общие сведения

2.1.1. Окна

Программы создаются в интегрированной среде разработки IDE(IntegrateDevelopmentEnvironment) (рис. 2.1.1.1). СредаDelphiотносится к системам быстрой визуальной разработки приложенийRAD(RapidApplicationDevelopment).

Рис. 2.1.1.1. Окна среды разработки приложений

Для многих окон имеются контекстные меню с командами настройки (Properties) и управления окнами. Рассмотрим основные окна средыDelphi.

Окно настройки среды(EnvironmentOptions) вызывается командойTools/ Environment Optionsи служит для настройки параметров среды.

Окно Инспектора объектов(ObjectInspector) предназначено для изменения свойств объектов. Окно можно вызвать командойView/Object Inspectorили клавишейF11. Окно имеет две страницыProperties(описа­ние свойств объектов в виде наименования и значения свойств) иEvents(список процедур обработки различных событий). Двойной щелчок по полю события выводит окно редактора кода процедуры обработки этого события и программист может создать или откорректировать процедуру на языкеDelphi, которая будет автоматически выполняться при наступлении этого события. Если нужно обратиться к уже существующей процедуре, то можно открыть список и выбрать эту процедуру. В верхнем поле с раскрывающимся списком можно выбрать текущий объект, свой­ства которого нужны пользователю. В контекстном меню имеются полез­ные команды:Arrange(сортировка свойств по категориям или именам),View(отображаемые свойства). Если свойство объекта (например,DataSet) представляет другой объект (Query1), то двойной щелчок на значении этого свойства при нажатой клавишеCtrlвыведет свойства, указанного в значении объекта (Query1).

Окно конструктора формы(Form1) содержит объекты на форме, из которой формируется отдельный модуль с кодом описания формы и ее объектов и процедур.

Окно редактора кода(Unit1.pas) служит для создания и редакти­ро­ва­ния программ. Для быстрого переключения между окнами кода и формы используется клавишаF12. КомандойAdd To-DoItemиз контекстного меню можно добавить текст комментария (например, сооб­ще­ние об ошибке в программе) к программе (полеText), фамилию автора (Owner), важность по пятибалльной системе (Priority), категорию (Category). Комментарий выводится и в программу, начиная с позиции курсора. Вызов окна просмотра комментариев осуществляется командойView/To-Do List. В окне можно пометить галочкой отдельные комментарии. Двойным щелчком по строке с комментарием можно вернуться на программу с этим комментарием. Контекстное меню этого окна позволяет выполнять различные операции с комментариями (удалять, включать, редактировать, сортировать и др.).

Окно проводника коданаходится слева от окна редактора кода и содержит дерево объектов модуля формы. Это окно будет отсутствовать, если сбросить флажокAutomatically show Explorerна страницеExplorerокнаEnvironmentOptions, вызываемой командойTools/Environment Options. Вывод этого окна производится командойView/Code Explorer.

Окно менеджера проекта(ProjectManager) вызывается командойView/Project Managerи служит для управления частями проекта (просмотра, удаления и добавления новых частей).

Окно обозревателя проекта(Exploring...) вызывается командойView/Browserпозволяет быстро перемещаться по дереву глобальных сим­во­лов, классов, модулей. В зависимости от типа текущего объекта в правой части окна доступны детальные его характеристики:Scope(пределы),Inheritance(иерархия),References(ссылки). Окно можно настроить командойTools/Environment Options/Explorer.

Главное менюсодержит набор команд управления средой.

Панели кнопок быстрого вызова, часто используемых команд глав­ного меню, находятся под левой частью меню. Существует 5 панелей: стан­дартная (Standart), просмотра (View), отладки (Debug), пользователя (Custom) и рабочего стола (Desktop). Настройку панелей можно произ­вести из окнаCustomize(Настройка), вызываемой командойCustomizeиз контекстного меню панелей.

Сохранение настроекокон можно реализовать командойView/Desktop/Save desktop (кнопкойSave current desktop), указав далее имя настройки. Выбор нужной настройки осуществляется из списка настроек (в конце сроки меню). Для окон отладки используется командаView/Desktop/Set Debugger Desktop (кнопкаSet debugger desktop).