[ milkinizz @ 11.08.2009. 18:09 ] @
Cao drustvo, ne bih vas davila da mi nije hitno. Spremam ispit i zakocila sam,citala sam skripte,knjige ali i dalje mi neke stvari nisu jasne. Ovaj zadatak je bio na ispitu i data je okosnica klase niz kao i deo main funkcije. Metodom slucajnog izbora bira se niz, koji se zatim sortira i na njega se primeni marge-metoda ciji je princip takodje dat. Problem mi pravi funkcija void Sort koju sam ja dodala jer nisam znala kako drugacije da uradim. Zna li neko kako da ispravim ovaj deo koda ili kako drugacije da uradim. Unapred hvala i MOLIM VAS DA MI NEKO POMOGNE jer vec 5 dana se vracam na ovaj zadatak ali nista novo ne mogu da smislim. :-( Code: #include <stdlib.h> #include <stdio.h> #include <time.h> #include <string.h> class niz; void ShowRandom(niz x); void ShowSorted(niz x); class niz{ public: niz(int n=10); niz &Merged(niz &x); private: int n; int *Random; int *Sorted; friend void ShowRandom(niz); friend void ShowSorted(niz); void Sort(); } niz::void Sort() { int i,j,t; for (i=0;i<(this->n -1);i++) for (j=i+1;j<this->n;j++) if (this->Sorted[i]>this->Sorted[j]) { t=this->Sorted[i]; this->Sorted[i]=this->Sorted[j]; this->Sorted[j]=t; } return; } niz &niz::Merged(niz &x) { int i=0; int j=0; int k=0; niz *novi=new niz(this->n+x.n); for (i=0;i<this->n;i++) novi->Random[i]=this->Random[i]; for (j=0;j<x.n;j++) novi->Random[i+j]=x.Random[j]; i=0; j=0; k=0; while ((i<this->n)||(j<x.n)) { if ((i<this->n)&&(j<x.n)) { if (this->Sorted[i]<x.Sorted[j]) { novi->Sorted[k]=this->Sorted[i]; i++; k++; } else { novi->Sorted[k]=x.Sorted[j]; j++; k++; } } else { if (i==this->n) { while (j<x.n) { novi->Sorted[k]=x.Sorted[j]; j++; k++; } break; } else { while (i<this->n) { novi->Sorted[k]=this->Sorted[i]; i++; k++; } break; } } } return *novi; } niz::niz(int n) { int i,j,t; this->n=n; Random=new int[10]; for(i=0;i<n;i++) Random[i]=random[10]; Sorted=new int[10]; for(i=0;i<n;i++) Sorted[i]=Random[i]; this->Sort(); } void ShowRandom(niz x) { printf("\n"); for(int i=0;i<x.n;i++) printf("%d ",x.Random[i]); return; } void ShowSorted(niz x) { printf("\n"); for(int i=0;i<x.n;i++) printf("%d ",x.Sorted[i]); return; } int main(int argc,char *argv[]) { randomize; niz x=(!strcmp(argv[1],"0")?0:atoi(argv[1])),y=atoi(argv[2]); niz z; printf("\nX==========================================================\n"); ShowRandom(x); printf("\n\nSortirani je :\n"); ShowSorted(x); //elemente x.Sorted prikazati na ekranu printf("\nY==========================================================\n"); ShowRandom(y); printf("\n\nSortirani je :\n"); ShowSorted(y); //elemente y.Sorted prikazati na ekranu printf("\nZ==========================================================\n"); z=x.Merged(y); ShowRandom(z); printf("\n\nSortirani je :\n"); ShowSorted(z); //elemente z.Sorted prikazati na ekranu printf("\n==========================================================\n"); system("PAUSE"); return 0; } |