Разработка алгоритмов и программ выполнения операций над последовательными и связанными представлениями структур данных — страница 8

  • Просмотров 4306
  • Скачиваний 203
  • Размер файла 39
    Кб

Tik; k++) for (i = 0; i < Tik; i++){ for (int j = 0; j < Tik; j++) A[i][j] += (*MyMenu[j])(Mas_x[k],Mas_y[k],Mas_z[k]) * (*MyMenu[i])(Mas_x[k],Mas_y[k],Mas_z[k]); A[i][N]+=(*MyMenu[i])(Mas_x[k],Mas_y[k],Mas_z[k])*TikTak[k]; } if(gordanA(N,M))cout<<"Матрица вырождена!!!"; //N-колво строк, M-кол-во столбцов //for(i=0;i<N;i++){cout<<'\n';for(j=0;j<M;j++) cout<<A[i][j]<<'\t';} cout<<"\t\t\t O(nX,nY,nZ)=C1*nX*(nY+nZ)"<<endl; for(i=0;i<N-1;i++) cout<<"\n\t\t\t\tC"<<i<<'='<<A[i][M]; cout <<"\n\nКол-во дуг Х\tКол-во дуг Y\tКол-во дуг Z\tЭксперимент\tТеория";//<<"Mas_tx

Mas_Tnx"; double *Mas_Tnz=new double[N]; for(i=0;i<Tik;i++) Mas_Tnz[i]=0; for (int y = 0; y < Tik; y++){ for (i = 0; i < N; i++){Mas_Tnz[y] += ((*MyMenu[i])(Mas_x[y],Mas_y[y],Mas_z[y]))*(A[i][N]);} cout <<"\n"<<Mas_x[y]<<"\t\t"<< Mas_y[y]<<"\t\t"<<Mas_z[y]<<"\t\t"<<TikTak[y]<<"\t"<<Mas_Tnz[y]; } } //////////////////////////////////////////////////////////////////////////////// void TestTime(int n) /* Х - в последовательном представлении У - в связанном представлении */ { clrscr(); //очистка экрана cerr<<"\t\tНемного подождите - идут

эксперименты...\n"; int i,nX=0,nZ=0,nY=0; float TikTak[19],Secundomer=0; int Mas_x[12],Mas_y[12],Mas_z[12]; for(int Tik=0;Tik<N;Tik++){ //цикл начала экспериментов от Н до Н+45 n=n+Tik*5; //количество генерируемых вершин Array *X = new Array [nX]; //выделение памяти для графа в последоват представлении X = GenSeX(n,nX); //чтение графа в последовательном представлении Mas_x[Tik]=nX; //запоминаем кол-во вершин в графе ЫксА Spisok **Y = new Spisok *[n];//выделение памяти для графа в связанном представлении for (int i=0;i<n;i++){Y[i] = new

Spisok;Y[i]=NULL;}//выделение памяти для графа в связанном представлении Y = GenSeY(n,nY); //чтение графа в связанном представлении Mas_y[Tik]=nY; //запоминаем кол-во вершин в графе ИгрикА Array *Z = new Array[n]; //выделение памяти для графа в последоват представлении cerr <<"\nЧисло вершин в графе = "<<n; cout<<"\nRaznostZ..."; nZ=nX; //так надо Сергей Михайловичь Z=RaznostZ(n,nZ,X,Y,Z); //считаем разность графов: первый параметр - число вершин, второй и третий //граффы в

соответствующем представлении. //cout<<"\nnX="<<nX<<"\tnY="<<nY<<"\tnZ="<<nZ; Mas_z[Tik]=nZ; //запоминаем кол-во вершин в графе зЮблА cout<<"\t\t\tэтот комп пока ещё работает...\nRasnostY...\t\t\tПовторяю который раз?! Ответ: "; for(int XXX=0;XXX<10;XXX++){ //цикл повторений cout<<"\b"<<XXX; //Вывод количества повторений Secundomer=clock(); //"..на старт... внимпние ... марш!!!" - засекли начала эксперимента. Y=RaznostY(n,nX,X,Y); //считаем разность графа и

записываем это в граф Y TikTak[Tik]=(clock()-Secundomer);//"Финиш!!!" - получили конец эксперимента } //к.ц. цикла вовторений TikTak[Tik]=TikTak[Tik]/(10 * CLK_TCK);//Вычисление тиков!!! delete [] X; //удаление из памяти графа Х DeleteY(Y,n); //Убийство связанного графа Игрыка! delete [] Z;//удаление из памяти графа в последовательном представлении n-=Tik*5; //"предохраитель" от геометрической прогрессии... } //к.ц. для экспериментов!!! //cout <<"\nMas_x\tMas_y\tMas-z\tTikTak"; //for (int y = 0; y < Tik;