:Francis: Skrevet 2. november 2007 Del Skrevet 2. november 2007 (endret) Hei, jeg har i oppgave (2klasse data) å lage et program som kan legge samme, trekke fra og multiplisere matriser. Jeg har laget programmet slik at det kan lese inn to matriser (verdiene og størrelsene er hardkodet), og skrive ut innholdet igjen. Det jeg sliter med, er å få pekerne tilbake til CMatrix klassen slik at jeg kan bruke dem til beregningen av +,- og * Jeg tror man kan overloade operatorene slik at jeg bare kan ta C = A*B ,men jeg husker ikke syntaxen for det, og pekerne må uansett sendes over. Jeg legger ved koden: #include <iostream> class CMatrix { private: int NumberOfRows; int NumberOfColumns; int *matrix; public: CMatrix(int ROWS, int COLUMNS); ~CMatrix(); void InsertMatrix(int row, int column, int value); void PrintMatrix(); void AddMatrix(); void SubtractMatrix(); void MultiplyMatrix(); }; og #include "CMatrix.h" CMatrix::CMatrix(int ROWS, int COLUMNS) { NumberOfRows = ROWS; NumberOfColumns = COLUMNS; matrix = new int[NumberOfRows*NumberOfColumns]; } CMatrix::~CMatrix() { } void CMatrix::InsertMatrix(int row, int column, int value) { matrix[row + NumberOfRows * column] = value; } void CMatrix::PrintMatrix() { for(int i = 0; i < NumberOfRows; i++) { for(int j = 0; j < NumberOfColumns; j++) std::cout << matrix[j + NumberOfRows * i]; std::cout << std::endl; } } void CMatrix::AddMatrix() { } void CMatrix::SubtractMatrix() { } void CMatrix::MultiplyMatrix() { } og #include "CMatrix.h" #include <iostream> int main() { std::cout << "Welcome to this matrix arithmatic program\n" << std::endl; //std::cout << "Please enter matrix A\n" << std::endl; //std::cout << "Please enter matrix B\n" << std::endl; CMatrix *A = new CMatrix(2,2); CMatrix *B = new CMatrix(2,2); CMatrix *C = new CMatrix(2,2); A -> InsertMatrix(0,0,1); A -> InsertMatrix(1,0,2); A -> InsertMatrix(0,1,3); A -> InsertMatrix(1,1,4); B -> InsertMatrix(0,0,5); B -> InsertMatrix(1,0,6); B -> InsertMatrix(0,1,7); B -> InsertMatrix(1,1,8); A -> PrintMatrix(); std::cout << std::endl; B -> PrintMatrix(); std::cout << std::endl; } Oppgava skal inn senest 24:00 idag. Er takkmenlig for all hjelp jeg kan få! Mvh Francis EDIT: Skrivefeil Endret 2. november 2007 av :Francis: Lenke til kommentar
_vamecum Skrevet 4. november 2007 Del Skrevet 4. november 2007 (endret) du trenger ikke allokere med new. gjør heller cMatrix A(2,2); og da kan du gjøre A.insertMatrix(..) osv. koden for operator-overlasting er som følger: cMatrix operator*(const cMatrix &rhs)const { cMatrix ans(NumberOfRows,NumberOfColumns); //koden din her return ans; } cMatrix operator+(const cMatrix &rhs)const { cMatrix ans(NumberOfRows,NumberOfColumns); //koden din her return ans; } cMatrix operator-(const cMatrix &rhs)const { cMatrix ans(NumberOfRows,NumberOfColumns); //koden din her return ans; } Og dersom du ikke husker syntaxen for noe, så er svaret som regel bare et lite bokoppslag/googleoppslag unna Endret 4. november 2007 av _vamecum Lenke til kommentar
:Francis: Skrevet 7. november 2007 Forfatter Del Skrevet 7. november 2007 Takk Francis Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå