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

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

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

> Задача на работу с файлами., Сортировка файла.
1nSAnder
сообщение 3.03.2005 18:32
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Здравствуйте! Помогите, если можете, решить простую (IMHO) задачку на работу с файлом.
Вот условие.
_Ввести с клавиатуры файл действительных чисел.
_Переместить в нём все нули в конец, сохраняя порядок следования остальных компонент.
_ДОПОЛНИТЕЛЬНЫЙ ФАЙЛ ИЛИ МАССИВ НЕ СОЗДАВАТЬ!
_Выдать результирующий файл или сообщение, что это невозможно...
Заранее премного благодарен.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
volvo
сообщение 19.03.2005 18:03
Сообщение #2


Гость






Нет... С вашей программой (с такими знаниями - "заменить Double на Integer", Вы условие-то свое сами читали???) Вы будете разбираться сами...

Это все, что я могу предложить (она тоже работает с процедурами):
Исходный код
const
n = 10;

type
freal = file of real;
var
f: freal;

var
i: integer;
x: real;
f_read, f_write: longint;

procedure read_file(var f: freal);
begin
rewrite(f);

for i := 1 to n do
begin
write('x(', i, ') = ');
readln(x); write(f, x)
end;
close(f)
end;

procedure move_zeroes(var f: freal);
begin
reset(f);

f_write := 0; f_read := 0;
while f_read <> filesize(f) do
begin
seek(f, f_read);
read(f, x);
f_read := filepos(f);

if x <> 0 then
begin
seek(f, f_write);
write(f, x);
f_write := filepos(f);
end;
end;

seek(f, f_write); x := 0;
for i := 1 to filesize(f) - f_write do
write(f, x);
close(f)
end;

procedure out_f(var f: freal);
begin
reset(f);
while not eof(f) do
begin
read(f, x);
writeln(x:8:4)
end;
close(f)
end;

begin
assign(f, 'test.ttt');
read_file(f);
writeln('before:');
out_f(f);
move_zeroes(f);
writeln('after:');
out_f(f)
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
1nSAnder   Задача на работу с файлами.   3.03.2005 18:32
volvo   Ну если она простая, чего же сами не решаете? В ...   3.03.2005 19:18
1nSAnder   Спасибо. Нет, дело не в том, что я из лени, что ли...   4.03.2005 16:31
Altair   Ну-ка подробнее.... расскажите как вы ее пробовали...   4.03.2005 17:55
1nSAnder   Вот... Это всё, что я нарешал... Program P2_3_FI...   18.03.2005 18:23
volvo   А самому найти? Как мы ее искать будем? Точно так...   18.03.2005 18:35
Guest   Ну, узазал мне TP на строчку: {Удаление нулей====...   18.03.2005 19:00
volvo   Да нет, не все правильно... Тут происходит чтение...   18.03.2005 19:05
volvo               for i...   18.03.2005 20:02
Людмила   volvo, мне показалось или у него переменная i ни...   19.03.2005 17:20
1nSAnder   Вот всё, что я надумал и исправил!!! А...   19.03.2005 17:28
volvo   Ну и кто из нас учится? Я? Держи (только прежде че...   19.03.2005 17:35
1nSAnder   Это , конечно, хорошо, но мне бы хотелось разобрат...   19.03.2005 17:50
1nSAnder   А не, всё правильно... Вернее почти всё: потребова...   19.03.2005 18:00
volvo   Вот это извините... Я в ЭТО не верю... А ошибка 1...   19.03.2005 17:59
volvo   Нет... С вашей программой (с такими знаниями - ...   19.03.2005 18:03


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

 



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