Основы Object Pascal

2015-11-14СтудИзба

Описание файла

Файл "Основы Object Pascal" внутри архива находится в папке "Основы Object Pascal". Документ из архива "Основы Object Pascal", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "Основы Object Pascal"

Текст из документа "Основы Object Pascal"

А .В. Старков, А.В.Федоров Современные методы программирования

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

АЭРОКОСМИЧЕСКИЙ ФАКУЛЬТЕТ

Кафедра «СИСТЕМНЫЙ АНАЛИЗ И УПРАВЛЕНИЕ»

А.В.Федоров, А.В.Старков

Программирование на языке Object Pascal

в среде DELPHI

Учебное пособие по дисциплине

«Современные методы программирования»

УТВЕРЖДЕНО

На заседании кафедры

«____»____________2007 г.

МОСКВА 2007

Глава 1

ВВЕДЕНИЕ В Object Pascal

Модуль и его структура

Список uses

Интерфейс

Реализация

Инициализация и завершение

Ключевые слова

Ключевое слово const

Ключевое слово type

Ключевое слово var

Комментарии

Переменные

Типы данных и переменные

Совместимость типов

Знаки операций

Константы

Массивы

Одномерные массивы

Многомерные массивы

Функции Low и High

Динамические массивы

Строки

Короткая строка

Длинная строка

Расширенная строка

Строка с терминальным нулем

Операции со строками

Управляющие символы

Сравнение строк

Строковые функции

Форматирование строк

Множества

Совместимость типов

Указатели

Статические и динамические переменные

Размещение динамических переменных

Разыменование указателя

Прежде чем использовать возможности Delphi, надо познакомиться с основами языка программирования Object Pascal.

Новый термин. Объект и компонент – это фрагменты программы, которые выполняют конкретные функции. (Компонент это объект, но не всякий объект является компонентом).

Объект дает пользователю (программисту, использующему объект) только те функции, которые действительно необходимы; следовательно, использовать объекты достаточно просто. Все внутренние механизмы, знать о которых пользователю необязательно, скрыты. Это и составляет концепцию объектно–ориентированного программирования – ООП.

ООП поддерживает модульный подход к программированию. Функциональность любого компонента может быть расширена с помощью механизма наследования. Важно то, что компоненты скрывают от программиста свою сложность и дают возможность сосредоточиться на главном.

Модуль

Программирование – это нечто большее, чем написание исходного кода. Прежде всего, программирование есть разработка концепции решения задачи, а уже затем – написание исходного кода, выполнение которого и приведет к желаемому результату.

Код, который вы пишете, заносится в текстовый файл. Компилятор преобразует текст в машинный код – последовательность слов, которые «понимает» процессор.

Текстовый файл, который Delphi компилирует в машинный код, называется модулем (unit).

Новый термин. Модуль это текстовый файл, который может быть откомпилирован в модуль машинного кода. Откомпилированный модуль записывается файл с расширением имени DCU.

Любая программа с графическим интерфейсом пользователя (Graphical User Interface, GUI) состоит, как минимум, из двух модулей – модуля проекта и модуля формы.

Модуль проекта содержит код, который обеспечивает подготовку программы к выполнению и затем запускает ее. Файл модуля проекта имеет расширение имени DPR. Исходный код проекта можно просмотреть, выбрав в главном меню команду Project | View Source. Обычно нет никакой необходимости редактировать этот файл. Более того, его нельзя изменять до тех пор, пока вы не разберетесь в деталях. Если вы случайно модифицируете исходный код модуля проекта недопустимым образом, скорее всего программа не будет работать.

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

Любая программа (проект) в Delphi имеет, по крайней мере, один модуль формы, но их может быть и больше. Например, приложение, которое способно показать сообщение «О программе…» в ответ на команду Help | About будет иметь в своем составе два модуля: модуль формы главного окна и модуль формы информации о программе.

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

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

