Академический Документы
Профессиональный Документы
Культура Документы
Республики Молдова
Технический Университет Молдовы
Департамент Физики
Отчет
по лабораторной работе Nr.6.
по Дискретной математике
Тема: Хранение графов в памяти ЭВМ.
Вариант 10
Кишинев – 2023
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#define max 1000
int a[100]
[100],b[100],n,m,j,i,v[100],min=1000,k=1,i1,z=0,numar
=0,elem=1001,c[100],loc,q=1;
printf("|");
for(l=1;l<=h;l++) if (l%5==0)
printf("|"); else printf("_"); printf("\n");
for (i=1;i<n;i++){
if(i>=m) printf("|V%2d
|",k++);
else
printf("|x%2d |",i);
for (j=1;j<m;j++)
if(a[i][j]==1000) printf(" + |");
else
printf("%4d|",a[i][j]); printf("\n|");
for(l=1;l<=h;l++) if(l%5==0)printf("|"); else printf("_");
printf("\n"); }
}
for(i2=j2+1;i2<m;i2++) //verific
care e nodul urmator ce formeaza drumul
if( a[n-1][j2]!=1000 && a[j2][i2]!
=1000 ) {
if( (a[n-1][j2]-a[j2][i2] )== a[n-1]
[i2])
{
d_min(i2); elem = i2; // apelez
recursia si salvez elementul care apeleaza recursia
}
}
}
int main () {
system("COLOR F2");
printf("\nIntroduce-ti Graful
Ponderat : \n\n");
//introduc graful ponderat
for(i=1;i<n;i++)
for(j=1;j<n;j++)
scanf("%d",&a[i][j]);
// initializez v0
for (i=1;i<n;i++)
a[n][i]=a[i][n-1]; n++;
while(1) {
for(j=1;j<m;j++){
for(i=j+1;i<m;i++)
if( a[n-1][i]!=1000 && a[j][i]!
=1000 ) {
if( (a[n-1][i]+ a[j][i] )< min)
min=(a[n-1][i]+ a[j][i] );
}
if(j==(m-1)) min=0;
a[n][j]=min; min=1000;
}
for(i1=1;i1<m;i1++)
if(a[n-1][i1] == a[n][i1]) k++;
if( k == m ){ n++; k=1; goto Mw; }
else { k=1; n++; }
}
Mw:
printf("\n\n\n\tBela-Kalaba :");
printf("\n\n");
afisare(a,n,m);
printf("\n\n\t\tLungimea drumului
minim = %d \n",a[n-1][1]);
printf("\n\t***Drumurile minime*** \
n");
d_min(1);
getch();
}