![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
1nSAnder |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте! Помогите, если можете, решить простую (IMHO) задачку на работу с файлом.
Вот условие. _Ввести с клавиатуры файл действительных чисел. _Переместить в нём все нули в конец, сохраняя порядок следования остальных компонент. _ДОПОЛНИТЕЛЬНЫЙ ФАЙЛ ИЛИ МАССИВ НЕ СОЗДАВАТЬ! _Выдать результирующий файл или сообщение, что это невозможно... Заранее премного благодарен. |
![]() ![]() |
volvo |
![]()
Сообщение
#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. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 12:45 |