Структура модуля стандартна. Модуль проекта в Delphi имеет заголовок, состоящий из ключевого слова program, за которым следует имя модуля и блок кода, ограниченный ключевыми словами begin и end. вы можете просмотреть исходный код модуля проекта. Для этого выберите в главном меню View | Project Source. Типичный текст модуля проекта приведен на листинге 1.1.

Замечание. Номера строк на листинге 1.1 добавлены ради наглядности. В исходном тексте строки программ не нумеруются

Листинг 1.1. Стандартный текст модуля проекта Delphi.

01: program Project1;

02:

03: uses

04: Forms,

05: Unit1 in 'Unit1.pas' {Form1};

06:

07: {$R *.RES}

08:

09: begin

10: Application.Initialize;

11: Application.CreateForm(TForm1, Form1);

12: Application.Run;

13: end.

В первой строке ключевое слово program идентифицирует модуль проекта. Его имя (Project1) следует за ключевым словом program. Delphi всегда присваивает проекту имя по умолчанию, но вы можете сохранить проект и под другим именем. Новое имя автоматически заменит собой старое в строке 1).

Со строки 3 расположен раздел, текст которого начинается с ключевого слова uses. Здесь приводится список модулей, которые требуется откомпилировать в порядке их перечисления. Назначение ключевого слова uses более подробно рассмотрено в разделе "Список uses."

В строке 7 вы видите директиву. В данном случае это есть указание подключить файл ресурсов проекта. Назначение файла ресурсов объясняется в разделе "Создание прикладных программ"

В строке 9 записано ключевое слово begin, а в строке 13 – ключевое слово end. Обратите внимание на точку после слова end. Модуль в общем случае может содержать несколько блоков, ограниченных парой «begin – end », но только одно заключительное слово end с точкой.

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

Теперь рассмотрим типовой Pascal–модуль.

В
главном меню выберите команду File | New.

В диалоговом окне New Items найдите значок Unit и дважды щелкните на нем. Delphi создает заготовку нового модуля и помещает ее в окно редактора кода. Текст модуля приведен на листинге 1.2.

Листинг 1.2. Заготовка модуля

01: unit Unit2;

02:

03: interface

04:

05: implementation

06:

07: end.

У модулей на листингах 1.1 и 1.2 есть что–то общее.

Во-первых, это имя Unit2 в первой строке (имя модуля создала Delphi). Но код на листинге 1.1 начинается словом program, а здесь – словом unit.

Во–вторых, это слово end в конце. Общим правилом является то что в начале любого Pascal–модуля стоит либо ключевое слово program, либо unit, с помощью которых модулю присваивается то или иное имя, а в конце модуля стоит слово end с точкой.

Код на листинге 1.2 отличается от кода на листинге 1.1 тем что здесь есть разделы, отмеченные ключевыми словами interface и implementation. Любой модуль, который не является модулем проекта, должен иметь раздел интерфейса (interface) и раздел реализации (implementation). Назначение этих разделов мы рассмотрим позже. Другим отличием листинга 1.2 от листинга 1.1 состоит в том, что здесь нет слова begin. Главный модуль программы обязательно содержит блок «begin – end », а обычный модуль – только end с точкой в конце.

Рассмотрим назначение ключевых слов, которые используются в Pascal–модуле.

Список uses

Новый термин. В разделе uses перечислены внешние модули, на которые ссылается данный модуль. Иными словами, данный модуль не удастся откомпилировать без использования модулей, которые перечислены в списке uses.

Обратимся к листингу 1.1. Слово uses в строке 3 открывает список модулей, которые необходимы для выполнения прикладной программы. Например, в строке 11 листинга 1.1 написано:

Application.CreateForm(TForm1, Form1);

В этой строке используются идентификаторы, которые в данном модуле не объявлены. Так, описание процедуры Application.CreateForm находится в модуле с именем Forms.pas, а идентификаторы TForm1 и Form1 описаны в модуле формы приложения Unit1.pas. Видите связь? Список uses сообщает Delphi где искать дополнительную информацию, необходимую для компиляции модуля. Рассмотрим список uses подробнее:

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

