Автор: -gooddron123- 20.02.2005 15:31
Возникла небольшая проблема: нужно из 1 файла(с целыми числами) перенести все четные во 2, все нечетные - в 3.
Код есть:
Код
var
f,g,h:text;
s:string;
i,er:integer;
begin
assign(f,'c:\f.dat');
reset(f);
assign(g,'c:\g.dat');
rewrite(g);
assign(h,'c:\h.dat');
rewrite(h);
repeat
read(f,s);
val(s,i,er);
if (i mod 2)=0 then writeln(g,i)
else writeln(h,i);
until eof(f);
close(f);
close(g);
close(h);
end.
Проблема в том, что он не работает.
Я создал файл f.dat и написал в строке несколько чисел. Однако, после выполнения программы в g.dat присутствует только 0, а h.dat - пустой.
P.S. Правда непонятно, если их в одну строчку писать(числа), то как отличить 22 от двух двоек?Я пробовал писать числа на отдельных строках, так в итоге программа создает файлы h и g размером в 60 мегабайт. Почему?
P.S. С файлами только начал работать, так что не сердитесь, если ступил...
P.S.S. 2 задача. Чуть не забыл
Дано 2 текстовых фала f1 и f2. В f1 произвольный текст, слова в нем отделяютс пробелами и знаками препинания. В f2 не более 40 слов, они расположены парами. Первое слово - заменяемое, 2 слово - заменяющее. Если в f1 найдено заменяемое слово, то нужно его заменить заменяющим.
Помогите, кто чем сможет
.
Заранее спасибо.
Автор: volvo 20.02.2005 15:44
Цитата(-gooddron123- @ 20.02.05 10:31)
Я пробовал писать числа на отдельных строках, так в итоге программа создает файлы h и g размером в 60 мегабайт. Почему?
Код
repeat
readLN(f,s); (*** <--- Смотри сюда !!! ***)
val(s,i,er);
if (i mod 2)=0 then writeln(g,i)
else writeln(h,i);
until eof(f);
Числа должны быть именно на отдельных строках...
Кстати, чтобы проверить, является ли число НЕчетным, можно воспользоваться встроенной функцией Паскаля:
function Odd(X: Longint): Boolean;
Автор: Guest 20.02.2005 17:06
Спасибо, все заработало :thanks: