![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.07.2011
Сообщений: 10
|
![]()
Народ, помогите кто может, я просто не понимаю что использовать. Задача: Мне нужно где-то сохранить 1296 матриц размерностью 4 на 4, чтобы потом была возможность работать с числами в каждой из этих матриц (там надо считать сумму в каждой строке и столбце). Эти матрицы - все магические квадраты. Как-то так. Мне желательно идею и ссылки где можно про это прочитать (желательно с примерами)
|
![]() |
![]() |
![]() |
#2 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
смотря как надо. можно выделить в памяти массив, размером 1296 * 4 * 4 * sizeof(int) и смещениями обращаться к своим матрицам. памяти займет всего 81 кб, работать будет очень быстро. т.к ты знаешь кол-во матриц, другие атд нет смысла предлагать.
не хочешь гемора - напиши свой мини класс QuadMatrix и запихни в вектор, предварительно зарезервировав память под вектор (reserve метод)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 29.07.2011
Сообщений: 10
|
![]()
А можно про второй способ по подробнее, а то не совсем понятно все. Я никогда не работала с классами до этого, но очень интересно. Заранее спасибо. =)
|
![]() |
![]() |
![]() |
#4 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Vladislava-smile
ну я не собираюсь тебе класс матрицы реализовывать. если с классами не работала, тогда пиши на си. первый способ идеальный. я бы так и делал
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 29.07.2011
Сообщений: 10
|
![]()
Окей, так и сделаю, только ты еще не мог бы подсказать кроме того как вручную заполнять эти матрицы данными, может есть какой другой способ? Я про то что если вручную - это сколько строк он компилить будет?
Может как-то в другой программе все заполнять, а потом ссылаться на нее? Последний раз редактировалось Stilet; 30.07.2011 в 12:48. |
![]() |
![]() |
![]() |
#6 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Vladislava-smile
никто вручную такой объем заполнять не будет. обычно эти данные грузятся из какого-либо сгенерированного файла. смотря что за данные, откуда ты их получаешь. не из космоса же Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 29.07.2011
Сообщений: 10
|
![]()
Я имела в виду, что если заполнять в самом коде, как статический массив. А с какого документа проще всего грузить, с txt наверно? И возможно это вообще? Или с экселя?
|
![]() |
![]() |
![]() |
#8 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Vladislava-smile
ну можно статически забить, если входящие данные всегда одни и те же. грузить можно из любого файла, зная его структуру. простейшая структура файла для твоей задачи - набор чисел через разделитель. т.е первые 4 числа - первая матрица (x1, x2, y1, y2), следующие 4 числа - вторая матрица. и тд. в памяти соответственно так же расположить одним массивом, просто через вспомогательные функции обращаться к конкретным элементам конкретной матрицы. а можно и трехмерный массив сделать на стеке. в общем, смотря как тебе удобнее если генерить, то будет выглядеть как то так Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 30.07.2011 в 00:03. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
Не суть важно, но у ТС матрица 4 * 4, т.е 16-ть элементов.
![]() Но пример 2 * 2 более нагляден.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 30.07.2011 в 06:37. |
![]() |
![]() |
![]() |
#10 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
![]()
Можно еще структуру сделать:
Код:
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подкиньте идею | ilsen | Помощь студентам | 3 | 15.11.2010 16:52 |
подкиньте идею | ronny137 | Помощь студентам | 4 | 03.05.2010 00:22 |
Подкиньте идею... | Egik_net | Microsoft Office Access | 9 | 18.10.2009 01:08 |
Подкиньте идею, пожайлуста | frankk | Общие вопросы C/C++ | 2 | 08.06.2008 19:15 |