Категории
Самые читаемые
ChitatKnigi.com » 🟢Компьютеры и Интернет » Программирование » Delphi. Учимся на примерах - Сергей Парижский

Delphi. Учимся на примерах - Сергей Парижский

Читать онлайн Delphi. Учимся на примерах - Сергей Парижский
1 ... 26 27 28 29 30 31 32 33 34 35
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать

Идентификаторы

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

В языке Object Pascal идентификаторы не чувствительны к регистру букв, то есть нет различия между строчными и заглавными буквами. Таким образом, идентификатор функции IntToStr равнозначен идентификатору inttostr или intTOstr.

В качестве имен идентификаторов не могут использоваться следующие зарезервированные слова:

• and, array, as, asm, at, automated;

• begin;

• case, class, const, constructor;

• destructor, div, do, downto;

• else, end, except, exports;

• file,finalization, finally, for, function;

• goto;

• if, implementation, in, inherited, initialization, inline,interface, is;

• label, library;

• mod;

• nil, not;

• object, of, on, or, out;

• packed, private, procedure, program, property, protected, public, published;

• raise,record, repeat, resourcestring;

• set, shl, shr, string;

• then, threadvar, to, try, type;

• unit, until, uses;

• var;

• while, with;

• xor.

Встроенные типы данных

Числовые типы

К числовым типам языка Object Pascal относятся целочисленные и типы чисел с плавающей запятой (табл. Д.1).

Таблица Д.1. Числовые типы данных языка Object Pascal

Целочисленные типы Диапазон значений Типы чисел с плавающей запятой Диапазон значений Byte 0..255 Real 5.0·10-324..1.7·10308 ShortInt -128..127 Real48 2.9·10-39..1.7·1038 SmallInt -32768..32767 Single 1.5·10-45..3.4·1038 Word 0..65535 Double 5.0·10-324..1.7·10308 Integer, LongInt -2147483648..21474883647 Extended 3.6·10-4951..1.1·104932 Cardinal, LongWord 0..4294967295 Comp -263+1..263–1 Int64 -263..263–1 Currency -922337203685477.5808..922337203685477.5807

Символьный тип

Символьный тип обозначается при помощи ключевого слова Char к его значения хранят только один символ.

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

В языке Object Pascal используются два обобщенных строковых типа:

• String — если в проекте Delphi указана директива компилятора {$H+} (поддержка больших строк), то этому типу соответствуют строки длиной от 0 до 2147483648 символов; в противном случае типу String соответствуют строки длиной от 0 до 255 символов;

• PChar — тип, аналогичный строковому типу языка C.

По своей сути, строковые значения — это массивы символов, в которых нумерация элементов для типа String начинается с 1, а для типа PChar — с 0.

Булев тип данных

Переменная булевого типа занимает один байт памяти и может принимать только одно из двух значений: True ("истина", "да", 1) или False ("ложь", "нет", 0). Булев тип обозначается при помощи ключевого слова Boolean.

Массивы

Массив — это упорядоченная именованная совокупность однотипных значений, к которым можно обращаться по их порядковому номеру (индексу). Для описания массивов в языке Object Pascal используют следующие формы:

• array [1..N1] of type — одномерный массив фиксированного размера (N1 — размерность массива, type — тип значений, хранимых в массиве);

• array[1..N1, 1..N2] of type — двухмерный массив фиксированного размера;

• array[1..N1, 1..N2, 1..N3] of type — трехмерный массив фиксированного размера;

• array of type — массив переменного размера. Длину таких массивов можно изменять в процессе выполнения программы при помощи процедуры SetLength. Индексация значений начинается с 0.

Константы

Константа — это именованное фиксированное значение. Для объявления констант используют конструкцию вида:

const имя_константы = значение;

Например:

const Factor = 1.756;

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

Переменные

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

var имя_переменной: имя_типа;

Например :

