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

25.Основные отличия языка Object Pascal (Delphi) от Turbo Pascal. Динамические массивы в Delphi: описание, особенности, применение

Turbo Pascal — интегрированная среда разработки для языка программирования Pascal и язык программирования в этой среде, диалект языка Паскаль от фирмы Borland.

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

Object Pascal — результат развития языка Turbo Pascal, который, в свою очередь, развился из языка Pascal. Pascal был полностью процедурным языком.

Turbo Pascal, начиная с версии 5.5, добавил в Pascal объектно-ориентированные свойства, а в Object Pascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI.

Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal.

Объектная модель Delphi Pascal по сравнению с моделью, использованной Borland Pascal 7.0, является более полной:

  • ограничение доступа к полям и методам за счет определения собственного интерфейса к каждому полю класса (пять типов секций при объявлении класса, использование свойств);

  • более развитые механизмы реализации полиморфных методов (абстрактные, динамические методы)',

  • средства работы с метаклассами (переменные метаклассов, методы классов, механизм RTTI).

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

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

Объявление массива: var My_Array: array of BaseType;

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

Установка размера массива: SetLength(My_Array,100);

Получение числа элементов массива: n:=Length(My_Array);

Обращение к первому элементу массива: My_Array[0]:=10; x:=My_Array[0];

Объявление двумерного массива: var A: array of array of BaseType;

Если присвоить переменной динамический массив, то его содержимое не копируется, присваивается только указатель на массив. А вот если применить к новому массиву SetLength , то тогда и произойдет копирование.

26.Структура модулей в Delphi. Интерфейсная, исполняемая части, инициирующая и завершающая части. Процедуры и функции: особенности в Delphi

Проект в Delphi представляет собой набор программных единиц – модулей.

Delphi позволяет поместить свои функции и процедуры в отдельный модуль (Unit), а затем использовать процедуры и функции модуля в своих программах, указав имя модуля в списке модулей, необходимых программе (инструкция uses). Модуль – это файл с расширением *.pas.

Начинается модуль заголовком — инструкцией unit, в которой указано имя модуля.

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

Структура модулей в Delphi.

Unit <имя>;

Interface <интерфейсная часть>

Implementation <исполняемая часть>

initialization <инициирующая часть>

finalization <завершающая часть>

end.

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

unit ИмяМодуля;

interface // раздел интерфейса

{ Описания процедур и функций модуля, которые могут использоваться другими модулями. }

const // раздел объявления констант

{ Объявления глобальных констант модуля, которые могут использоваться процедурами и функциями модуля.}

type // раздал объявления типов

{ Объявления глобальных типов модуля, которые могут использоваться процедурами и функциями модуля }

var // раздел объявления переменных

{ Объявления глобальных переменных модуля, которые могут использоваться процедурами и функциями модуля}

implementation // раздел реализации

{ Описания (текст) процедур и функций модуля!}

end.

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

Процедуры и функции в Delphi.

Процедура – подпрограмма, которая выполняет какие-то действия, и которую можно вызвать из другого места программы. После выполнения процедуры выполнение программы продолжается с того места, откуда она была вызвана.

Процедура — это разновидность подпрограммы. Обычно подпрограмма реализуется как процедура в двух случаях:

  • когда подпрограмма не возвращает в основную программу никаких данных;

  • когда подпрограмма возвращает в вызвавшую ее программу больше чем одно значение.

Параметры – это входные данные.

Объявление процедуры

procedure ИмяПроцедуры {var параметр1: тип1; … var параметр К : тип К);

var

// здесь объявление локальных переменных

begin

// здесь инструкции процедуры

end;

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

Вызов процедуры: ИмяПроцедуры (СписокПараметров);

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

Объявление функции

function NameFunc(Param : Тип) : Тип_возвращаемого_значения;

var

//объявление переменных (необязательно)

begin

//тело функции

Result := результат вычислений;

end;

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

Строка: Result := результат вычислений;

будет полностью идентична: NameFunc := результат вычислений;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]