![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
ursus |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите решить!!!!!!!!!!!, please!!!!
Для зачета 1 осталась: Число компонент файла f, компонентами которого являются целые числа кратно 10. Преписать компоненты файла f в файл g, изменяя порядок чисел в каждой десятке так, чтобы вначале шли отрицательные числа десятки, а за ними - неотрицательные |
Clon |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну вот примерно так, если, конечно, я правильно понял задание
program ubu(input,output); Сообщение отредактировано: volvo - 2.11.2006 19:09 |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Clon, у тебя жестоко нарушена структура программы. В частности, описания процедур внутри блока If ... Then ... Else
![]() ![]() |
Clon |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Тьфу, сорри, выложил по ошибке не то. Сейчас поправил
|
Malice |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Тьфу, сорри, выложил по ошибке не то. Сейчас поправил Все равно что-то не то, ни одного write(g,..) нет, как результат сохраняется ? Я думаю вот такой основной блок надо: nn:=0; reset(q); rewrite(w); Правда все положительные числа в обратном порядке встанут, ну и что, это не оговаривалось ![]() |
Clon |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну не знаю, у меня все работает. Сначала пишет содержимое файла, а потом его отсортированный вариант.
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Clon, а ты на размер файла G после прогона твоей программы посмотреть не хочешь?
А задание было: Цитата Преписать компоненты файла f в файл g, изменяя порядок чисел в каждой десятке <...> ![]() |
Clon |
![]()
Сообщение
#8
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo Ой...
![]() Ну тогда так program ubu(input,output); |
Unknown |
![]()
Сообщение
#9
|
Гость ![]() |
Всем доброго времени суток!
У меня похожее задание: Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g те компоненты файла f, которые являются четными. Но я чего-то вообще не догоняю, как работать с файлами... Мне всю прогу не надо, а хотя бы первую часть, т.е. заполнить файл f, даже не рандомно, а вручную, чтоб разобраться. Вот, что пишу я: Код var f:file of integer; a,i:integer; begin assign(f,'file.dat'); rewrite(f); repeat write(f,a); until eof(f) end. По идее, юзер вводит последовательность целых чисел до тех пор, пока не будет нажата комбинация Ctrl+Z и Enter, и вся эта последовательность сохраняется в файле с именем file.dat. Все верно? Или я что-то не так понял? Не работает... Имеет ли значение, работаю я в Турбо или в Борланд Паскале? |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Unknown, во-первых, где ты получаешь значение от пользователя? Нету этого, добавь...
А во-вторых, перед завершением программы не забудь сделать Close(f), чтобы все внесенные значения гарантированно записались в файл, иначе все записанное в буфер просто будет потеряно... |
Гость |
![]()
Сообщение
#11
|
Гость ![]() |
volvo, сорри, close(f) я просто забыл написать, а, т.к. я - гость, редактировать посты не могу...
Проблема в том, что при прогоне программы она никак не взаимодействует с юзером(просто мигает экран и все): на строке write(f,a); ничего не происходит, а на строке until eof(f) условие считается выполненным, несмотря на то, что Ctrl+Z не нажаты... Еще раз повторю вопрос: имеет значение, пишу я на Турбо Паскале или на Борланд Паскале? Просто некоторые различия у них есть, может различия есть и в работе с файлами? |
Гость |
![]()
Сообщение
#12
|
Гость ![]() |
volvo, а разве строка write(f,a); не отвечает за "получение значения от пользователя"? За что тогда отвечает эта строка?
|
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Эта строка пишет содержимое переменной a в файл... А вот где ты запрашиваешь то значение, которое будет записываться?
Кстати, я сейчас еще кое-что заметил: eof(f) будет истиной сразу же, поэтому после записи первого значения цикл у тебя закончится... Для того, чтобы продолжать цикл до нажатия Ctrl+Z тебе надо сделать until not eof; { <--- С клавиатуры !!! } Возможно, в Турбо и Борланд Паскале и есть какие-то отличия, но здесь разницы абсолютно нет. |
Гость |
![]()
Сообщение
#14
|
Гость ![]() |
Ага... Кажется, понял! Огромное спасибо!
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 5:00 |