Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
289
Добавлен:
04.03.2014
Размер:
563.71 Кб
Скачать

Язык Object Pascal. Классификация типов данных. Тип данных множество. Пример задачи.

Множество – набор неповторяющихся элементов одного типа. Размер множества не более 256 элементов (0-255).

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

Type <имя типа>= set of <базовый тип> (byte,char)

Элементы множества вводятся оператором присваивания

А:=[‘a’,’b’,’c’].

B:=[] – пустое множество

Вводить и выводить множества нельзя.

Объединение: ‘+’

Разность: ‘-’

Пересечение: ‘and’

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

<> - проверка на неравенство

<=, >= - проверка на вхождение.

In – проверка вхождения элемента или одного множества в другое множество.

Язык Object Pascal. Классификация типов данных. Тип данных записи. Пример задачи.

Записи представляют собой фиксированную совокупность полей, относящихся к различным типам данных.

Структура типа запись

Type t = record

S1:r1;

S2:r2;

Sn:rn;

End;

Var z:t; где t – имя типа запись;

S1–Sn – имена полей.

R1–Rn – типы полей стандартные или ранее определенные.

Z – переменная этого типа

Язык Object Pascal. Классификация типов данных. Тип данных вариантная запись. Пример задачи.

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

Type t = array;

A:c1;

B:c2;

case f:c of

d1: (v11:c11;v12:c12...);

d2: (v21:c21;v22:c22…);

dk: (vk1:ck1;vk2:ck2…);

var z:t;

f – переменная под переключателем

с – тип переменной

d12, dk1 – метки, каждой из которых соответствует набор полей v11;vk1, которые являются компонентами вариантов.

С11, с12 – типы полей

А, B – общие поля для значений

Язык Object Pascal. Классификация типов данных. Тип данных файл. Классификация файлов по типу и методу доступа. Пример задачи.

Файл – именованная совокупность данных ( обычно 1 тип ), расположенных на внешнем устройстве, компоненты файла могут быть любого типа кроме файл.

Структура файла.

File of byte

Байт

Байт

Байт

…….

Байт

Eof(end of file)

0

1

2

File of string[20]

Строка

Строка

Строка

.

строка

Eof

0

1

2

File of T, где T = record;

A:byte;

B:char;

C:integer;

End;

Byte

Char

Integer

Byte

Char

integer

Eof(end of file)

Структура файла похожа на строки массива, но имеет следующие отличия.

У файла не определено максимальное количество элементов, т.е. его длина.

Количество элементов файла в каждый момент времени неизвестно, зато известно, что в конце файла символ EOF, в качестве которого используется символ с кодом 26. Максимальная длина файла определяется емкостью устройств внешней памяти.

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

Классификация файлов:

  • По типу (по логической структуре):

  1. Типизированные

  2. Текстовые

  3. Нетипизированные

  • По методу доступа:

    1. Последовательного (Типизированные, Текстовые, Нетипизированные)

    2. Прямого (Типизированные, Нетипизированные)

    Файловый тип или переменная файлового типа задаются следующим образом

    1. Типизированные файлы

    Type <Имя1> = file of <тип>;

    1. Текстовые файлы.

    Type <Имя2> = text;

    Var f1,f2:<имя1,имя2>

    1. Нетипизированные файлы:

    Type <имя3> = file;

    Имя – это имя файлового типа, а тип это любой тип, кроме: файл и объект.

    Процедуры общие для всех трех видов файлов:

    1. Assignfile (f,<полное имя файла>) – связывает файловую переменную с именем файла на внешнем носителе

    2. Reset(f) – открывает существующий файл, связанный с файловой переменной f. Если F текстовый файл то он будет доступен только для чтения, при последовательном доступе к элементам. Если f типизированный файл, то он будет открыт и для чтения и для записи, как при последовательном, так и при прямом доступе. В текстовый файл записываются строки, символы и числа (действительные, вещественные). В любом случае при открытии файла указатель текущей позиции файла устанавливается на его начало, то есть нулевую компоненту.

    3. Rewrite(f) – открывает новый физический файл, связанный с файловой переменной F, если такой файл уже существует, то он удаляется, и на его месте создается пустой файл (файл очищается). При открытии указатель текущей позиции устанавливается на начало.

    4. Eof(f) – функция возвращает значение true, если указатель текущей позиции находится за последним элементом файла или файл пустой.

    5. Rename (f, name1) – процедура переименовывает файл с файловой переменной f в name1, перед использованием этой процедуры файл должен быть закрыт, если был открыт процедурами Reset, rewrite, append

    6. Erase (f) – это процедура уничтожает файл, перед использованием этой процедуры файл должен быть закрыт, если был открыт процедурами Reset, rewrite, append

    Closefile(f) – процедура закрывает файл, но связь файловой переменной с именем файла сохраняется, обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Повторно файл открывается без использования процедуры Assignfile.

  • Соседние файлы в папке шпора