1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tập kiểm tra ôn thi cao học môn kỹ thuật lập trình

17 405 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 103,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

//Bai 1 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20];

FILE *f;

void ReadData(void){

int i,j,k=0;char *s,*s1;

f=fopen("dothi.in","r");

fgets(s,255,f);

n=atoi(s);

for (i=1;i<=n;i++) {

for (j=1;j<=n;j++) a[i][j]=0;

chuaxet[i]=1;}

for (i=1;i<=n;i++){

fgets(s,255,f);

for (j=0;j<=strlen(s);j++)

if (s[j]==' ' || s[j]=='\n' || s[j]=='\t' || s[j]=='\r' || s[j]=='\0') {if (k>0)

{s1[k]='\0';k=0;a[i][atoi(s1)]=1;}}

else s1[k++]=s[j];

}

fclose(f);

}

void DFS(int u){

int v;

fprintf(f,"%3d",u);

chuaxet[u]=0;

for (v=1;v<=n;v++)

if (a[u][v]==1 && chuaxet[v]) DFS(v);

}

void main(void){

int i;

clrscr();

ReadData();

f=fopen("ketqua.out","w");

for (i=1;i<=n;i++)

if (chuaxet[i]) DFS(i);

fclose(f);

printf("Da xong");

getch();

}

//Bai 2 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],solt=0,trace[20];

FILE *f;

void ReadData(void){

int i,j;

f=fopen("F:\dothi.in","r");

fscanf(f,"%d",&n);

for (i=1;i<=n;i++) chuaxet[i]=1;

for (i=1;i<=n;i++){

for (j=1;j<=n;j++) fscanf(f,"%d",&a[i][j]);

}

fclose(f);

}

Trang 2

void DFS(int u){

int v;

fprintf(f,"%3d",u);

chuaxet[u]=0;

trace[u]=solt;

for (v=1;v<=n;v++)

if (a[u][v]==1 && chuaxet[v]) DFS(v); }

void WriteData(void){

int i,j;

f=fopen("F:\ketqua.out","w");

fprintf(f,"%d",solt);

for (i=1;i<=solt;i++){

fprintf(f,"%s","\n");

for (j=1;j<=n;j++)

if (trace[j]==i) fprintf(f,"%3d",j); }

fclose (f);

}

void main(void){

int i;

clrscr();

ReadData();

for (i=1;i<=n;i++)

if (chuaxet[i]) { solt++; DFS(i);}

WriteData();

printf("Da xong");

getch();

}

//Bai 3 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],s,t,truoc[20]; FILE *f;

void ReadData(void){

int i,j;

f=fopen("F:\dothi3.in","r");

fscanf(f,"%d%d%d",&n,&s,&t);

for (i=1;i<=n;i++) {chuaxet[i]=1;truoc[i]=0;} for (i=1;i<=n;i++){

for (j=1;j<=n;j++) fscanf(f,"%d",&a[i][j]); }

fclose(f);

}

Trang 3

void DFS(int u){

int v;

//fprintf(f,"%3d",u);

chuaxet[u]=0;

for (v=1;v<=n;v++)

if (a[u][v]==1 && chuaxet[v]) {truoc[v]=u;DFS(v);}

}

void WriteData(void){

int i,j;

f=fopen("F:\ketqua3.out","w");

if (truoc[t]==0) fprintf(f,"%s","Do thi khong lien thong");

else {

fprintf(f,"%3d",t);i=t;

while (truoc[i])

{fprintf(f,"%3d",truoc[i]);i=truoc[i];}

}

fclose (f);

}

void main(void){

clrscr();

ReadData();

DFS(s);

WriteData();

printf("Da xong");

getch();

}

//Bai 4 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

struct DSCanh {

int Dau;

int Cuoi;};

int a[20][20],n,chuaxet[20],m,Socanh=0;

DSCanh canh[50],cay[50];

FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","r");

fscanf(f,"%d%d",&n,&m);

for (i=1;i<=n;i++) {chuaxet[i]=1;

for (j=1;j<=n;j++) a[i][j]=0;}

for (i=1;i<=m;i++) fscanf(f,"%d%d",&canh[i].Dau,&canh[i].Cuoi); fclose(f);

for (i=1;i<=m;i++)

{a[canh[i].Dau][canh[i].Cuoi]=1;a[canh[i].Cuoi][canh[i].Dau]=1; }

}

void Cay_khung(int u){

int v;

chuaxet[u]=0;

for (v=1;v<=n;v++)

if (a[u][v]==1 && chuaxet[v])

{Socanh++;cay[Socanh].Dau=u;cay[Socanh].Cuoi=v;Cay_khung(v);} }

