Cài đặt thuật toán Vector đồ thị bằng Pascal
Chia sẻ bởi Nguyễn Lê Quang Duy |
Ngày 16/10/2018 |
213
Chia sẻ tài liệu: Cài đặt thuật toán Vector đồ thị bằng Pascal thuộc Tư liệu tham khảo
Nội dung tài liệu:
CÀI ĐẶT THUẬT TOÁN VECTOR ĐỒ THỊ BẰNG CHƯƠNG TRÌNH PASCAL
Vecto đồ thị.
Chương trình kiểm tra một vector có phải là một vector đồ thị hay không.
Dữ liệu được lấy từ tệp VECTO.INP, gồm các vector dạng v =(d1,d2,…dn) gồm n số nguyên giảm dần, được viết theo dòng.
Chương trình sẽ kiểm tra vector v và kết quả được lưu vào tệp VECTO.OUT. Nếu v là vector đồ thị thì kết quả là YES, ngược lại là NO.
Chương trình: (VECTOR.PAS)
Program vecto;
type mang = array[1..20] of integer;
var f,g:text;
v:mang; n:integer;
procedure giamdan(var u:mang;m:integer);
var i,j,t:integer;
begin
for i:=1 to m-1 do
for j:=i+1 to m do
if u[i] begin t:=u[i];
u[i]:=u[j];
u[j]:=t;
end;
end;
function kiemtra(v:mang;m:integer):boolean;
var i:integer; u:mang;kt,bietroi:boolean;
begin
u:=v;
giamdan(u,m); kt:=false; bietroi:=true;
for i:=1 to m do
if (u[i]>m-1) or (u[i]<0) then kt:=true
else if u[i]<>0 then bietroi:=false;
if kt then kiemtra:=false
else if bietroi then kiemtra:=true
else begin
for i:=1 to u[1] do u[i]:=u[i+1]-1;
for i:=u[1]+1 to m-1 do u[i]:=u[i+1];
giamdan(u,m-1);
kiemtra:=kiemtra(u,m-1);
end;
end;
Begin
writeln(` ct xac dinh vec to do thi`);
assign(f,`vecto.inp`); reset(f);
assign(g,`vecto.out`); rewrite(g);
while not eof(f) do
begin
n:=0;
while not eoln(f) do
begin inc(n); read(f,v[n]);
write(v[n]:3);
end;
writeln;
if kiemtra(v,n) then writeln(g,`YES`)
else writeln(g,`NO`);
readln(f);
end;
close(f); close(g);
End.
File vào ví dụ: (VECTO.INP)
2 2 1
3 3 2 2 2
5 4 3 3 3 2
File ra tương ứng: (VECTO.OUT)
NO
YES
YES
Vecto đồ thị.
Chương trình kiểm tra một vector có phải là một vector đồ thị hay không.
Dữ liệu được lấy từ tệp VECTO.INP, gồm các vector dạng v =(d1,d2,…dn) gồm n số nguyên giảm dần, được viết theo dòng.
Chương trình sẽ kiểm tra vector v và kết quả được lưu vào tệp VECTO.OUT. Nếu v là vector đồ thị thì kết quả là YES, ngược lại là NO.
Chương trình: (VECTOR.PAS)
Program vecto;
type mang = array[1..20] of integer;
var f,g:text;
v:mang; n:integer;
procedure giamdan(var u:mang;m:integer);
var i,j,t:integer;
begin
for i:=1 to m-1 do
for j:=i+1 to m do
if u[i] begin t:=u[i];
u[i]:=u[j];
u[j]:=t;
end;
end;
function kiemtra(v:mang;m:integer):boolean;
var i:integer; u:mang;kt,bietroi:boolean;
begin
u:=v;
giamdan(u,m); kt:=false; bietroi:=true;
for i:=1 to m do
if (u[i]>m-1) or (u[i]<0) then kt:=true
else if u[i]<>0 then bietroi:=false;
if kt then kiemtra:=false
else if bietroi then kiemtra:=true
else begin
for i:=1 to u[1] do u[i]:=u[i+1]-1;
for i:=u[1]+1 to m-1 do u[i]:=u[i+1];
giamdan(u,m-1);
kiemtra:=kiemtra(u,m-1);
end;
end;
Begin
writeln(` ct xac dinh vec to do thi`);
assign(f,`vecto.inp`); reset(f);
assign(g,`vecto.out`); rewrite(g);
while not eof(f) do
begin
n:=0;
while not eoln(f) do
begin inc(n); read(f,v[n]);
write(v[n]:3);
end;
writeln;
if kiemtra(v,n) then writeln(g,`YES`)
else writeln(g,`NO`);
readln(f);
end;
close(f); close(g);
End.
File vào ví dụ: (VECTO.INP)
2 2 1
3 3 2 2 2
5 4 3 3 3 2
File ra tương ứng: (VECTO.OUT)
NO
YES
YES
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Lê Quang Duy
Dung lượng: 31,00KB|
Lượt tài: 1
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)