- •Начальные сведения
- •Алфавит
- •Лексемы, разделители и комментарии
- •Форма Бэкуса-Наура
- •Структура программы на Паскале
- •Типы данных
- •Базовые возможности Паскаля
- •Стандартные типы данных
- •Константы
- •Конструирование типов
- •Перечисления
- •Диапазоны (интервалы)
- •Массивы
- •Описание переменных и типов данных
- •Var a,b,c: Real; {описаны переменные вещественного типа}
- •I,j,k,l,m,n:Integer; {описаны переменные целого типа}
- •Оператор присваивания
- •Условные операторы
- •Оператор If
- •Оператор Case
- •Операторы цикла
- •Цикл While
- •Цикл Repeat-Until
- •Цикл For
- •Оператор безусловного перехода и метки
- •Пустой оператор
- •1: End; {конец тела цикла с помеченным пустым оператором}
- •Процедуры и функции
- •Описание
- •Список формальных параметров
- •Вызов процедур и функций
- •Локализация (области видимости) имен. Глобальные и локальные объявления.
- •Статическое и динамическое выделение памяти переменным
- •Рекурсия и опережающее описание
- •Стандартные функции
- •Стандартные процедуры
- •Стандартный ввод-вывод
- •Сложные типы данных и их использование
- •Квалификаторы
- •Конструкция записи, тип записи и переменная типа запись
- •Id:Person; {личные данные}
- •Id:Person; {личные данные}
- •Index: Ch; {Название/номер группы}
- •Использование записей в программе
- •Оператор With
- •Записи с вариантными полями
- •0:(I:Integer) {Два байта как одно поле Integer}
- •1:(Lo,hi:Char); {отдельно младш. И старш. Байты}
- •Var e: Integer; {в этой переменной будем менять байты}
- •Указатели и динамические структуры данных
- •Определение и описание
- •I:integer; {Информационное поле}
- •Var p,q:Point; {переменные-указатели на записи типа Rec}
- •Использование указателей и динамических переменных
- •Создание и уничтожение динамических переменных
- •Простейшие динамические структуры
- •Множества
- •Назначение и описание
- •Константы типа множество
- •Операции с множествами
- •Назначение и описание
- •Работа с файлами
- •Файлы типа Text
Файлы типа Text
В Паскале предусмотрен предопределенный файловый тип Text. Его описание могло бы выглядеть так:
Type Text=File of Char;
Это описание в программе делать не надо, так как оно уже неявно присутствует. Поэтому вместо
Var f:File of Char;
можно написать эквивалентное описание
Var f:Text;
Для файлов типа Text определены все процедуры и функции, определенные для файлов других типов, и работают они также. Но есть важное отличие. В процедуре Read могут быть переменные разных типов, а именно, Char, Integer, Real и диапазонов на Char и Integer. В процедуре Write могут быть выражения типов Char, Integer, Real, Boolean, диапазонов на Char и Integer и строковых констант. Однако все типы, кроме типа Char и строковых констант, при выводе преобразуются во внешнее представление, то есть, в формат, предусмотренный для вывода данных на дисплей или принтер. А при вводе данные преобразуются во внутреннее представление.
То есть, эти процедуры похожи на процедуры Read и Write, предназначенные для стандартного ввода-вывода. Так же, как для стандартного ввода-вывода определены процедуры Readln и Writeln. Единственное отличие – первым фактическим параметром этих четырех процедур должна быть файловая переменная, связанная с соответствующим текстовым файлом на диске.
Так же, как в стандартном вводе-выводе, после каждого элемента вывода можно указывать формат вывода.
Так же, как в стандартном вводе-выводе, предусмотрена функция Eoln для проверки достижения конца текущей строки ввода. При вызове этой функции должен быть указан формальный параметр – файловая переменная, например, Eoln(F). Функция возвращает значение True, если операция ввода завершилась в конце строки.
Так же, как в стандартном вводе-выводе, при выводе элементы данных никак не отделяются друг от друга, поэтому программист должен предусмотреть вставку пробелов либо подходящие форматы. А при вводе элементы данных типа Char, Integer, Real и диапазонов на Char и Integer, должны быть разделены пробелами.