Реферат: Применение рекурсии в алгоритмах с возвратом. Файловый тип. Ввод/вывод
В списке внешних файлов указываются те файлы, чье время жизни больше времени выполнения программы. Если файл не указан в этом списке - он внутренний, т.е. время его жизни равно времени выполнения программы. Внутренние и внешние файлы следует описать как файловые переменные в разделе описания переменных программы:
<имя файла> :<файловый тип>
Над файлами не определено никаких операций, для них не определен даже оператор присваивания.
Для доступа к компонентам файла в Pascal предопределены специальные процедуры : rewrite(f); reset(f); read(f, x);write(f, x); get(f); put(f); и специальная переменная, так называемая буферная переменная f^. На примерах излагаются правила работы и использования перечисленных выше средств работы с файлами. Также рассматривается текстовый файл.
Действия над файлами делятся на 2 группы:
Установка режима работы с файлом
Доступ к компонентам
К первой группе относятся 2 процедуры
rewrite(f) - открывает файл для записи и устанавливает окно на начало
reset(f) - открывает файл для чтения и устанавливает окно на начало
В каждый момент времени имеется доступ только к одной компоненте файла - окно файла или буферная переменная (обозначаемая символом f^, где f - имя файла). Эта переменная имеет тип компоненты файла.
Для последовательного доступа к компонентам файла в Pascal определены 2 процедуры:
read (f:file of <тип>, var x:<тип>) - читает компоненту из файла f, открытого для чтения, записывает эту компоненту в переменную x и передвигает окно файла на 1 компоненту.
write (f:file of <тип>, x:<тип>) - записывает компоненту x в файл f, открытый для записи и передвигает окно файла на 1 компоненту.
В качестве параметров для этих процедур можно вместо x:<тип> передавать список переменных этого типа. В этом случае несколько компонент файла будут прочитаны или записаны и окно файла сдвинется на соответствующее количество компонент.
Для сдвига окна без чтения или записи определены еще 2 процедуры:
get (f) - сдвигает окно файла f, открытого для чтения, на 1 компоненту
put (f) - сдвигает окно файла f, открытого для записи, на 1 компоненту
Функция eof(f) возвращает true, если окно файла находится на конце файла. В этом случае из него больше нельзя читать.
Текстовые файлы
Файловые переменные типа Text = file of char называются текстовыми. Над ними определены вышеперечисленные операции, как над файлами с типом компоненты char. Но кроме того, что read/write позволяют читать/писать компоненты типа char, можно также читать/писать переменные типов integer, real, а также записывать в файл строковые константы. Для этого надо просто перечислить эти переменные в списке параметров процедур read/write.
Например
var x :integer;
r :real;
fin, fout :Text;
Begin ...
Rewrite(fout); Reset (fin);
Read(fin, x, r);
Write(fout, ‘X=’, x, ‘ R=’, r);