Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Матрица 
:(
    Опции темы
Strumok
Дата 4.5.2009, 12:08 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.5.2009

Репутация: нет
Всего: нет



Народ помогите я делаю курсовую в bcpp 3.0 и мне нужна матрица n*m  так чтоб n i m вводились  с клавы при этом вся матрица заполняется вручную а не случайно! помогите а то моих мозгов на это явно мало smile 
PM MAIL   Вверх
zim22
Дата 4.5.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69





--------------------
PM MAIL   Вверх
Acer
Дата 4.5.2009, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Код

    int n, m, v;
    std::vector<int> arr;
    std::cout << "n = ";
    std::cin >> n;
    std::cout << "m = ";
    std::cin >> m;
    for ( int i = 0; i < n; i++ ){
        for ( int j = 0; j < m; j++ ){
            std::cout << "[" << i << ":" << j << "] = ";
            std::cin >> v;
            arr.push_back( v );
        }
    }

PM MAIL   Вверх
zim22
Дата 4.5.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Acer
Цитата(Strumok @  4.5.2009,  12:08 Найти цитируемый пост)
 мне нужна матрица n*m

Цитата(Acer @  4.5.2009,  12:21 Найти цитируемый пост)
std::vector<int> arr;


Из вышеуказанного фака:
Код

int n = 10, m = 20;
typedef std::vector< std::vector<int> > Int2dArray; //так несколько удобней
Int2dArray array(n, Int2dArray::value_type(m)); //Int2dArray::value_type - это std::vector<int> в данном случае
array[0][1] = 10;



--------------------
PM MAIL   Вверх
mrbrooks
Дата 4.5.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



zim22
Цитата(Strumok @  4.5.2009,  12:08 Найти цитируемый пост)
мне нужна матрица n*m

а чем плохо представление двухмерного массива одним вектором?  smile 
подход Acer'a достаточно кошерный имхо.
PM MAIL   Вверх
Soah
Дата 4.5.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: 6
Всего: 54



Цитата(mrbrooks @  4.5.2009,  14:03 Найти цитируемый пост)
подход Acer'a достаточно кошерный имхо.

Цитата(Strumok @  4.5.2009,  12:08 Найти цитируемый пост)
курсовую в bcpp 3.0


Создание двумерный массив
там квадратная матрица, но думаю разберёшься, раз курсовую пишешь.

P.S. пользуйтесь поиском.
PM MAIL   Вверх
math64
Дата 4.5.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Цитата(mrbrooks @  4.5.2009,  14:03 Найти цитируемый пост)
а чем плохо представление двухмерного массива одним вектором?   

А почему тогда не int* array = new int[n*m] ?
Код

int** array  = new int*[n];
for (int i = 0; i < n; i++) {
  array[i] = new int[m];
  for(int j = 0; j < m; j++) {
    int v;
    std::cout << "[" << i << ":" << j << "] = ";
    std::cin >> v;
    array[i][j]= v;
  }
}
for (int i = 0; i < n; i++) {
  delete[] array[i];
}
delete array;
array = NULL;

PM   Вверх
zim22
Дата 4.5.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(mrbrooks @  4.5.2009,  14:03 Найти цитируемый пост)
а чем плохо представление двухмерного массива одним вектором?

В принципе ничем. Но я где-то читал про накладные расходы, связанные с тем, что нам приходится индекс высчитывать.  Ну и форма записи ненаглядная.
Код

int n = 5, m = 10;
int *p = new int[n * m];
for (int i = 0; i != n; ++i)
  for (int j = 0; j != m; ++j)
    p[i * m + j] = 99; // ненаглядная ))
delete p;


Это сообщение отредактировал(а) zim22 - 4.5.2009, 15:23


--------------------
PM MAIL   Вверх
math64
Дата 4.5.2009, 15:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Этот код можно соптимизировать так:
Код

int n = 5, m = 10;
int *p = new int[n * m];
for (int i = 0, I=0; i != n; ++i, I += m)
  for (int j = 0; j != m; ++j)
    p[I + j] = 99;
delete p;

PM   Вверх
Strumok
Дата 13.5.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.5.2009

Репутация: нет
Всего: нет



спс вам ребята...но у меня еще одна проблема...моя курсовая это Л У разложение..я написал программу но почему то она не подсчитывает так как маткад:( может кто то делал такой курсач и мог бы подкинуть формулу по которой вычислял.... 


P.S  smile с++ для меня что то не земное....

Это сообщение отредактировал(а) Strumok - 13.5.2009, 14:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.