void WriteData(void){

int i;

f=fopen("ketqua.out","w");

Trang 4

if (Socanh!=n-1) fprintf(f,"%s","Do thi khong lien thong"); else {fprintf(f,"%3d%3d",n,Socanh);

for (i=1;i<=Socanh;i++)

fprintf(f,"%s%3d%3d","\n",cay[i].Dau,cay[i].Cuoi);} fclose (f);

}

void main(void){

clrscr();

ReadData();

Cay_khung(1);

WriteData();

printf("Da xong");

getch();

}

//Bai 5 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],Sodinh=0,Solt=0,Soltcau;

FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","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);

}

void DFS(int u){

int v;

chuaxet[u]=0;

for (v=1;v<=n;v++)

if (a[u][v]==1 && chuaxet[v]) DFS(v);

}

int CanhCau(int i){

int j;

for (j=1;j<=n;j++) chuaxet[j]=1;

chuaxet[i]=0;

Soltcau=0;

for (j=1;j<=n;j++)

if (chuaxet[j]) {Soltcau++;DFS(j);}

if (Soltcau>Solt) return(1);

return(0);

}

void main(void){

int i;

clrscr();

ReadData();

for (i=1;i<=n;i++) chuaxet[i]=1;

for (i=1;i<=n;i++)

if (chuaxet[i]) {Solt++;DFS(i);}

f=fopen("ketqua.out","w");

fprintf(f,"\n");

for (i=1;i<=n;i++)

if (CanhCau(i)) {Sodinh++;fprintf(f,"\n%3d",i);}

rewind(f);

fprintf(f,"%d",Sodinh);

printf("Da xong");

getch();

}

//Bai 6 ( Phan test Do thi)

Trang 5

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],b[20][20],n,chuaxet[20],Socanh=0,Solt=0,Soltcanh; FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","r");

fscanf(f,"%d",&n);

for (i=1;i<=n;i++){

for (j=1;j<=n;j++) fscanf(f,"%d",&b[i][j]);

}

fclose(f);

}

void DFS(int u){

int v;

chuaxet[u]=0;

for (v=1;v<=n;v++)

if (a[u][v]==1 && chuaxet[v]) DFS(v);

}

int CanhCau(int i,int j){

int u,v;

for (u=1;u<=n;u++) chuaxet[u]=1;

for (u=1;u<=n;u++)

for (v=1;v<=n;v++) a[u][v]=b[u][v];

a[i][j]=0;a[j][i]=0;

Soltcanh=0;

for (u=1;u<=n;u++)

if (chuaxet[u]) {Soltcanh++;DFS(u);}

if (Soltcanh>Solt) return(1);

return(0);

}

void main(void){

int i,j;

clrscr();

ReadData();

for (i=1;i<=n;i++) chuaxet[i]=1;

for (i=1;i<=n;i++)

for (j=1;j<=n;j++) a[i][j]=b[i][j];

for (i=1;i<=n;i++)

if (chuaxet[i]) {Solt++;DFS(i);}

f=fopen("ketqua.out","w");

fprintf(f,"\n");

for (i=1;i<=n-1;i++)

for (j=i+1;j<=n;j++)

if (b[i][j])

if (CanhCau(i,j)) {Socanh++;fprintf(f,"\n%3d%3d",i,j);} rewind(f);

fprintf(f,"%d",Socanh);

printf("Da xong");

getch();

}

//Bai 7 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],q[20];

FILE *f;

void ReadData(void){

int i,j,k=0;char *s,*s1;

f=fopen("dothi.in","r");

Trang 6

fgets(s,255,f);

n=atoi(s);

for (i=1;i<=n;i++) {

for (j=1;j<=n;j++) a[i][j]=0;

chuaxet[i]=1;}

for (i=1;i<=n;i++){

fgets(s,255,f);

for (j=0;j<=strlen(s);j++)

if (s[j]==' ' || s[j]=='\n' || s[j]=='\t' || s[j]=='\r' || s[j]=='\0') {if (k>0)

{s1[k]='\0';k=0;a[i][atoi(s1)]=1;}}

else s1[k++]=s[j];

}

fclose(f);

}

void BFS(int u){

int s,v,dau,cuoi;

chuaxet[u]=0;

dau=1;cuoi=1;q[dau]=u;

while (dau<=cuoi){

v=q[dau];

fprintf(f,"%3d",v);

dau++;

for (s=1;s<=n;s++)

if (a[v][s] && chuaxet[s])

{q[++cuoi]=s;chuaxet[s]=0;}

}

}

void main(void){

int i;

clrscr();

ReadData();

f=fopen("ketqua.out","w");

for (i=1;i<=n;i++)

if (chuaxet[i]) BFS(i);

fclose(f);

printf("Da xong");

getch();

}

//Bai 8 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],q[20];

