1 - 7, 10;
*/
#include "stdio.h"
#include "conio.h"
#include "iostream.h"
int a[60][60],S=0;
int i,j,n,m;
void read() // Functia de citire de la tastatura
{
printf("Nr de linii si coloane: "); scanf("%d",&n);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
printf("Legatura intre %d - %d ? ",i,j);
scanf("%d",&a[i][j]);
}
}
void print() // Functia de afisare pe ecran
{
for(i=1;i<=n;i++)
{
printf("\n");
for(j=1;j<=n;j++)
printf("%3d",a[i][j]);
}
}
void fread() // Functia de citire din fisier
{
FILE *f=fopen("in.txt","r");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fscanf(f,"%d",&a[i][j]);
fclose(f);
printf(" S-a citit Fisierul");
printf("\n\nPress any key to continue...");
}
void fprint() // Functia de scriere in fisier
{
FILE *f=fopen("out.txt","w");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fprintf(f,"%3d",a[i][j]);
fprintf(f,"\n");
}
void exit(int x) // Exterior
{
FILE *f=fopen("exit.txt","w");
printf("\n\n Exit: \n");
for(j=1;j<=n;j++)
{
if(a[x][j]==1 && x!=j)
{
printf("\n %d-%d - %d",x,j,a[x][j]);
fprintf(f,"\n %d-%d - %d",x,j,a[x][j]);
}
}
}
void enter(int x) // Interior
{
FILE *f=fopen("enter.txt","w");
printf("\n\n Enter: \n");
for(i=1;i<=n;i++)
{
if(a[i][x]==1 && x!=i)
{
printf("\n %d-%d - %d",i,x,a[i][x]);
fprintf(f,"\n %d-%d - %d",i,x,a[i][x]);
}
}
}
void grad() // Gradul Minim, Maxim si Mediu
{ int g[100],gr=0,k=1;
int aux;
g[k]=0;
FILE *f=fopen("grad.txt","w");
for(k=1;k<=n*2;)
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
g[k]=a[i][j];
k++;
}
}
for(i=1;i<=n*n;i++)
gr+=g[i];
printf("\n\nGradul Maxim: %d ",gr);
fprintf(f,"\n\nGradul Maxim: %d ",gr);
for(i=1;i<=n*n;i++)
for(j=1;j<=n*n;j++)
if(g[i]
aux=g[i];
g[i]=g[j];
g[j]=aux;
}
printf("\n\nGradul minim: %d",aux);
fprintf(f,"\n\nGradul minim: %d",aux);
float med;
med=(float(gr)/(n*n));
printf("\n\nGradul mediu: %3.2f",med);
fprintf(f,"\n\nGradul mediu: %3.2f",med);
}
void simetric() // Tipul Grafului: Simetric
{ int f,g,k,x=0,s1[100],s2[100],y=0;
FILE *z=fopen("simetric.txt","w");
// Calculeaza numarul de puncte de deasupra si de sub diagonala
for(i=1;i
// Deasupra diagonalei principale
for(k=1;k<=x;)
for(j=2;j<=n;j++)
for(i=1;i
s1[k]=a[i][j];
k++;
}
// Sub diagonala principala
for(k=1;k<=x;)
for(f=2;f<=n;f++)
for(g=1;g<=f-1;g++)
{
s2[k]=a[f][g];
k++;
}
// Afisare S1
// for(k=1;k<=x;k++)
// printf("%3d",s1[k]);
// printf("\n");
// Afisare S2
// for(k=1;k<=x;k++)
// printf("%3d",s2[k]);
// Comparare
for(k=1;k<=x;k++)
if(s1[k]!=s2[k])
y++;
// Decizia: Simetric
if(y!=0)
{
printf("\n\tNu-i Simetric\n");
fprintf(z,"\n\tNu-i Simetric\n");
}
else
{
printf("\n\tSIMETRIC\n");
fprintf(z,"\n\tSIMETRIC\n");
}
}
void complet()
{ int x=1;
FILE *f=fopen("complet.txt","w");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==0 && i!=j)
x=0;
if(x==0)
{
printf("\n Nu-i complet \n");
fprintf(f,"\n Nu-i complet");
}
else
{
printf("\n Ii Complet \n");
fprintf(f," Ii Complet \n");
}
fclose(f);
}
void tranzitiv()
{ int x=1,k;
FILE *f=fopen("tranzitiv.txt","w");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
if(a[i][j]==1 && a[j][k]==1 && a[i][k]==0)
x=0;
if(x==0)
{
printf("\n Nu-i tranzitiv \n");
fprintf(f,"\n Nu-i tranzitiv ");
}
else
{
printf("\n Ii Tranzitiv \n");
fprintf(f," Ii Tranzitiv \n");
}
fclose(f);
}
void antisimetric() // Tipul Grafului: Simetric
{ int f,g,k,x=1,s1[100],s2[100];
FILE *z=fopen("antisimetric.txt","w");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==1 && a[j][i]==1)
x=0;
// Decizia Finala: Antisimetric
if(x!=0)
{
printf("\n\tNu-i AntiSimetric\n");
fprintf(z,"\n\tNu-i AntiSimetric\n");
}
else
{
printf("\n\tANTISIMETRIC\n");
fprintf(z,"\n\tANTISIMETRIC\n");
}
}
void regulat() // Gradul Minim, Maxim si Mediu
{ int g[100],k=0,x=0;
int aux=0;
g[k]=0;
FILE *f=fopen("regulat.txt","w");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i!=j)
x+=a[i][j];
}
g[k]=x;
x=0;
k++;
}
k--;
printf("\nk= %d",k);
for(i=0;i<=k;i++)
{
printf("\n g[%d]= %d",i,g[i]);
if(g[i]!=k)
aux++;
}
if(aux==0)
{
printf("\n\nGraf regulat de grad %d",k);
fprintf(f,"\n\nGraf regulat de grad %d",k);
}
else
{
printf("\n\nGraf neregulat");
fprintf(f,"\n\nGraf Neregulat");
}
}
void p-graf()
{
//etc...;
}
void main()
{ int x;
clrscr();
fread();
getch();
clrscr();
// printf("\nNodul: ");
// scanf("%d",&x);
printf("\n");
print();
printf("\n");
fprint();
// exit(x);
// enter(x);
// grad();
// simetric();
// complet();
// tranzitiv();
// antisimetric();
// regulat();
getch();
}