Tải bản đầy đủ (.doc) (28 trang)

NIÊN LUẬN TÌM CHU TRÌNH EULER TRÊN đồ THỊ vô HƯỚNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (111.46 KB, 28 trang )

TRƯỜNG ĐẠI HỌC BẠC LIÊU
KHOA CÔNG NGHỆ THÔNG TIN

NIÊN LUẬN 1

CHU TRÌNH EULER
MSĐT:NL1-TH….
Nội Dung: Tìm Chu Trình Euler Trên Đồ Thị Vô Hướng
(Có giao diện đồ họa)

C
A

D

B

Giáo viên hướng dẫn: ths. THS. TRẦN …………..
Sinh viên thực hiện: ĐẶNG ……………
MSSV: 1T…….

Bạc Liêu, Ngày …. Tháng ….. Năm ……


ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN 1
TÊN ĐỀ TÀI: TÌM CHU TRÌNH EULER TRÊN ĐỒ THỊ VÔ HƯỚNG
MÃ SỐ ĐỀ TÀI: NL1-TH043
GIÁO VIÊN HƯỚNG DẪN: THS. TRẦN ………..
SINH VIÊN THỰC HIỆN : ĐẶNG …………
I. HÌNH THỨC: (tối đa 1,0 điểm)
Bìa: ( tối đa 0.5 điểm)………………………………………………………………


Các tiêu đề:
Loại đồ án, tên đề tài, giáo viên hướng dẫn, thong tin về sinh viên thực
hiện, năm thực hiện.
Bố cục:(tối đa 0.5 điểm)………………………………………………………
Trang nhận xét của GVHD và GV chấm. (cấu trúc chương mục, tiểu mục),
phụ lục (nếu có) tài liệu tham khảo.
II. NỘI DUNG: (nội ndung tối đa 4.5 điểm)
II.1 Giới thiệu (tối đa 0,5 điểm)…………………………………………………
Giới thiệu tổng quan.
Mục tiêu cần đạt:
II.2 Lý thuyết: (tối đa 1 điểm)……………………………………………………
Các khái niệm sử dụng trong đề tài:
Kết quả vận dụng lý thuyết vào đề tài:
II.3 Ứng dụng:(tối đa 2.5 điểm) …………………………………………………
Kết quả/lưu đồ
Giới thiệu chương trình:
II.4 Kết luận: (tối đa 0.5 điểm)……………………………………………………
Nhận xét kết quả đạt được:
Hạn chế
Hướng phát triển:
III. CHƯƠNG TRÌNH DEMO: (tối đa 3.5 điểm)………………………………
Giao diện:
Hướng dẫn sử dụng:
Kết quả thực hiện đúng với kết quả của phần ứng dụng.
IV.THƯỞNG: (tối đa 1.0 điểm)…………………………………………………
TỔNG CỘNG:…………………………………
BẠC LIÊU, ngày

tháng năm ………


GV CHẤM


PHẦN NHẬN XÉT CỦA GIÁO VIÊN
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
…………………........................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................


MỤC LUC
PHẦN I: TỔNG QUAN
I.
GIỚI THIỆU CHUNG:
II.
MỤC TIÊU VÀ HƯỚNG GIẢI QUYẾT
1. Mục tiêu cần đạt
2. Hướng giải quyết
PHẦN II: ỨNG DỤNG
I.
CƠ SỞ LÝ THUYẾT
II.

CẤU TRÚC DỮ LIỆU MỚI VÀ CHƯƠNG TRÌNH CON
III.
MÔ HÌNH, LƯU ĐỒ, CHƯƠNG TRÌNH CON, KẾT QUẢ ĐẠT
ĐƯỢC
PHẦN III: KẾT LUẬN
I.
NHẬN XÉT KẾT QUẢ ĐẠT ĐƯỢC
II.
NHỮNG MẶT HẠN CHẾ
III.
HƯỚNG PHAT TRIỂN
TÀI LIỆU THAM KHẢO