FILE *f;

void ReadData(void){

int i,j,k=0;char *s,*s1;

f=fopen("dothi.in","r");

fgets(s,255,f);

n=atoi(s);

for (i=1;i<=n;i++) {

for (j=1;j<=n;j++) a[i][j]=0;

chuaxet[i]=1;}

for (i=1;i<=n;i++){

fgets(s,255,f);

for (j=0;j<=strlen(s);j++)

if (s[j]==' ' || s[j]=='\n' || s[j]=='\t' || s[j]=='\r' || s[j]=='\0') {if (k>0)

{s1[k]='\0';k=0;a[i][atoi(s1)]=1;}}

else s1[k++]=s[j];

}

Trang 7

fclose(f);

}

void BFS(int u){

int s,v,dau,cuoi;

chuaxet[u]=0;

dau=1;cuoi=1;q[dau]=u;

while (dau<=cuoi){

v=q[dau];

fprintf(f,"%3d",v);

dau++;

for (s=1;s<=n;s++)

if (a[v][s] && chuaxet[s])

{q[++cuoi]=s;chuaxet[s]=0;}

}

}

void main(void){

int i;

clrscr();

ReadData();

f=fopen("ketqua.out","w");

for (i=1;i<=n;i++)

if (chuaxet[i]) BFS(i);

fclose(f);

printf("Da xong");

getch();

}

//Bai 9 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],s,t,truoc[20],q[20];

FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","r");

fscanf(f,"%d%d%d",&n,&s,&t);

for (i=1;i<=n;i++) {chuaxet[i]=1;truoc[i]=0;}

for (i=1;i<=n;i++){

for (j=1;j<=n;j++) fscanf(f,"%d",&a[i][j]);

}

fclose(f);

}

void BFS(int u){

int s,v,dau,cuoi;

chuaxet[u]=0;

dau=1;cuoi=1;q[dau]=u;

while (dau<=cuoi){

v=q[dau];

fprintf(f,"%3d",v);

dau++;

for (s=1;s<=n;s++)

if (a[v][s] && chuaxet[s])

{q[++cuoi]=s;truoc[s]=v;chuaxet[s]=0;} }

}

void WriteData(void){

int i,j;

f=fopen("ketqua.out","w");

if (truoc[t]==0) fprintf(f,"%s","Do thi khong lien thong"); else { fprintf(f,"%3d",t);i=t;

Trang 8

while (truoc[i])

{fprintf(f,"%3d",truoc[i]);i=truoc[i];}

}

fclose (f);

}

void main(void){

clrscr();

ReadData();

BFS(s);

WriteData();

printf("Da xong");

getch();

}

//Bai 10 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],Sodinh=0,Solt=0,Soltcau,q[20]; FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","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);

}

void BFS(int u){

int s,v,dau,cuoi;

chuaxet[u]=0;

dau=1;cuoi=1;q[dau]=u;

while (dau<=cuoi){

v=q[dau];

dau++;

for (s=1;s<=n;s++)

if (a[v][s] && chuaxet[s])

{q[++cuoi]=s;chuaxet[s]=0;}

}

}

int DinhCau(int i){

int j;

for (j=1;j<=n;j++) chuaxet[j]=1;

chuaxet[i]=0;

Soltcau=0;

for (j=1;j<=n;j++)

if (chuaxet[j]) {Soltcau++;BFS(j);}

if (Soltcau>Solt) return(1);

return(0);

}

void main(void){

int i;

clrscr();

ReadData();

for (i=1;i<=n;i++) chuaxet[i]=1;

for (i=1;i<=n;i++)

if (chuaxet[i]) {Solt++;

Trang 9

f=fopen("ketqua.out","w");

fprintf(f,"\n");

for (i=1;i<=n;i++)

if (DinhCau(i)) {Sodinh++;fprintf(f,"\n%3d",i);}

rewind(f);

fprintf(f,"%d",Sodinh);

printf("Da xong");

getch();

}

//Bai 11 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],b[20][20],n,chuaxet[20],Socanh=0, Solt=0,Soltcanh,q[20]; FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","r");

fscanf(f,"%d",&n);

for (i=1;i<=n;i++){

for (j=1;j<=n;j++) fscanf(f,"%d",&b[i][j]);

}

fclose(f);

}

void BFS(int u){

int s,v,dau,cuoi;

chuaxet[u]=0;

dau=1;cuoi=1;q[dau]=u;

while (dau<=cuoi){

v=q[dau];

dau++;

for (s=1;s<=n;s++)

if (a[v][s] && chuaxet[s])

{q[++cuoi]=s;chuaxet[s]=0;}

}

}

