Ładny brzuch

Witam wszystkich. Mam taka prosbe, czy moglby ktos przerobic ponizszy kod na obiektowy? Chodzi o to aby zmienne wier, kol i wkaznik **t byly prywatne w klasie Tab, natomiast wszystkie metody publiczne.

Oto kod:

// Przyklad scalania tablic dwuwymiarowych
#include <iostream.h>

struct Tab {
unsigned kol; // ilosc kolumn
unsigned wier; // ilosc wierszy
int **t;
};

Tab NewTab(unsigned, unsigned);
void wypelnij(Tab, int);
void drukuj(Tab, char*);
Tab scal(Tab, Tab);
void UsunTab(Tab);
int max(int a, int B) { return (a>B)?a:b; }

int main() {
system("cls");

Tab A = NewTab(3, 8); // 3 wiersze i 8 kolumn
wypelnij(A, 2);
drukuj(A, "Tablica A:");

Tab B = NewTab(10, 4); // 10 wierszy i 4 kolumny
wypelnij(B, 5);
drukuj(B, "Tablica B:");

Tab C = NewTab(max(A.wier, B.wier), max(A.kol, B.kol));
C = scal(A, B);
drukuj(C, "Tablica C:");

UsunTab(A);
UsunTab(B);
UsunTab©;
cin.get();
return 0;
}

Tab NewTab(unsigned wier, unsigned kol) {
Tab T;
T.kol=kol;
T.wier=wier;
T.t = new int*[wier];
for(unsigned i=0; i<wier; ++i)
T.t[i] = new int[kol];
wypelnij(T, 0);
return T;
}

void wypelnij(Tab A, int x) {
for(unsigned i=0; i<A.wier; ++i)
for(unsigned j=0; j<A.kol; ++j)
A.t[i][j] = x;
}

void drukuj(Tab T, char *com) {
cout << com << endl;
for(unsigned i=0; i<T.wier; ++i) {
for(unsigned j=0; j<T.kol; ++j)
cout << T.t[i][j];
cout << endl;
}
cout << endl;
}

void UsunTab(Tab T) {
for(unsigned i=0; i<T.wier; ++i)
delete[] T.t[i];
delete T.t;
}

Tab scal(Tab A, Tab B) {
Tab C = NewTab(max(A.wier, B.wier), max(A.kol, B.kol));
wypelnij(C, 0);
for(unsigned i=0; i<A.wier; ++i)
for(unsigned j=0; j<A.kol; ++j)
C.t[i][j] = A.t[i][j];
for(unsigned i=0; i<B.wier; ++i)
for(unsigned j=0; j<B.kol; ++j)
C.t[i][j] += B.t[i][j];
return C;

}

Z gry dziekuje.

Lipek



Naprawde mozna liczyc na pomoc na tym Forum.

Lipek

class Tab{ private: unsigned int kol; unsigned int wier; int **t; public: Tab(int, int); Drukuj(char *); //Inne :D } Tab::Tab(int kol, int wier){ this->kol=kol; this->wier=wier; } Tab::Drukuj(char *){ //cotam }
Gotowe, nie pene, ale reszt moesz zrobi sam;) No i moe by le bo dawno nie pisaem adnej klasy w c++:D

Kodie

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •