Функции и процедуры пользователя (пример реализации в среде Delphi).



Записи. Оператор with. Пример обработки массива записей (сортировка в среде Delphi).

Множества. Операции (не менее 6 штук) работы с множеством. Определить количество гласных букв в заданном слове (пример реализации в среде Delphi)..

Описание множества в Delphi

В Delphi разрешено определять тип объектов-множеств, элементами которых являются значения одного и того же базового типа. Базовый тип определяет перечень всех элементов, которые могут содержаться в данном множестве. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым).

Описание типа множества имеет вид:

 

type <имя типа> = set of <базовый тип>;

Здесь <имя типа> - идентификатор; <базовый тип> - один из скалярных типов, кроме вещественного. Базовый тип задаётся диапазоном или перечислением. Из стандартных типов в качестве базового типа множества могут быть указаны типы byte, char и boolean. Базовый тип вводится либо через предварительное определение в разделе описаний программы, либо с помощью прямого указания после слов set of в описании типа множества, например:

type letter = 'a' .. 'z'; // Описание ограниченного типа letter

type SL = set of letter; // Описание множественного типа SL с базовым типом letter

type SLR = set of 'a' .. 'z'; // Прямое включение определения базового типа 'a .. 'z' в описание множественного типа SLR

Если в программе используются переменные, значениями которых являются множества, то эти переменные описываются обычным образом:

type intset = set of byte;

var m1, m2: intset; // Переменные описаны через указание принадлежности ранее определённому типу

var m3: set of 1..20; // Определение типа переменной непосредственно включено в её описание

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

[ ] - пустое множество;

[1, 3, 5 .. 12] - множество, содержащее элементы 1, 3, 5, 6, .. 12;

['a' .. 'p', 'u', 'z'] - множество, состоящее из перечисленных символов типа char.

Элементы типа множества могут задаваться в виде выражений, например: [2+4, 3 * 2]. Выражения должны иметь значения из заданного базисного множества порядкового типа. Область значений переменной множественного типа представляет собой набор всевозможных подмножеств, образованных из элементов базового типа. В отличие от перечислений нельзя говорить о первом, втором и т.п. элементах множества, поскольку для множеств понятие упорядоченности не имеет смысла. Если множество содержит всего три элемента, то общее количество возможных комбинаций составляет 2 * 2 * 2 = 8. Зарезервированное слово set способно определять множество размерностью до 256 элементов, т.е. 1,1579208923731619542357098500869e+77 вариантов. На практике такое количество вариантов никогда не понадобится. В частности, разработчики Delphi рекомендуют использовать множество с количеством элементов не более 16.

Операции над множествами

 1. Объединение ( + );

 2. Пересечение ( * );

 3. Разность ( - ).

Кроме того, определённые операции проверки принадлежности элемента множеству ( in ), проверки тождественности множеств ( = ), нетождественности, множеств ( <> ), определения принадлежности (вложенности) множеств ( >= или <= ). Примеры:

1. [1, 2, 4] = [1, 4, 2] // Результат True

2. ['a' .. 'z'] = ['a' .. 'p'] // Результат False

3. [1, 2, 5, 6] <> [1, 2] // Результат True

 4. ['a', 'b', 'c'] <= ['a' .. 'z'] // Результат True

 5. ['a' .. 'k'] >= ['a' .. 'z'] // Результат False

 6. [1, 2, 3] + [1, 4, 5] // Результат [1, 2, 3, 4, 5]

 7. [1, 2, 3] * [1, 3, 4, 5] // Результат [1, 3]

 8. [1, 3, 4, 5] - [1, 4, 6] // Результат [3, 5]

 Операции ( = ) и ( <> ) позволяют проверить, равны ли два множества или нет. С помощью операций ( >= ) и ( <= ) можно определить, является ли одно множество подмножеством другого. Пример:

Использование множеств

Наиболее эффективно множество может быть использовано для замены операторов if, например, для проверки наличия некоторого ответа в списке разрешённых. Приведённая ниже программа ввода строки символов, содержащей латинские буквы, цифры и пробелы с контролем правильности введённых символов, может служить примером использования множеств:

 

Понятие файла. Функции (не менее 3) и процедуры (не менее 7) обработки файлов последовательного доступа. Пример обмена значений наибольшего и предпоследнего элементов числового файлами (пример реализации в среде Delphi).

23. Текстовые файлы. Понятие, процедуры (не менее 10 штук), пример создания и вывода текстового файла на экран. Пример подсчета букв «А» в каждой строке текстового файла и затем замены этой буквы «*» (пример реализации в среде Delphi).


Дата добавления: 2018-05-12; просмотров: 516; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!