Помогите Прокомментировать Программу

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем MaryM, 7 дек 2012.

  1. MaryM

    MaryM Гость

    //---------------------------------------------------------------------------
    #include <vcl.h>
    #include <math.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    int i,j;
    int ish[20][20];
    int kk=0,
    nr=4,
    nd=4;
    struct rez{
    int val;
    int down;
    int up;
    int par;
    int sovp;
    };
    struct rank{
    int x;
    float k;
    };
    rez pt[5];
    rank rang1[7],rang2[7],rang3[7],rang4[7],rang5[7],b;
    int factorial(int n);
    float vvv=0,v1,v2,skiz=0,sksc=0,ksush=0;

    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }

    void __fastcall TForm1::FormCreate(TObject *Sender)

    {
    for(i=0;i<5;i++)
    pt.val=0;
    for (i=1;i < (StringGrid1->ColCount)-1;i++)
    StringGrid1->Cells[0]=i;

    for(i=0;i<(StringGrid1->ColCount);i++)
    {
    for(j=1;j<=StringGrid1->RowCount;j++) StringGrid1->Cells[j]="0";
    }

    StringGrid1->Cells[0][0]="T";
    StringGrid1->Cells[(StringGrid1->ColCount)-1][0]="Y";
    StringGrid2->Cells[0][0]="K??";
    StringGrid3->Cells[0][0]="????";
    StringGrid4->Cells[0][0]="????";
    for(i=0;i<8;i++)
    {
    rang1.k=0;
    rang2.k=0;
    rang3.k=0;
    rang4.k=0;
    rang5.k=1;
    }

    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    {
    sksc=0;
    int k=0;
    for(i=1;i<StringGrid1->ColCount;i++)
    {
    for(j=1;j<StringGrid1->RowCount;j++)
    {
    if(StringGrid1->Cells[j]=="") k=1;
    }
    }
    if(k==0)
    {

    for(i=1;i<StringGrid1->ColCount;i++)
    {
    for(j=1;j<StringGrid1->RowCount;j++)
    {
    ish[j]=StrToInt(StringGrid1->Cells[j]);
    if(j!=7)
    {
    if(ish[j]==StrToInt(ComboBox1->Text)) ish[j]=StrToInt(ComboBox2->Text);
    if(ish[j]==StrToInt(ComboBox3->Text)) ish[j]=StrToInt(ComboBox4->Text);
    }
    Label1->Caption="";
    }
    //kk=1;
    }
    }
    else Label1->Caption="????????? ???? ???????";

    //----------------------------------------------------
    //for(j=1;j<=11;j++) if(ish[7][j]==1) StringGrid2->Cells[0][j]=IntToStr(ish[7][j]);
    for(i=1;i<StringGrid1->RowCount;i++) pt.val=0;
    for(j=1;j<=StringGrid1->RowCount;j++)
    {
    pt[(ish[j][7])].val++;
    if(j==1) pt[ish[j][7]].down=j;
    if(ish[j][7]!=ish[j-1][7])
    {
    pt[ish[j][7]].down=j;
    pt[ish[j-1][7]].up=j-1;
    }
    //if(j+==(StringGrid1->RowCount)) pt[ish[j][7]].up=j;
    }
    //float *ksc = new float[StringGrid1->RowCount];
    float ksc;
    //-------------------------------------------------------------
    int ii,jj;

    for(ii=1;ii<StringGrid1->ColCount-1;ii++)
    {
    for(i=1;i<5;i++)
    {
    pt.par=0;
    pt.sovp=0;
    }
    for(i=1;i<5;i++)
    {
    if(pt.val>1)
    {
    pt.par=factorial(pt[i].val)/(2*factorial(pt[i].val-2));
    //------
    for(j=pt[i].down;j<=pt[i].up;j++)
    {
    for(jj=pt[i].down;jj<=pt[i].up;jj++)
    {
    if(jj!=j)
    {
    if(ish[j][ii]==ish[jj][ii]) pt[i].sovp++;
    }
    }
    }
    pt[i].sovp=(pt[i].sovp)/2;
    //------------------
    }
    else
    {
    pt[i].par=0;
    pt[i].sovp=0;
    }
    }
    //------------------------------------------------------------
    ksc=0;
    j=0;
    ksc=0;
    for(i=1;i<5;i++)
    {
    if(pt[i].par>0)
    {
    v1=pt[i].sovp;
    v2=pt[i].par;
    vvv=v1/v2;
    ksc=ksc+vvv;
    j++;
    }
    }

    if(j!=0) ksc=ksc/j;
    StringGrid2->Cells[ii][0]=ksc;
    sksc=sksc+ksc;
    }
    //---------------------------------------------------


    //-----------------------------------------------------
    }


    //---------------------------------------------------------------------------
    int factorial(int n)
    {
    if(n==0) return 1;
    else return n*factorial(n-1);
    };
    //=================================================
    void __fastcall TForm1::BitBtn2Click(TObject *Sender)
    {
    int k=0;
    int prov[5][5];

    for(i=1;i<StringGrid1->ColCount;i++)
    {
    for(j=1;j<StringGrid1->RowCount;j++)
    {
    if(StringGrid1->Cells[i][j]=="") k=1;
    }
    }
    if(k==0)
    {

    for(i=1;i<StringGrid1->ColCount;i++)
    {
    for(j=1;j<StringGrid1->RowCount;j++)
    {
    ish[j][i]=StrToInt(StringGrid1->Cells[i][j]);
    if(j!=7)
    {
    if(ish[j][i]==StrToInt(ComboBox1->Text)) ish[j][i]=StrToInt(ComboBox2->Text);
    if(ish[j][i]==StrToInt(ComboBox3->Text)) ish[j][i]=StrToInt(ComboBox4->Text);
    }
    Label1->Caption="";
    }
    }
    }
    else Label1->Caption="????????? ???? ???????";
    for(i=1;i<StringGrid1->RowCount;i++) pt[i].val=0;
    for(j=1;j<=StringGrid1->RowCount;j++)
    {
    pt[(ish[j][7])].val++;
    if(j==1) pt[ish[j][7]].down=j;
    if(ish[j][7]!=ish[j-1][7])
    {
    pt[ish[j][7]].down=j;
    pt[ish[j-1][7]].up=j-1;
    }
    }
    float kiz;
    //===============================================================
    //===============================================================
    //===============================================================
    int ii,jj,ll,summator=0,soch=0;
    float sigma=0,hh=0;
    skiz=0;
    for(ii=1;ii<StringGrid1->ColCount-1;ii++)
    {
    kiz=0;
    sigma=0;
    soch=0;
    for(i=1;i<5;i++)
    {
    for(j=1;j<5;j++) prov[i][j]=0;
    }
    for(i=1;i<5;i++)
    {
    if(pt[i].val>1)
    {
    for(ll=1;ll<5;ll++)
    {
    if(pt[ll].val>1)
    {
    summator=0;
    if(prov[i][ll]==0 && i!=ll)
    {
    for(j=pt[i].down;j<=pt[i].up;j++)
    {
    for(jj=pt[ll].down;jj<=pt[ll].up;jj++)
    {
    if(ish[j][ii]!=ish[jj][ii]) summator++;
    }
    }
    hh=pt[i].val*pt[ll].val;
    hh=summator/hh;
    sigma=sigma+hh;
    prov[i][ll]=1;
    soch++;

    }

    }
    }

    }
    //------------------------------------------------------------

    }
    kiz=0;
    if(soch!=0) kiz=sigma/soch;
    StringGrid3->Cells[ii][0]=kiz;
    skiz=skiz+kiz;
    }
    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::BitBtn3Click(TObject *Sender)
    {
    float s1,s2;
    for(i=1;i<StringGrid4->ColCount;i++)
    {
    s1=StrToFloat(StringGrid2->Cells[i][0]);
    s2=StrToFloat(StringGrid3->Cells[i][0]);
    StringGrid4->Cells[i][0]=s1*s2;
    }
    Edit1->Text=(skiz*sksc)/(StringGrid1->ColCount-2)/(StringGrid1->ColCount-2);
    //-----------------??????????----------------------------------
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    rang1[i].x=i;
    rang1[i].k=StrToFloat(StringGrid4->Cells[i][0]);
    }
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    for(j=1;j<StringGrid1->ColCount-1;j++)
    {
    if(rang1[j].k<rang1[j+1].k)
    {
    b.k=rang1[j+1].k;
    b.x=rang1[j+1].x;
    rang1[j+1].k=rang1[j].k;
    rang1[j+1].x=rang1[j].x;
    rang1[j].x=b.x;
    rang1[j].k=b.k;
    }
    }
    }
    for(i=0;i<StringGrid1->ColCount-2;i++) StringGrid5->Cells[0][i]=rang1[i+1].x;
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    rang2[i].x=i;
    rang2[i].k=StrToFloat(StringGrid2->Cells[i][0]);
    rang3[i].x=i;
    rang3[i].k=StrToFloat(StringGrid3->Cells[i][0]);
    }
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    for(j=1;j<StringGrid1->ColCount-1;j++)
    {
    if(rang2[j].k<rang2[j+1].k)
    {
    b.k=rang2[j+1].k;
    b.x=rang2[j+1].x;
    rang2[j+1].k=rang2[j].k;
    rang2[j+1].x=rang2[j].x;
    rang2[j].x=b.x;
    rang2[j].k=b.k;
    }
    }
    }
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    for(j=1;j<StringGrid1->ColCount-1;j++)
    {
    if(rang3[j].k<rang3[j+1].k)
    {
    b.k=rang3[j+1].k;
    b.x=rang3[j+1].x;
    rang3[j+1].k=rang3[j].k;
    rang3[j+1].x=rang3[j].x;
    rang3[j].x=b.x;
    rang3[j].k=b.k;
    }
    }
    }
    //----------------------------for "+" ---------------
    for(i=0;i<8;i++) rang4[i].k=0;
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    rang4[i].x=i;
    for(j=1;j<StringGrid1->ColCount-1;j++)
    {
    if(rang2[j].x==i)
    {
    rang4[i].k=rang4[i].k+j;
    }
    if(rang3[j].x==i)
    {
    rang4[i].k=rang4[i].k+j;
    }
    }
    }
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    for(j=1;j<StringGrid1->ColCount-1;j++)
    {
    if(rang4[j].k>rang4[j+1].k)
    {
    b.k=rang4[j+1].k;
    b.x=rang4[j+1].x;
    rang4[j+1].k=rang4[j].k;
    rang4[j+1].x=rang4[j].x;
    rang4[j].x=b.x;
    rang4[j].k=b.k;
    }
    }
    }
    for(i=0;i<8;i++) rang5[i].k=1;
    for(i=0;i<StringGrid1->ColCount-2;i++) StringGrid6->Cells[0][i]=rang4[i+1].x;
    //---------------for multiplication---------------
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    for(j=1;j<StringGrid1->ColCount-1;j++)
    {
    rang5[i].x=i;

    if(rang2[j].x==i)
    {
    rang5[i].k=rang5[i].k*j;
    }
    if(rang3[j].x==i)
    {
    rang5[i].k=rang5[i].k*j;
    }
    }
    }
    for(i=1;i<StringGrid1->ColCount-1;i++)
    {
    for(j=1;j<StringGrid1->ColCount-1;j++)
    {
    if(rang5[j].k>rang5[j+1].k)
    {
    b.k=rang5[j+1].k;
    b.x=rang5[j+1].x;
    rang5[j+1].k=rang5[j].k;
    rang5[j+1].x=rang5[j].x;
    rang5[j].x=b.x;
    rang5[j].k=b.k;
    }
    }
    }
    }
    //---------------------------------------------------------------------------[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
     
Загрузка...
Похожие Темы - Помогите Прокомментировать Программу
  1. limbra
    Ответов:
    3
    Просмотров:
    44
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    97
  3. Ruska132
    Ответов:
    34
    Просмотров:
    264
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    145
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    62

Поделиться этой страницей