Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
L05.doc
Скачиваний:
2
Добавлен:
12.11.2018
Размер:
124.42 Кб
Скачать

Тип «Денежный»

var

x: Currency;

Диапазон изменения: –922337203685477.5808 . . 922337203685477.5807

Объем памяти: 8 байт.

Стандартные процедуры и функции для работы с любыми файлами

Синтаксис TP7:

procedure Assign(var F: <Файловый тип>; <Имя файла>: string);

Процедура связывает файловую переменную с реальным файлом.

procedure Erase(var F: <Файловый тип>);

Удаляет файл.

procedure Rename(var F: <Файловый тип>; <Новое имя файла>: string);

Переименовывает файл

procedure MKDir(<Имя папки>: string);

Создает пустую папку

procedure RMDir(<Имя папки>: string);

Удаляет пустую папку

function IOResult: integer;

Возвращает код ошибки при работе с файлом.

Синтаксис Delphi:

procedure AssignFile(var F: <Файловый тип>; <Имя файла>: string);

Процедура аналогична процедуре Assign.

Замечание

Существуют альтернативные варианты процедур:

procedure Rename(var F <Файловый тип>; <Новое имя файла>: PChar);

procedure MKDir(<Имя папки>: PChar);

procedure RMDir(<Имя папки>: PChar);

PChar – специальный «строковый» тип, разговор о нём пойдёт позже.

Замечание

Файловых типов в языке Паскаль может быть три: текстовые файлы, типизированные файлы и файлы без типа.

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

Тип «Текстовый файл», или файл последовательного доступа, предназначен для работы с т.н. текстовыми файлами (на дисках и не только). Признаком текстового файла является множество байтовых пар с кодами 13 и 10. В литературе для них встречается обозначение CR (Carriage Return, возврат каретки) и LF (Line Feed, перевод строки). Между парами с кодами 13 и 10 обычно стоят символы разговорных алфавитов, образующие осмысленный текст. Для служебных целей текстовые файлы могут содержать, например, числа, представляющие входной набор данных для программы.

Стандартные процедуры для работы с текстовыми файлами

Синтаксис TP7:

procedure Reset(var F: <Файловый тип>);

Процедура открывает файл для чтения (данных из файла).

procedure Rewrite(var F: <Файловый тип>);

Процедура открывает файл для записи (данных в файл).

procedure Append(var F: <Файловый тип>);

Процедура открывает файл для ДОзаписи данных в конец файла.

procedure Close(var F: <Файловый тип>;

Процедура закрывает ранее открытый файл.

Условная компиляция

{$define <Имя режима>}

Включает режим компиляции с именем <Имя режима>.

{$ifdef <Имя режима>}

<Операторы, которые «видны» компилятору только в режиме “<Имя режима>”>

{$else}

<Операторы, которые «видны» компилятору только в противоположном режиме >

{$endif}

Классическая развилка на этапе компиляции.

{$ifdef <Имя режима>}

<Операторы, которые «видны» компилятору только в режиме “<Имя режима>”>

{$endif}

Упрощенная развилка.

{$ifndef <Имя режима>}

Заголовок «перевернутой» развилки

Ниже приводится текст программы, которая строит «самый дешевый путь» из левого верхнего угла матрицы размерами в правый нижний угол любым из двух ранее описанных методов.

Первый метод (рекурсивный) включается, если «НЕ закомментирована» строка

{$define RECOURSIVE}.

Второй метод (динамического программирования) включается, если эта строка «закомментирована», т.е. имеет вид

// {$define RECOURSIVE}.

program Project3;

{$APPTYPE CONSOLE}

uses

SysUtils;

//{$define RECOURSIVE}

const

mMax = 20;

nMax = 20;

type

MyRecord = record

{$ifdef RECOURSIVE}

CellPrice, Frequency: integer;

{$else}

CellPrice, PathPrice: integer;

{$endif}

Direction: char;

end;

MyArray = array[1 .. mMax, 1 .. nMax] of MyRecord;

var

m, n, p: integer;

A: MyArray;

tStart, tFinish: TDateTime;

procedure InputArray(var C: MyArray);

var

F: Text;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]