Lab cpp 06

background image

Laboratorium nr 6

Temat: Dynamiczna alokacja pami ci

1. Dynamiczna alokacja pami ci – funkcja new and delete

Najbardziej popularnym sposobem zarz dzania pami ci w C++ jest u ycie funkcji new oraz delete.

Zalety u ycia funkcji new:

• w czasie tworzeniu obiektów istnieje mo liwo przesłania parametrów w do konstruktora,

• nie jest potrzebna ju funkcja sizeof(), wystarczy jedynie typ danych,

• zwraca bezpo redni wska nik, w zwi zku z czym nie ma potrzeby rzutowania/zamiany typów,

• ponadto, oba operatory mo na przeci a odpowiednio dla danej klasy.

# include <conio.h>
# include <iostream>
# include <stdio.h>
# include <stdlib.h>
# include <alloc.h>

using namespace std;

class macierz {
private:
int x,y;
int *tab;
char nazwa[8];
public:
macierz(char * nzw, int n, int m);
~macierz();
int wprowadz(int i, int j, int w);
int wyswietl();
};

macierz::macierz(char * nzw, int n, int m){
x=n;
y=m;
strcpy(nazwa,nzw);
tab=new int[n*m];
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
*(tab+y*i+j)=0;
}

macierz::~macierz(){
delete[] tab;
};

int macierz::wprowadz (int i, int j, int w) {
*(tab+y*i+j)=w;
return 0;
};

int macierz::wyswietl(){
cout << "\nMacierz=" << nazwa << endl;
for (int i=0; i<x; i++) {
for (int j=0; j<y; j++) cout << *(tab+y*i+j) << "\t";
cout <<"\n";
};
};

background image

int main() {
class macierz *A,*B;
A=new macierz("AAA",3,3);
A->wprowadz(1,1,1);
A->wyswietl();
B= new macierz("BBB",4,4);
B->wprowadz(1,1,1);
B->wyswietl();
getch();
delete A;
delete B;
return 0;
}

2. Zadanie:

Opracuj program, który b dzie definiował obiekt typu „macierz” o zadanych wymiarach np. 3x3, z

mo liwo ci wstawiania, zerowania poszczególnych elementów macierzy jak równie dodawania i

mno enia dwóch macierzy, w oparciu o funkcje składowe klasy „macierz”, np.:

class macierz {
public:
int x,y;
int tab[3,3];
wprowadz(int i, int j);
kasuj (int i, int j);
dodaj(...);
pomnoz(...);
wyswietl (...);
itp.()...;
}

Uwaga: Program powinien składa si z oddzielnych plików, tzn. pliku głównego, pliku klasy, itp.

Program powinien posiada krótkie menu wyboru, np.:

1.

Utwórz macierz

2.

Wprowad element macierzy

3.

Kasuj element macierzy

4.

Wy wietl macierz

5.

itp.

6.

Koniec


Wyszukiwarka

Podobne podstrony:
Lab cpp 12
Lab cpp 09
Lab cpp 02
Lab cpp 05
Zasady zaliczania lab z OiSE 06
MB (Lab) Sprawozdanie 06
Lab cpp 08
Lab cpp 07
Lab cpp 03
Lab cpp 04
Lab MG 06
Lab cpp 11
Lab cpp 12
Lab MG 06
Lab 06 2011 2012
Lab 06 2011 2012 NWD
Lab 06 Instrukcje sterujace id Nieznany
lab 06

więcej podobnych podstron