
01.12.2015, 01:21
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Проще не исправлять, а переписать.
Как-то так:
Код:
program ArifmTest;
{$APPTYPE CONSOLE}
type
Tposl=array [1..100] of real;
Tstroka=string[30];
var
a : Tposl;
n : integer;
procedure vvodposl(const namefile:Tstroka; var lst : Tposl);
var
fin: textfile;
i:integer;
begin
assignfile(fin,namefile);
reset(fin);
readln(fin,n);
for i:=1 to n do
read(fin,lst[i]);
close(fin);
end;
procedure vivodposl(namefile:stroka; lst : Tposl; IsRewrite : Boolean);
var
i : Integer;
begin
assign(fout,namefile);
if IsRewrite
then rewrite(fout)
else append(fout);
for i:=1 to n do
write(fout,lst[i]:3:2);
writeln(fout,'');
if IsArifm(lst)=true
then write(fout,'Da')
else write(fout,'Net');
writeln(fout,'');
close(fout);
end;
function IsArifm(a:posl):boolean;
var
d:real;
i:integer;
begin
Result := True
if n > 1 Then
Begin
d:=a[2]-a[1];
for i:=2 to n-1 do
Begin
Result := (a[i+1]-a[i])=d;
If Not Result Then Break;
End;
End;
end;
begin
vvodposl('f_in.txt', a);
vivodposl('f_out.txt',a,false);
end.
|