6. Строковые типы

Тип STRING (строка) в Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY [0..N] OF CHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N - максимальное количество символов в строке. Значение N определяется объявлением типа STRING[N] и может быть любой константой порядкового типа, но не больше 255.

Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N=255.

Строка в Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:

Var

st: string;

.........

if st [5] = ‘A’ then.....

Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки. Первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной строки можно осуществлять необходимые действия и таким образом изменять длину.

Значение текущей длины строки можно не только извлекать из первого байта самой строки, но и получать с помощью функции LENGTH (st).

Например:

Var

st: string;

.........

write (‘Введите строку: ’);

readln (st);

writeln (‘Текущая длина строки - ’,Length(st));

........

Данный фрагмент программы распечатает текущую длину введенной строки.

К строкам можно применять операцию “+” - сцепление, например:

st:= ‘a’ + ‘b’;

st:= st + ‘c’; {st содержит “abc”}

Если длина сцепленной строки превысит максимально допустимую длину N, то “лишние” символы отбрасываются.

Операции отношения =, <>, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением CHR(0).

Следующие операции отношения дадут значение TRUE:

‘A’ > ‘1’

‘Turbo’ < ‘Turbo Pascal’

‘Паскаль’ >‘Turbo Pascal’

Все остальные действия над строками и символами реализуются с помощью встроенных процедур и функций.

7. Процедурные типы

Основное назначение процедурных типов - дать программисту гибкие средства передачи функций и процедур в качестве фактических параметров обращения к другим процедурам и функциям.

Для объявления процедурного типа используется заголовок процедуры (функции), в котором опускается ее имя, например:

type

Proc1 = Procedure (a, b, с: Real; var d: Real); Proc2 = Procedure (var a, b);

РгосЗ = Procedure;

Func1 = Function: String;

Func2 = Function (var s: String): Real;

Как видно из приведенных примеров, существует два процедурных типа: тип-процедура и тип-функция.

8. Объекты

Тип данных Object является базовым в Visual Basic.NET. Это означает, что все типы данных и типы объектов являются производными от него либо непосредственно, либо косвенно. Это означает также, что любой другой тип данных, простейший или составной, может быть преобразован в Object. Если параметр Option Strict выключен, тип Object может быть использован в качестве универсального типа данных.

9. Классы

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

Пример:

type

TMyClass = class(TObject) Field: Integer;

end;

var

MyClass: TMyClass;


10. Варианты

Вариант (в Delphi 1 он отсутствует) - это тип variant, разработанный специально для тех случаев, когда на этапе компиляции программист не может сказать, какого типа данные будут использоваться в выражении или как параметры вызова подпрограмм. Переменная-вариант занимает в памяти дополнительные 2 байта, в которые помещается информация о действительном типе переменной. Эта информация позволяет компилятору создать код, который будет осуществлять необходимое преобразование типов на этапе прогона программы.

В переменную-вариант можно поместить:

·           целое или вещественное число;

·           логическое значение;

·           строку;

·           время и/или дату;

·           OLE-объект;

·           массив произвольной размерности и длины, содержащий элементы одного из перечисленных выше типов.

Варианты могут участвовать в целочисленных, вещественных, логических и время-дата выражениях при условии корректности соответствующих преобразований. Например, если варианту v присвоена строка '1.0', то выражение 1+v будет правильным вещественным значением 2,0. Однако если v:= 'текст', выражение 1+v вызовет исключение EVariantError.


Информация о работе «Типы данных в Object Pascal»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27554
Количество таблиц: 2
Количество изображений: 0

Похожие работы

Скачать
29034
4
1

... фактически игнорирует это указание: “упаковка” данных в Object Pascal осуществляется автоматачески везде, где это возможно.   1.2.1 Массивы Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно, структурированного). Эти компоненты можно ...

Скачать
49877
5
0

... в среде Delphi). Задачи использовались как с данного сайта, так и из других источников – книг и семинарских занятиях по информатике в МГОУ. Курс завершается разработкой игры. Программное обеспечение: свободно распространяемая версия объектно-ориентированной среды программирования Delphi. Методы обучения: метод проектов, лекции, проблемный метод, частично-поисковый метод. Контроль знаний и умений ...

Скачать
162712
21
0

... F := SomeFunction; напротив, оператор I := F(4); вызывает эту функцию (запускает ее алгоритм) и после обработки возвращает результат вычислений переменной I.   15.6. Формальные и фактические параметры В Object Pascal есть понятия формального и фактического параметров. Формальным называется параметр, который содержится в заголовке описания подпрограммы, а фактическим – параметр в обращении к ...

Скачать
112819
0
0

... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой --------------------------------------------------   Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...

0 комментариев


Наверх