Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

с:= 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); //перечислимый тип

 T123 = One..Three; //подтип

 TABC = 'A'..'C'; //еще один подтип

var

 i: T123; //переменная I может принимать значения от 1 до 3

 с: TABC; // переменная с может содержать 'A', 'B' или 'C'

Записи

Запись – это структурированный набор разнотипных элементов. Отдельные элементы записи называются полями. Для объявления записи используется следующая конструкция:

record

 полe1: тип;

 …

 полeN: тип;

end;

Запись можно объявлять как в разделе type, так и в разделе var:

type TCD = record //запись для хранения данных о музыкальном CD

 Group String; //поле, хранящее название исполнителя

 Year: Integer; //поле, хранящее год альбома

 Title: String; //поле, хранящее название альбома

end;

var MyCD: TCD;

или непосредственно

var MyCD: record

 Group: String;

 Year: Integer;

 Title: String;

end;

Обращение к полям записи реализуется следующим образом:

MyCD.Group:= 'Название группы';

MyCD.Year:= 2005;

MyCD.Title:= 'Название альбома';

Классы

Класс — это структура, предназначенная для хранения данных (полей и свойств), а также кода, обрабатывающего эти данные (методы). Поля, методы и свойства называют членами класса.

Поделиться:
Популярные книги

Конец детства (сборник)

Кларк Артур Чарльз
Фантастика:
научная фантастика
7.00
рейтинг книги
Конец детства (сборник)

Хозяин Стужи 7

Петров Максим Николаевич
7. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Стужи 7

Мастер 4

Чащин Валерий
4. Мастер
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Мастер 4

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Око василиска

Кас Маркус
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Око василиска

На границе империй. Том 10. Часть 5

INDIGO
23. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 5

Слово воина

Прозоров Александр Дмитриевич
1. Ведун
Фантастика:
фэнтези
8.91
рейтинг книги
Слово воина

Монстр из прошлого тысячелетия

Еслер Андрей
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Монстр из прошлого тысячелетия

Первый среди равных. Книга II

Бор Жорж
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга II

Последний Паладин. Том 4

Саваровский Роман
4. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 4

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Император Пограничья 10

Астахов Евгений Евгеньевич
10. Император Пограничья
Фантастика:
городское фэнтези
аниме
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 10

Газлайтер. Том 16

Володин Григорий Григорьевич
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 16

Рассвет русского царства. Книга 2

Грехов Тимофей
2. Новая Русь
Фантастика:
альтернативная история
попаданцы
историческое фэнтези
5.00
рейтинг книги
Рассвет русского царства. Книга 2