Вы находитесь на странице: 1из 13

Министерство образования республики Молдова

Технический университет Молдовы


Кафедра «Информационные технологии»

Реферат
Лабораторная работа
номер 1.

Выполнил студент группы.TI-227 Мунтян Александр


Проверил : Алина Гайдаржи
Цель работы Научиться использовать свои знания по
дискретной математике чтобы преобразовывать их в
программы.
Программа:
#include <stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
int Matrita_intydentnosti[30][30]={0},
Matrita_smejnosti[30][30]={0}, Spisok[30][30]={0};
int Kol_vershin, Kol_linii,option;
int i, j, m, n, l = 0, k = 0,a= 0;
int main()
{
while(1)
{
printf("\n1.preobrazovanie iz spiska.\n");
printf("2.preobrazovanie iz matrici incidence.\n");
printf("3.preobrazovanie iz matrici smejnosti.\n");
printf("4.exit\n");
printf("\n choise option: ");
scanf("%d",&option);
if(option==1)
{
printf("Spisok");
printf("\n vvedi colicestvo vershin: ");
scanf("%d", &Kol_vershin);
for (m = 0; m < Kol_vershin; m++)
{
printf("%d: ", m + 1);
for (n = 0; n < Kol_vershin; n++)
{
scanf("%d", &Spisok[m][n]);
if (Spisok[m][n] != 0)
{
k++;
}
}
printf("\n");
}
getch();
int z[k], x[k];
for (m = 0; m < Kol_vershin; m++)
{
for (n = 0; n < Kol_vershin; n++)
{
if (Spisok[m][n] != 0)
{
z[l] = m;
x[l] = Spisok[m][n] - 1;
l++;
}
}
}
for (i = 0; i < k; i++)
{
printf("%d ", z[i]);
printf("%d\n ", x[i]);
}
for (i = 0; i < k; i++)
Matrita_smejnosti[z[i]][x[i]] = 1;
printf("\n matrica smejnosti: \n");
for (m = 0; m < Kol_vershin; m++)
{
for (n = 0; n < Kol_vershin; n++)
{
printf("%d ", Matrita_smejnosti[m][n]);
}
printf("\n");
}
printf("\n matrica incidence: ");
int v[k],b[k];
for(i=0;i<Kol_vershin;i++)
{
for(j=0;j<Kol_vershin;j++)
{
if(Matrita_smejnosti[i][j]==1)
{
v[a]=i;
b[a]=j;
a++;
}
}
printf("\n");
}
for(i=0;i<l;i++)
{
for(j=0;j<Kol_vershin;j++)
{
Matrita_intydentnosti [i][b[i]]=1;
Matrita_intydentnosti [i][v[i]]=-1;
if(v[i]==b[i])
{
Matrita_intydentnosti[i][v[i]]+=3;
}
printf("%d ",Matrita_intydentnosti[i][j]);

}
printf("\n");
}
}
if(option==2)
{
printf("\n vvedi colicestvo vershin: ");
scanf("%d",&Kol_vershin);
printf("\n vvedi colicestvo reber: ");
scanf("%d",&Kol_linii);
printf("\n matrica incidence: \n");
for(i=0;i<Kol_linii;i++)
{
for(j=0;j<Kol_vershin;j++)
{
scanf("%d",&Matrita_intydentnosti[i][j]);
}
}
printf("\n matrica incidence : \n");
for(i=0;i<Kol_linii;i++)
{
printf("\n");
for(j=0;j<Kol_vershin;j++)
{
printf(" %d",Matrita_intydentnosti[i][j]);
}
}
getch();
printf("\n matrica smejnosti: \n");
for(i=0;i<Kol_linii;i++)
{
for(j=0;j<Kol_vershin;j++)
{
if(Matrita_intydentnosti[i][j]==-1)
{
m=j;
}
if(Matrita_intydentnosti[i][j]==1)
{
n=j;
}
if(Matrita_intydentnosti[i][j]==2)
{
m=j;
n=j;
}
}
Matrita_smejnosti[m][n]=1;
}
for(m=0;m<Kol_vershin;m++)
{
printf("\n");
for(n=0;n<Kol_vershin;n++)
{
printf("%d ",Matrita_smejnosti[m][n]);
}
}
getch();
printf("\n spisok: \n");
for(m=0;m<Kol_vershin;m++)
{
printf("%d: ",m+1);
for(n=0;n<Kol_vershin;n++)
{
if(Matrita_smejnosti[m][n]==1)
printf("%d",n+1);
}
printf("0\n");
}
getch();
}
if(option==3)
{
printf("\n vvedi colicestvo vershin: ");
scanf("%d",&Kol_vershin);
printf("\n matrica smejnosti: \n");
for(i=0;i<Kol_vershin;i++)
{
for(j=0;j<Kol_vershin;j++)
{
scanf("%d",&Matrita_smejnosti[i][j]);
if(Matrita_smejnosti[i][j]==1)
{
l++;

}
}
}
printf("\n spisok: \n");
for(m=0;m<Kol_vershin;m++)
{
printf("%d: ",m+1);
for(n=0;n<Kol_vershin;n++)
{
if(Matrita_smejnosti[m][n]==1)
printf("%d ",n+1);

}
printf("0\n");
}
getch();
printf(" \n matrica incidence:");
int v[l],b[l];
for(i=0;i<Kol_vershin;i++)
{
for(j=0;j<Kol_vershin;j++)
{
if(Matrita_smejnosti[i][j]==1)
{
v[k]=i;
b[k]=j;
k++;
}
}
printf("\n");
}
for(i=0;i<l;i++)
{
for(j=0;j<Kol_vershin;j++)
{
Matrita_intydentnosti [i][b[i]]=1;
Matrita_intydentnosti [i][v[i]]=-1;
if(v[i]==b[i])
{
Matrita_intydentnosti[i][v[i]]+=3;
}
printf("%d ",Matrita_intydentnosti[i][j]);

}
printf("\n");
}
}
if(option==4)
{
exit(0);

}
}
}

Вам также может понравиться