Lab cpp 08

background image

Laboratorium nr 8

Temat: Przeci anie funkcji składowych oraz konstruktorów klas

1. Koncepcja przeci ania funkcji w C++

W C++ nie ma konieczno ci przestrzegania typów danych, gdy jest on w stanie sam sprawdzi

typ danych a nast pnie stwierdzi czy wywołana funkcja została zdefiniowana z danym tym typem

danych. Ta sama funkcja mo e by w C++ zdefiniowana wielokrotnie dla ró nych typów parametrów,

przy czym C++ u yje automatycznie wła ciwej wersji funkcji, któr odnajdzie na podstawie typu i liczby

przesyłanych argumentów.

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

using namespace std;

class macierz {
public:
int x,y;
int *tab_itg;
float *tab_flt;
int wyswietl(int *tab);
int wyswietl(float *tab);
int wprowadz(int *tab, int w);
int wprowadz(float *tab, float w);
macierz(int n, int m, int w);
macierz(int n, int m, float w);
~macierz();
};

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

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

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

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

background image

macierz::macierz(int n, int m, int w){
x=n;
y=m;
tab_itg=new int[n*m];
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
*(tab_itg+y*i+j)=w;
}

macierz::macierz(int n, int m, float w){
x=n;
y=m;
tab_flt=new float[n*m];
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
*(tab_flt+y*i+j)=w;
}

macierz::~macierz(){
delete[] tab_itg;
delete[] tab_flt;
};

int main() {
class macierz *A, *B;
A=new macierz(3,3,(int)0);
A->wprowadz(A->tab_itg,1);
A->wyswietl(A->tab_itg);
B=new macierz(3,3,(float)0);
B->wprowadz(B->tab_flt,2.2);
B->wyswietl(B->tab_flt);
getch();
delete A;
delete B;
return 0;
}

2. Zadanie:

Zmodyfikuj powy szy program tak, aby istniała dodatkowo mo liwo deklaracji macierzy

znakowych, przy czym program powinien posiada podstawowe operacje na elementach macierzy (tzn.

kasowanie, dopisywanie, itp.) w zale no ci od typu danych

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

zdefiniowanych klas, itp.

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

1.

Utwórz macierz: integer, float, char

2.

Wy wietl macierz

3.

Wpisz element macierzy

4.

Kasuj element macierzy

5.

itp.

6.

Koniec


Wyszukiwarka

Podobne podstrony:
Lab cpp 12
MB (Lab), Sprawozdanie 08
Lab cpp 09
Lab cpp 02
Lab cpp 06
Lab cpp 05
lab fiz 08, fff, dużo
Lab MG 08
MB (Lab) Sprawozdanie 08
Lab cpp 07
Lab cpp 03
Lab cpp 04
Lab cpp 11
Lab cpp 12
Bsi 08 lab id 93519 Nieznany
lab 08

więcej podobnych podstron