Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

1.1.4.4. Множества

Множество это набор однотипных, логически связанных объ­ек­тов: <имя типа> = set of <базовый тип элемента множества>

Переменную типа «множество» можно определить сразу в разделе пере­мен­­ных без предварительного описания типа в виде:

<имя переменной ‑ множества>: set of <базовый тип элемента>

Правила:

1. В качестве базового типа элемента множества может исполь­зо­вать­ся любой порядковый тип, кроме Word, Integer, LongInt. Обычно он задается диапазоном или перечислением.

2. Количество элементов множества ограничено 256. Номер значения базы от 0 до 255.

3. В выражении значение элементов задается конструктором мно­жества ([ ] ‑ пустое множество).

Пример:

type prostoi, nomer = set of 3..99;

var pr : prostoi; n : nomer ; p: set of 'a'..'z'; begin pr:=[3,5,7,11,13]; ...

Пример множества заданного перечислением:

type dni=(vosk,pon,vtor,sreda,chetv,pjtn,sub);

var dnirab,weekend: set of dni; ...

begin weekend:=[sub,vosk]; dnirab:=[pon..pjtn]

Пример объявления глобальной переменной типа множества:

Implementation //исполнимый раздел модуля

Var NumChar: set of Char=['0'..'9', '+', '‑', ’.’]; //допустимые символы числа

Константы типа «множество» задаются в виде ([...]).

Пример. Type Days= set of 1..31; //объявление типа множества

Const Workdays: Days=[1..5, 8..12, 15..19, 22..26, 29, 30];

1.1.5. Типы строк

Строки представляют собой последовательность символов.

Название

Макси­мальная длина

Нулевой символ

в конце (#0)

Вид строки и директива компилятора

ShortString

255

Нет

Короткая строка со счетчиком длины

AnsiString

2 Гб

Есть

Длинная строка с символом #0 в конце

String

2 Гб

Есть

{$H+}‑ тип AnsiString

String [n]

255

Нет

{$H‑} или есть n ‑ тип ShortString

WideString

1 Гб

Есть

Строка 16‑битовых символов Unicode

Пример:

Type Fam=String; Var FamStud, FamPrep: Fam; Date: String [8]

Функция Length(s) возвращает длину текущего значения строки.

Процедура SetLength(s,n) переопределяет строку (s) с новой длиной в n символов; при этом сохраняются начальные символы и удаляются последние символы при уменьшении длины строки.

Строка трактуется как одномерный массив символов типов AnsiChar или WideChar соответственно. Доступ к отдельному символу строки можно осуществлять по его порядковому номеру (отсчет от 1 ‑ для коротких и от 0 - для длинных строк).

Пример: A:=Fam[5]; {выбирается пятый символ строки Fam}

Строку можно объявить в виде массива:

Type TS=Array [0..1000] Of Char; Var S1,S2 : TS;

К строкам можно применять операцию сцепления строк “+”, стро­ко­вые процедуры и функции (п. 1.2.5).

Пример. Используя переменные fam, imj, otch, famio, присвоить переменной famio текст “Иванов И.И.”

fam:='Иванов'; imj:='Иван'; otch:='Иванович';

famio:=fam+' '+copy(imj,1,1)+' . '+copy(otch,1,1)+'.'