В этом списке присутствуют имена двух модулей: Forms и Unit1. В некотором смысле это неудачный пример, поскольку второй модуль описан необычно. Так, его описание содержит дополнительный текст (Unit1 in 'Unit1.pas' {Form1}). Этот текст показывает что модуль содержит описание формы. Такой синтаксис описания применяется только в модуле проекта. Текст в фигурных скобках – это комментарий.

Необходимо запомнить два правила составления списка uses:

Имена модулей в списке разделяются запятыми.

Список заканчивается символом «;».

Способ оформления списка не имеет никакого значения. Например, следующие два списка uses абсолютно верны:

uses

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

uses

Windows,

Messages,

SysUtils,

Classes,

Graphics,

Controls,

Forms,

Dialogs,

StdCtrls;

ПРИМЕЧАНИЕ: В некоторых случаях Delphi может добавлять ссылки на модули в список uses. Это делается с помощью команды меню File | Use Unit.

Интерфейс

Раздел интерфейса в модуле начинается с ключевого слова interface.

Этот раздел предназначен для объявления идентификаторов, которые «экспортирует» данный модуль. Экспортируемый идентификатор доступен в любом другом модуле проекта, который ссылается на данный модуль в своем списке uses.

Большинство модулей содержат объявления классов, процедур, функций, типов и т.д, которые будут использоваться в других модулях. Любые объекты, которые должны быть доступны другим модулям, следует объявить в разделе интерфейса. Раздел интерфейса заканчивается перед словом implementation.

Реализация

Новый термин: Раздел реализации (implementation) модуля содержит детальный код модуля.

Раздел реализации начинается словом implementation и заканчивается либо итоговым end., либо перед ключевым словом initialization. Ключевое слово initialization используется для создания в модуле раздела инициализации. Пока что мы ограничимся сказанным, ибо прежде чем объяснять тонкости создания модулей необходимо рассмотреть другие аспекты языка Pascal.

Рассмотрим пример, иллюстрирующий использование разделов interface и implementation.

Допустим, нам надо создать модуль с процедурой DoSomething. причем эта процедура должна быть доступна всем модулям проекта. В этом случае мы должны описать процедуру DoSomething в разделе interface и затем написать код этой процедуры в разделе implementation. Вцелом модуль будет выглядеть так, как показано на листинге 1.3.

Листинг 1.3. Модуль с экспортируемой процедурой

unit Unit2;

interface

procedure DoSomething;

implementation

procedure DoSomething;

begin

{ Алгоритм процедуры DoSomething. }

end;

end.

Обратите внимание на то, что процедура DoSomething объявлена в разделе интерфейса, а затем определена (т.е. дан ее подробный код) в разделе implementation. Правда, мы несколько опередили события, ибо не объяснили еще ни понятие «процедура», ни понятие «функция». Процедуры и функции мы рассмотрим позже.

Инициализация и завершение

Разделы инициализации и завершения предназначены для размещения в них кода, который должен быть выполнен в начале (initialization) и при завершении работы программы (finalization). Код раздела инициализации выполняется когда модуль загружается в оперативную память. Код раздела завершения выполняется перед выгрузкой модуля из памяти. Модуль может содержать только раздел инициализации, однако раздел завершения может быть только в паре с разделом инициализации. Разделы initialization и finalization в модулях необязательны.

Ключевые слова

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

Ключевое слово const

Любой модуль может содержать один и более разделов объявления констант. Такой раздел начинается с ключевого слова const.

Если в программе много раз используется одно и то же численное значение или определенная строка текста появляется в нескольких местах, стоит объявить повторяющееся значение как константу.

Новый термин. Константа – это имя фиксированного значения, на которое вы часто ссылаетесь в своих программах. Объявление константы позволяет обращаться в программе к соответствующему значению по имени вместо написания величины.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее