Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Sky
Пожалуйста gомогите дорешать задачку:
Создать файл вещественных чисел. Создать новый файл так, чтобы элементы первого файла были переставлены следующим образом
было: 1 2 3 4 5 6 7 8 9 10 11 12
стало: 9 10 11 12 5 6 7 8 1 2 3 4
Начал делать, но застрял на перестановке sad.gif

Код
Program files;
Uses crt;
Const
  n=12;
Var f,f1: file of real;
     b: array[1..n] of real;
     c,c1: string;
     i: byte;
begin
writeln('nazvanie ishodnogo faila ');
readln(c);
   assign(f,c);
   rewrite(f);
writeln('nazvanie vtorogo faila ');
readln(c1);
   assign(f1,c1);
   rewrite(f1);
for i:=1 to n do
   begin
    readln(b[i]);
    write(f,b[i]);
   end;
Reset(f);


readln;
end.
Pola
перед reset (f);
close(f); не хватает?

а элементов всегда 12? или просто кратно 4?

если кратно
Код
for i:=n div 4 downto 1 do
  for j:=-3 to 0 do
     writeln(f1,b[i*4+j]);
volvo
Что-то вот такое:
const
n = 12;
every = 4;

var
i, j: integer;
X: real;

f_in, f_out: file of real;

begin
assign(f_in, 'f_in01.dat');
rewrite(f_in);
for i := 1 to n do write(f_in, i);
reset(f_in);

assign(f_out, 'f_out01.dat');
rewrite(f_out);

for i := (filesize(f_in) div every) - 1 downto 0 do begin
seek(f_in, i*every);
for j := 1 to every do begin
read(f_in, X);
write(f_out, X);
end;
end;

close(f_out);
close(f_in);

writeln('Проверка:');
reset(f_out);
while not eof(f_out) do begin
read(f_out, X);
write(X:4:0);
end;
close(f_out);

end.

Имена файлов задавал в константах, переделай как нужно...

Pola,
Цитата
перед reset (f);
close(f); не хватает?
Внимательно читай стандарт языка, прежде чем что-то ответить. Reset автоматически делает Flush + Close, и только потом переоткрывает файл...

Кроме того, в задании не разрешалось использовать массивы...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.