Advertisement
szubert

spr kwachu

Mar 19th, 2015
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.59 KB | None | 0 0
  1. #include <ctime>
  2. #include <cstdio>
  3. #include <cstdlib>
  4.  
  5. class Obliczenia {
  6.       private:
  7.               int n;
  8.               int *liczby;
  9.              
  10.       public:
  11.              Obliczenia(int ileLiczb)
  12.              { // konstruktor
  13.                this->n = ileLiczb;
  14.                this->liczby = new int [ileLiczb];
  15.                for(int i=0; i<ileLiczb; i++) this->liczby[i] = rand() % 200 - 99;
  16.                printf("Utworzono obiekt klasy Obliczenia, ilosc liczb: %d\n", ileLiczb);
  17.              }
  18.              
  19.              int suma()
  20.              { // suma liczb
  21.                  int res = 0;
  22.                  for(int i=0; i<this->n; i++) res += this->liczby[i];
  23.                  
  24.                  return res;
  25.              }
  26.              
  27.              int iloczyn()
  28.              { // iloczyn liczb parzystych
  29.                  int res = 1;
  30.                  for(int i=0; i<this->n; i++) if(this->liczby[i] % 2 == 0) res *= this->liczby[i];
  31.                  
  32.                  return res;
  33.              }
  34.              
  35.              void wyswietl()
  36.              { // wyswietlanie liczb
  37.                   int *p = this->liczby;
  38.                   printf("Wyswietlam liczby: ");
  39.                   for(int i=0; i<this->n; i++)
  40.                   {
  41.                      printf("%d ", *p);
  42.                      p++;
  43.                   }
  44.                   printf("\n");
  45.              }
  46.              
  47.              void adresy()
  48.              { // wyswietlanie adresow tablicy
  49.                   printf("Adresy liczb w pamieci: ");
  50.                   int *p = this->liczby;
  51.                   for(int i=0; i<this->n; i++)
  52.                   {
  53.                      printf("%p ", p);
  54.                      p++;
  55.                   }
  56.                printf("\n");
  57.              }
  58.              
  59.              void zamien(int &low, int &high)
  60.              { // zamiana low & high
  61.                   if(low > high)
  62.                   {
  63.                          int tmp = low;
  64.                          low = high;
  65.                          high = tmp;
  66.                   }
  67.              }
  68.              
  69.              void wyswietl_oddo(int lowIndex, int highIndex)
  70.              { // wyswietla elementy o indeksach [low;high]
  71.                   int low = lowIndex;
  72.                   int high = highIndex;
  73.                  
  74.                   // korekcja wartosci
  75.                   if(low > high) zamien(low, high);
  76.                  
  77.                   printf("Elementy o indeksach [%d, %d]: ", low, high);
  78.                   for(int i=low; i<=high; i++)
  79.                   {
  80.                     if(i >= 0 and i < this->n) printf("%d ", this->liczby[i]);
  81.                   }
  82.                   printf("\n");
  83.              }
  84.              
  85.              ~Obliczenia()
  86.              { // destruktor
  87.                  printf("\nUsunieto obiekt klasy Obliczenia.\n\n");
  88.              }
  89. };
  90.  
  91.  
  92. int main()
  93. {
  94.     srand(time(NULL));
  95.    
  96.     Obliczenia obiekt_s(5);
  97.     Obliczenia *obiekt_d = new Obliczenia(5);
  98.    
  99.     printf("\n\n----------- OBIEKT  STATYCZNY -----------\n\n");
  100.    
  101.     obiekt_s.wyswietl();
  102.     obiekt_s.adresy();
  103.     printf("Suma liczb: %d\n", obiekt_s.suma());
  104.     printf("Iloczyn liczb: %d\n", obiekt_s.iloczyn());
  105.     obiekt_s.wyswietl_oddo(3, 400);
  106.    
  107.     printf("\n----------- OBIEKT DYNAMICZNY -----------\n\n");
  108.    
  109.     obiekt_d->wyswietl();
  110.     obiekt_d->adresy();
  111.     printf("Suma liczb: %d\n", obiekt_d->suma());
  112.     printf("Iloczyn liczb: %d\n", obiekt_d->iloczyn());
  113.     obiekt_d->wyswietl_oddo(1, 4);
  114.    
  115.     delete obiekt_d;
  116.    
  117.    
  118.     system("PAUSE");
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement