May 1, 2025, Thursday, 120

Przykładowe zadania do Laboratorium 7

From MJanik

(Difference between revisions)
Jump to: navigation, search
(Created page with "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 meto...")
 
(3 intermediate revisions not shown)
Line 3: Line 3:
1. Proszę stworzyć klasę Plansza która będzie posiadała pola składowe:
1. Proszę stworzyć klasę Plansza która będzie posiadała pola składowe:
-
  double *xy;
+
  double **xy;
  int n,m;
  int n,m;
Należy stworzyć ponadto metody:
Należy stworzyć ponadto metody:
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.
Line 19: Line 20:
'''Dynamiczne tworzenie tablic dwuwymiarowych w C++:'''
'''Dynamiczne tworzenie tablic dwuwymiarowych w C++:'''
-
  int **tab = new int *[5];  
+
  int **tab = new int* [5];  
  for (int i = 0; i < 5; ++i)  
  for (int i = 0; i < 5; ++i)  
     tab[i] = new int [10];  
     tab[i] = new int [10];  
Line 28: Line 29:
     for (int x = 0; x < 5; x++)
     for (int x = 0; x < 5; x++)
       delete [] tab[x];
       delete [] tab[x];
-
     delete tab;
+
     delete [] tab;

Latest revision as of 15:18, 6 December 2013

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;