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