Trang 1 của 6 12345 ... CuốiCuối
Kết quả 1 đến 10 của 52
  1. #1
    Hội Vật Lý Đào Duy Từ
    Ngày tham gia
    09 Jul 2009
    Đang ở
    644 quang trung 2, đông vệ
    Tuổi
    29
    Bài viết
    1,368
    Thanks
    2
    Thanked 6 Times in 6 Posts
    Rep Power
    46

    Mặc định [Tin] Pascan và vấn đề thi HSG Tin học

    thành rất muôn thi hsg tin học vì thế thành lập topic này

    có vấn đề này thanh nghiz mãi khônbg ra


    tìm kiếm nhị phân dẫy sô gồm n số (n rất lớn 100 chữ số)
    Tôi muốn làm nên tất cả

  2. #2
    Tu luyện đệ tử ĐDT Member xoxodetoan's Avatar
    Ngày tham gia
    06 Jan 2010
    Bài viết
    228
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    42

    Mặc định Re: pascan vấn đề thi hgs tin học

    Trích dẫn Gửi bởi thanhkhoeo Xem bài viết
    thành rất muôn thi hsg tin học vì thế thành lập topic này

    có vấn đề này thanh nghiz mãi khônbg ra


    tìm kiếm nhị phân dẫy sô gồm n số (n rất lớn 100 chữ số)
    Tìm kiếm cái gì thế Thành?
    Cái này học ở học kì 1 rồi mà.

  3. #3
    Hội Vật Lý Đào Duy Từ
    Ngày tham gia
    09 Jul 2009
    Đang ở
    644 quang trung 2, đông vệ
    Tuổi
    29
    Bài viết
    1,368
    Thanks
    2
    Thanked 6 Times in 6 Posts
    Rep Power
    46

    Mặc định Re: pascan vấn đề thi hgs tin học

    lập trình pascal chứ không phải là giải thuật bạn ạk mình cần chuương trình viết = pascal
    Tôi muốn làm nên tất cả

  4. #4
    Tu luyện đệ tử ĐDT Member xoxodetoan's Avatar
    Ngày tham gia
    06 Jan 2010
    Bài viết
    228
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    42

    Mặc định Re: pascan vấn đề thi hgs tin học

    Thành ơi dãy nhị phân có phải là dãy số 00000001 đúng không?
    Tớ không hiểu là đề bài của cậu là muốn tìm cái gì ?

  5. #5
    Hội Vật Lý Đào Duy Từ
    Ngày tham gia
    09 Jul 2009
    Đang ở
    644 quang trung 2, đông vệ
    Tuổi
    29
    Bài viết
    1,368
    Thanks
    2
    Thanked 6 Times in 6 Posts
    Rep Power
    46

    Mặc định Re: pascan vấn đề thi hgs tin học

    đúng là dãy nhị phân nhưng tớ hỏi thuật toán tìm kiếm nhị phân cơ

    đề bài là

    cho 1 dẫy số gôm n số cho trước và 1 số x viết thuật toán tìm kiếm nhị phân xem x có thuộc n hay không
    Tôi muốn làm nên tất cả

  6. #6
    Hẹn em ngày đó DDT Friend haidh's Avatar
    Ngày tham gia
    17 Jan 2006
    Đang ở
    Hải Dương
    Bài viết
    982
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Rep Power
    56

    Mặc định Re: pascan vấn đề thi hgs tin học

    Cây nhị phân tổng quát là một tập hợp hữu hạn các đỉnh được xác định đệ quy như sau:
    - Một tập trống là một cây nhị phân.
    - Giả sử T1 và T2 là hai cây nhị phân không cắt nhau và r là một đỉnh mới không thuộc T1, T2. Khi đó ta có thể thành lập một cây nhị phân mới T với gốc r có T1 là cây con bên trái, T2 là cây con bên phải của gốc.
    Cây nhị phân có thể trống, mỗi đỉnh của nó luôn luôn có hai cây con là cây con bên trái và cây con bên phải. Mỗi đỉnh của cây nhị phân chỉ có nhiều nhất là hai đỉnh con: một đỉnh con bên trái (đó là gốc của cây con trái) và một đỉnh con bên phải (đó là gốc của cây con phải).

    Code:
    uses crt;
    type nodePtr= ^node;
    node= record
    key: integer;
    left,right: NodePtr
    end;
    var root,tk: nodePtr; x,chon,i,n: integer;
    a: array[1..100] of integer; f: text;
    procedure Chen(x: integer);
    var p,q: nodePtr;
    begin new(q); q^.key:=x; q^.left:=Nil; q^.right:=nil;
    if root=NIL then root:=q else
    begin p:=root;
    while p<>NIL do
    begin if x <>nil then p:=p^.left
    else begin p^.left:=q; p:=nil end
    end
    else begin if x>p^.key then begin
    if p^.right<>nil then p:=p^.right
    else begin p^.right:= q; p:=nil end
    end
    else p:=nil;
    end
    end;
    end;
    end;
    procedure TimKiem(x: integer; var p: nodePtr);
    var found: boolean;
    begin p:= root; found:= false;
    while(p<>nil) and (not found) do
    if p^.key=x then found:= true
    else if x
    end;
    procedure InRong;
    const max =50;
    var truoc,cuoi,dem: integer; p,q: nodePtr;
    h: array[1..max] of nodePtr;
    begin h[1]:=root; truoc:=1; cuoi:=1; dem:=1;
    while (dem>0) do
    begin q:=h[truoc]; write(q^.key,’ : ‘); p:= q^.left;
    if p<>nil then begin write(p^.key,’ – ‘); inc(cuoi);
    h[cuoi]:=p; inc(dem);
    end else write(‘NIL – ‘);
    p:= q^.right;
    if p<>nil then begin writeln(p^.key);
    inc(cuoi); h[cuoi]:=P; inc(dem);
    end else writeln(‘NIL’);
    h[truoc]:=nil; inc(truoc); dec(dem);
    end;
    end;
    procedure Xoa(var p: nodePtr);
    var q,q1: nodePtr;
    begin
    if p^.right=NIL then begin q:=p; p:=p^.left end
    else if p^.left=NIL then begin q:=p; p:=p^.right end
    else begin q:= p^.left;
    if q^.right=nil then begin p^.key:=q^.key;
    p^.left:=q^.left
    end
    else begin
    repeat q1:=q; q:=q^.right until q^.right=nil;
    p^.key:=q^.key; q1^.right:= q^.left;
    end
    end;
    dispose(q);
    end;
    procedure PreOrder(p: nodePtr);
    begin if p<> nil then
    begin writeln(p^.key); PreOrder(p^.left); PreOrder(p^.right) end;
    end;
    procedure InOrder(p: nodePtr);
    begin if p<> nil then
    begin InOrder(p^.left);writeln(p^.key); InOrder(p^.right) end;
    end;
    procedure PostOrder(p: nodePtr);
    begin if p<> nil then
    begin PostOrder(p^.left); PostOrder(p^.right); writeln(p^.key) end;
    end;
    begin root:=nil; clrscr;
    repeat
    writeln(’1.Chen 2.Xoa 3.TimKiem 4.InRong 5.PreOder ‘);
    write(’6.InOrder 7.PostOrder 8.NhapTep 9.Exit. Chon:’);
    readln(chon);
    case chon of
    1: begin write(‘Nhap khoa moi: ‘); readln(x); Chen(x);
    end;
    2: begin write(‘Nhap khoa can xoa: ‘); readln(x);
    TimKiem(x,tk);
    if tk<>nil then Xoa(tk)
    else writeln(‘Khong tim thay gia tri khoa’);
    end;
    3: begin write(‘Nhap khoa can tim : ‘); readln(x);
    TimKiem(x,tk);
    if tk<>NIL then writeln(‘Da tim thay dinh co khoa : ‘,tk^.key)
    else writeln(‘Khong tim thay dinh co khoa nay’);
    end;
    4: InRong;
    5: begin writeln(‘Danh sach PreOrder: ‘); PreOrder(Root) end;
    6: begin writeln(‘Danh sach InOrder: ‘); InOrder(Root) end;
    7: begin writeln(‘Danh sach PostOrder: ‘); PostOrder(Root) end;
    8: begin assign(f,’Cay.dat’); reset(f); readln(f,n);
    for i:=1 to n do begin read(f,a[i]); Chen(a[i]) end;
    close(f); write(‘Da nhap xong cay tu tep…’); readln;
    end;
    end
    until chon=9;
    end.

    Giải thích: http://buithetam.wordpress.com/2009/...kiem-nhi-phan/
    Hãy theo đuổi đam mê, thành công sẽ theo đuổi bạn
    My corner: http://haidh.com
    My bin: http://www.facebook.com/haidh

  7. #7
    Tu luyện đệ tử ĐDT Member xoxodetoan's Avatar
    Ngày tham gia
    06 Jan 2010
    Bài viết
    228
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    42

    Mặc định Re: pascan vấn đề thi hgs tin học

    À tớ hiểu rồi! có phải ví dụ như:
    cho trước 1 dãy số từ 1 đến 100 chẳng hạn
    Sau đó cho x
    Và tìm xem giá trị của x có nằm trong dãy không à?
    Hay quá nhỉ !
    Tớ muốn nhờ xem có ai chương trình tính tổng hình vuông của các cạnh mà mỗi ô lại là một hình vuông!
    Ví dụ như tình tổng hình vuông của bàn cờ vua hay bàn cờ vây chẳng hạn!
    Hoặc tình tổng những ô vuông có giá trị lơn hơn rất nhiều như 1tỉ ô chẳng hạn!
    Sau đó xem tổng của chúng là chẵn hay lẽ. Nếu là lẽ thì có phải là số nguyên tố hay không!

  8. #8
    Hẹn em ngày đó DDT Friend haidh's Avatar
    Ngày tham gia
    17 Jan 2006
    Đang ở
    Hải Dương
    Bài viết
    982
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Rep Power
    56

    Mặc định Re: pascan vấn đề thi hgs tin học

    Trích dẫn Gửi bởi thanhkhoeo Xem bài viết
    đúng là dãy nhị phân nhưng tớ hỏi thuật toán tìm kiếm nhị phân cơ

    đề bài là

    cho 1 dẫy số gôm n số cho trước và 1 số x viết thuật toán tìm kiếm nhị phân xem x có thuộc n hay không
    Nếu là y/c này của chú thì không khó:

    1.Sắp xếp dãy tăng dần , mục đích để chia dãy thành 2 nửa khoảng (khoảng giá trị bé và khoảng giá trị lớn)
    2.Viết hàm đệ qui để xác định nửa khoảng mà số x thuộc vào.
    3.Nếu x = giá trị biên của nửa khoảng mà ta đã chia -->dừng lại, kết luận x thuộc dãy, nếu không thì quay lại bước 2.

    Pascal thì a ngu lắm, nên anh chỉ nói giải thuật được thôi. (Chú thông cảm vì anh là dân Chăn Nuôi Trồng Trọt)
    Hãy theo đuổi đam mê, thành công sẽ theo đuổi bạn
    My corner: http://haidh.com
    My bin: http://www.facebook.com/haidh

  9. #9
    Tu luyện đệ tử ĐDT Member xoxodetoan's Avatar
    Ngày tham gia
    06 Jan 2010
    Bài viết
    228
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    42

    Mặc định Re: pascan vấn đề thi hgs tin học

    Trích dẫn Gửi bởi haidh Xem bài viết
    Nếu là y/c này của chú thì không khó:

    1.Sắp xếp dãy tăng dần , mục đích để chia dãy thành 2 nửa khoảng (khoảng giá trị bé và khoảng giá trị lớn)
    2.Viết hàm đệ qui để xác định nửa khoảng mà số x thuộc vào.
    3.Nếu x = giá trị biên của nửa khoảng mà ta đã chia -->dừng lại, kết luận x thuộc dãy, nếu không thì quay lại bước 2.

    Pascal thì a ngu lắm, nên anh chỉ nói giải thuật được thôi. (Chú thông cảm vì anh là dân Chăn Nuôi Trồng Trọt)
    anh ơi giúp em ở câu hỏi trên với! Em thấy anh có vẻ giỏi trò này ghê!

  10. #10
    Hội Vật Lý Đào Duy Từ
    Ngày tham gia
    09 Jul 2009
    Đang ở
    644 quang trung 2, đông vệ
    Tuổi
    29
    Bài viết
    1,368
    Thanks
    2
    Thanked 6 Times in 6 Posts
    Rep Power
    46

    Mặc định Re: pascan vấn đề thi hgs tin học

    Trích dẫn Gửi bởi xoxodetoan Xem bài viết
    À tớ hiểu rồi! có phải ví dụ như:
    cho trước 1 dãy số từ 1 đến 100 chẳng hạn
    Sau đó cho x
    Và tìm xem giá trị của x có nằm trong dãy không à?
    Hay quá nhỉ !
    Tớ muốn nhờ xem có ai chương trình tính tổng hình vuông của các cạnh mà mỗi ô lại là một hình vuông!
    Ví dụ như tình tổng hình vuông của bàn cờ vua hay bàn cờ vây chẳng hạn!
    Hoặc tình tổng những ô vuông có giá trị lơn hơn rất nhiều như 1tỉ ô chẳng hạn!
    Sau đó xem tổng của chúng là chẵn hay lẽ. Nếu là lẽ thì có phải là số nguyên tố hay không!
    không hiểu đề bài kậu ạk hiểu chết liền . cho đề sâu hơn đê toàn ơi
    Tôi muốn làm nên tất cả

Trang 1 của 6 12345 ... CuốiCuối

Thông tin về chủ đề này

Users Browsing this Thread

Có 1 người đang xem chủ đề. (0 thành viên và 1 khách)

Đánh dấu

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •