Помогите.простая задача по файлам (Pascal)

Ответить
ромка)
Сообщения: 41
Зарегистрирован: 26 мар 2008, 17:53

Организовать текстовый файл f состоящий из N строк. После этого организовать файлы h и g. В файл h записать строки файла f занимающие нечётные позиции, в файл g чётные.


p.s:Я бы может сделал бы,но пaскаль убей не помню.Заранее спасибо.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Код: Выделить всё

repeat
  readln(f,s); 
  writeln(h,s);
  readln(f,s);
  writeln(g,s);
until eof(f);
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Хыиуду писал(а):

Код: Выделить всё

repeat
  readln(f,s); 
  writeln(h,s);
  readln(f,s);
  writeln(g,s);
until eof(f);


При нечетном количестве строк в файле получится ошибка ввода/вывода.

[syntax='Delphi']
while not Eof(F) do
begin
readln(F,S);
writeln(H,S);
if not EOF(F) then
begin
readln(F,S);
writeln(G,S);
end;
end;
[/syntax]

Так, пожалуй, правильнее будет, хотя и более громоздко.
Ни что так не ограничивает фантазию программиста, как компилятор...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Можно и так. А я репит-антил больше люблю ;)

Код: Выделить всё

repeat
  readln(f,s); 
  writeln(h,s);
  if eof(f) then break;
  readln(f,s);
  writeln(g,s);
until eof(f);
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
ромка)
Сообщения: 41
Зарегистрирован: 26 мар 2008, 17:53

Мне бы полностью код Паскаля было бы супер
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Это код, который работает с уже сформированным файлом.
Осталось дописать только создание исходного файла.
Ни что так не ограничивает фантазию программиста, как компилятор...
ромка)
Сообщения: 41
Зарегистрирован: 26 мар 2008, 17:53

я вообще '0' в паскале.помогите пожалуйста если не трудно
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Ну что-то в роде
[syntax='Delphi']
var
F,G,H:text;
S:string;
I,N:integer;

begin
writeln('Введите число строк');
readln(N);
Assign(F,'f.dat');
Rewrite(F);
for i:=1 to N do
begin
readln(S);
writeln(F,S);
end;
close(F);

Assign(F,'f.dat');
Reset(F);
Assign(G,'g.dat');
Rewrite(G);
Assign(H,'h.dat');
Rewrite(H);
{далее приведенный код}
close(F);
close(G);
close(H);
end.

[/syntax]

Примерно так, могут быть мелкие синтаксические ошибки, т.к. писал без компиляции.
Ни что так не ограничивает фантазию программиста, как компилятор...
Ответить