[ lissa_m_87 @ 27.06.2011. 14:58 ] @
Moze li mi ko pomoci oko zadatka...Potrebno je formirati klasu Code: class graph { public : graph(); ~graph(); friend void polynomial (graph &); private: int n; double p[11]; double s[10]; int a[10][10]; }; Broj n cvorova grafa G birati metodom slucajnog izbora (2<=n<=10).Elemente a[i ][j] matrice susedstva grafa G birati takodje metodom slucajnog izbora : a[i ][j]=a[j][i ] ako je i not= j; i a[i ][j]=0 ako je i=j. Upotrebom funkcije void polynomial(graph &) prikazati karakteristicni polinom P_G(\lambda)=|\lambda I-A| u obliku (1,0,a_2,...a_n); (niz p[11] sadrzi koeficijente P_G(\lambda)). Upotrebom funkcije void matrix(graph &) prikazati matricu susedstva grafa G u sledecem formatu: n m a_{21} a_{31} a_{32}...a_{n1} a_{n2}...a_{n,n-1}; gde je : a)n broj cvorova grafa G; b)m=|a_2| broj grana grafa G. Ja sam uradila nesto sto bi trebalo da radi, ali resenje koje se dobija nije tacno... ![]() Code: #include<stdlib.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<time.h> class graph { public: graph(); ~graph(); void display(); friend void polynomial (graph &); private: int n; double a[10][10]; double p[11]; double s[10]; }; graph::graph() { int i,j; randomize(); n=2+random(9); for(i=1;i<=n;i++){ for(j=1;j<=i;j++){ if(i==j) a[i][i]=0; else { a[i][j]=random(2); a[j][i]=a[i][j];} } } } graph::~graph() { } void graph::display() { int i,j; printf("********************************************************\n"); printf("Generisana je matrica:\n"); printf("********************************************************\n\n\n"); for(i=1;i<=n;i++){ for(j=1;j<=n;j++) printf("%d",a[i][j]); printf("\n"); } printf("\n\n %d",n); printf("********************************************************\n"); printf("********************************************************\n"); } void polynomial(graph &g) { int i,j,q,k; double m; double b[10][10]; double stari[10][10]; for(i=1;i<=g.n;i++){for(j=1;j<g.n;j++) stari[i][j]=g.a[i][j];} g.s[1]=0; for(k=2;k<=g.n;k++) { g.s[k]=0; for(i=1;i<=g.n;i++){ for(j=1;j<=g.n;j++) { b[i][j]=0; for(q=1;q<=g.n;q++) b[i][j]=b[i][j]+stari[i][q]*g.a[q][j]; } } for(i=1;i<=g.n;i++) g.s[k]=g.s[k]+b[i][i]; for(i=1;i<=g.n;i++){for(j=1;j<g.n;j++) stari[i][j]=b[i][j];} } g.p[0]=1; g.p[1]=0; for(k=2;k<=g.n;k++) { g.p[k]=0; for(i=1;i<=k-1;i++){ g.p[k]=g.p[k]+g.s[k-i]*g.p[i];} m=-g.p[k]; g.p[k]=m/k-g.s[k]/k; } printf("********************************************************\n"); printf("*Koeficijenti karakteristicnog polinoma su:*\n"); printf("********************************************************\n\n"); printf("%f",g.p[0]); for(i=1;i<=g.n-1;i++) printf(",%f",g.p[i]); printf(",%f)\n",g.p[g.n]); } void main() { clrscr(); graph g; g.display(); printf("\n"); polynomial(g); } [Ovu poruku je menjao X Files dana 30.06.2011. u 10:30 GMT+1] |