Автоматизация работы с базами данных
Для работы с типизированным файлом используются стандартные процедуры и функции Turbo Pascal перечисленные ниже.
Процедуры
Процедура связывания файловой переменной с физическим файлом:
Assign(<Имя файловой переменной>,<Имя файла>);
Процедура открытия файла на чтение/запись, указатель текущей компоненты файла настраивается на начало файла. Если физического файла, соот
ветствующего файловой переменной не существует, то возникает ситуация ошибки ввода-вывода. Формат:
Reset(<Имя файловой переменной>);
Процедура открытия нового пустого файла для записи. Если файл существует, то он очищается.
Rewrite(<Имя файловой переменной>);
После работы с файлом он, как правило, должен быть закрыт. Это требование обязательно должно соблюдаться для файла, в который производилась запись. Для этого используется процедура:
close(<Имя файловой переменной>);
Функции
Любой файл конечен и продолжать чтение из него информации можно лишь до определенного предела. Проверить, окончен ли файл, можно вызовом стандартной логической функции: Eof(<файловая переменная>) – она вырабатывает значение True, если файл окончен, и False – в противном случае.
IOResult – результат последней операции ввода-вывода. Возвращает 0, если последняя операция ввода/вывода завершилась успешно и другое число – в противном случае.
FilePos(<файловая переменная>) – возвращает номер текущей компоненты файла.
FileSize(<файловая переменная>) – возвращает текущий размер файла.
Для создания резервной копии файла использовались процедуры для работы с файловой системой:
Erase(<файловая переменная>) – уничтожение внешнего файла, с которым связана файловая переменная.
Rename(<файловая переменная>,<новое имя>) – переименование внешнего файла. Файловая переменная получает новое имя, заданное параметром <новое имя>.
Для организации удобного пользовательского интерфейса в программе использовались подпрограммы модуля CRT:
- clrscr – процедура очистки экрана;
- readkey – функция чтения буфера клавиатуры, если пуст – ожидание нажатия любой клавиши, возвращаемое значение код символа;
- gotoxy(<позиция>,<строка>) – процедура устанавливает курсор в указанное место на экране;
- textcolor(<цвет>) – процедура устанавливает цвет выводимых далее на экран символов.
Работа с памятью
При решении задачи использовалась динамическая память для работы с динамической структурой двоичное дерево поиска. Для выполнения действий с динамической памятью использовались следующие процедуры и функции:
Процедура New(<указатель>) – выделяет место в динамической области памяти для размещения динамической переменной и ее адрес присваивает указателю.
Процедура Dispose(<указатель>) – освобождает участок памяти, выделенный для размещения динамической переменной процедурой New, и значение указателя становится неопределенным.
Процедура Mark(<указатель>) – записывает в указатель адрес начала участка свободной динамической памяти на момент ее вызова.
Процедура Release(<указатель>) – освобождает участок динамической памяти, начиная с адреса, записанного в указатель процедурой Mark, то есть, очищает ту динамическую память, которая была занята после вызова процедуры Mark.
Также использовались для работы с памятью:
Процедура Move(<источник>,<приемник>,<размер>) – копирует указанное в третьем параметре количество байтов с адреса источника по адресу приемника. Данная процедура не выполняет никаких проверок, поэтому может приводить к ошибкам. В программе для возможности использования данной процедуры были созданы компоненты дерева и файла одинаковой структуры – компонента дерева в качестве двух последних полей записи содержит поля-указатели на правое и левое поддеревья, а остальные поля компонент идентичны.
Функция SizeOf(<величина>) возвращает объем в байтах, занимаемый величиной, причем величина может быть либо именем переменной любого типа, либо именем типа.
Формирование пользовательского модуля
Для создания пользовательского модуля использовались операторы формирования модулей и библиотек. Модуль - это библиотека подпрограмм, автономно компонуемая программная единица на языке Паскаль. Элементы модуля можно использовать в других модулях и программах, подключив к ним данный модуль с помощью оператора Uses. Структура модуля состоит из: заголовка модуля – (имя должно совпадать с именем паскаль-файла модуля), интерфейсной части (содержит описание элементов доступных из модуля), части реализации (содержит описание процедур и функций как объявленных в интерфейсной части, так локальных элементов модуля), части инициализации (содержит команды, выполняющиеся до начала выполнения программы, к которой подключен модуль). Созданный модуль с описанием структуры и элементов в виде комментариев приведен в разделе «6. Текст программы».
4. Сведения о методе решения
Для решения задачи необходимо использовать динамическую структуру – двоичное дерево поиска. Использование динамической структуры объясняется тем, что с оперативной памятью обмен данными происходит намного быстрее, чем с внешней памятью. Поэтому данные считываются из файла в начале программы в динамическую структуру, затем в ходе работы изменяются только в данной структуре, а по окончанию работы (выход из программы), вновь записываются в файл. Такая организация работы наиболее эффективная и оптимальная.
Дерево как динамическую структуру определяют так: дерево с базовым типом Т – это: 1) либо пустое дерево; 2) либо некоторая вершина (узел) типа Т с конечным числом связанных с ней отдельных деревьев с базовым типом Т, называемых поддеревьями. С точки зрения любого языка программирования, дерево – это динамическая структура данных, состоящая из узлов, каждый из которых содержит, кроме данных, определенное количество ссылок (ветви) на другие деревья. На каждый узел имеется ровно одна ссылка. Начальный узел называется корнем дерева. Узел, не имеющий поддеревьев, называется листом (терминальный узел), а нетерминальные узлы называют внутренними. Исходящие узлы называются предками, входящие – потомками. Узлы, расположенные на соседних уровнях являются непосредственными потомком и предком. Число непосредственных потомков внутреннего узла называют его степенью. Высота (глубина) дерева определяется количеством уровней, на которых располагаются его узлы. Максимальная степень из всех узлов дерева есть степень дерева. Число ветвей или ребер, которые нужно пройти от корня к узлу, называется длиной пути к данному узлу. Корень имеет путь 0, его прямые потомки путь 1 и т.д. Длина внутреннего пути дерева определяется как сумма длин путей для всех его узлов. Длина внешнего пути дерева определяется как сумма длин путей для этого дерева, если бы все узлы имели степень дерева.
Дерево является рекурсивной структурой данных, поскольку каждое поддерево также является деревом. Действия с такими структурами эффективней всего описывать с помощью рекурсивных алгоритмов.
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
- Геометрические задачи на олимпиадах по информатике
- Контроллеры систем контроля управления доступом
- Автоматическое рабочее место для работы со складом
- Проблемы и перспективы применения информационных технологий в строительной сфере
- Интеллектуальные информационные технологии и системы - генетические алгоритмы
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности