Показать сообщение отдельно
  #1  
Старый 20.12.2016, 17:00
Luka_Megurine Luka_Megurine вне форума
Прохожий
 
Регистрация: 20.12.2016
Сообщения: 1
Версия Delphi: ABC Pascal
Репутация: 10
По умолчанию Исправить программу

Добрый день. Помогите, пожалуйста, написать программу.
В строках текстового файла содержатся целые числа. Преобразовать строки файла следующим образом: вначале должны идти четные числа, упорядоченные по возрастанию, а затем нечетные, упорядоченные по убыванию. Их надо записать в другой файл.
Есть программа, но она выдаёт мне ошибки.

Код:
Program files; 
type mas= array[1..100] of integer; 
var f1, f2: text; 
a, b, d:mas; 
k, p, i, j: integer; 
procedure Readfile (f1:text; var a:mas; var k: integer); 
begin 
p:=0; 
k:=0; 
while not eof (f1) do 
begin 
readln (f1,a[k]); 
k:=k+1; 
end; 
end; 
Procedure Check (var a:mas; p: integer); 
var k, i, j: integer; b, d: mas; 
begin 
i:=1; 
j:=1; 
for k:=1 to p do 
begin 
if (a[k] mod 2=0) then 
begin 
b[i]:=a[k]; 
i:=i+1; 
end 
else 
begin 
d[j]:=a[k]; 
j:=j+1; 
end; 
end; 
end; 

procedure Regularise(Var b,d: mas; var i, j: integer; f2:text); 
var H,Y : integer; 
begin 
assign(f2, 'C:\Users\User\Desktop\f2.txt'); 
rewrite(f2); 
H:=0; 
Y:=0; 
while i<>High(b)+1 do 
begin 
if b[i]> b[i+1]then 
begin 
H:=b[i]; 
b[i]:=b[i+1]; 
b[i+1]:=H; 
readln (f2, b[i]); 
end; 
end; 
while j<>High(d)+1 do 
begin 
if d[j]< d[j+1]then 
begin 
Y:=d[j]; 
d[j]:=d[j+1]; 
d[j+1]:=Y; 
readln (f2, d[j]); 
end; 
end; 
close (f2); 
end; 

begin 
assign(f1, 'C:\Users\User\Desktop\f1.txt'); 
reset(f1); 
Readfile(f1, a, k); 
Check(a, p); 
assign(f2, 'C:\Users\User\Desktop\f2.txt'); 
rewrite(f2); 
Regularise(b, d, i, j, f2); 
closefile(f1); 
closefile(f2); 
end.

lmikle: пользуемся тегами.
Ответить с цитированием