Transponowanie macierzy – poprawienie błędów

0

Witam, zwracam sie o pomoc ponieważ juz nie mam pomysłow
Dostalem za zadanie : Utwórz klasę z macierzą double o wymiarach 3*3. Klasa powinna zawierac : funkcję Wczytaj_macierz, Transponuj_macierz, Wypisz_macierz.
Oto kod :

#include <iostream>

using namespace std;
class macierz
{
private:
    int m_size;
    double** m_macierz;
public:
    macierz(int=3);
    ~macierz();

    void wczytaj_macierz();
    void transponowanie_macierzy();
    void wypisz_macierz();
};
macierz::macierz(int size) : m_size(size)
{
    m_macierz = new double*[m_size];

        for (int i = 0; i < m_size; ++i)
            m_macierz[i] = new double[m_size];
}
macierz::~macierz()
{
    for (int i = 0; i < m_size; ++i)
        delete [] m_macierz[i];
    delete [] m_macierz;
}
void macierz::wczytaj_macierz()
{
    for (int i=0; i < m_size; i++)
            for (int j=0; j < m_size; j++)
    {
        cout << "Podaj wartoϾ dla macierzy"  << i << " ][ " << j << " ] : ";
        double temp;
        cin >> temp;
        m_macierz [i][j] = temp;
    }
}
void transponowanie_macierzy(double**& m_macierz, int m_size)
{
    cout << "Wykonano transponowanie macierzy";
    for (int i = 0; i < m_size; i++)
        for (int j = 0; j < m_size; j++)
        swap(m_macierz[i][j], m_macierz[i][j]);
}
void macierz::wypisz_macierz()
{
    cout << "Macierz zosta³a transponowana:" << endl;
    for (int i = 0; i < m_size; i++) // Macierz transponowana <------
    {
        for (int j = 0; j < m_size; i++)
        {
            cout << m_macierz[i][j] << " ";
        }
        cout << endl;
    }
};

int main()
{
    macierz m;
    m.wczytaj_macierz();
    m.transponowanie_macierzy();
    m.wypisz_macierz();
cin.get();

return 0;
}

Oraz błąd który wyskakuje :

||=== Build file: "no target" in "no project" (compiler: unknown) ===|
D:\pendruve\programy\Zadanie31174\main.o:main.cpp|| undefined reference to `macierz::transponowanie_macierzy()'|
||error: ld returned 1 exit status|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Pozdrawiam.

1

fragment:

void transponowanie_macierzy(double**& m_macierz, int m_size)
{
cout << "Wykonano transponowanie macierzy";
for (int i = 0; i < m_size; i++)
for (int j = 0; j < m_size; j++)

zamień na:

void macierz::transponowanie_macierzy()
{
cout << "Wykonano transponowanie macierzy";
for (int i = 0; i < m_size; i++)
for (int j = 0; j < m_size; j++)
swap(m_macierz[i][j], m_macierz[i][j]);
}

To powinno rozwiązać twoje problemy z kompilacją. Natomiast nie rozwiąże problemów w czasie wykonania :)

0

Program sie odpala, wydaje mi sie ze wszystko jest jak nalezy, pare drobnych poprawek jeszcze wprowadze i chyba bedzie ok:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1