NỘI DUNG
I. GIỚI THIỆU :
I.1. GIỚI THIEU TỔNG QUAN:
Những lý thuyết cơ bản của lý thuyết đồ thị được đề xuất từ thế kỷ XVIII,
bắt đầu từ bài báo cuarv Euler công bố năm 1736 liên quan đến lời giải bài toán
nổi tiếng về các cây cầu ở Königsberg. Tuy nhiên, cho tới nay mối quan tam đến
lý thuyết đồ thị không hề suy giảm. lý do của sự quan tâm ấy chính là do sự vận
dụng hết sức rộng rãi của đồ thị trong rất nhiều lĩnh vực khác nhau, bao gồm cả tin
học, hóa học, vận trù học, kỷ thuật điện, ngôn ngữ và kinh tế…
Một số bài toán thực tế như bài toán người đưa thư, bài toán người đi du
lịch, dẫn đến việc nghiên cứu một số dạng đặc biệt của đồ thị là đồ thị Euler và đồ
thị Hamilton. Trong phần này chúng ta sẽ tìm hiểu chu trình Euler với đồ thị vô
hướng.
Vào năm 1736, tại thành phố Königsberg nước Đức có sông Pregel bao
quanh 2 đảo lớn. Hai đảo này được nối với các vùng đất thành phố bởi 7 cây cầu.
Cư dân thành phố đặt ra bài toán: có thể xuất phát tại một điểm và đi qua 7 cây

cầu, mỗi cây cầu chỉ được đi qua đúng một lần, và trở về điểm xuất phát được
không ?
Và nhà toán học L.Euler đã trả lời trọn vẹn cho bài toán này. Người ta lấy tên cho
bài toán trên là tên của nhà toán học Euler.
I.2 MỤC TIÊU CẦN ĐẠT:
- Nắm vững lý thuyết về cấu trúc dữ liệu. Các chiến lược thiết kế giải thuật, lý
thuyết đồ thị.
- Viết được chương trình tìm chu trình Euler trên đồ thị vô hướng (có giao
diện đồ họa) cụ thể là:
1. Đọc đồ thị từ file văn bản.
2. Xét chu rình Euler.
3. In ra chu trình Euler nếu có.
III.
LÝ THUYẾT:
II.1. Các khái niệm sử dụng trong đề tài:
Định nghĩa đồ thị Euler: Một chu trình (vô hướng) trên đồ thị vô hướng G
đi qua tất cả các cạnh của G và đi qua mỗi cạnh đúng một lần gọi là chu trình
Euler. Một đồ thị vô hướng có chứa chu trình Euler gọi là đồ thị Euler.
Định lý Euler:
G=[X,U] là đồ thị vô hướng hữu hạn.
G là đồ thị Euler khi và chỉ khi G là đồ thị liên thông và mọi đỉnh G đều có
bậc chẳn.
Đồ thị liên thông:
G=[X,U] là đồ thị.
Đồ thị G được gọi là liên thông nếu với mỗi cặp đỉnh i,j bất kỳ thì luôn tìm
được đường đi nối giữa i và j.
Một số hàm thông dụng thao tác trên file.
II.2. Kết quả vận dụng lý thuyết vào đề tài:



IV.

1. Vận dụng vào xét chu trình Euler, vẽ chu trình Euler,đọc file dồ thị.
ỨNG DỤNG:
1. Kết quả lưu đồ:

Void main

begin
khoi_dau()

sw=menu()

switch(sw)

Case 1

Đ

gt()

S
Case 2

Đ

hd()

Đ


text()

S
Case 3
S
Case 4

tambiet()

end


VOIDTEXT

BEGIN
F=fopen(file,”r”)

F=null

Đ

S
Fscanf(f,”%d”,sodinh)

i=0,j=0

S
i
Đ

S
j
Đ
Fscanf(f,”%d”,a[i][j])

j++

i++

Continue

KHÔNG TÌM
THẤY FILE


Continue
S

iĐ

S

jĐ
a[i][j]!=a[j][i]
Đ
kt=0;i++;j++


S

kt==1

Ma tran khong thoa

return

Đ
Kiem tra
tsc
Timbac

Đ
S%2=1

Co bac le

return

S
S

iĐ
S

Đ

S2[i]

>2

e++

Đ

Timeuler()

Truonghopkhac()

return

S

e!
=0

i++


Void Timeuler
begin

m=0,e=0,u=0,k=1,l=
1,i=baclonnhat
m


Giới thiệu chương trình:

- Chương trình con vẽ cạnh.
- Chương trình con in đỉnh
- Chương trình con tìm chu trình Euler.
- Chương trình con tìm chu trình Euler với tất cả các đỉnh có bậc bằng 2.
- Chương trình con tính tọa độ.
- Chương trình con vẽ đỉnh.
- Chương trình con nhập chuỗi.
- Chương trình con nhạp file và kiểm tra file.
- Chương trình con xét Euler.
- Chương trình con tính tổng cạnh.
- Chương trình con àm tính bậc.
- Chương trình tạo giao diện chính.
- Chương trình hướng dẫn.
- Chương trình giới thiệu
IV.
kết luận:
1. Nhận xét kết quả đạt được:
- Đọc được file ma trận kề.
- Xét được file ma trận kề.
- Mô phỏng được đồ thị.
- Xét được đồ thị Euler.


