Что нужно добавить в код чтобы текст был и в самом файле и отображался в окне вывода - Pascal
Формулировка задачи:
const
n=9;
FileName='tabl.txt';
procedure CreateTable(var f:text);
Var x, y: Byte;
a: array[2..n, 2..n] of integer;
Begin
Assign(F,'c:\tabl.txt');
Rewrite(F);
writeln(F, 'Таблица умножения от 2 до 9');
write(F, ' *|');
for x := 2 to n do write(f, x:4);writeln(F);
for x := 2 to n + 1 do write(f, '-----');writeln(F);
for x := 2 to n do
begin
write(F, x:3, '|');
for y := 1 to n do
write(F, x * y:4);
writeln(f);
end;
Close(f);
end;
procedure FileOut(var f:text);
var S: string;
begin
Assign(F,'tabl.txt');
Reset(F);
while not EoF(F) do
begin
ReadLn(F,S);
WriteLn(S);
end;
Close(F);
end;
var f:text;
begin
if not FileExists('tabl.txt') then CreateTable(f)
else FileOut(f);
end.Решение задачи: «Что нужно добавить в код чтобы текст был и в самом файле и отображался в окне вывода»
textual
Листинг программы
const n=9; FileName='tabl.txt';
procedure WriteTbl(var f: Text);
var i, j: Integer;
begin
WriteLn(f, 'Таблица умножения от 2 до 9');
Write(f, ' \|');
for j := 2 to n do Write(f, j:4); WriteLn(f);
for j := 2 to n do Write(f, '-----'); WriteLn(f);
for i := 2 to n do begin
Write(f, i:3, '|');
for j := 2 to n do Write(f, i * j:4); WriteLn(f);
end;
end;
procedure ShowFile(var f: Text);
var s: String;
begin
while not EOF(f) do begin
ReadLn(f,s); WriteLn(s);
end;
end;
var f: Text;
begin
Assign(f, FileName); {$I-}Reset(f);{$I+}
if IOResult<>0 then begin
Rewrite(f); WriteTbl(f); WriteTbl(output);
end else ShowFile(f);
Close(f);
end.
Объяснение кода листинга программы
- В начале кода объявлены переменные
nиFileName, которые будут использоваться в дальнейшем. - Затем объявлен procedure
WriteTbl, который будет записывать таблицу умножения от 2 до 9 в файлf. - Внутри
WriteTblиспользуются циклыforдля вывода заголовка таблицы и каждой строки таблицы. - Далее объявлен procedure
ShowFile, который будет читать содержимое файлаfи выводить его на экран. - В основной части кода создается экземпляр файла
fс именемFileName. - Если файл
fне пуст, то его содержимое считывается и выводится на экран. - Если файл
fпуст, то записывается таблица умножения от 2 до 9 в файлf. - После этого файл
fзакрывается. - Конец программы.