![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Svetlana |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: ![]() ![]() ![]() |
Привет всем:-) Помогите пожалуйста отредактировать программу...Она должна определять минимум среди сумм элементов,расположенных на линиях,параллельных побочной диагонали. Свои старания приложила :-)
Ошибка: после условия в цикле while не заходит в цикл for. Прикрепленные файлы ![]() |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Ошибка: после условия в цикле while не заходит в цикл for. Ошибка у тебя немного раньше на самом деле. В строке s[k]:=0 переменная k равна 0, а массив s определен, начиная с 1. Ты включи range check (по крайней мере на этапе отладки), иначе рискуешь потратить годы на отыскание ошибок. И разберись, что делать с s[0] - либо массив расширять, либо k начинать с 1.. Я немного причесал твою прогу. Было бы здорово, если бы ты продолжала держать ее правильно отформатированной.. ![]() program Project2; И клади код прямо в мессадж - зачем прикреплять? Только тэги пользуй (меню CODE) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
sheka |
![]()
Сообщение
#3
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
что такое range check?
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
что такое range check? либо опция {$R+}, либо пункт в меню Options -> Compiler. Отслеживает выход переменных и индексов за границы диапазона. 2 Svetlana: Ой, а это как понимать? for i:=1 to n+1-i-k do Ты используешь переменную цикла в границе. Что ты хотела этим сказать? Хорошо, сейчас попробую вникнуть в твой алгоритм.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Извини, запутался вконец..
Короче, вот тебе решение. Если неясно - спрашивай)) const -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Что ты хотела этим сказать? Неважно, что хотела. Все равно это делать запрещено (после окончания предыдущего цикла переменная i может равняться всему, чему угодно, а не должна быть N, как многие думают, следовательно этот цикл, который процитировал Lapp, может даже не начаться...)Даже если авторская программа и будет выдавать какие-то результаты - верить им уже нельзя... ![]() |
Svetlana |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: ![]() ![]() ![]() |
либо опция {$R+}, либо пункт в меню Options -> Compiler. Отслеживает выход переменных и индексов за границы диапазона. 2 Svetlana: Ой, а это как понимать? for i:=1 to n+1-i-k do Ты используешь переменную цикла в границе. Что ты хотела этим сказать? Хорошо, сейчас попробую вникнуть в твой алгоритм.. Хорошо,в следующий раз сделаю как сказали ) Насчёт прикрепления Добавлено через 8 мин. Спасибо ![]() Добавлено через 14 мин. А ты не мог бы мне объяснить как действует оператор: Inc(s[i+j],matr[i,j]);? ![]() |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
как действует оператор: Inc(s[i+j],matr[i,j]);? Цитата - Как работает трансформатор? Сорри за оффтоп))- Уууууууууууууууууу.. В этом операторе вся соль. Ты заметь, что у каждой такой линии, о которых говорится в условии, своя постоянная сумма индексов. У каждой своя (одна), и у всех разные. Значит, их можно различать (читай: занумеровать) по этому параметру. Готовим массив сумм (пределы определяются сложением минимальных индексов и максимальных) и заполняем его нулями. Потом проходим по всей матрице и на каждом элементе увеличиваем соответствующий элемент массива сумм на значение этого элемента матрицы. Таким образом суммируем все элементы, разложив по признаку сумм индексов. То есть, это и есть то, что нужно. Остается найти минимум. Понятно? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Svetlana |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: ![]() ![]() ![]() |
да,всё поняла ) спасибо за объяснение...жаль,что сама не смогла её решить...
|
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
жаль,что сама не смогла её решить... Бывает.. Сегодня не лучший твой день, и еще не вечер))-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:59 |