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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Typet=record

S1:r1;

S2:r2;

Sn:rn;

End;

Varz: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…);

varz: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.

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