Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания к выполнению РГР. Алгорит...doc
Скачиваний:
5
Добавлен:
27.11.2019
Размер:
265.73 Кб
Скачать

4 Строковый тип данных

Переменная типа STRING (строковая переменная) может принимать значения из определенной упорядоченной совокупности символов, разрешенных транслятором Паскаля на данной ЭВМ. Максимальное значение переменной имеет длину 256 символов. Строковые переменные описываются идентификатором STRING, например:

VAR C,B:STRING;

VAR Y:STRING[15]; A:ARRAY[1..10] OF STRING;

Над строковыми переменными могут производиться следующие операции:

Процедуры:

DELETE(ST,POS,N) – удаление из строки ST с позиции POS N символов;

INSERT(OB,ST,POS) – вставка строки (символа) OB в строку ST с позиции POS;

STR(VAL,ST) – преобразование числа VAL в строку ST;

VAL(ST,VAR,CODE) – преобразование строки ST в число VAR (CODE=0, если нет ошибки).

Функции:

COPY(ST,POS,N) – вырезка из строки ST с позиции POS N символов;

CONCAT(ST1,ST2,{,STN}) – сцепление строк ST1, ST2 {,..., STN};

LENGTH(ST) – определение длины строки ST;

POS(OB,ST) – определение позиции первого вхождения строки (символа) OB в строку ST;

UPCASE(CH) – преобразование строчной буквы в прописную.

5 Записи

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

Общий вид описания типа:

TYPE T = RECORD

I1:T1;

I2:T2;

......

IN:TN;

END;

VAR A:T;

Здесь Т – идентификатор типа; IN – имена полей; TN – типы полей. Переменная А описана как запись, состоящая из N полей с именами I1, I2, ..., IN. Поле IN переменной А записывается как A.IN.

Оператор WITH позволяет упростить обращение к полям записей.

Общий вид:

WITH A DO P;

Здесь А – имя переменной типа RECORD; P – оператор. В операторе Р при ссылках на компоненты записи имя А можно опускать.

6 Файлы

Файл представляет собой последовательность компонентов одного типа и одной длины. Число компонентов в файле не фиксировано. В каждый момент доступен только один компонент. Говорят, что на этот компонент установлен указатель файла.

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

Общий вид описания файлового типа:

TYPE T=FILE OF TK;

Здесь Т – идентификатор типа; ТК – тип компонента (любой, кроме типа FILE). Каждую переменную-файл надо описать в разделе VAR. Файл может быть описан и непосредственно при описании переменной.

7 Процедуры обработки файлов

Работа с файлами производится посредством следующих стандартных процедур:

1 ASSIGN(F,ST) – присвоение имени файлу. Имя файла, которое является значением строкового выражения ST, присваивается переменной файлового типа F.

2 REWRITE(F) – подготовка к записи информации в начало файла F; создание нового файла.

3 WRITE(F,A) – запись значения переменной A в файл F.

4 RESET(F) – подготовка к чтению информации с начала файла F.

5 READ(F,A) – чтение компонентов файла в переменную A.

6 CLOSE(F) – закрытие файла, назначенного переменной F. Если файл был открыт, никогда не следует выходить из программы, предварительно не закрыв его.

7 SEEK(F,N) – перемещение указателя файла на N компонентов файла (N=0 – начальное значение).

8 SEEK(F,FILESIZE(F)) – помещение указателя файла в самый конец файла.

9 ERASE(F) – стирание файла.

10 RENAME(F,'имя') – переименование файла.

11 FILEPOS(F) – определение номера компонента, на котором установлен указатель файла.

12 FILESIZE(F) – определение длины файла.

Для того, чтобы определить готовность файла к чтению либо к записи информации, существует стандартная функция EOF(F). Если указатель файла продвинулся за конец файла (готовность к записи), то эта функция принимает значение TRUE, в остальных случаях – FALSE. В частности, процедура REWRITE очищает файл и устанавливает указатель на признак конца файла. Функции EOF(F) присваивается значение TRUE. Напротив, процедура RESET устанавливает указатель файла на первый компонент, а функции EOF(F) присваивается значение FALSE.

Функцию EOF(F) можно использовать в условном операторе после IF или в операторе цикла WHILE. Если нужно после IF или после WHILE поместить не условие конца, а условие того, что файл не закончен, то применяется следующая конструкция:

WHILE NOT EOF(F) DO READ(F,A);