![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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. |
1nSAnder |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо. Нет, дело не в том, что я из лени, что ли, не хочу решать, а в том ч, что задачи-то можно решить разными способами...
Я, например, решал (вернее, пробовал) её много др. способом. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 12:43 |