Обработка файловых структур данных в Turbo Pascal
Цель: Ознакомиться со спецификой работы с функциональным типом данных на примере текстовых файлов языка программирования Turbo Pascal. Задачи: 1) Составить алгоритм и блок-схему по заданию. 2) Составить программу решения. 3) Написать программу, осуществляющую ввод данных в файл и просмотр полученных результатов средствами языка программирования Turbo Pascal. Перечень оборудования и программного обеспечения: ПК, находящийся в локальной сети, Оболочка операционной системы FAR Manager, системе программирования Turbo Pascal 7.0. Литература: 1, 2, 13, 23, 25, 26, 28, 33, 34, 35. Краткое изложение основных теоретических и методических аспектов: 1. Структурированный тип данных. Множество значений, переменных с общим именем называется структурированным или составным типом. Файловый тип данных, вместе с регулярным, комбинированным и множественным, основываясь на способе организации и типе компонент, принято относить к структурированным типам данных. 2. Файловый тип данных. Есть возможность записывать исходные данные и результаты работы в виде файлов, которые хранятся на диске как программа. Файлыпредставляют собой упорядоченную совокупность произвольного числа компонентов одного типа с последовательным методом доступа. Они хранят больше информации, чем основная память, т. к. позволяют использовать внешние носители. Файлы могут использоваться несколькими программами и сохраняться после завершения работы. Компоненты файла должны быть элементами одного типа и имеют общее имя. Определенная компонента становится доступной пользователю после того, как будут последовательно пройдены все предшествующие ей значения. Количество элементов в файле может быть любым и заранее не фиксируется. После каждого элемента автоматически ставится признак конца элемента, а в конце - конца файла. С каждым файлом можно связать текущий указатель, неявно описанную переменную, указывающую на конкретный элемент. Действия с файлами производятся поэлементно - в них участвует элемент, на котором находится текущий указатель, перемещающийся в результате выполнения действий на следующий элемент. Положение первого элемента - 0.
Каждый внешний файл должен описываться как переменная в главной программе. Файлы, не используемые для ввода и вывода данных, являются внутренними, локальными переменными. Переменные файлового типа могут быть описаны в программе либо явно в разделе переменных: VAR имя_файла: FILE OF базовый_тип_элементов; 2.1. Операции над файлами. ASSIGN (имя_файл_переменной, ’имя_файла’) – присваивание имени файла, для установления связи между переменной и именем файла, присваиваемого операционной системой. Все операции с переменной будут выполняться с файлом на диске. Нельзя употреблять для используемого файла. REWRITE (имя_файл_переменной) – открытие файла для записи. Запись в файл – это вывод результатов программы из оперативной памяти на диск. На внешнем устройстве создается новый файл с именем, присвоенным переменной, он подготавливается к обработке, указатель устанавливается на начало –. Файл сначала пустой. Существующий файл с таким же именем стирается. RESET (имя_файл_переменной) – установка файла в исходное состояние, данные становятся доступными. Файл с именем, присвоенным переменной, подготавливается к обработке и указатель устанавливается на начало. APPEND (имя_файл_переменной) – открытие внешнего файла. Файл, обозначенный переменной, открывается, и указатель перемещается на конец файла для добавления новых компонентов. READ (имя_файл_переменной, элемент) – чтение из файла. Под чтением понимается ввод данных из внешнего файла в оперативную память.
WRITE (имя_файл_переменной, элемент)– запись в файл. Элемент должен быть типа элементов файла. SEEK (имя_файл_переменной, N) – установка указателя на N-ый элемент, обозначенного переменной. N - целочисленное выражение. SEEK (имя_файл_переменной, FILESIZE (имя_файл_ переменной)) – перемещает указатель в конец файла чтобы расширить файл. Содержит количество компонентов в файле. FLUSH (имя_файл_переменной) – осуществляет очистку внутреннего буфера переменной, и гарантирует, что он будет записан на диск, если во время последнего обновления диска выполнялись какие-либо операции записи. Обеспечивает, что следующая операция чтения будет брать данные из дискового файла. CLOSE (имя_файл_переменной) – закрытие дискового файла, обозначенного переменной. При этом справочник диска обновляется. ERASE (имя_файл_переменной) – удаление файла на внешнем носителе. Если файл открыт и над ним производились действия командами RESET и REWRITE, перед стиранием файла его необходимо закрыть. RENAME (имя_файл_переменной, ’новое_имя_файла’) – переименование внешнего файла. Справочник диска обновляется, в него заносится новое имя файла. Новое имя файла не должно совпадать с существующем. 2.2. Обработка файлов. EOF (имя_файл_переменной) – определение конца файла. Число элементов файла не задается заранее, но вводится признак конца файла: логическая функция, результат которой TRUE (истина) или FALSE (ложь). FILEPOS (имя_файл_переменной) – определение номера элемента, на который «смотрит» указатель. Целочисленная функция - номер компонента. PUT (имя_файл_переменной) – добавляет новый компонент, осуществляет запись значения переменной в файл.. GET (имя_файл_переменной) – выбор следующего компонента файла, передвижения указателя на один компонент. переменная получает значение компонента, если файл не пуст. 3. Текстовые файлы содержат символы, разделенные на строки. В конце каждой строки стоит признак ее конца. Для описания используется слово TEXT: VAR имя_файла: TEXT; Текстовые файлы не являются типизированными. Их отличие от типизированных файлов заключается в следующем: 1. Элементами текстовых файлов являются символы со строковой структурой.
2. При чтении и записи числа преобразуются автоматически. 3.1. Операции над текстовыми файлами. Для текстовых файлов применимы те же процедуры и функции, что и для обычных файлов: ASSIGN, RESET и REWRITE. Но SEEK, FLUSH, FILEPOS и FILESIZE к текстовым файлам применять нельзя. APPEND (имя_файл_переменной) – открытие внешнего файла, с которым связана файловая переменная и помещение указателя в конец. EOLN (имя_файл_переменной) – определение конца строки. Результат выполнения равен – TRUE (истина), если указатель стоит на символе конца. SEEKEOLN (имя_файл_переменной) – определение конца строки. Указатель перескакивает пробелы и табуляцию, перед выполнением на конец строки. SEEKEOF (имя_файл_переменной) – определение конца файла. Применительно к текстовому файлу результат операции равен – TRUE (истина), если указатель файла располагается на метке конца файла. 3.2. Специфика ввода и вывода текстового файла. Ввод и вывод текстовых файлов выполняется при помощи операций READ, READLN, WRITE и WRITELN, задающихся с параметрами. Если параметром процедуры ввода-вывода является идентификатор переменной текстового файла, то выполнение будет производиться с использованием файла, иначе - будут использоваться стандартные файлы INPUT и OUTPUT, их не нужно описывать. READ (имя_файл_переменной, переменная1, …, переменнаяN) – ввод из текстового файла и подготавливается только для чтения. После выполнения команды READLN считывается информацию с начала следующей строки. WRITE (имя_файл_переменной, переменная1,…, переменнаяN) – вывод из текстового файла который предварительно был назван файловой переменной. Аналогично выполняется команда WRITELN. Самостоятельно изучить вопросы: 1. Общий алгоритм создания и обработки файла для Turbo Pascal. 2. Привести примеры использования файлов последовательного доступа. Контрольные вопросы: 1. Как распознать конец файла данных средствами Turbo Pascal? 2. Как распознать текстовый файл на диске? Задания: Составить тест по любой теме, посвященной программированию на Turbo Pascal. Порядок выполнения: 1) Придумать десять вопросов, на каждый из которых предусмотрено три-четыре варианта ответов, один или два из которых правильные. 2) Изучить существующие алгоритмы принятия решений и реализацию обработки статистических данных. 3) Открыть Turbo Pascal. 4) Составить алгоритм и, по нему, блок-схему. 5) Набрать разработанную программу. 6) Подготовить тестовый вариант программы и исходных данных. 7) Сделать вывод по полученным результатам работы. Лабораторная работа № 9
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|