Метод удаления столбца из матрицы

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Метод удаления столбца из матрицы

Re: Метод удаления столбца из матрицы

Romeo » 20 июн 2008, 14:03

Не могу разобраться в том, что написано. Алгоритм должен быть таким:

Код: Выделить всё

class matrix
{
   ...
   int m_N, m_M;
   float m_pData[MAX_N][MAX_M];
   ...
}

matrix matrix: :o perator - (int num)
{
   if (num >= 0 && num < m_M)
   {
      if (m_N > 1)
      {
         for (int i = 0; i < m_N; ++i)
         {
            for (int j = num; i < m_M - 1; ++j)
            {
               m_pData[i][j] = m_pData[i][j+1];
            }
         }
      }
      --m_M;
   }
   return *this;
}

Re: Метод удаления столбца из матрицы

Balbec » 20 июн 2008, 12:07

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

Re: Метод удаления столбца из матрицы

Vasilisk » 20 июн 2008, 04:39

Чё-то фигня какая-то. Однако, это не программа, а просто какой-то песец...

В чём проблема-то - "не перегружается" или "столбец не удаляет"?

Метод удаления столбца из матрицы

Balbec » 19 июн 2008, 20:59

Привет, ребята, помогите дописать метод удаление столбца из матрицы.
для этого нужно перегрузить оператор "-"
чтобы при записи С=А-3 (три) он выводил новую матрицу, только без третьего столбца. какие то недодуманные действия были :) но ничего не работает :(

Код: Выделить всё

matrix&matrix: :o perator - (int num)
{
	/*matrix(int sizen, int sizem-1);
	int k = 0;
	for (int i=0;i<sizen;i++)
	{
		for(int j=0;j<m-1;j++)
			{
			if (j != num)
				c[i][k++]=a[i][j];
			}
   //	k = 0;
	}
	delete a;
	matrix(int sizen, int sizem-1);
	a = c;*/

  //	matrix *a;
  //	a = new matrix(n,m);

	int **x;
	x=new int *[n];
	for (int i;i<n;i++)
		x[i]=new int [m-1];
	int k=0;
		for (i=0;i<n;i++)
	{
		for(int j=0;j<m-1;j++)
			{
			if (j != num)
				x[i][k++]=a.x[i][j];
			}
	}
   //	k = 0;
	return *this;
}

Вернуться к началу