ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.04.2021
Просмотров: 587
Скачиваний: 3
Подпрограммы для работы с памятью
Подпрограмма
Описание
MemSize(блок)
Возвращает размер блока памяти
AllocMem(размер)
Выделяет блок памяти и возвращает указатель на него. Блок
заполняется нулями
SizeOf(элемент)
Возвращает размер элемента
addr(аргумент)
Возвращает адрес аргумента
New(указатель)
Выделяет память под элемент
Dispose(указатель)
Освобождает выделенную память
Глава 13. Процедурный тип
Указатели на подпрограммы
Прежде чем использовать указатель на подпрограмму нужно определить новый
тип данных. Этот тип называется процедурным.
Определение для процедуры:
type имя:=procedure(список параметров процедуры);
Определение для функции:
type имя:=function(список параметров функции):тип возвращаемого значения;
Объявление указателя на подпрограмму выполняется при помощи следующей
конструкции: var указатель:процедурный тип;
Присваивание указателям адреса и вызов подпрограмм
Формат присваивания указателю адреса: указатель:=@имя подпрограммы;
Формат вызова подпрограммы через указатель: указатель(аргументы);
Глава 14. Множества
Понятие множества
Понятие множества в Паскале аналогично тому, что принято в математике.
Создание экземпляра множества
Экземпляр множества создается аналогично обычной переменной.
Синтаксис: var имя: set of тип;
21
Заполнение множеств
Чтобы заполнить множество элементами воспользуйтесь следующей
конструкцией: имя множества:=[список];
Элементы списка отделяются друг от друга запятой. Оставьте список пустым
если множество не содержит элементов.
Ограничения множеств
Множество может не содержать элементов. В таком случае его называют
пустым. Максимальный размер множества ограничен 255 элементами.
Добавление и удаление элементов
Элемент добавляется во множество при помощи подпрограммы Include.
Синтаксис: Include(множество,элемент);
Для удаления элемента из множества используйте подпрограмму Exclude.
Синтаксис: Exclude(множество,элемент);
Объединение множеств
Операция объединения возвращает новое множество, состоящее из элементов
входящих хотя бы в одно множество из пары множеств.
Синтаксис: множество1+множество2;
Пересечение множеств
Операция объединения возвращает новое множество, состоящее из элементов
входящих в обе пары множеств.
Синтаксис: множество1*множество2;
Разность множеств
Операция объединения возвращает новое множество, состоящее из элементов
первого множества, которые не входят во второе.
Синтаксис: множество1-множество2;
22
Симметричная разность
Симметричная разность дает множество состоящие из элементов, которые не
входят ни в одно из исходных множеств.
Синтаксис: множество1><множество2;
Проверка элемента
Чтобы определить принадлежность элемента к множеству используйте
оператор бинарный in. В качестве первого операнда используйте элемент.
Вторым операндом идет множество. Оператор in возвращает истинное
значение, если элемент принадлежит множеству.
Глава 15. Обработка строк
Хранение строк и символов
Одиночный символ храниться в переменной типа char, которая занимает в
памяти один байт. Строка представляет собой последовательность символов.
Есть несколько типов данных для хранения строк.
Строковые типы данных
Тип
Описание
ShortString
Короткая строка
AnsiString
Строка с текстом в кодировке UTF-8
String
В зависимости от настроек компилятора может быть синонимом
ShortString или AnsiString
PChar
Строка из символов. Каждый символ занимает один байт.
Строка завершается нулевым байтом
WideString
Строка из символов. Каждый символ занимает два байта.
UnicodeString Синоним WideString
Особенности строковых типов
Память под короткие строки выделяется при запуске программы. Максимальная
длина короткой строки составляет 255 символов. Каждый символ занимает один
байт памяти. К отдельному символу строки можно обратиться как к элементу
массива. В нулевом элементе храниться длина строки.
Память под остальные строки выделяется динамически во время работы
программы. Выделение происходит автоматически при необходимости.
Освобождение памяти так же происходит автоматически.
23
Так же остальные строки не имеют ограничения по длине. Их длина зависит
только от объема доступной памяти.
Тип PChar введен, чтобы обеспечить возможность взаимодействие с кодом на
языке Си или Си++.
Склейка строк
Для склейки нескольких строк в одну используйте оператор суммирования +.
Присваивание значений
Значение, которое присваивается строковой переменной, должно быть
заключено в одинарные кавычки.
Ограничение длины строк
Вы можете задать длину строковой переменной при ее объявлении.
Синтаксис: var имя:string[длина];
Подпрограммы для работы с символами
Функция chr возвращает символ с заданным кодом, а функция ord выполняет
противоположенное действие.
Преобразования кодировок
Функция AnsiToUtf8 преобразует строку из текущей системной кодировки в
UTF-8. Функция Utf8ToAnsi выполняет обратное преобразование.
Процедуры преобразования коротких строк
Для преобразования числа в строку используйте процедуру Str. Она берет в
качестве аргументов строку и имя числовой переменной.
Для преобразования строки в число используйте процедуру Val.
Формат вызова процедуры Val: Val(Строка, число, код);
Число и код являются именами переменных. Число содержит результат
преобразования. Код будет содержать нулевое значение или позицию строки, в
которой произошла ошибка преобразования.
24
Подпрограммы для работы с короткими строками
Подпрограмма
Описание
Length(строка);
Возвращает длину строки
SetLength(строка,длина);
Изменяет длину строки
LowCase(строка);
Преобразует строку в нижний регистр
UpCase(строка);
Преобразует строку в верхний регистр
Copy(строка,позиция,размер); Возвращает часть строки, то есть подстроку
Pos(подстрока или
символ,строка);
Возвращает позицию, в которой находиться
подстрока или символ
Delete(строка, позиция,
количество символов)
Удаляет часть строки
Глава 16. Записи
Запись как пользовательский тип данных
Вы можете определить свой тип данных при помощи записей. Запись
представляет собой сущность, которая содержит и объединяет в себе разные
переменные. Переменные внутри записи называют полями.
Описание записи
Синтаксис описания записи:
Type имя записи=record
Объявления полей
End;
Формат объявления поля: поле:тип;
Объявление экземпляра записи и доступ к отдельным полям
Экземпляр записи объявляется как обычная переменная. Но вместо
стандартного типа указывается имя записи.
С полем экземпляра записи можно работать почти также как с обычной
переменной. Формат обращения к полю экземпляра записи: экземпляр.поле
Использование записей как аргументов подпрограмм
Запись может быть использована, как аргумент подпрограммы, если в списке
параметров использовать имя записи вместо стандартного типа. Так же запись
может являться значением, которое возвращает функция.
25