int CanhCau(int i,int j){

int u,v;

for (u=1;u<=n;u++) chuaxet[u]=1;

for (u=1;u<=n;u++)

for (v=1;v<=n;v++) a[u][v]=b[u][v];

a[i][j]=0;a[j][i]=0;

Soltcanh=0;

for (u=1;u<=n;u++)

if (chuaxet[u]) {Soltcanh++;BFS(u);}

if (Soltcanh>Solt) return(1);

return(0);

}

void main(void){

int i,j;

clrscr();

ReadData();

for (i=1;i<=n;i++) chuaxet[i]=1;

for (i=1;i<=n;i++)

for (j=1;j<=n;j++) a[i][j]=b[i][j];

for (i=1;i<=n;i++)

if (chuaxet[i]) {Solt++;BFS(i);}

f=fopen("ketqua.out","w");

fprintf(f,"\n");

for (i=1;i<=n-1;i++)

Trang 10

for (j=i+1;j<=n;j++)

if (b[i][j])

if (CanhCau(i,j)) {Socanh++;fprintf(f,"\n%3d%3d",i,j);} rewind(f);

fprintf(f,"%d",Socanh);

printf("Da xong");

getch();

}

//Bai 12 ( Phan test Do thi)

//Bai 13 ( Phan test Do thi)

//Bai 14 ( Phan test Do thi)

//Bai 15 ( Phan test Do thi)

//Bai 16 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20],d[20],truoc[20],bd,kt;

FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","r");

fscanf(f,"%d%d%d",&n,&bd,&kt);

for (i=1;i<=n;i++){

chuaxet[i]=1;

for (j=1;j<=n;j++) fscanf(f,"%d",&a[i][j]);

}

fclose(f);

}

void Duong_di(int s){

int i,ok=1,min,vt;

d[s]=0;chuaxet[s]=0;

for (i=1;i<=n;i++)

if (chuaxet[i]) {d[i]=a[s][i];truoc[i]=s;}

while(ok){

min=32000;vt=-1;

for (i=1;i<=n;i++)

if (chuaxet[i])

if (d[i]<min && d[i]) {min=d[i];vt=i;}

if (vt==-1) ok=0;

else { chuaxet[vt]=0;

for (i=1;i<=n;i++)

if (chuaxet[i] && a[vt][i]!=0)

if (d[i]>d[vt]+a[vt][i] || d[i]==0) {d[i]=d[vt]+a[vt][i];truoc[i]=vt;}

}

}

}

void WriteData(void){

int i,dd[20],dem;

if (d[kt]==0) {printf("Khong co duong di tu %d den %d",bd,kt);return;} i=kt;dem=1;dd[1]=i;

while (truoc[i]!=bd)

{dem++;dd[dem]=truoc[i];i=truoc[i];}

printf("Duong di tu %d den %d:\n%d",bd,kt,bd);

for (i=dem;i>=1;i ) printf(" >%d",dd[i]);

}

void main(void){

int i,j;

clrscr();

ReadData();

Duong_di(bd);

Trang 11

WriteData();

getch();

}

//Bai 17 ( Phan test Do thi)

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int a[20][20],n,chuaxet[20];

FILE *f;

void ReadData(void){

int i,j;

f=fopen("dothi.in","r");

fscanf(f,"%d",&n);

for (i=1;i<=n;i++){

chuaxet[i]=1;

for (j=1;j<=n;j++) fscanf(f,"%d",&a[i][j]);

}

fclose(f);

}

void DFS(int u){

int v;

chuaxet[u]=0;

for (v=1;v<=n;v++)

if (chuaxet[v] && a[u][v]) DFS(v);

}

int Lienthong(void){

int i;

DFS(1);

for (i=1;i<=n;i++)

if (chuaxet[i]) return(0);

return(1);

}

int Kt_Euler(void){

int i,s,j;

for (i=1;i<=n;i++) {

s=0;

for (j=1;j<=n;j++) s=s+a[i][j];

if (s%2==1) return(0);}

return(1);

}

void Chutrinh(int u){

int S[50],i,j,top,CE[50],dem=0,v;

top=1;

S[top]=u;

while (top>0){

v=S[top];

i=0;

for (j=1;j<=n;j++)

if (a[v][j]) {i=j;break;}

if (i>0){top=top+1;S[top]=i;a[v][i]=0;a[i][v]=0;}

else {top ;dem++;CE[dem]=v;}

}

for (i=dem;i>1;i ) printf("%d >",CE[i]);

printf("%d",CE[1]);

}

void main(void){

int i,j;

clrscr();

ReadData();

if (Lienthong()==0) printf("Do thi khong lien thong");

else if (Kt_Euler()==0) printf("Do thi lien thong nhung khong co chu trinh");

else Chutrinh(3);

Ngày đăng: 17/10/2014, 07:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w