задача такая. создать файл типа integer. в него записать n целыx чисел. потом переписать их в другой файл в такой последовательности: а1,а2,а3,а2,а1,а4,а5,а6,а5,а4.. и так до конца, используя подпрограммы.
вот что получилось:
program l9;
uses crt;
var f,g:file of integer;
n,c,d,i:byte;
b:integer;
procedure to_g(const p,c,d:byte; var f,g:file of integer); {ошибку выдаёт здесь.компиллятор требует скобку после слова file... что ему не нравится?}
var m,s:integer;
begin
m:=p;
while m<>c do
begin
seek(f,m);
read(f,s);
write(g,s);
m:=m+1;
end;
m:=m-1;
while m<>p do
begin
seek(f,m-1);
read(f,s);
write(g,s);
m:=m-1;
end;
end;
procedure kratn(n:byte; const c,d:byte;var f,g:file of integer);
var j,p:byte;
begin
p:=0;
while p<>n do
begin
for j:=1 to n/c do to_n(p,c,d,f,g);
p:=p+d;
end;
end;
procedure ne_kratn(n:byte; const c,d:byte;var f,g:file of integer);
var j,p:byte; s:integer;
begin
p:=0;
while p<>n do
begin
for j:=1 to n/c do to_n(p,c,d,f,g);
p:=p+d;
end;
while not eof(f) do
begin
read(f,s);
write(g,s);
end;
end;
begin
clrscr;
assign(f,'f.dat');
assign(g,'g.dat');
writeln('vvedite N - koli4estvo 4isel v ishodnoi posledovatelnosti'); read(n);
writeln('vvedite eti 4isla');
rewrite(f);
for i:=1 to n do
begin
read(b);
write(f,b);
end;
close(f);
writeln('vvedite C');read(c); {в моей задаче с дано и равно 3-после каждого третего эл-та записаны два предыдущих, я решила обобщить}
d:=2*c-1; {это сумма эл-тов напр а1,а2,а3,а2,а1.тоже для обобщения}
reset(f);
rewrite(g);
if (n mod c)=0 then kratn(n,c,d,f,g)
else ne_kratn(n,c,d,f,g);
close(g);
reset(g);
reset(f);
writeln('ishodnii fail:');
while not eof(f) do
begin
read(f,b);
write(b,' ');
end;
writeln;
writeln('polu4ennii fail:');
while not eof(g) do
begin
read(g,b);
write(b,' ');
end;
close(f);
close(g);
readkey;
end.
в каждой подпрограмме такая ошибка. без них всё работает, но код настолько больше! да и по требованиям подпрограммы нужны.
пробовала передать как параметр-значение, тоже ошибка(
что здесь может быть не так?
Сообщение отредактировано: svetkom -