- •Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7
- •Глава 7. Составные типы данных 29
- •Глава 8. Подпрограммы и функции 46
- •Глава 9. Файлы 50
- •Глава 10. Динамические переменные (списки) 58
- •Тип и функциональные возможности языка
- •Структура программы на Паскале
- •Алфавит языка
- •Правила написания имен
- •Структура блока описаний
- •Глава 2. Простые типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Интервальный тип пользователя
- •Перечисляемый тип пользователя
- •Глава 3. Встроенные функции Понятие и классификация типов функций
- •Математические функции
- •Функции преобразования типов
- •Глава 4. Выражения Понятие и классификация типов выражений
- •Арифметические операции
- •Логические операции
- •Отношения
- •Битовые операции
- •Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простейшие операторы ввода с клавиатуры
- •Простейшие операторы вывода на экран дисплея
- •Глава 6. Выполняемые управляющие операторы языка Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных Классификация составных типов
- •Массивы Основные определения
- •Вывод массива
- •Примеры программ работы с массивами
- •Сортировки массива
- •Алгоритмы основных методов сортировок
- •Строки Строковые переменные
- •Стандартные (встроенные) процедуры работы со строками
- •Стандартные (встроенные) функции работы со строками
- •Структуры
- •Глава 8. Подпрограммы и функции Понятие подпрограмм в языке Паскаль.
- •Процедуры.
- •Описание и вызов функций
- •Параметры процедур и функций
- •Глава 9. Файлы Классификация внешних данных
- •Стандартные процедуры работы с файлами
- •Процедуры
- •Функции
- •Особенности работы с текстовыми файлами
- •Пример работы с текстовыми файлами.
- •Двоичные файлы (в машинных кодах) Типизированные файлы
- •Процедуры при работе с типизированными файлами
- •Функции при работе с типизированными файлами
- •Пример работы с типизированными файлами.
- •Файлы без типов
- •Процедуры, используемые при работе с нетипизированными файлами
- •Функции, используемые при работе с нетипизированными файлами.
- •Глава 10. Динамические переменные (списки) Понятие динамических переменных
- •Списочные данные
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Глава 11.Стандартный модуль работы с текстовым экраном Crt
- •2) Координаты экрана
- •3) Управление графическим режимом
- •4) Управление экраном и окном
- •5) Управление цветом
- •6) Вывод точек
- •7) Вывод линий
- •8) Вывод и закраска контуров
- •9) Окружности, эллипсы, дуги
- •10) Вывод текста
- •11) Последовательность работ при использовании графического режима
- •11) Пример программы приложения
Стандартные процедуры работы с файлами
Данные процедуры и функции используются при работе с файлами любых типов. В этих и последующих процедурах (специальных для файлов разных типов) используются следующие обозначения параметров:
F - имя файловой переменной;
Name - переменная или константа типа строки, содержащая имя набора данных или стандартное имя устройства ввода/вывода;
Path - параметр, аналогичный Name, но содержит только путь к каталогу;
NewName - параметр, аналогичный Name, задает новое имя набора данных;
Size - константа или переменная целого типа, задает размер записи (в байтах) в файле без типа;
Num - переменная или константа целого типа, задает номер записи файла прямого доступа, начинается нумерация с нуля;
N - целое, количество записей, участвующее в операции;
Buf - имя переменной (обычно массива или строки) используемой в качестве буфера в операциях ввода/вывода,
Str - переменная типа строка.
Процедуры
Assign(F,Name) - связь файловой переменной с набором данных или устройством, заданным строкой Name.
ChDir(Path) - изменение текущего каталога на каталог, указанный в Path.
Close(F) - закрытие открытого файла.
Erase(F) - удаление из внешней памяти файла, связанного с переменной F.
GetDir(N,Str) - получение полного имени текущего каталога логического диска с номером N. Значения N: 0 - текущий каталог, 1 - текущий дискеты A, 2 - текущий дискеты B, 3 - диска С и т.д. Имя заносится в строку Str.
MkDir(Path) - Создание нового каталога, заданного путем Path.
Rename(F,NewName) - переименование внешнего файла, связанного с переменной F. Новое имя - в строке NewName.
Reset(F) - открытие существующего файла, связанного с F. Чтение или запись будут выполняться с начала файла.
Rewrite(F) - открытие нового файла, связанного с F для записи. Если такой файл существовал, он будет уничтожен и создан новый.
RmDir(Path) - удаление пустого не текущего каталога, заданного путем Path.
Функции
Eof(F) - проверка на конец файла. Принимает значение TRUE, если достигнут конец файла, иначе - FAULSE.
IOResult - код завершения последней операции ввода/вывода. Возвращает целочисленное значение кода ошибки или 0, если без ошибки. После применения функции код ошибки обнуляется.
Особенности работы с текстовыми файлами
Для работы с текстовым файлом файловая переменная описывается стандартным описателем Text:
VAR F1,F2:Text;
Дополнительно к процедурам открытия Reset и Rewrite можно использовать процедуру Append, которая позволяет записывать данные в конец существующего файла. В качестве параметров, передаваемых процедуре записи Write или Writeln, могут использоваться списки выражений, которые вычисляются перед выводом и, затем выводятся в файл F, возможно с использованием форматов вывода. В качестве параметров, передаваемых процедурам чтения Read или Readln должны быть имена простых переменных, переменных с индексом или строк. Количество параметров может быть любым, в том числе нулевым. Если в операторах отсутствует имя файла, транслятор подставляет стандартные имена Input (для ввода) и Output (для вывода). Эти файлы автоматически открываются и закрываются при завершении программы.
Текстовые файлы, из которых производится чтение числовых данных, должны содержать числовые значения, разделенные пробелами, знаками табуляции или символами конца строки. При вводе из файла данных в символьные переменные считывается по одному символу, в том числе - разделители, символ возврата каретки и символ перевода строки.
При чтении данных в строковые переменные, из файла выбирается столько символов, сколько объявлено при описании строковой переменной, однако, если достигается конец записи, строка заполняется не полностью. Переход на чтение новой записи файла (уже в другую строчную переменную!) выполнится только на новом операторе чтения, причем он должен быть Readln.
Ниже приводятся процедуры и функции, используемые при работе с текстовыми файлами, дополнительно к приведенным ранее.
Процедуры
Append(F) - открытие существующего файла для дозаписи в конец.
Flush(F) - немедленное освобождение буфера в выводной файл. Обычно физическое выполнение записи в файл осуществляется по заполнении буфера или по команде Close.
Read(F,<список ввода>) - чтение из файла начиная с текущего положения в переменные списка.
Readln(F,<список ввода>) - чтение из файла начиная с текущего положения в переменные списка. После чтения - переход на начало новой записи файла.
SetTextBuf(F,Buf,Size) - назначение в качестве буфера ввода/вывода для файла F переменной Buf (обычно какого-либо массива или строки). Если опущен необязательный параметр Size - используется вся память, занятая переменной Buf. Если процедуры нет, используется стандартный буфер длиной 128 байт.
Write(F,<список вывода>) - вывод данных в файл, начиная с текущего места в записи.
Writeln(F,<список вывода>) - вывод данных в файл, начиная с текущего места в записи. По окончании операции, переход на начало новой записи.
Функции
Eoln(F) - признак конца строки. Возвращает TRUE, если текущий указатель во входном файле достиг конца записи или конца файла, иначе возвращает значение FALSE.
SeekEof(F) - признак конца файла. Отличается от Eof(F) тем, что пропускает символы пробела и табуляции, стоящие в конце строки.
SeekEoln(F) - признак конца строки. Отличается от Eoln(F) тем, что пропускает символы пробела и табуляции, стоящие в конце строки.