Advertisement
wiuu23

PR_SEKV

Sep 13th, 2021 (edited)
896
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Tacka3D {
  5. public:
  6.     int x, y, z;
  7.     Tacka3D() {};
  8.     Tacka3D(int x, int y, int z) {
  9.         this->x = x;
  10.         this->y = y;
  11.         this->z = z;
  12.     }
  13. };
  14.  
  15. class PrioSekv {
  16.     int maxSize = 10;
  17.     Tacka3D* niz = new Tacka3D[maxSize];
  18.     int brojac = 0;
  19.  
  20.     int udaljenost(int index) {
  21.         return sqrt(pow(0 - niz[index].x, 2) + pow(0 - niz[index].y, 2) + pow(0 - niz[index].z, 2));
  22.     }
  23.  
  24.     void prosiriNiz() {
  25.         maxSize *= 2;
  26.         Tacka3D* temp = new Tacka3D[maxSize];
  27.  
  28.         for (int i = 0; i < brojac; i++)
  29.         {
  30.             temp[i] = niz[i];
  31.         }
  32.         delete[] niz;
  33.         niz = temp;
  34.     }
  35.  
  36. public:
  37.     /*dodajes x*/
  38.     void dodaj(Tacka3D x) {
  39.         if (jeLiPun()) {
  40.             prosiriNiz();
  41.         }
  42.  
  43.         niz[brojac] = x;
  44.         brojac++;
  45.     }
  46.     bool jeLiPun() {
  47.         return maxSize == brojac;
  48.     }
  49.     /*ovdje uklanjas pomocu funkcije udaljenost*/
  50.     Tacka3D ukloni() {
  51.         if (jeLiPrazan()) {
  52.             throw exception("Lista je prazna");
  53.         }
  54.  
  55.         int minUdaljenost = INT_MAX;
  56.         int minIndeks = -1;
  57.  
  58.         for (int i = 0; i < brojac; i++)
  59.         {
  60.             int d = udaljenost(i);
  61.             if (d < minUdaljenost)
  62.             {
  63.                 minUdaljenost = d;
  64.                 minIndeks = i;
  65.             }
  66.         }
  67.  
  68.         Tacka3D temp = niz[minIndeks];
  69.         brojac--;
  70.         niz[minIndeks] = niz[brojac];
  71.         return temp;
  72.     }
  73.     bool jeLiPrazan() {
  74.         return brojac == 0;
  75.     }
  76.     void ispis() {
  77.         for (int i = 0; i < brojac; i++)
  78.         {
  79.             cout << niz[i].x << " " << niz[i].y << " " << niz[i].z << endl;
  80.         }
  81.     }
  82. };
  83.  
  84. int main() {
  85.     PrioSekv A;
  86.     Tacka3D t1(11,15,3), t2(3, 4, 5), t3(7, 8, 9);
  87.  
  88.     A.dodaj(t1);
  89.     A.dodaj(t2);
  90.     A.dodaj(t3);
  91.  
  92.     cout << "Dodano: " << endl;
  93.     A.ispis();
  94.  
  95.     Tacka3D uklonjena = A.ukloni();
  96.     cout <<"Uklonjeno: "<< uklonjena.x << " " << uklonjena.y << " " << uklonjena.z << endl;
  97.  
  98.     system("PAUSE");
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement