- •Принципы модульного программирования
- •1. Процедуры
- •1.1.Пример программы с процедурой
- •1.2. Расположение процедур в программе
- •2. Функции
- •2.1. Пример программы с функцией
- •3. Внешние процедуры и функции
- •3.1. Модули пользователей
- •Сложные типы данных, применяемые в Паскале
- •1. Множества
- •1.1. Примеры программ с использованием множеств
- •2. Записи
- •2.1.Пример программы обработки записей
- •Файлы и наборы данных
- •1.Текстовые файлы
- •1.1. Создание текстового файла
- •1.2. Работа с существующим текстовым файлом
- •2. Последовательные файлы
- •2.1.Примеры программ с файлами, содержащими данные простого типа
- •2.2.Работа с файлами, содержащими данные сложного типа
- •2.2.1. Создание последовательного файла
- •2.2.2. Работа с файлом filan
- •3. Файлы с произвольным (прямым) доступом
- •3.1. Создание файла с прямым доступом
- •3.2. Работа с файлом: поиск и коррекция записей
- •3.3. Упорядочение записей в файле
- •3.4. Удаление записей из файла
- •3.5. Вставка записей в файл
- •Динамическое распределение памяти. Указатели и списки
- •1. Использование указателей. Списки
- •2. Очереди
- •2.1. Очередь типа Lifo
- •2.2. Очередь Fifo
- •Стандартные модули Турбо Паскаля
- •Модуль Crt
- •Модуль dos
- •Модуль Graph
- •1. Инициирование графического режима
- •2. Вывод текста (надписей) в графическом режиме
- •3. Вывод точек на экран
- •4. Построение графических изображений
- •5. Запоминание и вывод изображений
- •Библиографический список
- •Содержание
- •Процедуры 3
- •2. Функции 12
1.Текстовые файлы
Это – стандартные файлы, состоящие из строк символов, которые заканчиваются символом "конец строки". Текстовый файл определяется описателем Text, который в разделе Var может быть записан так:
VAR
имя:TEXT;
Пример.
VAR
DAN:Text;
DATAIN:TEXT;
Примером текстовых файлов являются стандартные файлы INPUT и OUTPUT.
Для чтения и записи в текстовые файлы используются стандартные операторы:
READ, и WRITE,
READLN WRITELN.
Причем, из файла INPUT можно только читать, а в файл OUTPUT – только писать.
Общий вид операторов ввода-вывода для текстовых файлов следующий:
READ(файл,запись);
READLN(файл,запись);
- - - -
WRITELN (Файл,запись);
где файл — имя файла,
запись — имя данного, которое читается (записывается) из файла.
Это может быть символ, строка или число.
Каждый оператор Readln читает очередную запись файла, а Writeln – пишет запись в него. После этого указатель считывания – записи перемещается на следующую запись.
Основными задачами при работе с файлами являются создание нового и обработка уже существующего файла.
1.1. Создание текстового файла
Пример.
Ввести в ЭВМ с клавиатуры n строк текста и записать их в текстовый файл. Имя набора данных также задать с клавиатуры.
Алгоритм
1.1.Ввести имя НД
1.2. Открыть файл для записи
2.1. Ввести n
2.2. Для номерастроки (i) от 1 до n
ввести строку;
переписать в файл строку
3. Закрыть файл
4. Закончить
Программа для этого алгоритма будет иметь вид:
Program SozdText;
Var
Tx:Text;
FilName:String;{имя набора данных}
Stroka:String;{строка текста}
i,n,:Integer; {вспомогательные переменные}
Begin
{1.1}
Writeln(`Введите имя набора данных`);
Readln (FilName);
{Свяжем файл Тх с набором данных}
Assign(Tx,FilName);
{1,2}
Rewrite (Tx);
{2.1}
Writeln (`Введите количество строк текста`);
Readln(n);
Writeln (`Введите строки`);
{2.2}
For i:=1 to n do
Begin
Readln (Stroka); {с клавиатуры}
Writeln(Tx,Stroka);{запись в файл}
END;
{3}
Close(Tx);
End.
1.2. Работа с существующим текстовым файлом
Работа с существующим файлом обычно включает в себя операции открытия его для чтения и затем считывания из него записей, пока не появится признак "Конец файла" (Eof). Поэтому соответствующие Паскаль-программы содержат циклы вида:
While Not Eof (файл) do
Begin
Readln(файл,запись);
- - - - - - - -
End;
Простейшая задача – вывести на экран содержимое файла. Рассмотрим ее на примере набора, созданного в предыдущем пункте.
Алгоритм
1.1. Ввести имя НД
1.2. Открыть файл для чтения
2.1. Количество строк = 0
2.2.Пока не конец файла выполнять
считать из файла строку
кол.строк = кол.строк +1
вывести строку на экран
2.3. Вывести кол.строк
2.4. Закрыть файл
3. Закончить
Программа будет иметь вид:
Program VivodFile;
Var Tx:Text;
FilName,Str:String;
Kolstr:Integer;
Begin
{1.1}
Writeln(`Введите имя НД `);
Readln(FilName);
{Свяжем файл Тх с набором данных}
Assign(Tx,FilName);
{1.2}
Reset(Tx,FilName);
{2.1}
kolstr:=0;
{2.2}
Writeln(`Содержимое набора`);
While Not Eof(Tx) do
Begin
Readln (Tx,Str);
kolstr:=kolstr+1;
Writeln(Str); {вывод на экран}
End;
{2.3}
Writeln(`Количество строк в наборе данных - `, kolstr);
{2.4}
Close(Tx);
End.
