program tekstinis;
var
txt: Text;
i, n: Integer;
a, b, c: Integer;
function did: Integer;
begin
if (a >= b) and (a >= c) then
Writeln('Didziausias skaicius :', a)
else
if (b >= a) and (b >= c) then
Writeln('Didziausias skaicius :', b)
else
if (c >= a) and (c >= b) then
Writeln('Didziausias skaicius:', c);
end;
begin
Assign(txt, 'D:\Desktop\tekstine_rinkmena.txt');
Reset(txt);
Read(txt, a, b, c);
if (a >= b) and (a >= c) then
Writeln ('Didziausias skaicius :', a)
else
if (b >= a) and (b >= c) then
Writeln('Didziausias skaicius :', b)
else
if (c >= a) and (c >= b) then
Writeln ('Didziausias skaicius:', c);
ReadLn;
Close(txt);
end.
该程序的输入是一个包含3个数字的3行文本文件。它读取第一行并显示最大数字,但我不知道如何强制它读取其他两行。
编辑:忘了提到有3行有3个数字 5 7 4, 9 9 8, 8 7 8, 我希望程序使用if函数中的每一行。那么它可以写出每行的最大数量(到目前为止,我已经成功完成了第一行)答案 0 :(得分:1)
在'reset(txt)'行之后,你必须添加一个循环:
for i:= 1 to 3 do
begin
readln (txt, a, b, c);
did;
end;
readln
端;
要么在主程序的主体中进行比较,要么在单独的程序中进行比较('did'),但不是两者都有!为清楚起见,我使用了上面的程序版本。
答案 1 :(得分:0)
过程Read
仅从文件中的1行读取值。您需要使用过程ReadLn
,该过程从文件读取值并转到下一行。
此处提供更多信息:
http://www.freepascal.org/docs-html/rtl/system/read.html
http://www.freepascal.org/docs-html/rtl/system/readln.html
所以,你的代码应该是这样的:
Assign(txt, 'D:\Desktop\tekstine_rinkmena.txt');
Reset(txt);
ReadLn(txt, a);
ReadLn(txt, b);
ReadLn(txt, c);
// ...
Close(txt);
修改强>
我无法检查我的代码,因为我没有pascal编译器。但我认为这段代码可以帮到你:
Assign(txt, 'D:\Desktop\tekstine_rinkmena.txt');
Reset(txt);
While not Eof(txt)
Begin
Read(txt, a, b, c);
// your check of variables "a", "b" and "c"
ReadLn(txt); // This should move file stream to the next string
end;
Close(txt);
答案 2 :(得分:0)
我一直在使用这种方法
begin
Assign(txt, 'D:\Desktop\tekstine_rinkmena.txt');
Reset(txt);
Read(txt, a);
Readln(txt, b;
Readln(txt, c);
Close(txt);
if...
end.