var

 i: Integer; //переменная i типа Integer

 s: String; //переменная S типа String

 MyArray: array[1..10] of Char; {переменная MyArray — массив значений типа Char. Эту переменную можно было бы также объявить как String[10]}

При обращении и инициализации переменных используют следующие правила:

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

• строковые и символьные значения, присваиваемые переменным, заключают в одинарные кавычки ('с', ' строка');

• для обращения к отдельным элементам массива или отдельным символам строки используют запись вида: а[1] — для одномерных массивов и строк; а[3][1] – для двухмерных массивов; а[1][6][2] — для трехмерных массивов и т. д.;

• в качестве типа переменной может быть указан как встроенный тип языка Object Pascal, так и пользовательский, определенный при помощи ключевого слова type (создание пользовательских типов рассматривается ниже).

К переменным в программе обращаются по их идентификаторам.

Пример для типа String:

var

 s1, s2: String; //объявляем две переменные типа String

 с: Char; //и одну типа Char

 ...

s1:= 'Строка'; //присваиваем s1 некоторое значение

с:= s[1]; //переменная с хранит значение 'С'

s2:= s1 + с; //в s2 сохраняем строку 'СтрокаС'

Пример для динамического массива:

var

 MyArray: array of Char; s: String;

 …

SetLength(MyArray, 1); //устанавливаем длину массива = 1

A[0]:= 'С';

SetLength(MyArray, 2); //устанавливаем длину массива = 2

А[1]:= 'т';

s:= А[0] + А[1] + 'рока' //в s сохраняется значение 'Строка'

Пользовательские типы данных

Для объявления пользовательских типов, используют конструкцию вида:

type имя_типа = описание_типа;

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

Множества

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

set of первое_значение..последнее_значение;

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

Например:

type

 TNumbers = set of 1..10;

 TAlphabet = set of 'a';

var

 Odds, Evens: TNumbers;

 ABC: TAlphabet;

 …

Odds:= [1, 3, 5, 7, 9];

Evens:= [2, 4, 6, 8, 10];

ABC:= ['a', 'b', 'с'];

Перечислимые типы

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

type имя_типа = (элемент1, ... , элементN);

По умолчанию, первому элементу соответствует число 0, второму — 1 и т.д. Для того чтобы сопоставить с каким-либо элементом другое значение, следует использовать запись вида элемент = число.

Для извлечения числа, соответствующего некоторому элементу, используется функция Ord.

Пример:

type

 TDigits = (Zero, One, Two, Three, Four, Five, Six, Seven Eight, Nine, Ten);

 TConstants = (a = 10, b = 3);

var

 x: TDigits;

 k: TConstants;

 MyResult: integer;

 …

k:= b; //k присваиваем значении 3

if x = Zero then k:= a //если x=0, то к присваиваем 10

 MyResult:= Ord(k); //MyResult = 3 или 10

 …

Подтипы

Подтип определяет некоторый диапазон целочисленных или символьных значений. Для его объявления используют запись вида:

type имя_типа = начало..конец;

Переменные этого типа не могут принимать значений вне указанного диапазона. Пример:

type

 TDigits = (Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten); //перечислимый тип

1 ... 26 27 28 29 30 31 32 33 34 35
Перейти на страницу:
Открыть боковую панель
Комментарии
Настя
Настя 08.12.2024 - 03:18
Прочла с удовольствием. Необычный сюжет с замечательной концовкой
Марина
Марина 08.12.2024 - 02:13
Не могу понять, где продолжение... Очень интересная история, хочется прочесть далее
Мприна
Мприна 08.12.2024 - 01:05
Эх, а где же продолжение?
Анна
Анна 07.12.2024 - 00:27
Какая прелестная история! Кратко, ярко, захватывающе.
Любава
Любава 25.11.2024 - 01:44
Редко встретишь большое количество эротических сцен в одной истории. Здесь достаточно 🔥 Прочла с огромным удовольствием 😈