IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задачи на файлы
-gooddron123-
сообщение 20.02.2005 11:31
Сообщение #1


Гость






Возникла небольшая проблема: нужно из 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. С файлами только начал работать, так что не сердитесь, если ступил...smile.gif
P.S.S. 2 задача. Чуть не забыл smile.gif
Дано 2 текстовых фала f1 и f2. В f1 произвольный текст, слова в нем отделяютс пробелами и знаками препинания. В f2 не более 40 слов, они расположены парами. Первое слово - заменяемое, 2 слово - заменяющее. Если в f1 найдено заменяемое слово, то нужно его заменить заменяющим.
Помогите, кто чем сможет smile.gif.
Заранее спасибо.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 20.02.2005 11:44
Сообщение #2


Гость






Цитата(-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 13:06
Сообщение #3


Гость






Спасибо, все заработало :thanks:
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 9:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"