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

Запрограммировать класс матрица, и расписать методы работы с ним - C++

Восстановить пароль Регистрация
 
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 20:58     Запрограммировать класс матрица, и расписать методы работы с ним #1
C++
1
2
3
4
5
6
7
8
9
10
11
class Matrix
{
  public:
    Matrix(int n, int m);
    ~Matrix();
    double &get(int i, int j);
    void transp(); // транспонировать
    void add(double x); // прибавить ко всем элементам матрицы x
    void multiply(double x); // умножить все на x
    void print();  // распечатать состояние объекта
};
cпасайтееееее надо написать в кодблокс или с++. я совершенный ноль в этом, помогитеееее
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2013, 20:58     Запрограммировать класс матрица, и расписать методы работы с ним
Посмотрите здесь:

C++ Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы
C++ Создать базовый класс - Array и производный класс - Money для работы денежной суммы
C++ Двусвязный список и Операции работы с ним
C++ Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
Класс Квадратная матрица. Методы: сложение с матрицей, транспонирование, вывод элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 21:01     Запрограммировать класс матрица, и расписать методы работы с ним #2
Виктория1234, так вы же в с++ написали,и ошибок я не вижу
или вам нужно сами функции расписать?
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 21:04  [ТС]     Запрограммировать класс матрица, и расписать методы работы с ним #3
это-то я написала, а дальше-то что?! знаю, смешно звучит, но я не знаю как писать дальше... верней я как бы написала, но ошибок столько выдала что я в отчаянии все удалила.
magirus
Супер-модератор
 Аватар для magirus
25470 / 14011 / 740
Регистрация: 15.09.2009
Сообщений: 59,647
Записей в блоге: 61
17.10.2013, 21:07     Запрограммировать класс матрица, и расписать методы работы с ним #4
Цитата Сообщение от Виктория1234 Посмотреть сообщение
а дальше-то что?!
а бог вас знает что дальше...
условия то задачи нет...
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 21:07  [ТС]     Запрограммировать класс матрица, и расписать методы работы с ним #5
Цитата Сообщение от Folko Посмотреть сообщение
Виктория1234, так вы же в с++ написали,и ошибок я не вижу
или вам нужно сами функции расписать?
да, нужно их расписать, а как я не знаю(
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 21:09     Запрограммировать класс матрица, и расписать методы работы с ним #6
Виктория1234, давайте наработки. Начнем с конструктора и создания массива, то есть матрицы
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 21:10  [ТС]     Запрограммировать класс матрица, и расписать методы работы с ним #7
Цитата Сообщение от magirus Посмотреть сообщение
а бог вас знает что дальше...
условия то задачи нет...
нужно запрограммировать класс матрица, и расписать транспонирование, прибавление ко всем элементам матрицы х, умножение все на х и распечатать состояние объекта
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 21:47     Запрограммировать класс матрица, и расписать методы работы с ним #8
Виктория1234, наработки то выложите) посмотрим, поможем исправить
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 22:36  [ТС]     Запрограммировать класс матрица, и расписать методы работы с ним #9
Цитата Сообщение от Folko Посмотреть сообщение
Виктория1234, наработки то выложите) посмотрим, поможем исправить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class CMatrixStr
{
private:
    int Rows;
    int Cols;
    float ** FloatData;
    float * DataMin;
    float * DataMax;
        
public:
    CMatrixStr(int Row=1,int Col=1);
    ~CMatrixStr(void);
    float GetAt(int Row,int Col);
    void SetAt(int Row,int Col,float Data);
    void Display();
    void MinMax(int Row);
    void Fill();
};
мож так
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 22:37     Запрограммировать класс матрица, и расписать методы работы с ним #10
Виктория1234, а сами функции делали? Если да, тоже выложите)
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 22:46  [ТС]     Запрограммировать класс матрица, и расписать методы работы с ним #11
Цитата Сообщение от Folko Посмотреть сообщение
Виктория1234, наработки то выложите) посмотрим, поможем исправить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "iostream.h"
#include "matrix.h"
 
void main()
{
    // спросим сколько колонок и строк
    int Row,Col;
    cout << "\nRow ?:" ;
    cin >> Row ;
    cout << "\nCol ?:" ;
    cin >> Col ;
 
 
    CMatrixStr Matrix(Row,Col);    
    Matrix.Fill();                               
    Matrix.Display();                        
}
Добавлено через 7 минут
Цитата Сообщение от Folko Посмотреть сообщение
Виктория1234, а сами функции делали? Если да, тоже выложите)
неа, ничего не делала больше... я походу единственный человек который реально нифига не понимает в программировании
это печально...
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 23:06     Запрограммировать класс матрица, и расписать методы работы с ним #12
Виктория1234, ну раз признались, то давайте начинать понимать) начинаем делать с конструктора, куда передаются размеры матрицы. В конструкторе нужно объявить динамическую матрицу nxm.
В деструкторе напротив, удалить эту матрицу, что бы освободить память.
Объявлять матрицу примерно так...

