- •А.И. Газейкина Основы структурного программирования на языке Паскаль
- •Тема 1. Линейные программы 4
- •Некоторые стандартные функции языка Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 2. Разветвляющиеся программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 3. Циклические программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 4. Обработка данных строкового типа Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 5. Система типов языка Паскаль Краткое изложение теоретического материала
- •Тема 6. Перечисляемый тип Краткое изложение теоретического материала
- •Тема 7. Тип-диапазон Краткое изложение теоретического материала.
- •Тема 8. Множество (множественный тип) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 9. Массивы в языке Паскаль Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 10. Графика в языке Паскаль Краткое изложение теоретического материала
- •Контрольные задания
- •Тема 11. Подпрограммы в языке Паскаль Краткое изложение теоретического материала
- •Процедуры в языке Турбо Паскаль
- •Функции в языке Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 12. Тип данных запись (Record) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 13. Работа с файлами в языке Паскаль Краткое изложение теоретического материала
- •Текстовые файлы
- •Примеры решаемых задач
- •Типизированные файлы
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 14. Динамические переменные в языке Паскаль Краткое изложение теоретического материала Статические и динамические переменные
- •Указатели
- •Типизированные указатели
- •Нетипизированные указатели
- •Динамические структуры данных
- •Примеры решаемых задач
- •Контрольные задания
- •Список литературы
Контрольные задания
Составить программу, которая обрабатывает информацию о
книгах;
товарах на складе;
кинофильмах;
школах города;
факультетах университета;
сотрудниках фирмы.
Информация об объекте должна представлять собой совокупность разнотипных полей (не менее четырех). Программа должна:
вводить информацию;
выводить информацию на экран;
позволять редактировать ее (т.е. изменять значения некоторых полей);
осуществлять поиск по нескольким признакам;
выполнять сортировку по нескольким полям.
Тема 13. Работа с файлами в языке Паскаль Краткое изложение теоретического материала
Все программы, составленные до настоящего момента, обрабатывали данные (переменные, константы), хранящиеся в оперативной памяти компьютера. Часто это крайне неудобно, например, если каждый раз при запуске программы требуется вводит большой объем исходных данных, или одни и те же данные должны обрабатываться несколькими программами.
В языке Паскаль, как и во многих других развитых языках программирования, существует возможность хранить данные независимо от программы. Для этого эти данные должны быть представлены в виде файла.
Файл – это поименованное место на внешнем носителе, представляющее собой совокупность отдельных записей. Файл данных позволяет:
хранить данные во внешней памяти долговременно и независимо от программы;
использовать одни и те же данные несколькими программами.
По способу представления данных файлы делятся на
текстовые: в них информация представлена в виде текста - последовательности символов. Например, число 2006 представляет собой последовательность из четырех символов (т.е. строку) – ‘2006’.
файлы с данными во внутреннем представлении: в них данные представлены в той форме, в какой они хранятся в памяти компьютера (см. соответствующую литературу о представлении данных в памяти ЭВМ). Например, то же самое число 2006 в таком файле будет записано уже не в виде четырех цифр, а как целое число (в двоичной системе счисления). Файлы во внутреннем представлении в языке Паскаль называют еще структурированными, или типизированными, поскольку все записи такого файла имеют одинаковый тип.
По способу доступа к данным файлы делятся на
файлы последовательного доступа: для того, чтобы обратиться к N-ой записи файла, необходимо прочесть предыдущие N-1 запись (аналог – магнитофонная кассета);
файлы прямого доступа: можно напрямую обратиться к N-ой записи файла, не читая предыдущих записей (аналог – компакт-диск).
В обобщенном виде алгоритм работы с файлами следующий:
открыть файл;
записать в него или прочитать из него данные;
закрыть файл.
Текстовые файлы
Записи текстового файла – это строки различной длины, поэтому текстовые файлы являются файлами последовательного доступа. Структура текстового файла представлена на Рис. 6.
|
Eoln |
| ||||
|
Eoln |
|
| |||
|
Eoln | |||||
|
Eoln |
|
|
|
| |
Eof |
|
|
|
|
|
|
Рис. 6. Структура текстового файла |
Таким образом, текстовый файл представляет собой совокупность строк разной длины. Именно поэтому к записям файла возможен только последовательный доступ. Каждая строка заканчивается специальным неотображаемым символом Eoln («End of line» - конец строки). В конце файла записан специальный неотображаемый символ Eof («End of file» - конец файла).
В текстовом файле может храниться не только текст, но и данные других типов (например, числа) в текстовом представлении (т.е. по сути дела все равно текст).
Для работы с текстовыми файлами в языке Паскаль используются следующие команды, описания и функции:
Описание файловой переменной:
Var f : text;
где f – имя файловой переменной, text – еще один стандартный тип данных – текстовый файл.
Файловая переменная – это переменная-указатель, посредством которой идет взаимодействие программы (чтение/запись данных) с внешним файлом.
Связывание файловой переменной с конкретным именем внешнего файла:
Assign ( f, <имя файла> );
где f – имя файловой переменной, <имя файла> - строковая константа или переменная. Например, выполнение команды
Assign ( f, ’c:\tp70\example.txt’ );
свяжет файловую переменную f с файлом «example.txt», который расположен на диске C: в папке с именем «tp70». После записи такой команды в тексте программы нигде далее не будет указываться имя файла, с которым работает программа.
Открытие файла для записи данных:
Rewrite (f);
Файл создается заново. Если для записи открыт уже существующий файл, то все данные из него будут потеряны.
Открытие файла для чтения данных:
Reset (f);
Для чтения можно открыть только существующий файл. Указатель устанавливается на первую запись (т.е. на первый символ первой строки) файла.
Открытие файла для дополнения (т.е. дописывания данных в конец файла):
Append (f);
Для дополнения можно открыть только существующий файл. Указатель устанавливается после последней записи (строки).
Запись данных в файл:
Write ( f, <список вывода> );
По сути, используется та же команда, что и для вывода данных на экран. Имя файловой переменной f указывает на то, что вывод будет осуществляться в файл.
Команда Writeln ( f, <список вывода> ); записывает в текстовый файл данные и символ Eoln.
Чтение данных из файла:
Read ( f, <список переменных> );
Команда Readln ( f, <список переменных> ); позволяет прочитать данные, а также символ Eoln.
Закрытие файла:
Close ( f );
Логическая функция Eof ( f ) возвращает значение ИСТИНА, если указатель указывает на символ конца файла и ЛОЖЬ в противном случае.
Логическая функция Eoln ( f ) возвращает значение ИСТИНА, если указатель указывает на символ конца строки и ЛОЖЬ в противном случае.