1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| 1nSAnder |
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: 0 |
Здравствуйте! Помогите, если можете, решить простую (IMHO) задачку на работу с файлом.
Вот условие. _Ввести с клавиатуры файл действительных чисел. _Переместить в нём все нули в конец, сохраняя порядок следования остальных компонент. _ДОПОЛНИТЕЛЬНЫЙ ФАЙЛ ИЛИ МАССИВ НЕ СОЗДАВАТЬ! _Выдать результирующий файл или сообщение, что это невозможно... Заранее премного благодарен. |
![]() ![]() |
| 1nSAnder |
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: 0 |
Вот...
Это всё, что я нарешал... Код Program P2_3_FILE; Type tf= file of integer; Var f: tf; siz:longint; {Ввод файла=================================================} Procedure InputF (var ff:tf); Var x:integer; Begin writeln ('Создание файла. Конец файла = 777'); rewrite (ff); write ('Ввод компоненты '); readln (x); while x<>777 do begin write (ff,x); write ('Ввод компоненты '); readln (x) end; close (ff); End; {Вывод файла================================================} Procedure OutputF (var ff:tf); Var x: integer; Begin writeln ('Вывод файла '); reset (ff); while not eof (ff) do begin read (ff,x); write (x, ' ') end; writeln; close (ff); writeln ('Вывод закончен'); End; {Удаление нулей=============================================} Procedure DelOf0 (var ff:tf); Var x,y: integer; n: byte; fs: longint; Begin reset (ff); fs:= filesize (ff); while not eof (ff) do begin read (ff,x); if x=0 then begin n:= filepos (ff)-1; for i:=n to fs do begin seek (ff,i); read (ff,x); seek (ff, i-1); write (ff,x) end end end; close (ff) End; {Добавление нулей===========================================} Procedure Add0 (var ff:tf; var fs:longint; q: integer); Begin reset (ff); seek (ff, filesize (ff)); while filesize (ff)<=fs do begin write (ff,q) end; close (ff) End; {Основная программа=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=} BEGIN Assign (f, 'fx.d'); InputF (f); OutputF (f); DelOf0 (f); Add0 (f,siz,0); OutputF (f) END. Тут где-то ошибка намбер 100: Диск рид еррор!!! Найдите, пож-та, если не трудно. З.Ы. Прогу проверял мой препод по информатике. На первый взгляд ничего не сказал. И на второй тоже. Сказал просто: "Сам думай!" (А ведь прав!!!) |
1nSAnder Задача на работу с файлами. 3.03.2005 22:32
volvo
Ну если она простая, чего же сами не решаете?
В … 3.03.2005 23:18
1nSAnder Спасибо. Нет, дело не в том, что я из лени, что ли… 4.03.2005 20:31
Altair Ну-ка подробнее.... расскажите как вы ее пробовали… 4.03.2005 21:55
volvo
А самому найти? Как мы ее искать будем? Точно так… 18.03.2005 22:35
Guest Ну, узазал мне TP на строчку:
{Удаление нулей====… 18.03.2005 23:00
volvo
Да нет, не все правильно... Тут происходит чтение… 18.03.2005 23:05
volvo for i… 19.03.2005 0:02
Людмила
volvo, мне показалось или у него переменная i ни… 19.03.2005 21:20
1nSAnder Вот всё, что я надумал и исправил!!!
А… 19.03.2005 21:28
volvo Ну и кто из нас учится? Я?
Держи (только прежде че… 19.03.2005 21:35
1nSAnder Это , конечно, хорошо, но мне бы хотелось разобрат… 19.03.2005 21:50
1nSAnder А не, всё правильно... Вернее почти всё: потребова… 19.03.2005 22:00
volvo Вот это извините... Я в ЭТО не верю...
А ошибка 1… 19.03.2005 21:59
volvo Нет... С вашей программой (с такими знаниями - … 19.03.2005 22:03![]() ![]() |
|
Текстовая версия | 8.11.2025 2:20 |