Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Билеты / Билет20

.doc
Скачиваний:
13
Добавлен:
09.06.2015
Размер:
42.5 Кб
Скачать

Билет № 20

Вопрос 1.

Структурированные типы данных - совокупность связанных данных и множество правил, определяющих, как их организацию так и способ доступа к элементам данных. Массив - это упорядоченный набор переменных одного типа. Массив содержит фиксированное число компонент, которое задаётся при определении переменных типа массива. Тип компоненты массива может быть любым. Каждый элемент масива имеет свой индекс. Тип индекса - простой, поэтому все элементы массива могут быть перебраны при помощи операторов цикла.

Описание массивов: Var   Mas: Array [1..15] Of Real.   Work: Array [(Mon, Tue, Wed)] Of Integer.   B: Array ['A'..'Z'] Of Boolean.   C: Array [1..3, 1..5] Of Real.   D: Array [(Black, White)] Of 11..20.

В Паскале многомерный массив можно описать как одномерный: Type    Mas = Array [1..3] Of Array [1..5] Of Integer; Var    A, B: Mas;    C: Array [1..3, 1..5] Of Integer; {такая же структура но определена как двумерный массив}

Ссылка на элемент матрицы А, лежащий на пересечении I-той строки и J-ого столбца выглядит следующим образом A[I][J]; законно и такое обращение A[2]:= B[1], для массива такая запись не верна. Все элементы структурированных типов допускают A:= B (исключение - переменные файлового типа).

Можно использовать комформант - массивы. Массивы с переменными границами в Турбо-Паскале использовать нельзя. Нельзя, также и сравнивать массивы: If A = B Then ... В Турбо-Паскале предварительно определены два массива Mem и Port.

2. Символьные строки

Переменную типа Packed Array [0..N] of Char принято называть символьной строкой.

Строка - это упакованный массив, компоненты которого имеют тип Char и тип индекса имеет нижнюю границу равную одному. К строкам применимы все 6 операций отношений, но строки при этом должны иметь равную длину.

В Турбо-Паскале введён тип данных String вместо описанного Packed Array of Char.

Операции с Char: '5' < '25' {ошибка, так как разные длины строк} 'Var' = 'Var' {верно} Var Age: String [3]; Begin Age:="тринадцать"; {Лишние символы после "и" усекаются}

3. Множества

Паскаль позволяет оперировать с множествами как с типами данных.

Пример: Type   Symbolset = Set Of ' ' .. '_';   Color = (White, Blue, Red);   Colorset = Set Of Color;   T1= Set Of 0..9; Var   C: Color;   Colset: Colorset;   T: Integer;   Tset: T1;

Множества - наборы однотипных объектов, каким-либо образом связанных между собой. Характер связей лишь подразумевается программистом и никак не контролируется Турбо-Паскалем. Максимальное количество элементов множества - 256.

Два множества считаются эквивалентными тогда и только тогда, когда все элементы их одинаковы, причём порядок следования элементов безразличен.

Описание: <имя типа> = Set Of <базовый тип>, где <базовый тип> есть любой порядковый тип кроме Word, Integer, Longint. Для задания множества используется конструктор множества (((: : =))). Список спецификаций элементов множества, отделяемых друг от друга запятыми; список обрамляется [ ]. Спецификациями элементов могут быть константы или выражения базового типа, а так же тип - диапазон того же базового типа: Type    Digitchar = Set Of '0'..'9';    Digit =Set Of 0..9; Var   S1, S2, S3: Digitchar;   S4, S5, S6: Digit; begin   . . . . . . . . . . . . . . . .   S1 : = ['1', '2', '3'];   S2 : = ['3', '2', '1'];   S3 : = ['2', '3'];   S4 : = [0..3, 6];   S5 : = [4, 5];   S6 : = [3..9];

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

*

пересечение (S4*S6 = [3,6]; S4*S5 = [4])

+

объединение (S4+S5 = [0, 1, 2, 3, 4, 5, 6])

-

разность, содержит элементы из 1-го, которые не принадлежат второму (S6-S5 = [3, 6, 7, 8, 9])

=

проверка эквивалентности (S4=S4 = true; S5=S4 = false)

<>

проверка неэквивалентности (S4<&gtS4 = false; S5<&gtS4 = true)

<=

проверка вхождения (True если 1-е содержится во втором).

>=

(наоборот).

in

проверка принадлежности.

Итак, над множествами допустимы четыре операции:

• объединение (+) • пересечение (*) • разность (-) (содержит элементы из 1-го, которых нет во 2-ом). • операция in - позволяет определить, принадлежит элемент множеству или нет.

В программе множество задаётся в виде списка элементов, заключённого в квадратные скобки:

Colset:= [White, Red]; Colset:= [ ]; Tset:= [1, 7, 5]; Tset:= [0 ... 3, 6, 9]; Tset:= [8 Mod4, 15 Div 5];

Можно использовать операции сравнения.

4. Записи

Запись - наиболее общий и гибкий структурированный тип в Паскале.

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

В Паскале разрешено использовать массивы записей. Записи также можно использовать в качестве компонент файлов. Однако поля записи не могут быть файлового типа. Чтобы обратиться к отдельной компоненте записи необходимо задать имя записи, за ним точку и сразу за точкой написать название нужного поля.

Вопрос 2. дифференцированное обучение.

Соседние файлы в папке Билеты