- Mô phỏng được đường đi chu trình Euler nếu có.
2. Hạn chế:
- Giải thuật chưa tối ưu.
- Chưa xét được đi từ 1 đỉnh bất kỳ.
- Còn một số đồ thị không thỏa Euler chưa mô phỏng đồ thị nhập vào được.
3. Hướng phát triển:
- Khắc phục hạn chế, phát triển chương trình bắt đầu xét từ 1 đỉnh bất kỳ.

CHƯƠNG TRÌNH DEMO
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<malloc.h>
#include<stdlib.h>
#include<dos.h>
#include<math.h>
#include<string.h>
#define Max 100
#define bp(x) (x)*(x)
#define path "c:\\tc\\bgi"
//------------------ Khai bao bien ----------------------------typedef struct chitietdinh
{
float x;
float y;
};
int sodinh,i;
int a[100][100],s1[100][100],s3[100],s5[100],s6[100];
int s2[100],s4[100];
int j,n,kt=0,ch,z,s,t,k,m,l,p,g,q,w,e,u,c,o,tsd,h,x,spt,v0;
int baclonnhat,man_hinh,kieu,flag;
int midx=639/2;
int midy=400/2;
chitietdinh ctd[Max];
//--------------------- Ham ve canh ---------------------------------void ve_canh(int ke[Max][Max])
{
int i,j;
for(i=1;i<=sodinh;i++)



for(j=1;j<=sodinh;j++)
if(ke[i][j]==1)
{
line(ctd[i].x,ctd[i].y,ctd[j].x,ctd[j].y);
setcolor(13);
circle(abs(ctd[i].x+ctd[j].x)/2,abs(ctd[i].y+ctd[j].y)/2,2);
floodfill( (ctd[i].x+ctd[j].x)/2,(ctd[i].y+ctd[j].y)/2,13);
}
}
//------------------------- Ham in dinh ---------------------------void in_dinh(int chiso,int x,int y)
{
char s[1]="";
setcolor(WHITE);
itoa(chiso,s,10);
settextjustify(1,1);
outtextxy(x,y,s);
}
//----------- Ham tim chu trinh Euler ------------------------------void timeuler() {
m=0;
e=0;
u=0;
k=1;
l=1;
i=baclonnhat;
while(m{
while(i{
for(j=0;j

if(a[i][j]==1)
{
e=e+1;
if(e==1)
{
s3[l]=i+1;
l++;
in_dinh(i+1,140+textwidth("==>Chu trinh euler la : ")+10*u,440);
delay(1000);
u=u+1;
}
s3[l]=j+1;


l++;
in_dinh(j+1,140+textwidth("==>Chu trinh euler la : ")+10*u,440);
delay(1000);
a[i][j]=0;
a[j][i]=0;
u=u+1;
m=m+1;
break;
}
i=j;
if(i==sodinh)
i=0;
if(i==baclonnhat)
break;
}
}

e=0;
}
//--------- Ham tim chu tring Euler voi tat ca bac = 2 -----------------void truonghopkhac()
{
i=0;
l=1;
w=0;
q=0;
while(i{
for(j=0;j{
if(a[i][j]==1){
w=w+1;
if(w==1)
{in_dinh(i+1,145+textwidth("==>Chu trinh euler la :")+10*q,440);
q=q+1;
delay(300);
s3[l]=i+1;
l=l+1;}
in_dinh(j+1,145+textwidth("==>Chu trinh euler la :")+10*q,440);
q=q+1;
delay(300);
s3[l]=j+1;
l=l+1;


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

}
i=j;
if(i==0)
break;
}
}
//------------- Ham t6inh toa do -------------------------void tinhtoado(chitietdinh ctd[Max])
{
float goc;
goc=2*M_PI/sodinh;
int r=2*getmaxx()/7;
int i;
for(i=1;i<=sodinh;i++)
{
ctd[i].x=(midx-r*cos(i*goc));
ctd[i].y=midy-r*sin(i*goc)+30;
}
}
//-------------- Ham ve dinh ------------------------------void ve_dinh(int chiso,int x, int y)
{
char s[1]="";
setcolor(10);
circle(x,y,10);
floodfill(x,y,10);
setcolor(RED);
itoa(chiso,s,10);
settextjustify(1,1);
outtextxy(x,y,s);
}
//------------------ Ham nhap chuoi------------------------void nhapchuoi(int x, int y,char *tentt)

{
char ch;
tentt[0]=NULL;
settextjustify(0,1);
do
{
ch=getch();


if ((97<=ch && ch<=122) || (14<=ch && ch<=95)|| ch==126)
{
tentt[strlen(tentt)+1]=NULL;
tentt[strlen(tentt)]=ch;
}
if (ch==8)
{
setcolor(BLACK);
outtextxy(x,y,tentt);
tentt[strlen(tentt)-1]=NULL;
}
if (ch==27)
{
tentt[0]=27;
tentt[1]=NULL;
ch=13;
}
setcolor(10);
outtextxy(x,y,tentt);
}
while (ch!=13);

}
//------------ Nhap file va kiem tra file ------------------------void text()
{
char *file;
FILE *f;
char *pt;cleardevice();
setcolor(7);
for(i=1;i<=sodinh;i++)
for(j=1;j<=sodinh;j++)
fflush(stdin);
setcolor(14);
outtextxy(120,20,"----CHUONG TRINH TIM CHU TRINH EULER-----");
outtextxy(120,40,"---------TU DO THI CO SAN TRONG FILE----------");
setcolor(RED);
outtextxy(30,90,"Huong dan :");
setcolor(15);
line(25,100,30+textwidth("HUONG DAN :"),100);
setcolor(19);
outtextxy(30,110,"Nhap vao ten file co chua ma tran ke.");
outtextxy(30,130,"Kiem tra ma tran dau vao.");


outtextxy(30,150,"Mo phong dang do thi nhap vao.");
outtextxy(30,170,"Tim va in ra duong di chu trinh euler neu co.");
setcolor(WHITE);
outtextxy(180,185,"---------===(-<.>-)===---------");
outtextxy(30,200,"Nhap vao ten file : ");
setcolor(WHITE);
line(25,210,30+textwidth("Nhap vao ten file :"),210);
setcolor(10);

nhapchuoi(30+textwidth("Nhap vao ten file : "),204,file);
outtextxy(30,220,"Search ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Search ")+4*i,220,".");
delay(500);
}
f=fopen(file,"r");
if(f==NULL)
{
outtextxy(30+textwidth("Search......"),220,"==> Khong tim thay
file! ");
outtextxy(30,460,"Exit ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Exit ")+4*i,460,".");
delay(500);
}
return;
}
else outtextxy(30+textwidth("Search......"),220,"==> Da tim thay file ! ");
//-----------------------------------------------------------------------------------outtextxy(30,240,"Kiem tra ma tran nhap vao ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Kiem tra ma tran nhap vao ")+4*i,240,".");
delay(500);
}
fscanf(f,"%d",&sodinh);
for(i=0;ifor(j=0;j

for(i=0;ifor(j=0;j

{
kt=kt+1;
break;
}
if(kt==0)
{
outtextxy(30,260,"==> Ma tran nhap vao thoa yeu cau ! ");
outtextxy(30,460,"Waiting ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Waiting ")+4*i,460,".");
delay(500);
}
}
else
{
outtextxy(30,260,"==> Ma tran nhap vao khong thoa yeu cau ! ");
outtextxy(30,460,"Exit ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Exit ")+4*i,460,".");
delay(500);
}
return;
}
//- Xet Euler

s=0;t=0;
for(i=0;ifor(j=0;jif(a[i][j]==1)
s=s+1;
}
if(s%2==1)
break;}
//- Tinh tong canh
for(i=0;ifor(j=i;jif(a[i][j]==1)
t=t+1 ;
}}
//- Tinh Bac
for(z=0;zs2[z]=0;}


for(i=0;ifor(j=0;jif(a[i][j]==1)
s2[i]=s2[i]+1;
}}
baclonnhat=0;
for(z=0;z{if (s2[z]>baclonnhat)
baclonnhat=s2[z];}
//--Mo phong do thi nhap vao
cleardevice();

setcolor(WHITE);
outtextxy(120,20,"----MO PHONG DANG DO THI NHAP VAO-----");
tinhtoado(ctd);
for(i=1;i<=sodinh;i++)
{
ve_dinh(i,ctd[i].x,ctd[i].y);
}
setcolor(CYAN);
for(i=0;ifor(j=0;jif(a[i][j]!=0)
line(ctd[i+1].x,ctd[i+1].y,ctd[j+1].x,ctd[j+1].y);
}
setcolor(10);
outtextxy(55,465,"Continue ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Continue")+4*i,465,".");
delay(500);
}
//-----------------------------------------------------------------cleardevice();
setcolor(14);
outtextxy(300,20,"---MO PHONG DUONG DI CHU TRINH EULER---");
setcolor(10);
outtextxy(45,440,"Loading ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Loading")+4*i,440,".");
delay(300);



}
//tinhtoado(ctd);
for(i=1;i<=sodinh;i++)
{
ve_dinh(i,ctd[i].x,ctd[i].y);
}
setcolor(CYAN);
for(i=0;ifor(j=0;jif(a[i][j]!=0)
line(ctd[i+1].x,ctd[i+1].y,ctd[j+1].x,ctd[j+1].y);
}
//-----------------------------------------------------------------setcolor(10);
outtextxy(300,20,"---MO PHONG DUONG DI CHU TRINH EULER---");
if(s%2==1){
outtextxy(380,440,"Do thi tren co dinh bac le khong phai chu trinh euler");
outtextxy(50,465,"Exit... ");
for(i=0;i<7;i++)
{
outtextxy(30+textwidth("Exit")+4*i,465,".");
delay(1000);
}
return;
}
outtextxy(240,440,"==>Chu trinh euler la : ");
delay(300);
e=0;
for(i=0;iif(s2[i]>2)

e=e+1;
if(e!=0)
timeuler();
else
truonghopkhac();
setcolor(10);
outtextxy(45,465,"Continue ");
for(i=0;i<5;i++)
{
outtextxy(30+textwidth("Continue")+4*i,465,".");
delay(300);
}


setcolor(WHITE);
outtextxy(280,465,"bam phim bat ky de xem chu trinh");
getch();
setcolor(14);
outtextxy(300,20,"----MO PHONG DUONG DI CHU TRINH EULER--");
setcolor(14);
setlinestyle(CENTER_LINE,4,3);
for(i=1;iline(ctd[s3[i]].x,ctd[s3[i]].y,ctd[s3[i+1]].x,ctd[s3[i+1]].y);
delay(1000);}
setcolor(12);
outtextxy(480,465,"Exit");
for(i=0;i<5;i++)
{
outtextxy(480+textwidth("Exit")+4*i,465,".");
delay(1000);

}
}
//=======================================================
void load(){
for (i=0; i<1; i++)
{
cleardevice();
setbkcolor(0);
setcolor(5);
outtextxy(273,269,"Loading...");
rectangle(259,279,361,291);
setfillstyle(1,10);
bar(270,280,260,290);
delay(200);
setfillstyle(1,10);
bar(280,280,270,290);
delay(200);
setfillstyle(1,10);
bar(290,280,280,290);
delay(200);
setfillstyle(1,10);
bar(300,280,290,290);
delay(200);
setfillstyle(1,10);
bar(310,280,300,290);


delay(200);
setfillstyle(1,10);
bar(320,280,310,290);

delay(200);
setfillstyle(1,10);
bar(330,280,320,290);
delay(200);
setfillstyle(1,10);
bar(340,280,330,290);
delay(200);
setfillstyle(1,10);
bar(350,280,340,290);
delay(200);
setfillstyle(1,10);
bar(360,280,350,290);
delay(200);}
}
//-------------------------------------------------------void khoi_dau()
{
load();
cleardevice();
setcolor(YELLOW);
rectangle(0,0,638,478);
setcolor(WHITE);
rectangle(2,2,636,476);
setcolor(RED);
rectangle(4,4,634,474);
setcolor(14);
outtextxy(20,20,"TRUONG DAI HOC BAC LIEU");
outtextxy(20,40,"KHOA CONG NGHE THONG TIN");
setcolor(WHITE);
rectangle(260,110,382,140);
setcolor(YELLOW);

outtextxy(280,120,"NIEN LUAN I");
setcolor(WHITE);
moveto(155,180);
outtext("TIM CHU TRINH EULER TREN DO THI VO HUONG");
moveto(230,200);
outtext("( co giao dien do hoa )");
setcolor(8);
moveto(145,220);
outtext("=================(((==)))==================");


setcolor(18);
moveto(210,310);
outtext("Nguoi Thuc Hien:");
setcolor(10);
outtext("
DANG VAN SON");
setcolor(18);
moveto(210,330);
outtext("Ma So Sinh Vien:");
setcolor(10);
outtext("
1TH3040");
moveto(210,350);
setcolor(18);
outtext("Giao Vien Huong Dan:");
setcolor(10);
outtext(" THS. TRAN PHUOC NGHIA");
setcolor(14);
rectangle(110,410,510,440);

setcolor(4);
outtextxy(140,420,"Bam Phim Bat Ky De Tiep Tuc Chuong Trinh ...");
setcolor(WHITE);
outtextxy(160,460,"Bac Lieu, Ngay 30 thang 04 Nam 2010");
getch();
}
//======================================================
char menu()
{
load();
cleardevice();
setcolor(19);
rectangle(2,2,638,476);
setcolor(14);
rectangle(4,4,636,474);
setcolor(10);
rectangle(6,6,634,472);
setcolor(12);
rectangle(8,8,632,470);
setcolor(19);
rectangle(60,20,560,80);
setcolor(5);
rectangle(62,22,558,78);
moveto(100,50);
setcolor(14);


outtext("CHUONG TRINH TIM CHU TRINH EULER TREN DO THI VO
HUONG");
setcolor(5);

rectangle(95,165,155,180);
setcolor(10);
outtextxy(105,170,"MENU:");
setcolor(13);
outtextxy(80,210,"1. Gioi Thieu.");
outtextxy(80,230,"2. Huong Dan.");
outtextxy(80,250,"3. Tim Chu Trinh Euler.");
outtextxy(80,270,"4. Thoat.");
setcolor(1);
rectangle(50,340,580,370);
setcolor(4);
outtextxy(75,350,"Chon 1 Trong 4 Muc Tren De Chuong Trinh Thuc
Hien!!!");
return getch();
}
//======================================================
void gt()
{
cleardevice();
setcolor(10);
moveto(100,30);
outtext("CHUONG TRINH TIM CHU TRINH EULER TREN DO THI VO
HUONG");
setcolor(WHITE);
line(95,40,390+textwidth("Nhap vao ten file :"),40);
outtextxy(50,100,"Bai toan tim chu trinh euler dc nha toan hoc L.Euler dat
ra vao nam 1736.");
outtextxy(30,120,"Bai toan do la tai thanh pho Konigsberg thuoc nuoc
DUC co con song pregel,");
outtextxy(30,140,"Euler dat tai giua song co cu lao kneiphof tao nen bon

vung dat. Nguoi");
outtextxy(30,160,"ta xay dung 7 cay cau de noi cac vung dat voi nhau. Va
cau hoi dac ra la");
outtextxy(30,180,"co the di qua tat ca cac cay cau , moi cau chi di qua dung
1 lan va cuoi");
outtextxy(30,200,"cung quay ve dia diem xuat phat khong?");
outtextxy(50,240,"Tu do hinh thanh bai toan tim chu trinh euler la lam sao
de di qua tat ");
outtextxy(30,260,"ca cac canh va cuoi cung quay ve dinh xuat phat.");
getch();


return;
}
//=======================================================
void hd()
{
cleardevice();
setcolor(10);
moveto(230,30);
outtext("HUONG DAN");
setcolor(WHITE);
line(220,40,170+textwidth("Nhap vao ten file :"),40);
outtextxy(50,100,"De su dung chuong trinh truoc tien ta tao file ma tran ke
voi duoi .txt");
outtextxy(30,120,"Neu ta nhap ten file khong dung thi chuong trinh thong
bao khong tim thay ");
outtextxy(30,140,"file, nguoc lai chuong trinh bao da tim thay file. tiep theo
xet file nhap");
outtextxy(30,160,"vao co thoa ma tran ke khong,neu khong thoa thi dung

lai va xuat ra thong");
outtextxy(30,180,"bao ma tran nhap vao khong thoa,neu thoa thi xet xem co
phai la chu trinh ");
outtextxy(30,200,"euler khong? neu phai thi xuat ra thong bao va ve do thi.
sau do chuong");
outtextxy(30,220," trinh tu dong mo phong duong di cua chu trinh Euler.");
getch();
return;
}
//=======================================================
void tam_biet()
{
cleardevice();
setcolor(YELLOW);
rectangle(0,0,638,478);
setcolor(WHITE);
rectangle(2,2,636,476);
setcolor(RED);
rectangle(4,4,634,474);
moveto(100,200);
outtext("NGUOI THUC HIEN :");
setcolor(WHITE);
outtext(" DANG VAN SON ");
setcolor(10);
outtext(" MSSV:1TH3040");


×