Diễn Đàn Tin Học

Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 17
  1. #1
    Tham gia
    11-08-2002
    Location
    Ha Noi
    Bài viết
    12
    Like
    0
    Thanked 0 Times in 0 Posts

    Bài tập TP-Chung sức giúp cái nào ! Sẽ cám ơn thoả đáng

    Tui đang làm gấp bài này mà không được , ai biết giúp Tui cái
    Bài 1 : Thuật toán :
    1) Lập trình thuật toán về toán học rời rạc :
    a) Tìm cây khung nhỏ nhất .
    b) Tìm kiếm trên đồ thị :
    - Dùng Dijksta tìm đường đi ngắn nhất
    - Cài đặt thuật toán tìm kiếm theo chiều rộng , chiều sâu
    c) Tìm liệt kê tổ hợp , chỉnh hợp , lặp và không lặp bằng phương pháp sinh tuần tự .
    d) Liệt kê bằng phương pháp đệ quy quay lui (8 hậu người đi tuần , sáu sĩ quan Ơle)
    2) Tính hậu số vẽ đồ thị
    3) Tính đa thức nội suy laysuy và UD Newton tính xấp xỉ gần đúng .
    4) Tính tích phân gần đúng hàm số .
    5) Phương pháp lặp giải gần đúng hệ tuyến tính .
    Quote Quote

  2. #2
    Tham gia
    11-08-2002
    Location
    Ha Noi
    Bài viết
    12
    Like
    0
    Thanked 0 Times in 0 Posts
    Ai sửa cái này hộ Tui với , Tui làm mãi nó ko chạy được
    Program tamquanhau;
    Var i:integer ; q : boolean ;
    X:Array [1..8] of integer ;
    A:Array [1..8] of boolean ;
    B:Array [2..26] of boolean ; {Số đường chéo tiến}
    B:Array [-7..7] of Boolean ; {Số đường chéo lùi}
    Procedure Dat_hau(i:integer ; var q:Boolean) ;
    Var j:integer ;
    Begin j:=0 ;
    Repeat j:=inc(j) ; q:=false ;
    If (a[i] and b[i+j] and c[i-j]) then
    Begin
    X[i]:=j ; a[j]:=false ;
    B[i+j]:=false ; c[[i-j]:=false ;
    If i<8 then
    Begin dat_hau(i+1,q);
    If not q then
    Begin a[j]:=true; b[i+j]:=true;c[i-j]:=true;
    End;end else q:=true ; end;
    Until q or (j:=8)
    End;
    Begin for i:=1 to 8 do a[i]:=true;
    For i:=2 to 16 do b[i]:=true;
    For i:=-7 to 7 do c[i]:=true ;
    Bat_dau(1,q)
    If q then for i:=1 to 8 do write (x[i]:4);
    Writeln;end.

  3. #3
    Tham gia
    16-07-2002
    Bài viết
    175
    Like
    0
    Thanked 0 Times in 0 Posts
    Giai thuat Dijkstra:

    Code:
    Procedure Dijkstra;
    var
    	D,P,C: array [1..n] of integer;
    	i,j,k,mk,mx,min,x: integer;
    begin
    	k:=n-1;{so phan tu cua tap hop C}
    	{xay dung tap hop C, mang D & P}
    	for i:=2 to n do
    		begin	C[i-1]:=i; D[i]:=L[1,i]; P[i]:=1
    		end;
    	for j:=1 to n-2 do
    		begin
    			{tim gia tri nho nhat cua mang D}
    			min:=D[C[1]]; mx:=1;
    			for i:=2 to k do
    				if D[C[i]]< min then
    					begin	min:=D[C[i]]; mx:=i
    					end;
    			{loai bo dinh C[mx] ra khoi tap hop C}
    			mk:=C[mx]; C[mx]:=C[k]; k:=k-1;
    			for i:=1 to k do
    				begin
    					x:=C[i];
    					if D[x]>D[mk]+L[mk,x] then
    						begin	D[x]:=D[mk]+L[mk,x]; P[x]:=mk
    						end
    				end
    		end
    end;
    Được sửa bởi phoenix lúc 16:10 ngày 17-08-2002

  4. #4
    Tham gia
    16-07-2002
    Bài viết
    175
    Like
    0
    Thanked 0 Times in 0 Posts
    Giai thuat tim kiem theo chieu rong = ds ke (breadth-first search)
    Code:
    Procedure Listbfs;
    var	i,k:integer;
    	mark: array [1..maxn] of integer;
    	Front,Rear,q: pt;
    Procedure Init_Queue;
    	{khoi tao hang rong}
    	begin
    		Front:=nil; Rear:=nil
    	end;
    Procedure Insert_Queue(r:integer);
    	{them nut r vao trong hang}
    	begin
    		New(q); q^.info:=r; q^.link:=nil;
    		if Rear<> nil then Rear^.link:=q;
    		Rear:=q;
    		if Front=nil then Front:=q
    	end;
    Procedure Delete_Queue(var r:integer);
    	{lay nut r ra khoi hang}
    	begin
    		r:=Front^.info; q:=Front;
    		Front:=Front^.link;
    		if Front=nil then Rear:=nil;
    		Dispose(q)
    	end;
    Procedure Visit(k:integer);
    	var t:ref;
    	begin
    		Insert_Queue(k);
    		repeat
    		Delete_Queue(k);
    		i:=i+1; mark[k]:=i; t:=adj[k];
    		while t<> z do
    		begin
    			if mark[t^.id]=0 then
    				begin
    					Insert_Queue(t^.id);
    					mark[t^.id]:=-1
    				end;
    			t:=t^.next
    		end
    		until Front =nil
    	end;
    	begin
    		i:=0;
    		Init_Queue;
    		for k:=1 to n do mark[k]:=0;
    		for k:=1 to n do
    			if mark[k]=0 then Visit(k)
    	end;
    Được sửa bởi phoenix lúc 16:12 ngày 17-08-2002

  5. #5
    Tham gia
    16-07-2002
    Bài viết
    175
    Like
    0
    Thanked 0 Times in 0 Posts
    đã lâu ko dùng tới Pascal nên ko nhớ kỹ lắm, nếu có sai sót thì bạn sửa lại dùm nha.

    bài tamquanhau, giai he pt tuyen tinh & liet ke to hop chinh hop thì tui có sẵn chương trình hoàn chỉnh viết =ngôn ngữ C, tui lười dịch qua Pascal wá, nếu bạn cần tham khảo thì tui sẽ gửi cho.

    Tính hậu số vẽ đồ thị: bạn giải thích thêm về cái đề này đi

  6. #6
    Tham gia
    13-08-2002
    Bài viết
    672
    Like
    0
    Thanked 2 Times in 2 Posts
    to phoenix@:

    nếu bạn sử dụng tag \[code\] thì các bạn khác sẽ dễ đọc code hơn...

  7. #7
    Tham gia
    16-07-2002
    Bài viết
    175
    Like
    0
    Thanked 0 Times in 0 Posts
    Giai thuat de quy tim kiem theo chieu sau
    Code:
    Procedure Listdfs;
    var	i,k:integer;
    	mark:array[1..maxn] of integer;
    Procedure Visit(k:integer);
    	var	t:ref;
    	begin
    		i:=i+1; mark[k]:=i;
    		{duyet cac dinh trong danh sach ke cua dinh k}
    		t:=adj[k];
    		while t<>z do
    			begin
    				if mark[t^.id]=0 then Visit(t^.id);
    				t:=t^.next
    			end
    	end;
    	begin
    		i:=0;
    		for k:=1 to n do mark[k]:=0;
    		for k:=1 to n do
    		if mark[k]=0 then Visit(k)
    	end;
    Được sửa bởi phoenix lúc 16:13 ngày 17-08-2002

  8. #8
    Tham gia
    16-07-2002
    Bài viết
    175
    Like
    0
    Thanked 0 Times in 0 Posts
    tui muốn dùng tab lắm nhưng tui không tài nào chỉnh sửa được
    admin ơi làm ơn thêm phần hướng dẫn sử dụng đi
    chương trình do tui viết ra mà tui còn thấy khó đọc nữa huống chi là các bạn

  9. #9
    Tham gia
    16-07-2002
    Bài viết
    698
    Like
    0
    Thanked 65 Times in 14 Posts
    OK rồi đó. Phoenix chỉ việc copy và paste từ file text vào đây, để giữa 2 tag code là xong.

  10. #10
    Tham gia
    16-07-2002
    Bài viết
    175
    Like
    0
    Thanked 0 Times in 0 Posts
    trời... vikhoa làm gì 1 tràng dzậy, có giận em thì nói chứ đừng làm dzậy em sợ

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •