امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
az hamoon komak ha mikham.
نویسنده پیام
mbmonline آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 2
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
az hamoon komak ha mikham.
[code#include<graphics.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
#include<stdio.h>
enum bool{false,true};
//////////////////////////////////STRUCTS/////////////////////////////////
int matrix[100][100];
const int maxn=100;
int a[maxn];
int sw2=0;
bool b=false;
struct edgestruct{
int start;
int end;
};
struct position{
int x;
int y;
};
////////////////////////////FUNCTIONS/////////////////////////////////////
void hamiltoni(int i,int n){
if ( i ==n+1 )
{
bool bb=true;
int first=a[0];
int prev=a[0];
for(int ii=1;ii<n;ii++){
if(matrix[prev][a[ii]]==0)
bb=(false&&bb);
else
bb=true&&
prev=a[ii];
}
if(bb && matrix[prev][first]){
b=(true);
cout<<"\nTHE HAMILTONI CYCLE:"<<endl;
for(int iii=0;iii<n;iii++)
cout<<a[iii]<<" ";
cout<<a[0]<<endl;
}
}
else
{
for ( int j = i ; j <=n ; j++ )
{
int temp=a[j];
a[j]=a[i];
a[i]=temp;
hamiltoni(i+1,n);
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}

}

void print(int a[][100],int n){
int e=0;
int ec=0;
cleardevice();
edgestruct edge[100]={0};
edgestruct edgec[100]={0};
position vertexpos[100]={0};
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(a[i][j]){
edge[e].start=i;
edge[e].end=j;
e++;
}
for(i=0;i<n;i++)
for( j=0;j<n;j++)
if(a[i][j]==0){
edgec[ec].start=i;
edgec[ec].end=j;
ec++;
}
e/=2;
ec/=2;
randomize();
for(i=0;i<n;i++){
vertexpos[i].x=random(650)+10;
vertexpos[i].y=random(350)+10;
}
char *temp;
for(i=0;i<n;i++){
setcolor(12);
fillellipse(vertexpos[i].x,vertexpos[i].y,10,10);
temp[0]=48+i;
temp[1]='\0';
setcolor(0);
outtextxy((vertexpos[i].x-3),(vertexpos[i].y-2),temp) ;
}
for(i=0;i<n;i++)
for( j=0;j<2*e;j++)
if(edge[j].start==i){
setcolor(3);

line(vertexpos[i].x,vertexpos[i].y,vertexpos[edge[j].end].x,vertexpos[edge[j].end].y);
}
getch();
if(!sw2)
outtextxy(100,400,"NOW YOU CAN SEE COMPELEMENT GRAPH OF THIS GRAPH ");

else
outtextxy(160,400,"THE COMPLENET OF THIS GRAPH IS EMPTY ");
for(i=0;i<n;i++){
setcolor(12);
fillellipse(vertexpos[i].x,vertexpos[i].y,10,10);
temp[0]=48+i;
temp[1]='\0';
setcolor(0);
outtextxy((vertexpos[i].x-3),(vertexpos[i].y-2),temp) ;
}

for(i=0;i<n;i++)
for( j=0;j<2*ec;j++)
if(edgec[j].start==i){
setcolor(4);

line(vertexpos[i].x,vertexpos[i].y,vertexpos[edgec[j].end].x,vertexpos[edgec[j].end].y);
}
getch();
}
void printhomo(int a[][100],int n){
int e=0;
cleardevice();
edgestruct edge[100]={0};
position vertexpos[100]={0};
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(a[i][j]){
edge[e].start=i;
edge[e].end=j;
e++;
}
e/=2;
randomize();
for(i=0;i<n;i++){
vertexpos[i].x=random(650)+10;
vertexpos[i].y=random(325)+10;
}
char *temp;
for(i=0;i<n;i++){
setcolor(12);
fillellipse(vertexpos[i].x,vertexpos[i].y,10,10);
temp[0]=48+i;
temp[1]='\0';
setcolor(0);
outtextxy((vertexpos[i].x-3),(vertexpos[i].y-2),temp) ;
}
for(i=0;i<n;i++)
for( j=0;j<2*e;j++)
if(edge[j].start==i){
setcolor(YELLOW);

line(vertexpos[i].x,vertexpos[i].y,vertexpos[edge[j].end].x,vertexpos[edge[j].end].y);
}
}
//////////////////////////////////MAIN////////////////////////////////////////
void main(){
clrscr();
///////////////////////////////MotaghaierHa/////////////////////////////////////
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
int deg[100]={0};
int jam=0;
int dr;
int n,sw;
int temp=0;
int i=0,j=0;
/////////////////////////////Gereftane Matris///////////////////////////////////////
printf("Number of Vertexes:");
scanf("%d",&n);
dr=(2*n)-2;
sw=n;
while(i<n){
j=temp;
while(j<n){
if(i==j){
printf("matris[%d][%d]:0\n",i,j);
matrix[i][j]=0;
}
else
do{
printf("matris[%d][%d]:",i,j);
printf("matris[%d][%d]:",j,i);
scanf("%d",&matrix[i][j]);
matrix[j][i]=matrix[i][j];
}while(matrix[i][j]!=0&&matrix[i][j]!=1);
j++;
}
i++;
temp++;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
deg[i]+=matrix[i][j];
printf(" \n degree[%d]=%d\n",i,deg[i]);
}
/////////////////////////GRAFE KAMEL YA MONTAZAM/////////////////////////////////////////////
for(i=0;i<n-1;i++)
if(deg[i]!=deg[i+1])
break;

if ((i==n-1) && (deg[0]==n-1)){
printf("\n\n COMPLETE ");
sw2=1;
}
else if((i==n-1) && (deg[0]!=0) && (deg[0]!=n-1))
printf("\n\n %d-REGULAR ",deg[0]);
else if ((i==n-1) && (deg[0]==0))
printf("\n\n EMPTY ");
else if (i!=n-1)
printf("\n\n NOT COMPLETE,NOT EMPTY,NOT REGULAR");
//////////////////////////HAMBAND YA DERAKHT///////////////////////////////////////////////////
i=0;
while(i<sw){
jam=jam+deg[i];
i++;
}
if(jam==dr){
printf("\n\n TREE "); }
else if (jam>dr){
printf("\n\n CONNECTED , THE GRAPH IS NOT A TREE "); }
else if(jam<dr) {
printf("\n\n DISCONNECTED , THE GRAPH IS NOT A TREE ");}
//////////////////////////////OILERY YA NA////////////////////////////////////////////////////////////////////////////////
i=0;
while(i<n&&deg[i]%2==0&&deg[i]!=0 )
{
i++;
}
if(i==n)
printf("\n\n EULERIAN GRAPH ");
else printf("\n\n THE GRAPH IS NOT EULERIAN ");
//////////////////////////HAMILTONI YA na /////////////////////////////////////////////////////
for ( int kk = 1 ; kk <=n ; kk++ )
a[kk]=kk;
if(n>2){
hamiltoni(1,n);
if(b) printf("HAMILTONIAN\n");
else {
printf(" \n NOT HAMILTONIAN ");
}
}else printf("\n NOT HAMILTONIAN ");
getch();
print(matrix,n);
cleardevice();
setcolor(3);
outtextxy(100,150,"NOW YOU CAN SEE 5 HOMOMORFIC GRAPHS OF THIS GRAPH");
getch();
for(i=0;i<5;i++){
printhomo(matrix,n);
delay(1000);
}
}][/code]
۲۸-بهمن-۱۳۸۴, ۱۹:۰۸:۰۴
ارسال‌ها


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Sad komak baraye ersale mail mohamadpk 2 2,082 ۰۹-تير-۱۳۸۷, ۲۱:۴۳:۴۰
آخرین ارسال: mohamadpk

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS