ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.04.2021
Просмотров: 592
Скачиваний: 3
Глава 17. Упакованные сущности
Выравнивание
Центральный процессор обрабатывает данные, используя машинные слова.
Размер слова определяется разрядностью процессора или шириной шины
данных. Выравнивание позволяет оптимизировать размещение данных в
памяти.
Упаковка записей
Чтобы использовать упакованную запись нужно в ее определении после
ключевого слова record написать ключевое слово packed или bitpacked. При
использовании ключевого слова bitpacked выравнивание выполняется с учетом
отдельных бит.
Упаковка массивов
Чтобы использовать упакованный массив нужно в его объявлении после
ключевого слова array написать ключевое слово packed. Динамический массив
не может быть упакованным.
Процедура pack упаковывает содержимое обычного массива и помещает
содержимое в упакованный массив. Процедура unpack распаковывает
содержимое сжатого массива и помещает содержимое в обычный массив. Обе
процедуры берут в качестве параметров имена обычного и динамического
массива, а так же номер первого элемента.
Глава 18. Перезагрузка операторов
Необходимость перезагрузки операторов
Программист может определить собственный нестандартный тип данных. При
работе с ним бывает необходимо переопределить поведение операторов. Этот
процесс называется перезагрузкой операторов.
Реализация перезагрузки
Перезагрузка операторов реализуется при помощи следующей конструкции:
operator оператор(Список параметров) результат: тип результата;
begin
тело оператора
end;
26
Эта конструкция напоминает определение подпрограммы. Параметры задаются
так же как параметры подпрограмм. Результат является локальной переменной.
Значение результата будет возвращено оператором после выполнения работы.
Глава 19. Определение типа во время выполнения программы
Иногда бывает необходимо иметь переменную, тип которой определяется во
время выполнения программы.
Для таких целей предусмотрен специальный тип данных Variant. Переменным
типа Variant можно присваивать целочисленные и дробные переменные, а так
же строки и интерфейсы.
Глава 20. Работа с файлами
Файловые типы
Файлы предназначены для хранения данных. В Паскале для работы с файлами
используются переменные специального типа. Этот тип называют файловым.
Типы файлов
Файлы бывают следующих типов: текстовые, типизированные и двоичные.
Типизированные файлы состоят из записей блоков типа.
Проверка наличия ошибок
Во время работы с файлами могут происходить ошибки. Функция IOResult не
берет аргументов и возвращает ноль при отсутствии ошибок в последней
выполненной операции с файлом.
Объявление файловой переменной
С каждым файлом должна быть связана файловая переменная.
Объявление переменной для текстового файла: var имя:text;
Объявление переменной для типизированного файла: var имя:file of тип;
Объявление переменной для двоичного файла: var имя:file;
Связывание переменной с файлом
Перед открытием требуется связать файловую переменную с файлом. Для
связывания воспользуйтесь процедурой Assign. В качестве аргументов она
берет файловую переменную и строку с именем файла.
27
Открытие и закрытие файла
Прежде чем работать с файлом его нужно открыть. Для открытия файла в
режиме чтения используйте процедуру Reset. Для открытия файла для записи
используйте процедуру Rewrite. Для того чтобы открыть файл для записи
данных в конец файла применяется процедура Append.
Когда работа с файлом закончена, используйте процедуру Close, чтобы закрыть
файл. Все процедуры берут в качестве аргументов файловую переменную.
Чтение и запись текстовых данных
Для чтения и записи в текстовые файлы используются подпрограммы Read и
Write. При их вызове перед списком аргументов указывается файловая
переменная. Файловая переменная и список параметров отделяются друг от
друга запятой. Так же можно использовать подпрограммы Readln и Writeln.
Чтение и запись данных в типизированные и двоичные файлы
Для чтения данных из типизированного или двоичного файла используется
процедура BlockRead.
Для записи в типизированный или двоичный файл используется процедура
BlockWrite.
Формат вызова BlockRead: BlockRead(файл,буфер,количество блоков);
Формат вызова BlockWrite: BlockWrite(файл,буфер,количество блоков);
Первый аргумент является файловой переменной.
Буфер представляет собой имя переменной, которая будет использована как
посредник при операциях чтения или записи.
Особенности работы с не текстовыми файлами
Размер блока двоичного файла по умолчанию составляет 128 байт. Размер блока
типизированного файла зависит от типа блока.
Задание размера блока для не типизированных файлов
Программист может самостоятельно задать размер блока для не
типизированного файла. Размер передается в качестве необязательного
дополнительного параметра при вызове подпрограммы Reset или Rewrite. Если
размер блока не задан, то он равен 128 байт.
28
Псевдонимы типизированных файлов
Вы можете определить псевдоним для типизированного файла Этот псевдоним
может быть использован при объявлении файловой переменной.
Синтаксис: Type псевдоним=file of тип;
Типизированные файлы как аргументы подпрограмм
Используйте псевдоним типизированного файла, если хотите использовать его
как аргумент подпрограммы или в качестве значения возвращаемого функцией.
Подпрограммы для работы с файлами
Подпрограмма
Описание
FileSize(файловая переменная);
Возвращает размер файла
FilePos(файловая переменная);
Возвращает текущую позицию в файле
EOF(файловая переменная);
Определяет, достигнут ли конец файла
Seek(файловая переменная, позиция); Меняет файловую позицию
Подпрограммы для работы с файловой системой
Подпрограмма
Описание
ChDir(каталог);
Смена текущего каталога
MkDir(каталог);
Создание каталога
RmDir(каталог);
Удаление пустого каталога
Rename(файловая переменная,имя);
Переименовывает файл
Erase(файловая переменная);
Удаляет файл
Глава 21. Структура программы
Программа на паскале начинается с заголовка. Он не является обязательным.
Формат заголовка: program заголовок;
Далее может идти подключение модулей.
Затем следует раздел описаний, в котором находиться объявления глобальных
переменных и констант, а так же меток и записей.
Далее идет раздел определений. В нем находятся определения подпрограмм.
Затем идет тело программы. Оно состоит из операторов.
29
Тело программы выглядит следующим образом:
begin
операторы
end.
Глава 22. Области видимости данных
С переменными и константами связано понятие видимости. Оно определяет их
доступность в программе. Переменные и константы бывают локальные и
глобальные.
Локальные переменные и константы доступны только внутри подпрограммы, в
которой они объявлены. Глобальные переменные и константы доступны из
любой точки программы. Подобное деление применимо также к массивам.
Часть 2. Сопровождение и повышение надежности
программ
Глава 1. Комментарии
Комментарием называется поясняющий текст. Текст комментария игнорируется
при компиляции. Комментарии могут состоять из одной или нескольких строк.
Комментарий из одной строки начинается с двойной косой черты(//). За ней
идет текст комментария.
Комментарий из нескольких строк помещается между открывающей и
закрывающей фигурной скобкой.
Глава 2. Завершение программы
Нормальное завершение
Когда программа завершает свою работу она передает операционной системе
код возврата. По нему операционная система может узнать результат работы
программы. Вы можете сами определить код возврата. Для этого присвойте
значение глобальной переменной ExitCode. Используйте целое число в качестве
значения. Допустимы отрицательные числа. Переменная ExitCode объявлена в
модуле System.
Аварийное завершение
Воспользуйтесь процедурой Halt для того чтобы форсировать завершение
работы. В качестве аргумента процедура берет код возврата.
30