如何使用每行都有数字的文件作为输入(不是 .txt 文件),进行一些计算,然后将结果写入另一个 pascal 文件?
How do I use a file with numbers on each line as an input (not a .txt file), do some calculations, then write the results into another file in pascal?
我正在尝试编写一个程序,它将一个名为“root.inp”(文件包含 3 个整数)的文件作为其输入,每个整数在单独的一行中,然后执行中所示的操作图片:
(a, b, c 是所述输入文件中的整数,s 是结果)
之后,我希望能够将 S 中的任何内容写入一个名为“root.out”的新文件中。但过了一段时间,我找不到解决办法。这是我试过的
program Formula;
type
input = record
firstnum: integer;
secondnum: integer;
thirdnum: integer;
end;
output = record
sum: real;
end;
var
f: file of input;
p: file of output;
S: real;
a, b, c: integer;
begin
assign (f, 'root.inp');
reset (f);
while not eof(f) do;
begin
read (f,input);
a := input.firstnum;
b := input.secondnum;
c := input.thirdnum;
S := (a*a + b*b + c*c) / (a*b*c) + sqrt(a*b*c);
end;
close (f);
assign (p, 'root.out');
rewrite(p);
output.sum := S;
write(p, output);
close(p);
end.
执行后,'root.out'文件是一片空白,但程序在编译时并没有出现任何错误。我找不到原因。
主要问题是 while not eof (f) do
之后的分号 - 这应该被删除。分号防止循环 运行。另外,什么是 file of input
和 input.firstnum
?标准 Pascal 将有三个单独的 read
命令,每个变量一个。
您需要定义输入和输出类型的变量,并使用它们进行读写,而不是类型名称。
P.S。 input 和 output 是 Pascal 运行时库中预定义的标识符,最好避免使用它们。
我正在尝试编写一个程序,它将一个名为“root.inp”(文件包含 3 个整数)的文件作为其输入,每个整数在单独的一行中,然后执行中所示的操作图片:
(a, b, c 是所述输入文件中的整数,s 是结果)
之后,我希望能够将 S 中的任何内容写入一个名为“root.out”的新文件中。但过了一段时间,我找不到解决办法。这是我试过的
program Formula;
type
input = record
firstnum: integer;
secondnum: integer;
thirdnum: integer;
end;
output = record
sum: real;
end;
var
f: file of input;
p: file of output;
S: real;
a, b, c: integer;
begin
assign (f, 'root.inp');
reset (f);
while not eof(f) do;
begin
read (f,input);
a := input.firstnum;
b := input.secondnum;
c := input.thirdnum;
S := (a*a + b*b + c*c) / (a*b*c) + sqrt(a*b*c);
end;
close (f);
assign (p, 'root.out');
rewrite(p);
output.sum := S;
write(p, output);
close(p);
end.
执行后,'root.out'文件是一片空白,但程序在编译时并没有出现任何错误。我找不到原因。
主要问题是 while not eof (f) do
之后的分号 - 这应该被删除。分号防止循环 运行。另外,什么是 file of input
和 input.firstnum
?标准 Pascal 将有三个单独的 read
命令,每个变量一个。
您需要定义输入和输出类型的变量,并使用它们进行读写,而不是类型名称。
P.S。 input 和 output 是 Pascal 运行时库中预定义的标识符,最好避免使用它们。