C++
1
2
3
floatData = new double*[n];
for (int i=0;i<n;i++)
floatData[i]=new double[m];
Добавлено через 8 минут
Виктория1234, идеи по поводу деструктора есть?
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 23:11  [ТС]     Запрограммировать класс матрица, и расписать методы работы с ним #13
Цитата Сообщение от Folko Посмотреть сообщение
Виктория1234, ну раз признались, то давайте начинать понимать) начинаем делать с конструктора, куда передаются размеры матрицы. В конструкторе нужно объявить динамическую матрицу nxm.
В деструкторе напротив, удалить эту матрицу, что бы освободить память.
Объявлять матрицу примерно так...

C++
1
2
3
floatData = new double*[n];
for (int i=0;i<n;i++)
floatData[i]=new double[m];
Добавлено через 8 минут
Виктория1234, идеи по поводу деструктора есть?
я если честно не понимаю почему мы даже так объявили матрицу, а как я скинула нельзя делать?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 23:14     Запрограммировать класс матрица, и расписать методы работы с ним #14
Виктория1234, а вы скидывали код, где создавалась матрица? Где?
Виктория1234
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 9
17.10.2013, 23:22  [ТС]     Запрограммировать класс матрица, и расписать методы работы с ним #15
Цитата Сообщение от Folko Посмотреть сообщение
Виктория1234, а вы скидывали код, где создавалась матрица? Где?
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
#include "iostream.h"      
#include "stdlib.h"             
#include "stdio.h"
#include "matrix.h"            
 
CMatrixStr::CMatrixStr(int Row,int Col)
{
    Rows = Row;        
    Cols = Col;
    FloatData= new float * [Rows];
 
    for (int j=0;j<Rows;j++){
        FloatData[j] = new float[Cols];
        for (int i=0;i<Cols;i++){
            FloatData[j][i]=0.0;
        }
    }
    return;
};
CMatrixStr::~CMatrixStr()
{
 
       for (int j=0;j<Rows;j++)
{
        delete FloatData[j];
    }
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
17.10.2013, 23:25     Запрограммировать класс матрица, и расписать методы работы с ним #16
Виктория1234, почти правильно. Только вот в конструкторе return не нужен.
И массивы удаляются таким образом delete []FloatData[j]; А после цикла еще и delete []FloatData.

Теперь каковы идеи по поводу функции add(double x); ?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
17.10.2013, 23:43     Запрограммировать класс матрица, и расписать методы работы с ним #17
А еще неплохо бы использовать список инициализации в конструкторе и заголовочные файлы, если не пользовательские, то писать в угловых скобках.
Покажите ваш класс, я помогу написать этот САБЖ.

Также надо помнить про то, что если в классе идет работа с динамической памятью, то надо написать самим конструктор копий, деструктор и оператор присваиваний.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
18.10.2013, 00:11     Запрограммировать класс матрица, и расписать методы работы с ним #18
MrGluck, можно подробнее про список инициализации и конструктор копий?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2013, 01:17     Запрограммировать класс матрица, и расписать методы работы с ним
Еще ссылки по теме:

Класс Квадратная матрица. Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей C++
Разработать класс «Циклический список» и методы работы с ним C++
C++ Закрыть все переменные класса и добавить методы доступа к ним

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
18.10.2013, 01:17     Запрограммировать класс матрица, и расписать методы работы с ним #19
Folko, список инициализации конструктора нужно писать лишь зная прототип класса т.к. нельзя нарушать порядок объявления переменных.
Вот пример:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
 
class A
{
  public:
    A() : arr_(NULL), sz_(0) {}
    A(const int *arr, const int sz) : arr_(new int[sz]), sz_(sz)
    {
        for (int i=0; i < sz; i++)
            arr_[i] = arr[i];
    }
    A(const A &a) : arr_(new int[a.sz_]), sz_(a.sz_)
    {
        for (int i=0; i < sz_; i++)
            arr_[i] = a.arr_[i];
    }
    A& operator= (const A &a)
    {
        // исключаем работу при присваивании самому себе
        if (this != &a)
        {
            delete[] arr_;
            arr_ = new int[a.sz_];
            sz_ = a.sz_;
            for (int i=0; i < sz_; i++)
                arr_[i] = a.arr_[i];
        }
        return *this;
    }
    ~A()
    {
        if (arr_) delete[] arr_;
    }
    void print() const
    {
        for (int i=0; i < sz_; i++)
            std::cout << arr_[i] << " ";
        std::cout << std::endl;
    }
 
  private:
    int *arr_;
    int sz_;
};
 
int main()
{
    A a;
    int arr[4] = {1, 2, 3, 4};
    A b(arr, 4);
    A c(b);
    A d = c;
    a.print();
    b.print();
    c.print();
    d.print();
}
Yandex
Объявления
18.10.2013, 01:17     Запрограммировать класс матрица, и расписать методы работы с ним
Ответ Создать тему
Опции темы

Текущее время: 09:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru