GN_2_Lant_Ciclu_Aplicatii_0 prof. Craina S Lant in GN 1) graf.cpp – citire_ma_f, afis_ma //citire/afisare ma din fis #include<iostream> #include<fstream> using namespace std; int i,j,k,n,m,a[20][20],x,y; void citire_ma_f() {ifstream f("graf.txt"); f>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) f>>a[i][j]; f.close(); } void afisare_ma() {int i,j; cout<<"\n Matricea de adiacenta:"<<endl; for(i=1;i<=n;i++) {for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } } 1 2 4 5 3 {Lant in graf –sa se verif dc o secventa de vf reprez un lant elem sau ne-elem intr-un GN, nr de vf si matricea de adiacenta se citesc de la tastatura, iar secventa testata se gas in fis “lant.txt” (vf-le sunt scrise in fis pe un singur rand, separate prin spatii} #include<iostream> #include<fstream> #include "graf.cpp" using namespace std; int ok,z[50]; void verif_lant() { ifstream f("lant1.txt"); while(!f.eof()) { do {k++; f>>z[k];} while(z[k]<1 || z[k]>n); } f.close(); cout<<"\n Secventa de varfuri este:\n"; for(i=1;i<=k;i++) cout<<z[i]<<" "; cout<<endl; ok=1; for(i=1;i<=k-1;i++) if(a[z[i]] [z[i+1]]==0) ok=0; if(ok) cout<<"\n Este lant"; else cout<<"\n Nu este lant"; if (ok) {for(i=1;i<=k-1;i++) for(j=i+1; j<=k; j++) if(z[i]==z[j]) ok=0; if(ok) cout<<"\n Elementar"; else cout<<"\n Ne elementar"; } } int main() {citire_ma_f(); afisare_ma(); verif_lant(); return 0; } 2) void verific_lant() - citire secv “lant1.txt” intr-un vector z[k] - afis vector z[k] - verific_lant dc nu exista muchie intre vf consec din secv ok=0 este/nu este lant “graf.txt" 5 dc trece de 2 ori prin ac vf ok=0 este / nu este elem 01010 10110 01011 11100 00100 “lant1.txt" 21453 “lant2.txt" 4 “lant3.txt" 12353 1435 1