![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Вопрос, как можно пройти по абсолютно всем диагоналям матрицы? Ну для двух главных диагоналей я сам написал, для остальных, как мне подсказали, нужны циклы for, обращаться к элементам матрицы надо по индексам i+j,j и j,j+i, но вот что-то меня вторая пара параметров смущает... И кажется, они не все диагонали проходят.. Ps: в поиск заглядывал, работу с матрицами смотрел, диагоналей не нашёл. Сообщение отредактировано: Unconnected - 11.12.2009 23:21 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
как можно пройти по абсолютно всем диагоналям матрицы Чтот это значит? Выразись точнее, плз. Иначе, боюсь, что вот такой ответ будет верным:for i:=1 to n do for j:=1 to m do - проходит по всем диагоналям без проблем. Тебе важен порядок? Тогда высаажись точнее, чего именно ты хочешь. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
![]()
Сообщение
#3
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Вообще-то у квадрата только две диагонали. И у квадратной матрицы - тоже.
Что ты называешь диагоналями кроме этих двух? |
Ozzя |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата И у квадратной матрицы - тоже Безусловно согласен. Массивы. Матрицы. Типичные задачи. Сообщение отредактировано: Ozzя - 12.12.2009 8:36 |
Unconnected |
![]()
Сообщение
#5
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Цитата - проходит по всем диагоналям без проблем. Тебе важен порядок? Тогда высаажись точнее, чего именно ты хочешь. Получается, что важен порядок. Цитата Вообще-то у квадрата только две диагонали. И у квадратной матрицы - тоже. Что ты называешь диагоналями кроме этих двух? Я не силён в терминологии, приложил рисунок, на нём якобы квадратная матрица, красными линиями я обозначил то, что назвал главными диагоналями, синими - все остальные, "диагонали"... И мне нужно пройти по каждой синей, именно последовательно, сначала по одной, потом по следующей... -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
andriano |
![]()
Сообщение
#6
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
for j := 0 to N-1 do // перебор по "диагоналям"Это по одному семейству и аналогично по перпендикулярным Сообщение отредактировано: andriano - 12.12.2009 20:23 |
Unconnected |
![]()
Сообщение
#7
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Цитата Это по одному семейству и аналогично по перпендикулярным А аналогично - это как? Индексы местами поменять при обращении к элементу? -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
andriano |
![]()
Сообщение
#8
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Чтобы не повторять "настоящие" диагонали, лучше их обработать отдельно, тогда кроме них:
|
Unconnected |
![]()
Сообщение
#9
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Спасибо, оно, только придётся делать 4 цикла, т.к. мне по порядку именно надо:)
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
![]()
Сообщение
#10
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
А этот код рассчитан на матрицу, индексы в которой начинаются с нуля? Просто если подразумевалась начало с единицы, то например a[j+i,i] при первой итерации будет обращаться к элементу, принадлежащему к настоящей диагонали.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
andriano |
![]()
Сообщение
#11
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Мы ведь пишем на Паскале, а не на Фортране, поэтому, если не оговорено обратное, индексы ВСЕГДА начинаются с 0.
Да и границы цикла по i однозначно на это указывают. Сообщение отредактировано: andriano - 14.12.2009 10:08 |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2024 12:16 |