Показать сообщение отдельно
  #4  
Старый 01.12.2015, 01:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 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.
Ответить с цитированием