Advertisement
Guest User

Kod

a guest
Jan 24th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.93 KB | None | 0 0
  1. include <iostream>
  2. #include <cstdlib>
  3. #include <time.h>
  4. #include <string>
  5. using namespace std;
  6.  
  7. class Macierz{
  8.     double **dane;
  9.     int m, n;
  10. public:
  11.     Macierz(int m, int n = 1, int wart = 0){
  12.         this->m = m;
  13.         this->n = n;
  14.         dane = new double*[m];
  15.         for (int i    = 0; i < m; ++i) {
  16.             dane[i] = new double[n];
  17.             for (int j = 0; j < n; ++j) {
  18.                 dane[i][j] = wart;
  19.             }
  20.         }
  21.  
  22.     }
  23.     Macierz & operator+(const Macierz &a){
  24.         for (int i    = 0; i < m; ++i)
  25.             for (int j = 0; j < n; ++j)
  26.                 this->dane[i][j] += a.dane[i][j];
  27.         return *this;
  28.     }
  29.  
  30.     ostream& operator<<(ostream& out){
  31.         for (int i    = 0; i < m; ++i) {
  32.             for (int j = 0; j < n; ++j) {
  33.                 cout<< dane[i][j] << " ";
  34.             }
  35.             cout<< endl;
  36.         }
  37.         cout<< endl;
  38.         return out;
  39.     }
  40.  
  41.     void fill(int min = 1, int max = 10){
  42.         srand(time(NULL));
  43.         for (int i    = 0; i < m; ++i)
  44.             for (int j = 0; j < n; ++j)
  45.                 this->dane[i][j] = (rand()%max) + min;
  46.     }
  47.     int getM() const {return m;}
  48.     int getN() const {return n;}
  49.     int getValue (const int i, const  int j) const {
  50.         if(i>=m || j>=n || i<0 || j<0) return -1;
  51.         return dane[i][j];
  52.     }
  53.     ~Macierz(){
  54.         for (int i = 0; i < m; ++i)
  55.             delete[] dane[i];
  56.         delete[] dane;
  57.     }
  58.     void wypisz(){ //dla testów
  59.         for (int i    = 0; i < m; ++i) {
  60.             for (int j = 0; j < n; ++j) {
  61.                 cout<< dane[i][j] << " ";
  62.             }
  63.             cout<< endl;
  64.         }
  65.     }
  66. };
  67.  
  68.  
  69. class Miernik{
  70. public:
  71.     virtual void pomiar() = 0;
  72.     virtual ~Miernik() { cout<< " Destruktor";};
  73. };
  74. class Woltomierz: public Miernik{
  75.     string jednostka = "V";
  76. public:
  77.     void pomiar() {cout<< " Jestem Woltomierzem. Jednostka: " << jednostka << endl;};
  78. };
  79. class Amperiomierz: public Miernik{
  80.     string jednostka = "A";
  81. public:
  82.     void pomiar() {cout<< " Jestem Amperomierzem. Jednostka: " << jednostka<< endl;};
  83. };
  84. class Watomierz: public Miernik{
  85. public:
  86.     string jednostka = "W";
  87.     void pomiar() {cout<< " Jestem Watomierzem. Jednostka: " << jednostka<< endl;};
  88. };
  89.  
  90. int main() {
  91.     Macierz *m1 = new Macierz(3,3,9);
  92.     Macierz *m2 = new Macierz(3);
  93.     Macierz *m3 = new Macierz(3,3,9);
  94.     m3->fill(1,10);
  95.     int liczba = 0;
  96.  
  97.     (Macierz) liczba;
  98.  
  99.     m1->wypisz();
  100.     m2->wypisz();
  101.     m3->wypisz();
  102.  
  103.     *m2 = *m1+*m3;
  104.  
  105.     m2->wypisz();
  106.  
  107.     int l = 0;
  108.     cout<< m2->getValue(l,2);
  109.  
  110.  
  111.     m2->wypisz();
  112.  
  113.  
  114.     ///////////////////////DEMONSTRACJA
  115.  
  116.     Miernik *miernik;
  117.     Woltomierz volt;
  118.     Amperiomierz amper;
  119.     Watomierz wat;
  120.  
  121.     miernik = &volt;
  122.     miernik->pomiar();
  123.  
  124.     miernik = &amper;
  125.     miernik->pomiar();
  126.  
  127.     miernik = &wat;
  128.     miernik->pomiar();
  129.     return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement