Форум программистов, компьютерный форум CyberForum.ru

Разреженные матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверка чисел на простоту http://www.cyberforum.ru/cpp-beginners/thread283399.html
сам код #include "stdafx.h" #include "iostream" #include "vector" using namespace std; int f(int n) { vector<char> prime (n+1, true); prime = prime = false;
C++ Задержка в цикле на С Доброго времени суток! Подскажите как в консольном Борланде на С сделать пацзц в цикле, что бы выводимая информация была читабельна? http://www.cyberforum.ru/cpp-beginners/thread283379.html
Класс "Символьная строка" C++
Помогите исправить ошибки!!! Пжалста!!! Оч надо!!!! Задание: Создать класс "символьная строка на экране" с компонентными данными: строка символов, длина строки, координаты строки. Строку создавать динамически. Предусмотреть компонентные функции: получения указателя на строку, ссылки на длину строки, позиции строки на экране, печати длины строки, печати самой строки на экране, перемещения...
C++ Составить программу реализующую метод минимального элемента построения опорного плана транспортной задачи сбалансированного типа
Реализовать построение опорного плана транспортной задачи методом наименьшего элемента. программа должна находить опорный план для любой ТЗ
C++ Составить программу реализующую метод минимального элемента построения опорного плана транспортной задачи сбалансированного типа http://www.cyberforum.ru/cpp-beginners/thread283336.html
Реализовать построение опорного плана транспортной задачи методом наименьшего элемента. программа должна находить опорный план для любой ТЗ
C++ Класс "линия" наследуется классом "отрезок" Помогите, пожалуйста, разобраться с лабораторной. Нужно создать базовый класс "линия": координаты начала и конца, конструктор с параметрами, метод вычисления длины линии, и производный класс "отрезок": конструктор с параметрами, метод вычисления угла между отрезком и осью ОУ, метод вывода данных. Вот мои попытки, но мне выдаёт ошибку "Couldn't find a match for 'intercept::intercept()'" ... подробнее

Показать сообщение отдельно
Navigator45
0 / 0 / 0
Регистрация: 28.03.2011
Сообщений: 11

Разреженные матрицы - C++

25.04.2011, 22:40. Просмотров 1930. Ответов 2
Метки (Все метки)

Добрый день, уважаемые пользователи.

Задание по "Разреженным матрицам" через динамический список.
Собственно сам список:

C++
1
2
3
4
struct Spisok {
     int data,n,m;  // конкретные строка и столбец, в которой храниться данное число data
     Spisok* next;
};
Сложение матриц:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Matrix Matrix::operator+(Matrix M1)const {
Matrix result;
int k;
Spisok *cur, *work, *next=result.sp->next, *first=result.sp;
if ((*this).Size(M1)){                                //Проверка на совпадение размеров матриц для сложения
 for (int i=0;i<n;i++)
  for (int j=0;j<m;j++){
   int x=0;
   x=(*this).GetData(i,j)+M1.GetData(i,j);      // GetData функция, которая возвращает значение i-й строки j-го столбца матрицы
               if (x!=0){              // Записываем только НЕ нулевые элементы, т.к. матрица разреженная
           if(k==0){           //фиксируем первый элемент
             first->data=x;
             first->m=j;
             first->n=i;
                 next=NULL;
             cur=first;
             k++;}
           else
                   {work=new Spisok;       //сохраняем целостность указателя на первый элемент
             work->data=x;          // Цепляем последующие функцией Insert(что цепляем, куда) 
             work->m=j;             
             work->n=i;
                    Insert (work, cur);
                    cur=work;}}}
}
 else return 0;
return result;
}
Проблема: не работает, после вывода результата функцией Print выдаёт билеберду

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void main(){
 Matrix M(2,2), M1(2,2), K(1,2), K1(2,1);
 M.Init();            // инициализация значениями
 M1.Init();
 K1.Init();
 M.Print();            //Вывод матрицы
 M1.Print();
 K.Print();
 K1.Print();
 K=M+M1;
K.Print();
 cout<<"this is the end";
 cin>>a;
}
Добавлено через 49 минут
Прошу прощения, забыл показать данные класса

C++
1
2
3
4
5
6
7
8
class Matrix
{
 private:
    int n,m;     //размерность матрицы [n,m]
    Spisok* sp;
.....
.....
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru