Учебник Turbo Pascal. Введение - Вывод таблицы значений функции в файл

ОГЛАВЛЕНИЕ

Вывод таблицы значений функции в файл

В программе 1.13 вывод этой же таблицы значений направляется в файл.

Листинг 1.13. Вывод таблицы значений функции в файл

program file_of_values;
var
    х : Real;
    k : Word;
    out_file : Text; {тип Text соответствует файлу. состоящему из строк текста}

function F(x: Real): Real;
begin
    F := x/d.O + x);
end;

begin
    Assign(out_file, 'c:\user\ivanov\table.dat');
    Rewrite(out_file);
    x := 0.0;
    WriteLn(out_file, 'Таблица значений функции F(x) = x/(l + x)');
    WriteLn(out_file);
    WriteLn(out_file, 'x':9, 'F(x)':19);
    WriteLn(out_file);
    for k := 0 to 50 do
    begin
        WriteLn(out_file, x:9:3, F(x):19:9);
        x := x + 0.1:
        if k mod 10 = 9 then WriteLn(out_file);
    end;
    Close(out_file);
end.

Здесь Text обозначает тип файла, состоящего из символов, организованных в строки. Такой файл создается обычным текстовым редактором, содержит текст и называется текстовым файлом. Процедура Assign модуля System связывает специальную файловую переменную out_file с файлом на диске, имеющим то имя, которое задает программист. В нашем случае это файл table.dat, который находится в каталоге user\ivanov на диске С:. В этот момент файловая переменная только связывается с именем файла — ничего больше не происходит. Процедура Rewrite открывает файл для записи и, если файл table.dat уже существует на диске, удаляет его содержимое. Об этом не следует забывать! В дальнейшем процедура Close закрывает файл, выполнив предварительно его полное обновление, и размещает его на диске.

Обратите особое внимание на то, как используется оператор WriteLn, когда вывод направляется в файл, отличный от задаваемого по умолчанию файла Output. Процедура WriteLn в общем случае имеет вид

WriteLn(par_1,   раг_2,....раr_n);

с произвольным числом параметров par_i. Если первым параметром является файловая переменная, то все остальные значения будут записываться в соответствующий файл, в противном случае они будут выводиться на экран (то есть на стандартное устройство вывода).