|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.02.2013, 20:12 | #1 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Матрица: наивный вопрос
Дорогие форумчане, вы не могли бы меня поправить, если я понимаю неправильно, а то я что-то запуталась.
Вот у нас есть стандартный цикл для создания и чтения элементов матрицы Код:
коэфициент i отвечает за индекс текущего столбца, а коэфициент j отвечает за индекс текущей строки? То есть увеличивая x на 1 мы сдвинемся на один элемент вправо, а не на один элемент вниз? Или все-таки наоборот? Я понимаю, что вопрос смешной, но я тут заблудилась в трех соснах и уже сомневаюсь.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
12.02.2013, 20:18 | #2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
Получается просто квадратная матрица n на n. Перемещение по столбцам i++, перемещения по строкам j++. x получает значение индекса i и увеличивается на 1. Вот вроде все, что делает этот кусок кода.
i++ - увеличение на 1, т.е. переход к следующему значению индекса и т.д.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
12.02.2013, 20:22 | #3 |
Форумчанин
Регистрация: 31.05.2010
Сообщений: 407
|
осмелюсь предположить, что в "//здесь обрабатываем элементы"
если массив mass[j,i] то Вы правы если mass[i,j] - то с точностью до наоборот
icq 584 308 611
|
12.02.2013, 20:23 | #4 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Этот кусок кода для примера. Меня интересует сейчас - для X увеличится индексация строки или столбца? Это самый насущный вопрос и от верности ответа будет зависить очень многое. Я тут с отладчиком бъюсь и удивляюсь получаемым результатам...Вот я и подумала - может, у меня неверное представление об индексации?
массив [i][j]
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
12.02.2013, 20:25 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну, Вы же собственно не написали, как вы обрабатываете элементы A[i][j] или A[j][i]
во-вторых, это, скорее принятое соглашение, что в матрице строка, а что - столбец. Ведь, пока Вы это не вывели пользователю, как хранить элементы внутри программы - Ваше личное дело, как программиста - хоть в одномерном массиве храните, вытаскивая нужные элементы. ну и третье и последнее, общепринято так допустим есть матрица n X m читаем - есть n строк и m столбцов. Код:
внутренний цикл по j - это по столбцам - слева направо т.е. элементы будут обрабатываться в порядке чисел: 1 2 3 4 5 6 7 8 9 10 11 12 ... p.s. учитывайте, что в отладчике Вы можете видеть код, полученный в результате оптимизации - тут уже как оптимизатор решил, так и будет обрабатывать, следите в отладчике за индексами! Последний раз редактировалось Serge_Bliznykov; 12.02.2013 в 20:27. |
12.02.2013, 20:33 | #6 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Сереж, спасибо. Вот я и слежу в отладчике за индексами и вижу, что по моим расчетам должен быть один результат, а получаю непонятно что...Вот я и спросила про индексацию - у меня просто в матрице только два числа 0 и 1, трудно отследить происходящее.
То есть Х++ это мы спускаемся на строку ниже, да?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Последний раз редактировалось Blondy; 12.02.2013 в 20:40. |
12.02.2013, 20:44 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
p.s. по хорошему это потенциально опасный код - нужно ещё проверять, что i не равно (n-1) == последней строке, иначе будет выход за пределы массива.. |
|
12.02.2013, 20:47 | #8 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
x не влияет на перемещение по строкам. За перемещение по строкам отвечает цикл. (j++ - j увеличивается пока выполняется условие). Судя по контексту кода.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
12.02.2013, 20:53 | #9 | |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Цитата:
У меня всегда с матрицами плохо было, а тут пришлось хитрую задачу разбирать, всю из огромных матриц и с миллионом вложений....Такая канитель(((( Сереж, плюсануть не могу - не пускают. Поэтому еще раз спасибо и большой респект. В который раз выручаете!
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Последний раз редактировалось Blondy; 12.02.2013 в 20:56. |
|
12.02.2013, 21:16 | #10 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Вопроса здесь на самом деле два, а не один. Первый решается Эйнштейном и его теорией относительности. Вкратце - все в мире относительно. Вы правильно запутались так как в Вашем примере нет привязки ни к строкам ни к столбцам. Лично компьютеру и мне пофигу где там строки и столбцы и зависит это, как правило, от формата вывода матрицы в результирующее устройство, например на экран или в мозг преподавателя, не суть важно. Главное, то что пока нет явной привязки адресации элементов матрицы к интерфейсу - нет никакой разницы между строками и столбцами.
И второй вопрос заключается в n. Даже если матрица в дюпель квадратная она все равно должна задаваться m x n. Во-первых, это обобщает алгоритм, во-вторых, здорово помогает решать (а главное понять) первый вопрос . Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 12.02.2013 в 21:37. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Наивный вопрос - протокол Polling в сетевых технологиях. | Blondy | Свободное общение | 6 | 26.12.2012 22:32 |
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл | Лунатик13 | Помощь студентам | 1 | 20.02.2012 15:54 |
Двухмерная матрица в Delphi!! ВОПРОС!!! | halo | Помощь студентам | 0 | 21.11.2010 18:38 |
Непонятки с DirectX (матрица поворота, камера, матрица проекции) | ROD | Общие вопросы C/C++ | 2 | 17.09.2010 17:00 |
TurboPascal: граф, матрица смежности и матрица инцидентности. | ulala | Помощь студентам | 0 | 02.12.2009 10:11 |