МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка алгоритмов и программ выполнения операций над последовательными и связанными представлениями структур данных

    F.open(st);

    randomize();

    if (!F) cout > n;

    return n;

    }

    ////////////////////////////////////////////////////////////////////////////

    ///////////////////////////

    Array *RaznostZ(int n,int &n1,Array *X,Spisok **Y,Array *Z)

    /*обьединение в последовательном представлении

    N - кол-во вершин в новом графе, N2 - кол-во дуг в Y.*/

    {float i,j,newn=0;

    Array *newX = new Array [n1]; //выделение памяти для графа в

    последоват представлении

    //coutindex){Flag=1;break;}//если нашли

    повторение, то выход

    max=max->next; //передвигаемся на следующий элемент

    списка

    }

    if(Flag==0){ //если не было совпадений вершин, то...

    всё понятно:

    newX[newn].I=X[i].I;

    newX[newn].J=X[i].J;

    newn++;

    }

    //coutnext;delete rex;rex=Z[i];}

    delete Z[i];

    }

    delete [] Z;

    }

    ////////////////////////////////////////////////////////////////////////////

    ////

    Spisok** RaznostY(int n,int n1,Array *X, Spisok **Y)

    {/*Расчет разности графов Z=X-Y

    Z,Y - связанном представлении, X - в последовательном.

    n - кол-во вершин графа, n1 - кол-во дуг графа*/

    int i,j;

    Spisok **Z = new Spisok *[n];//выделение памяти для графа в связанном

    представлении

    for (i=0;iindex)Flag=1;//если нашли повторение, то

    выход

    max=max->next; //передвигаемся на следующий элемент

    списка

    }

    if(Flag==0){ //если небыло совпадений вершин, то...

    всё понятно:

    Spisok *end=Z[j], *beg=Z[j], *pred=Z[j];

    while (end !=NULL) {pred = end ;end = end ->next;}

    end = pred;

    if((beg==NULL)&&(end==NULL))Z[j]=beg=end=new(Spisok);

    else end = end -> next = new (Spisok);

    end -> next = NULL;

    end -> index = X[i].J;

    }

    //cout<<"\b|";

    }

    //cout<<"\b\\";

    }

    //cout<<"\b \b";

    DeleteY(Y,n); //Убийство связанного графа Игрыка!

    return Z;

    }

    ////////////////////////////////////////////////////////////////////////////

    ///////////////////////////

    void Demo(void)

    /* Х - в последовательном представлении

    У - в связанном представлении*/

    { int n=4,N2;

    clrscr(); //очистка экрана

    CursorOff();

    cout<<"\t\tДемонстрация работоспособности программы."<

    char st [] ="GrapH.txt"; //имя генерируемого файла

    cout<<"\t\tИмя файла с данными задачи: "<

    WriteFile(st,n); //генерация файла с н вершинами

    n=HowMuch(st); //подсчет числа вершин графов

    int N1 = Number(N2,st); //подсчет числа дуг

    Array *X = new Array [N1]; //выделение памяти для графа в последоват

    представлении

    X = ReadFileX(X,st); //чтение графа в последовательном

    представлении

    cout << "\n X в последовательном";

    print3(X,N1,n); //вывод графа в последовательном

    представлении

    Spisok **Y = new Spisok *[n]; //выделение памяти для графа в связанном

    представлении

    for (int i=0;i

    связанном представлении

    Y = ReadFileY(Y,st); //чтение графа в связанном

    представлении

    cout << "\n Y в свяанном";

    print2(Y,n); //печать графа в связанном представлении

    Array *Z = new Array[n]; //выделение памяти для графа в последоват

    представлении

    int nZ=N1;

    Z=RaznostZ(n,nZ,X,Y,Z); //считаем разность графов: первый параметр -

    число вершин, второй и третий

    //граффы в соответствующем представлении.

    cout<<"\n Z=X-Y в последовательном";

    print3(Z,nZ,n); //вывод графа в последовательном представлении

    //Spisok **Z1 = new Spisok *[n];//выделение памяти для графа в связанном

    представлении

    //for (i=0;i

    для графа в связанном представлении

    Y=RaznostY(n,N1,X,Y); //считаем разность графа и записываем это в

    граф Y

    cout<<"\n новый Y - в связанном представлении"; //Вывод подсказки

    - "Что делать"

    print2(Y,n); //печать графа в связанном представлении

    delete [] X; //удаление из памяти графа Х

    delete [] Z;

    DeleteY(Y,n); //Убийство связанного графа Игрыка!

    //DeleteY(Z1,n); //Убийство связанного графа Зюблы!

    cout<<"\n\t\t\tPress Any Key to continue\b"<

    "Что делать дальше"

    getch(); //Ждём нажатия любой клавиши

    }

    ////////////////////////////////////////////////////////////////////////////

    ////

    void TimeOut(int Tik, float TikTak[], int Mas_x[], int Mas_y[],int Mas_z[])

    {

    clrscr();

    int i=0,j=0,k=0,h=0,count=0;

    cout<<'\n';

    for(;i

    for (k = 0; k < 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

    cout<<"\t\t\t O(nX,nY,nZ)=C1*nX*(nY+nZ)"<

    for(i=0;i

    cout<<"\n\nесли вы видите эту надпись, значит эксперименты прошли

    удачно"

    <<"\n\tPress any key для вывода результатов на экран."<

    getch(); //Ждём нажатия любой клавиши

    TimeOut(Tik,TikTak,Mas_x,Mas_y,Mas_z);//вызываем функцию общёта всего и

    вся

    cout<<"\n\n\t\t Press Any Key for exit to you system."<

    подсказки - "Что делать дальше"

    getch(); //Ждём нажатия любой клавиши

    }

    ///////////////////////////////////////////////////////////////////////////

    void main (void)

    {

    Demo();

    TestTime(85);

    }

    ///////////////////////////////////////////////////////////////////////////

    Тесты.

    Для демонстрации работоспособности программы я вывожу некий, случайно

    сформированный граф на дисплей для маленькой размерности (в данном примере

    4 вершины), далее вывожу на экран разность этих графов. Как легко

    убедиться, в том что это правильная разность, можно предположить, что это

    будет справедливо и для графов большей размерности.

    |Демонстрация работоспособности программы. |

    |Имя файла с данными задачи: GrapH.txt |

    | |

    |X в последовательном |

    |0: 2 |

    |1: 1 3 0 |

    |2: 2 0 3 |

    |3: 3 0 |

    |Y в свяанном |

    |0: 1 3 |

    |1: 1 0 |

    |2: 3 2 |

    |3: 2 3 1 |

    |Z=X-Y в последовательном |

    |0: 2 |

    |1: 3 |

    |2: 0 |

    |3: 0 |

    |новый Y - в связанном представлении |

    |0: 2 |

    |1: 3 |

    |2: 0 |

    |3: 0 |

    |Press Any Key to continue |

    После предложения программы нажать любую клавишу вы видите перед собой

    экран следующего содержания:

    |Немного подождите - идут эксперименты... |

    | |

    |Число вершин в графе = 85 |

    |RaznostZ... этот комп пока ещё |

    |работает... |

    |RasnostY... Повторяю который раз?! |

    |Ответ:9 |

    |Число вершин в графе = 90 |

    |RaznostZ... этот комп пока ещё |

    |работает... |

    |RasnostY... Повторяю который раз?! |

    |Ответ:9 |

    |Число вершин в графе = 95 |

    |RaznostZ... этот комп пока ещё |

    |работает... |

    |RasnostY... Повторяю который раз?! |

    |Ответ:9 |

    |Число вершин в графе = 100 |

    |RaznostZ... этот комп пока ещё |

    |работает... |

    |RasnostY... Повторяю который раз?! |

    |Ответ:9 |

    |Число вершин в графе = 105 |

    |RaznostZ... этот комп пока ещё |

    |работает... |

    |RasnostY... Повторяю который раз?! |

    |Ответ:9 |

    |Число вершин в графе = 110 |

    |RaznostZ... этот комп пока ещё |

    |работает... |

    |RasnostY... Повторяю который раз?! |

    |Ответ:9 |

    | |

    |если вы видите эту надпись, значит эксперименты прошли |

    |удачно |

    |Press any key для вывода результатов на экран. |

    | |

    После предложения программы нажать любую клавишу вы видите перед собой

    экран следующего содержания:

    | |

    |O(nX,nY,nZ)=C1*nX*(nY+nZ) |

    | |

    |C0=3.894613e-06 |

    |C1=1.953171e-06 |

    |C2=1.941442e-08 |

    |C3=7.187807e-12 |

    |C4=3.05476e05 |

    | |

    |Верш Кол-во дуг Х Кол-во дуг Y Кол-во дуг Z Эксперимент |

    |Теория |

    |70 3028 3045 1120 |

    |0.06044 0.058657 |

    | |

    |75 3507 3531 1289 |

    |0.071429 0.074507 |

    | |

    |80 4032 3978 1471 |

    |0.082418 0.082331 |

    | |

    |85 4488 4577 1608 |

    |0.104396 0.103425 |

    | |

    |90 5136 5061 1898 |

    |0.126374 0.125175 |

    | |

    |95 5692 5638 2075 |

    |0.137363 0.138322 |

    | |

    |Press Any Key for exit to you system. |

    В графе эксперимент я вывожу экспериментально время – время которое я

    получил при выполнение моей процедуры. В графе теория я вывожу значение

    времени получившееся при подстановке мультипликативных констант в исходное

    уравнение.

    Страницы: 1, 2


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.