From MJanik
(Difference between revisions)
|
|
Line 11: |
Line 11: |
| Zapisz(int mm, int nn, double val) //wpisuje w komórkę (nn,mm) wartość val | | Zapisz(int mm, int nn, double val) //wpisuje w komórkę (nn,mm) wartość val |
| Powieksz() //zwiększa wielkość tablicy xy o 1 -''' uwaga! potrzebna jest ponowna alokacja pamięci!''' | | Powieksz() //zwiększa wielkość tablicy xy o 1 -''' uwaga! potrzebna jest ponowna alokacja pamięci!''' |
| + | Losuj() //do kazdej komorki tablicy [x][y] jest wpisywana losowa wartosc od 0 do 10. |
| | | |
| Uwaga! Dla konstruktora kopiującego należy zaalokować pamięć od początku i przepisać wszystkie wartości. | | Uwaga! Dla konstruktora kopiującego należy zaalokować pamięć od początku i przepisać wszystkie wartości. |
Revision as of 15:38, 6 November 2012
Przykładowe zadania do Laboratorium 6
1. Proszę stworzyć klasę Plansza która będzie posiadała pola składowe:
double *xy;
int n,m;
Należy stworzyć ponadto metody:
konstruktor główny (z wartościami domyślnymi n = m = 5), konstruktor kopiujący, destruktor oraz metody:
Wypisz() //wypisuje tablice na ekran
Zapisz(int mm, int nn, double val) //wpisuje w komórkę (nn,mm) wartość val
Powieksz() //zwiększa wielkość tablicy xy o 1 - uwaga! potrzebna jest ponowna alokacja pamięci!
Losuj() //do kazdej komorki tablicy [x][y] jest wpisywana losowa wartosc od 0 do 10.
Uwaga! Dla konstruktora kopiującego należy zaalokować pamięć od początku i przepisać wszystkie wartości.
Destruktor powinien zwalniać pamięć tablicy xy.
Dynamiczne tworzenie tablic dwuwymiarowych w C++:
int **tab = new int *[5];
for (int i = 0; i < 5; ++i)
tab[i] = new int [10];
W ten sposób stworzono tablicę dwuwymiarową którą statycznie zadeklarowalibyśmy jako:
int tab[5][10];
Należy również zwolnić pamięć dla dynamicznie zadekladowanej tablicy:
for (int x = 0; x < 5; x++)
delete [] tab[x];
delete tab;