| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > найти минимальное остовное дерево |
| Автор: KingSli 26.6.2012, 20:11 |
| #include <vcl.h> #pragma hdrstop #include «Unit21.h» // – #pragma package (smart_init) #include «math.h» #pragma resource «*.dfm» TForm1 *Form1; int n=3; // – __fastcall TForm1:TForm1 (TComponent* Owner) : TForm(Owner) { } // – void __fastcall TForm1: Button1Click (TObject *Sender) { n=StrToInt (Edit1->Text); StringGrid1->ColCount=n; StringGrid1->RowCount=n; StringGrid2->ColCount=n; StringGrid2->RowCount=n; StringGrid1->Visible=true; BitBtn1->Enabled=true; Button1->Enabled=false; } // – void __fastcall TForm1: BitBtn1Click (TObject *Sender) { BitBtn2->Enabled=true; BitBtn1->Enabled=false; Button1->Enabled=false; StringGrid2->Visible=true; int a[10] [10]; int mas[3] [10]; int kmas=0; int versh[10]; for (int i=0; i<n; i++) versh[i]=0; versh[1]=1; for (int i=0; i<n; i++) for (int j=0; j<n; j++) a[i] [j]=1000; // ******* for (int i=0; i<n; i++) for (int j=0; j<n; j++) if (StringGrid1->Cells[i] [j]!=»») a[i] [j]=StrToInt (StringGrid1->Cells[i] [j]); // ********** int k=n-1; while (k!=0) { int buf=1000; int x, y; for (int i=1; i<n; i++) for (int j=0; j<i; j++) { if ((a[i] [j]<buf) && ((versh[i]==1) || (versh[j]==1)) && (versh[i]!=versh[j])) {buf=a[i] [j]; x=i; y=j;} } if (versh[x]==1) versh[y]=1; else versh[x]=1; a[x] [y]=1000; mas[0] [kmas]=x; mas[1] [kmas]=y; mas[2] [kmas]=buf; kmas++; // ***** k –; } /// *********************** for (int i=0; i<kmas; i++) StringGrid2->Cells [mas[0] [i]] [mas[1] [i]]=IntToStr (mas[2] [i]); // ********** // рисование int krug[2] [10]; Form1->Canvas->Pen->Color=clBlack; for (int i=0; i<n; i++) { krug[0] [i]=400+100*sin (6.28*i/n); krug[1] [i]=400+100*cos (6.28*i/n); } for (int i=0; i<kmas; i++) { Form1->Canvas->MoveTo (krug[0] [mas[0] [i]], krug[1] [mas[0] [i]]); Form1->Canvas->LineTo (krug[0] [mas[1] [i]], krug[1] [mas[1] [i]]); } } // – void __fastcall TForm1: BitBtn2Click (TObject *Sender) { Button1->Enabled=true; StringGrid1->Visible=false; StringGrid2->Visible=false; BitBtn2->Enabled=false; Form1->Canvas->Pen->Color=clBtnFace; Form1->Canvas->Rectangle (295, 295,505, 505); } |
| Автор: Earnest 27.6.2012, 07:02 |
| И? Какого ответа ты ждешь то? Что мешает сделать так, "чтобы программа работала в VC"? |