![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Zzzlaya |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Таня Репутация: ![]() ![]() ![]() |
Здравствуйте!
Написала решение задачи найти все различные максимальные подмножества точек на плоскости, содержащие более двух точек. Программа считывает данные из входного файла InL.txt макета ----------------------------------------- N(число точек на считывание) x (координата x заданной точки) y (координата y заданной точки) -------------------------------------------- Промежуточные вычисления записываюцца в файл PROTL.txt, выходной файл - OutL.txt Проблема в следующем: при записи во входной файл большого количества значений программа выдает ошибку 105: file not open for output и устанавливает курсор в строке, выделенной подчеркиванием. program linefinder; Помогите, пожалуйста, установить в чем причина ошибки. При других входных данных работает нормально. Заранее спасибо. -------------------- falax species rerum...
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Zzzlaya,
Цитата при записи во входной файл большого количества значений Насколько большого? Сотни? Тысячи? Миллионы?Если можешь, приаттачь InL.txt, на котором происходит сбой... Кстати, какой компилятор у тебя? |
Zzzlaya |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Таня Репутация: ![]() ![]() ![]() |
работаю в Turbo Pascal 7.0
вот входной файл. Прикрепленные файлы ![]() -------------------- falax species rerum...
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ха... Ну, так что ж ты хочешь? Ты же в файле явно указала, что количество точек будет = 1000, а места (Type A) выделила только на 100... Так как у тебя файловые переменные определяются ПОСЛЕ всех массивов типа А, то при переполнении массивов естественно портятся и файловые переменные. Результатам тоже нет веры в таком случае...
Программа, естественно, компилировалась без контроля индексов через {$R+} ? Вот еще одна причина ВСЕГДА отлаживать программу с ключом {$R+}... Он бы тебе сразу выдал ошибку... Итог: Увеличиваешь размер массива А например до typeи все работает... |
Zzzlaya |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Таня Репутация: ![]() ![]() ![]() |
Спасибо большое, но мне нужно, чтобы при любом значении N массив был рассчитан только на 100 точек. Я понимаю, что нужно подсчитывать количество точек в массиве до обрезания его до 100 точек, но как это осуществиить не знаю.
-------------------- falax species rerum...
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата(Zzzlaya @ 4.02.2006 14:27) мне нужно, чтобы при любом значении N массив был рассчитан только на 100 точек. Я понимаю, что нужно подсчитывать количество точек в массиве до обрезания его до 100 точек, но как это осуществиить не знаю. С чем связано такое ограничение? С тем, что нельзя отводить больше 64К на переменные в Турбо-Паскале? Тогда тебе надо пользоваться динамической памятью - там можно использовать в 10 раз больше... Если же ты хочешь обойтись минимальными изменениями в программе, то просто не давай записывать в массив никакой информации, как только Lines превысит 100, иначе опять запортишь данные: procedure RaschetLin (var Lines:integer; var x1,x2,y1,y2:A; x,y:A; var h:text); Полученный в результате файл OutL.TXT полностью совпадает (за исключением того, что содержит только первые 100 линий, больше нельзя) с тем, который создается при увеличении размера Type A до 1000... |
Zzzlaya |
![]()
Сообщение
#7
|
![]() Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Таня Репутация: ![]() ![]() ![]() |
А динамической памятью мне просто пользовацца еще нельзя. Препод запретил.
Спасибо вам огромное, а то я уже хотела все переделывать. ![]() -------------------- falax species rerum...
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:24 |