![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
1nSAnder |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте! Помогите, если можете, решить простую (IMHO) задачку на работу с файлом.
Вот условие. _Ввести с клавиатуры файл действительных чисел. _Переместить в нём все нули в конец, сохраняя порядок следования остальных компонент. _ДОПОЛНИТЕЛЬНЫЙ ФАЙЛ ИЛИ МАССИВ НЕ СОЗДАВАТЬ! _Выдать результирующий файл или сообщение, что это невозможно... Заранее премного благодарен. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата(1nSAnder @ 3.03.05 17:32) Помогите, если можете, решить простую (IMHO) задачку на работу с файлом. Ну если она простая, чего же сами не решаете? В принципе, ничего сложного. Просто читаем данные из файла последовательно, и храним индексы для чтения следующего элемента и для записи следующего элемента... Перезаписываем, естественно, только ненулевые элементы. Остаток файла забиваем нулями. Примерно вот так: Код const n = 10; var f: file of double; var i: integer; x: double; f_read, f_write: longint; begin assign(f, 'test.ttt'); rewrite(f); for i := 1 to n do begin write('x(', i, ') = '); readln(x); write(f, x) end; reset(f); { устанавливаем начальные значения указателей } while { есть что читать } do begin { прочитать следующий элемент в X и передвинуть указатель для чтения } if x <> 0 then { записать X в файл и передвинуть указатель для записи } end; { до конца файла перезаписать компоненты нулями } WriteLn('Проверка:'); reset(f); while not eof(f) do begin read(f, x); writeln(x:8:4) end; close(f) end. |
![]() ![]() |
![]() |
Текстовая версия | 7.09.2025 19:12 |