Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки 1-6 по Delphi.pdf
Скачиваний:
39
Добавлен:
08.04.2015
Размер:
1.09 Mб
Скачать

Языки программирования

ЛР 2. Структурные типы

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

Различают следующие основные разновидности структурных типов:

множества;

записи;

массивы;

файлы;

классы;

указатели на классы.

Множества

Множество представляет собой коллекцию однотипных значений, в состав которой могут одновременно входить все значения, часть значений или ни одного значения (пустое множество). Язык Delphi предлагает несколько способов объявления множеств (листинг 2.1).

Листинг 2.1. Способы объявления множеств

type TWeekDaysSet = set of (Mo, Tu, We, Th, Fr, St, Su); type TByteSet = set of Byte; //множество от 0 до 255 type TTeenSet= set of 1..10; //множество от 1 до 10

type TMyRange=60..100; //пока это не множество, а диапазон type TMyRangeSet= set of TMyRange; //множество от 60 до 100

Внимание!

Элементы множества представляют собой целые числа и не могут принимать значения меньше нуля.

Если множество содержит всего три элемента, то общее количество возможных комбинаций составляет 23 = 8. Зарезервированное слово Set способно определять множество размером до 256

элементов. Возведите 2 в степень 256 и получите 1,1579208923731619542357098500869 × 1077

вариантов. На практике такое количества вариаций вряд ли когда понадобится, поэтому старайтесь объявлять множества разумного размера.

А теперь предложим несколько строк кода (листинг 2.2), демонстрирующих работу с множествами.

Листинг 2.2. Управление элементами множества

type TFlagsSet = set of (Flag1, Flag2, Flag3);

...

var Flags : TFlagsSet; begin

Flags:=[]; //[0,0,0] - полностью очистили множество

Flags:=[TFlagsSet.Flag1]; //[1,0,0] - включили 1-й элемент Flags:=Flags+[TFlagsSet.Flag3]; //[1,0,1]- добавили 3-й элемент Flags:=Flags-[TFlagsSet.Flag1]; //[0,0,1]- отключили 1-й элемент

17

СКФУ Кафедра компьютерной безопасности