Работа с файлами... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Работа с файлами... |
Akella |
26.11.2008 15:58
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
Короче задание такое: Создать файл, заполненный целочисленными яислами в диапозоне [-100;100]. Удалить из файла все положительные числа!
У меня короче получаеться вот что: ввожу например 5, т.е. это генирируется 5 чисел. И получается что действие происходит только над четными элементами файла(начиная с 0-го). Например есть числа -10 -11 10 10 -15, то в результате останеться -10 и -15, а -11 куда-то пропадает... помогите... что я только не перепробывал сделать - не получается! program _7_14; |
Unconnected |
26.11.2008 16:18
Сообщение
#2
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Мне кажется,тут лучше использовать тип text.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
26.11.2008 16:19
Сообщение
#3
|
Гость |
Цитата И получается что действие происходит только над четными элементами файла(начиная с 0-го) Угу... А почему - сам виноват:while not eof(f) do begin (ты уже прочел число из файла, значит указатель передвинулся на следующий элемент автоматически. Зачем ты передвигаешь его еще дальше? Ну, и потом... Тебе надо не напечатать все числа, кроме положительных, а удалить положительные из файла. Этого ты даже не пытаешься сделать... А нужно для этого всего навсего завести еще одну переменную LastNeg, которая будет хранить смещение последнего правильного НЕположительного числа в файле. Идешь дальше, как только встретил очередное отрицательное - записал его на эту, сохраненную позицию и увеличил ее на 1... А в самом конце - Truncate(LastNeg), чтобы отсечь все лишнее) Кстати, у тебя файл не закрывается... Предпоследнего End-а не должно быть... Добавлено через 1 мин. Цитата Мне кажется,тут лучше использовать тип text. С чего бы? Чтоб места занимал больше? Или потому что кто-то не умеет работать с ДРУГИМИ файлами? Мне вот вообще кажется, что на другом языке эта задача решается проще, и что? Это не повод советовать автору писать не на Паскале... |
Akella |
26.11.2008 16:37
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
|
volvo |
26.11.2008 17:24
Сообщение
#5
|
Гость |
Смотри:
{ ... заполнил файл ... } |
Akella |
29.11.2008 15:39
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
огромное спасибо, все понятно мне разжевали....
|
Akella |
2.12.2008 11:52
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
а как мне посчитать конечную сумму получившихся цифр по аски таблице, при этом мне надо открыть файл как нетипизированный.....?
|
volvo |
2.12.2008 12:04
Сообщение
#8
|
Гость |
Каких цифр? У тебя нет никаких цифр, у тебя есть числа, представленные НЕ текстом, а двоичным кодом (машинное представление). Что именно тебе надо посчитать?
|
Akella |
2.12.2008 12:10
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
мне надо посчитать сумму кодов, которыми зашифрованы числа...
начинаться должно как-то так ( это продолжение этой проги) close(f); у меня 1-й вопрос: какими типами должны быть переменные? (buf,bufsize) ВОТ! Нашел как звучит задание! Найти конечную сумму полученного файла, открыв его как нетипизированный! p.s. открой аську плиз=) Сообщение отредактировано: Akella - 2.12.2008 12:25 |
volvo |
2.12.2008 12:23
Сообщение
#10
|
Гость |
Повторяю: числа не зашифрованы ничем. Это просто последовательность бит. К примеру, число 25 представлено так: 0000000000011001, а число 126 - так: 0000000001111110. Так что, говоришь, найти-то надо?
Сообщение отредактировано: volvo - 2.12.2008 12:30 |
Akella |
2.12.2008 12:32
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
ВОТ задание так в карточки написано:
Найти конечную сумму полученного файла, открыв его как нетипизированный! |
volvo |
2.12.2008 12:41
Сообщение
#12
|
Гость |
От тебя, как видно, хотят, чтобы ты научился работать с нетипизированными файлами, зная, что именно там находится... Тогда примерно так:
var(можешь добавить еще проверку ошибок, для этого у BlockRead есть четвертый параметр) |
Akella |
2.12.2008 12:42
Сообщение
#13
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
я так делал, но у меня ошибка 200... что это такое?
вот готовая прога, все работает... спасибо Volvo program _7_14; Сообщение отредактировано: Akella - 2.12.2008 12:56 |
Ozzя |
2.12.2008 12:52
Сообщение
#14
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
Help (Ctrl + F1) по слову blockread Вам окажет неоценимую помощь.
Добавлено через 3 мин. Обнови tpl'ки - http://pascal.sources.ru/misc/bp7_tpl.htm |
Akella |
16.12.2008 14:19
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
Помогите сделать похожую задачу, все тоже самое только условие другое: удалить из файла повторяющиеся включения одного и того же числа (массивы нельзя!) ...
мне бы токо условие, 3 часа бьюсь, только паскаль зависает, толку нету=)) |
volvo |
16.12.2008 14:49
Сообщение
#16
|
Гость |
Цитата 3 часа бьюсь, только паскаль зависает Значит, что-то начал делать? Можно посмотреть, как именно ты начал решать задачу? |
Akella |
16.12.2008 14:56
Сообщение
#17
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
прога зависала из-за условия, потому что оно зацикливалось, поэтому я его удалил, а все остальное как в проге выше!
|
volvo |
16.12.2008 16:22
Сообщение
#18
|
Гость |
Akella, смотри как это делается:
var Но больше на твои вопросы отвечать не буду, до тех пор, пока сам не будешь хотя бы пытаться что-то решить, и показывать результаты своих попыток. Сказать, что ты пытался, но ничего не получилось - очень просто, правда? Но это не проходит больше одного раза... Сообщение отредактировано: volvo - 16.12.2008 16:41 |
Akella |
18.12.2008 14:03
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
спасибо, но мне чуток по другому надо, повторяющиеся цифры вообще не должны потом выводиться=)
|
Akella |
19.12.2008 12:49
Сообщение
#20
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Репутация: 0 |
Помогите, что я не правильно написал? Задача такая: В последовательность K вещ. чисел на позицию N вставить число M, следущие за M числа сдвинуть на N+1, N+2 и т.д., т.е.
0.123 0.123 .123 0.123 на позицию 1(считая с нуля) поставим число 1.234 - получим: 0.123. 1.234 0.123 0.123 0.123 program _7_1; |
Текстовая версия | 27.05.2024 5:46 |